#!/usr/bin/env python3
"""Task 14 i18n: add registration-window-flip + rules modal keys to all 4 locales.

Idempotent — existing keys are left untouched.
"""
import json
import os

BASE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
LOCALES = os.path.join(BASE, "app", "i18n", "locales")

KEYS = {
    "register_now": {
        "en": "REGISTER",
        "fa": "ثبت‌نام",
        "tr": "KAYIT OL",
        "ar": "سجّل الآن",
    },
    "match_rules": {
        "en": "Match Rules",
        "fa": "قوانین مسابقه",
        "tr": "Maç Kuralları",
        "ar": "قوانين المباراة",
    },
    "rules_agree": {
        "en": "I have read and accept the rules",
        "fa": "قوانین را خوانده‌ام و می‌پذیرم",
        "tr": "Kuralları okudum ve kabul ediyorum",
        "ar": "لقد قرأت القوانين وأوافق عليها",
    },
    "rules_continue": {
        "en": "Continue Registration",
        "fa": "ادامه ثبت‌نام",
        "tr": "Kayda Devam Et",
        "ar": "متابعة التسجيل",
    },
    "rules_confirm_register": {
        "en": "Accept & Register",
        "fa": "می‌پذیرم و ثبت‌نام می‌کنم",
        "tr": "Kabul Et ve Kaydol",
        "ar": "أوافق وأسجّل",
    },
    "rules_default_note": {
        "en": "No specific rules have been set for this match yet. By registering you accept the general platform rules.",
        "fa": "هنوز قوانین خاصی برای این مسابقه ثبت نشده است؛ با ثبت‌نام، قوانین عمومی پلتفرم را می‌پذیرید.",
        "tr": "Bu maç için henüz özel bir kural belirlenmemiş; kayıt olarak platformun genel kurallarını kabul edersiniz.",
        "ar": "لم يتم تحديد قوانين خاصة لهذه المباراة بعد؛ بالتسجيل فإنك توافق على قوانين المنصة العامة.",
    },
    "rules_view": {
        "en": "View Rules",
        "fa": "مشاهده قوانین",
        "tr": "Kuralları Gör",
        "ar": "عرض القوانين",
    },
    "rules_gate_hint": {
        "en": "You will be asked to accept these rules before your registration is confirmed.",
        "fa": "قبل از تأیید ثبت‌نام، از شما خواسته می‌شود این قوانین را بپذیرید.",
        "tr": "Kaydınız onaylanmadan önce bu kuralları kabul etmeniz istenecek.",
        "ar": "سيُطلب منك قبول هذه القوانين قبل تأكيد التسجيل.",
    },
    "reg_not_open_yet": {
        "en": "Registration Not Open Yet",
        "fa": "ثبت‌نام هنوز باز نشده است",
        "tr": "Kayıt Henüz Açılmadı",
        "ar": "التسجيل لم يُفتح بعد",
    },
    "reg_opens_at_line": {
        "en": "Registration opens at 12 midnight (00:00) before the match day:",
        "fa": "ثبت‌نام رأس ساعت ۱۲ شب (نیمه‌شبِ) قبل از روز مسابقه باز می‌شود:",
        "tr": "Kayıt, maç gününden önceki gece saat 12'de (00:00) açılır:",
        "ar": "يُفتح التسجيل في تمام الساعة 12 ليلاً (00:00) قبل يوم المباراة:",
    },
    "reg_open_now_until": {
        "en": "Registration is open (it opened at 12 midnight before match day) and stays open right up to match start:",
        "fa": "ثبت‌نام باز است (رأس ۱۲ شبِ قبل از روز مسابقه باز شد) و تا لحظه‌ی شروع مسابقه باز می‌ماند:",
        "tr": "Kayıt açık (maç gününden önceki gece yarısı açıldı) ve maç başlangıcına kadar açık kalır:",
        "ar": "التسجيل مفتوح (فُتح في منتصف الليل قبل يوم المباراة) ويبقى مفتوحاً حتى بداية المباراة:",
    },
}


def main():
    for loc in ("en", "fa", "tr", "ar"):
        path = os.path.join(LOCALES, f"{loc}.json")
        with open(path, encoding="utf-8") as f:
            data = json.load(f)
        added = 0
        for key, translations in KEYS.items():
            if key not in data:
                data[key] = translations[loc]
                added += 1
        with open(path, "w", encoding="utf-8") as f:
            json.dump(data, f, ensure_ascii=False, indent=2)
            f.write("\n")
        print(f"[i18n] {loc}: +{added} keys (total {len(data)})")


if __name__ == "__main__":
    main()
