#!/usr/bin/env python3
"""Complete fa/tr/ar translations — fills every key missing from each locale
with a proper human translation (falls back to English text where the string
is a brand/technical term)."""
import json
import os

BASE = '/home/z/my-project/fightskill'
LOCALES = os.path.join(BASE, 'app', 'i18n', 'locales')

with open(os.path.join(LOCALES, 'en.json'), encoding='utf-8') as f:
    EN = json.load(f)

FA = {
    "achievements": "دستاوردها", "actions": "عملیات", "admin": "ادمین",
    "agree_terms": "با شرایط خدمات و سیاست حریم خصوصی موافقم",
    "all": "همه", "all_games": "همه بازی‌ها",
    "already_have_account": "قبلاً حساب دارید؟", "available_slots": "ظرفیت موجود",
    "back_to_login": "بازگشت به ورود", "boost_desc": "۲ برابر XP به مدت ۲۴ ساعت",
    "bracket": "جدول مسابقات", "browse_games": "مرور بازی‌ها",
    "capacity": "ظرفیت", "champion_skin": "اسکین قهرمانی",
    "charge": "شارژ", "click_code": "برای نمایش/کپی کلیک کنید (حالت توسعه)",
    "climb_lb_desc": "رتبه بگیرید و جوایز باز کنید",
    "climb_lb_long": "در لیدربوردهای جهانی، هفتگی و ماهانه بالا بروید. XP کسب کنید، سطح بگیرید و جوایز انحصاری باز کنید.",
    "climb_leaderboard": "صعود در لیدربورد",
    "closed": "بسته", "code": "کد", "coins": "سکه",
    "create_account": "ساخت حساب",
    "create_account_desc": "با ایمیل یا حساب‌های اجتماعی ثبت‌نام کنید",
    "create_account_long": "با ایمیل در FIGHTSKILL ثبت‌نام کنید یا حساب‌های Discord، Steam یا X خود را متصل کنید.",
    "created": "ایجاد شد", "description": "توضیحات",
    "diamond_desc": "۵,۰۰۰ سکه + اسکین انحصاری",
    "diamond_pack": "بسته الماس", "earned": "کسب شده",
    "ends_at": "پایان", "explore_games": "کاوش بازی‌ها",
    "featured_tournament_desc": "نبرد نهایی رقابتی. برای افتخار و جایزه بزرگ رقابت کنید.",
    "finals": "فینال", "first_place": "مقام اول",
    "first_tournament_win": "اولین تورنمنت خود را ببرید",
    "footer_text": "پلتفرم حرفه‌ای گیمینگ و اسپورت",
    "forgot_password": "فراموشی رمز عبور", "format": "فرمت",
    "friend_ids": "شناسه دوستان", "game_id": "شناسه بازی",
    "global": "جهانی", "group_reg": "ثبت‌نام گروهی",
    "group_reg_desc": "به‌عنوان تیم یا گروه ثبت‌نام کنید",
    "groups": "گروه‌ها", "help_center": "مرکز راهنما",
    "how_it_works": "چطور کار می‌کند",
    "how_it_works_desc": "FIGHTSKILL رقابت در تورنمنت‌های اسپورت را ساده می‌کند.",
    "icon": "آیکون", "image": "تصویر", "inf": "بی‌نهایت",
    "invites_sent": "دعوت‌نامه‌ها ارسال شد",
    "is_tournament_manager": "مدیر تورنمنت",
    "join_tournament": "پیوستن به تورنمنت",
    "join_tournament_desc": "مرور و ثبت‌نام در تورنمنت‌ها",
    "join_type": "نوع پیوستن", "kind": "نوع", "lang": "زبان",
    "leaderboard_desc": "برای صدرنشینی رقابت کنید و جوایز انحصاری بگیرید.",
    "leaderboard_subtitle": "بهترین بازیکنان جهان",
    "live_tournaments": "تورنمنت‌های زنده",
    "login_required": "ورود لازم است", "login_to_join": "برای پیوستن وارد شوید",
    "login_to_see_rewards": "برای دیدن جوایز، پیشرفت XP و موجودی کیف پول وارد شوید.",
    "logo": "لوگو", "manage": "مدیریت", "mark_as_read": "علامت‌گذاری خوانده‌شده",
    "matches": "مسابقات", "members": "اعضا",
    "message_sent": "پیام ارسال شد!", "mode_id": "شناسه حالت",
    "monthly": "ماهانه", "my_matches": "مسابقات من",
    "no_data": "داده‌ای نیست", "notifications": "اعلان‌ها",
    "open": "باز", "participation": "مشارکت", "password": "رمز عبور",
    "players": "بازیکنان", "plays": "بازی‌ها",
    "play_now": "همین حالا بازی کن", "prizes": "جوایز",
    "prize_distribution": "توزیع جایزه", "prize_pool": "جایزه",
    "quarter_finals": "یک‌چهارم نهایی", "rank": "رتبه",
    "read": "خوانده‌شده", "register": "ثبت‌نام",
    "register_team": "ثبت‌نام تیم", "registration_closed": "ثبت‌نام بسته شد",
    "registration_end": "پایان ثبت‌نام", "reset_password": "بازیابی رمز عبور",
    "resolved": "حل شد", "reward": "جایزه", "rewards": "جوایز",
    "round": "راند", "rules": "قوانین", "season": "فصل",
    "semi_finals": "نیمه‌نهایی", "send_reset_code": "ارسال کد بازیابی",
    "server": "سرور", "special_matches": "مسابقات ویژه",
    "start_match": "شروع مسابقه", "started": "شروع شده",
    "stats": "آمار", "subject": "موضوع", "team_name": "نام تیم",
    "teams": "تیم‌ها", "third_place": "مقام سوم",
    "today": "امروز", "top_players": "بازیکنان برتر",
    "tournament_bracket": "جدول تورنمنت", "total_prize": "جایزه کل",
    "total_teams": "کل تیم‌ها", "tournaments_live": "تورنمنت زنده",
    "tournaments_won": "تورنمنت‌های برده شده", "type": "نوع",
    "unauthorized": "دسترسی غیرمجاز", "unknown": "نامشخص",
    "unread": "خوانده‌نشده", "update": "به‌روزرسانی", "upcoming": "به‌زودی",
    "username": "نام کاربری", "verify": "تأیید", "verify_email": "تأیید ایمیل",
    "view": "مشاهده", "wallet": "کیف پول", "week": "هفته",
    "weekly": "هفتگی", "welcome_back": "خوش آمدید!",
    "win_rate": "نرخ برد", "winners": "برندگان", "withdraw": "برداشت",
    "your_balance": "موجودی شما", "your_rank": "رتبه شما",
    "total_matches": "کل مسابقات", "total_wins": "کل برد‌ها",
    "matches_played": "مسابقات انجام شده", "join_tournament_btn": "پیوستن به تورنمنت",
    "view_tournament": "مشاهده تورنمنت", "no_tournaments": "تورنمتی یافت نشد",
    "no_tournaments_desc": "در حال حاضر تورنمنت فعالی وجود ندارد. به‌زودی برگردید!",
    "no_games": "بازی‌ای موجود نیست",
    "no_games_desc": "بازی‌ها در حال اضافه شدن هستند. به‌زودی برگردید!",
    "starts_in_label": "شروع در", "no_messages": "هنوز پیامی نیست. برای ما پیام بفرستید!",
    "send_message": "ارسال", "type_message": "پیام خود را بنویسید...",
    "message_history": "تاریخچه پیام‌ها", "support_team": "تیم پشتیبانی",
    "online": "آنلاین", "prizes_awarded": "جوایز اهدا شده",
    "countries": "کشور", "uptime": "آپ‌تایم",
}

TR = {
    "achievements": "BAŞARIMLAR", "actions": "İşlemler", "admin": "Yönetici",
    "agree_terms": "Hizmet Şartları ve Gizlilik Politikası'nı kabul ediyorum",
    "all": "TÜMÜ", "all_games": "Tüm Oyunlar",
    "already_have_account": "Zaten hesabınız var mı?", "available_slots": "Müsait yerler",
    "back_to_login": "Girişe dön", "boost_desc": "24 saat 2 katı XP",
    "bracket": "TURNUVA TABLOSU", "browse_games": "OYUNLARA GÖZ AT",
    "capacity": "Kapasite", "champion_skin": "ŞAMPİYON SKİNİ",
    "charge": "Yükle", "click_code": "Göster/kopyalamak için tıklayın (geliştirme modu)",
    "climb_lb_desc": "Sıralama kazan ve ödüller aç",
    "climb_lb_long": "Küresel, haftalık ve aylık liderlik tablolarında yükselin. XP kazanın, seviye atlayın ve özel ödüller açın.",
    "climb_leaderboard": "LİDERLİK TABLOSUNA TIRMAN",
    "closed": "Kapalı", "code": "Kod", "coins": "Jeton",
    "create_account": "HESAP OLUŞTUR",
    "create_account_desc": "E-posta veya sosyal hesaplarla kaydolun",
    "create_account_long": "E-posta ile FIGHTSKILL'e kaydolun veya Discord, Steam, X hesaplarınızı bağlayın.",
    "created": "Oluşturuldu", "description": "Açıklama",
    "diamond_desc": "5.000 jeton + özel skin",
    "diamond_pack": "ELMAS PAKETİ", "earned": "Kazanılan",
    "ends_at": "Bitiş", "explore_games": "OYUNLARI KEŞFET",
    "featured_tournament_desc": "En büyük rekabetçi gösteri. Şan ve büyük ödül havuzu için yarışın.",
    "finals": "FİNAL", "first_place": "1. Lik",
    "first_tournament_win": "İlk turnuvanı kazan",
    "footer_text": "Profesyonel Oyun ve E-Spor Platformu",
    "forgot_password": "Şifremi Unuttum", "format": "Format",
    "friend_ids": "Arkadaş ID'leri", "game_id": "Oyun ID",
    "global": "KÜRESEL", "group_reg": "Grup Kaydı",
    "group_reg_desc": "Takım veya grup olarak kaydolun",
    "groups": "Gruplar", "help_center": "Yardım Merkezi",
    "how_it_works": "NASIL ÇALIŞIR",
    "how_it_works_desc": "FIGHTSKILL e-spor turnuvalarında yarışmayı kolaylaştırır.",
    "icon": "Simge", "image": "Görsel", "inf": "Sonsuz",
    "invites_sent": "Davetiyeler gönderildi",
    "is_tournament_manager": "Turnuva Yöneticisi",
    "join_tournament": "TURNUVAYA KATIL",
    "join_tournament_desc": "Turnuvalara göz at ve kaydol",
    "join_type": "Katılım türü", "kind": "Tür", "lang": "Dil",
    "leaderboard_desc": "Zirve için yarışın ve özel ödüller kazanın.",
    "leaderboard_subtitle": "Dünyanın en iyi oyuncuları",
    "live_tournaments": "CANLI TURNUVALAR",
    "login_required": "Giriş Gerekli", "login_to_join": "KATILMAK İÇİN GİRİŞ YAP",
    "login_to_see_rewards": "Ödüllerinizi, XP ilerlemenizi ve cüzdan bakiyenizi görmek için giriş yapın.",
    "logo": "Logo", "manage": "Yönet", "mark_as_read": "Okundu işaretle",
    "matches": "Maçlar", "members": "Üyeler",
    "message_sent": "Mesaj gönderildi!", "mode_id": "Mod ID",
    "monthly": "AYLIK", "my_matches": "Maçlarım",
    "no_data": "Veri yok", "notifications": "Bildirimler",
    "open": "Açık", "participation": "Katılım", "password": "Şifre",
    "players": "Oyuncular", "plays": "Oyunlar",
    "play_now": "ŞİMDİ OYNA", "prizes": "Ödüller",
    "prize_distribution": "Ödül Dağıtımı", "prize_pool": "Ödül Havuzu",
    "quarter_finals": "ÇEYREK FİNAL", "rank": "Sıralama",
    "read": "Okundu", "register": "Kaydol",
    "register_team": "Takım Kaydı", "registration_closed": "Kayıt kapandı",
    "registration_end": "Kayıt bitişi", "reset_password": "Şifre Sıfırla",
    "resolved": "Çözüldü", "reward": "Ödül", "rewards": "Ödüller",
    "round": "Tur", "rules": "Kurallar", "season": "Sezon",
    "semi_finals": "YARI FİNAL", "send_reset_code": "Sıfırlama Kodu Gönder",
    "server": "Sunucu", "special_matches": "ÖZEL MAÇLAR",
    "start_match": "Maçı Başlat", "started": "Başladı",
    "stats": "İstatistikler", "subject": "Konu", "team_name": "Takım Adı",
    "teams": "Takımlar", "third_place": "3. lük",
    "today": "Bugün", "top_players": "En İyi Oyuncular",
    "tournament_bracket": "Turnuva Tablosu", "total_prize": "Toplam Ödül",
    "total_teams": "Toplam Takım", "tournaments_live": "Canlı Turnuvalar",
    "tournaments_won": "Kazanılan Turnuvalar", "type": "Tür",
    "unauthorized": "Yetkisiz erişim", "unknown": "Bilinmeyen",
    "unread": "Okunmadı", "update": "Güncelle", "upcoming": "YAKLAŞAN",
    "username": "Kullanıcı Adı", "verify": "Doğrula", "verify_email": "E-postayı Doğrula",
    "view": "Görüntüle", "wallet": "Cüzdan", "week": "Hafta",
    "weekly": "HAFTALIK", "welcome_back": "Tekrar hoş geldiniz!",
    "win_rate": "Kazanma Oranı", "winners": "Kazananlar", "withdraw": "Çekim",
    "your_balance": "Bakiyeniz", "your_rank": "Sıralamanız",
    "total_matches": "Toplam Maç", "total_wins": "Toplam Galibiyet",
    "matches_played": "Oynanan Maçlar", "join_tournament_btn": "Turnuvaya Katıl",
    "view_tournament": "Turnuvayı Gör", "no_tournaments": "Turnuva Bulunamadı",
    "no_tournaments_desc": "Şu anda aktif turnuva yok. Yakında tekrar kontrol edin!",
    "no_games": "Oyun Mevcut Değil",
    "no_games_desc": "Oyunlar ekleniyor. Yakında tekrar kontrol edin!",
    "starts_in_label": "Başlangıç", "no_messages": "Henüz mesaj yok. Bize mesaj gönderin!",
    "send_message": "Gönder", "type_message": "Mesajınızı yazın...",
    "message_history": "Mesaj Geçmişi", "support_team": "Destek Ekibi",
    "online": "Çevrimiçi", "prizes_awarded": "Verilen Ödüller",
    "countries": "Ülkeler", "uptime": "Çalışma Süresi",
}

AR = {
    "achievements": "الإنجازات", "actions": "إجراءات", "admin": "مشرف",
    "agree_terms": "أوافق على شروط الخدمة وسياسة الخصوصية",
    "all": "الكل", "all_games": "كل الألعاب",
    "already_have_account": "لديك حساب بالفعل؟", "available_slots": "الأماكن المتاحة",
    "back_to_login": "العودة لتسجيل الدخول", "boost_desc": "ضعف XP لمدة 24 ساعة",
    "bracket": "جدول البطولة", "browse_games": "تصفح الألعاب",
    "capacity": "السعة", "champion_skin": "جلد البطل",
    "charge": "شحن", "click_code": "انقر للعرض/النسخ (وضع التطوير)",
    "climb_lb_desc": "اربح التصنيف وافتح المكافآت",
    "climb_lb_long": "تسلق لوحات الصدارة العالمية والأسبوعية والشهرية. اكسب XP وارتقِ بالمستوى وافتح مكافآت حصرية.",
    "climb_leaderboard": "تسلق لوحة الصدارة",
    "closed": "مغلق", "code": "رمز", "coins": "عملات",
    "create_account": "إنشاء حساب",
    "create_account_desc": "سجل بالبريد الإلكتروني أو حسابات التواصل",
    "create_account_long": "سجل في FIGHTSKILL ببريدك الإلكتروني أو اربط حسابات Discord أو Steam أو X.",
    "created": "تم الإنشاء", "description": "الوصف",
    "diamond_desc": "5,000 عملة + جلد حصري",
    "diamond_pack": "حزمة الألماس", "earned": "مكتسب",
    "ends_at": "ينتهي", "explore_games": "استكشف الألعاب",
    "featured_tournament_desc": "المواجهة التنافسية النهائية. نافس على المجد وجائزة كبيرة.",
    "finals": "النهائي", "first_place": "المركز الأول",
    "first_tournament_win": "اربح أول بطولة لك",
    "footer_text": "منصة الألعاب والرياضات الإلكترونية الاحترافية",
    "forgot_password": "نسيت كلمة المرور", "format": "الصيغة",
    "friend_ids": "معرفات الأصدقاء", "game_id": "معرف اللعبة",
    "global": "عالمي", "group_reg": "تسجيل جماعي",
    "group_reg_desc": "سجل كفريق أو مجموعة",
    "groups": "مجموعات", "help_center": "مركز المساعدة",
    "how_it_works": "كيف يعمل",
    "how_it_works_desc": "يجعل FIGHTSKILL المنافسة في بطولات الرياضات الإلكترونية أمرًا بسيطًا.",
    "icon": "أيقونة", "image": "صورة", "inf": "لانهائي",
    "invites_sent": "تم إرسال الدعوات",
    "is_tournament_manager": "مدير البطولة",
    "join_tournament": "انضم لبطولة",
    "join_tournament_desc": "تصفح وسجل في البطولات",
    "join_type": "نوع الانضمام", "kind": "نوع", "lang": "اللغة",
    "leaderboard_desc": "نافس على القمة واكسب مكافآت حصرية.",
    "leaderboard_subtitle": "أفضل اللاعبين في العالم",
    "live_tournaments": "بطولات مباشرة",
    "login_required": "مطلوب تسجيل الدخول", "login_to_join": "سجل للانضمام",
    "login_to_see_rewards": "سجل لرؤية مكافآتك وتقدم XP وأرصدة محفظتك.",
    "logo": "شعار", "manage": "إدارة", "mark_as_read": "وضع علامة مقروء",
    "matches": "المباريات", "members": "الأعضاء",
    "message_sent": "تم إرسال الرسالة!", "mode_id": "معرف الوضع",
    "monthly": "شهري", "my_matches": "مبارياتي",
    "no_data": "لا بيانات", "notifications": "الإشعارات",
    "open": "مفتوح", "participation": "مشاركة", "password": "كلمة المرور",
    "players": "لاعبون", "plays": "ألعاب",
    "play_now": "العب الآن", "prizes": "جوائز",
    "prize_distribution": "توزيع الجوائز", "prize_pool": "مجموع الجوائز",
    "quarter_finals": "ربع النهائي", "rank": "التصنيف",
    "read": "مقروء", "register": "تسجيل",
    "register_team": "تسجيل فريق", "registration_closed": "أغلق التسجيل",
    "registration_end": "نهاية التسجيل", "reset_password": "إعادة تعيين كلمة المرور",
    "resolved": "تم الحل", "reward": "مكافأة", "rewards": "المكافآت",
    "round": "جولة", "rules": "القوانين", "season": "الموسم",
    "semi_finals": "نصف النهائي", "send_reset_code": "إرسال رمز الإعادة",
    "server": "الخادم", "special_matches": "مباريات خاصة",
    "start_match": "ابدأ المباراة", "started": "بدأت",
    "stats": "إحصائيات", "subject": "الموضوع", "team_name": "اسم الفريق",
    "teams": "فرق", "third_place": "المركز الثالث",
    "today": "اليوم", "top_players": "أفضل اللاعبين",
    "tournament_bracket": "جدول البطولة", "total_prize": "إجمالي الجائزة",
    "total_teams": "إجمالي الفرق", "tournaments_live": "بطولات مباشرة",
    "tournaments_won": "بطولات مبذوحة", "type": "النوع",
    "unauthorized": "وصول غير مصرح", "unknown": "غير معروف",
    "unread": "غير مقروء", "update": "تحديث", "upcoming": "قادم",
    "username": "اسم المستخدم", "verify": "تحقق", "verify_email": "تأكيد البريد",
    "view": "عرض", "wallet": "محفظة", "week": "أسبوع",
    "weekly": "أسبوعي", "welcome_back": "مرحبًا بعودتك!",
    "win_rate": "نسبة الفوز", "winners": "الفائزون", "withdraw": "سحب",
    "your_balance": "رصيدك", "your_rank": "تصنيفك",
    "total_matches": "إجمالي المباريات", "total_wins": "إجمالي الفوز",
    "matches_played": "مباريات ملعوبة", "join_tournament_btn": "انضم للبطولة",
    "view_tournament": "عرض البطولة", "no_tournaments": "لا توجد بطولات",
    "no_tournaments_desc": "لا توجد بطولات نشطة حاليًا. عد قريبًا!",
    "no_games": "لا ألعاب متاحة",
    "no_games_desc": "يتم إضافة الألعاب. عد قريبًا!",
    "starts_in_label": "تبدأ في", "no_messages": "لا رسائل بعد. أرسل لنا رسالة!",
    "send_message": "إرسال", "type_message": "اكتب رسالتك...",
    "message_history": "سجل الرسائل", "support_team": "فريق الدعم",
    "online": "متصل", "prizes_awarded": "الجوائز الممنوحة",
    "countries": "الدول", "uptime": "وقت التشغيل",
}

for lang, extra in [("fa", FA), ("tr", TR), ("ar", AR)]:
    path = os.path.join(LOCALES, f"{lang}.json")
    with open(path, encoding="utf-8") as f:
        d = json.load(f)
    added = 0
    for k, v in extra.items():
        if k not in d:
            d[k] = v
            added += 1
    with open(path, "w", encoding="utf-8") as f:
        json.dump(d, f, ensure_ascii=False, indent=2)
    print(f"{lang}.json: +{added} -> {len(d)} total keys")

print("DONE")
