import * as store from './store.js';

const strings = {
  ar: {
    'app.name': 'EL3AB',
    'nav.rank': 'الترتيب',
    'nav.social': 'الأصدقاء',
    'nav.play': 'العب',
    'nav.tournaments': 'البطولات',
    'nav.profile': 'حسابي',
    'auth.login': 'تسجيل الدخول',
    'auth.register': 'حساب جديد',
    'auth.email': 'البريد الإلكتروني',
    'auth.password': 'كلمة المرور',
    'auth.username': 'اسم المستخدم',
    'auth.login.btn': 'دخول',
    'auth.register.btn': 'إنشاء حساب',
    'auth.no_account': 'ليس لديك حساب؟',
    'auth.have_account': 'لديك حساب؟',
    'auth.logging_in': 'جاري الدخول...',
    'auth.registering': 'جاري التسجيل...',
    'play.title': 'العب',
    'play.vs_bot': 'ضد الكمبيوتر',
    'play.vs_human': 'ضد لاعب',
    'play.vs_friend': 'ضد صديق',
    'play.local': 'لعب محلي',
    'play.btn': 'ابدأ اللعب',
    'play.select_bot': 'اختر الخصم',
    'play.select_time': 'اختر الوقت',
    'play.searching': 'جاري البحث عن خصم...',
    'play.cancel': 'إلغاء',
    'game.chess': 'شطرنج',
    'game.domino': 'دومينو',
    'game.ludo': 'لودو',
    'game.backgammon': 'طاولة',
    'game.resign': 'استسلام',
    'game.draw': 'تعادل',
    'game.flip': 'قلب',
    'game.rematch': 'إعادة المباراة',
    'game.new_game': 'لعبة جديدة',
    'game.back': 'رجوع',
    'game.you_win': 'فزت!',
    'game.you_lose': 'خسرت',
    'game.draw_result': 'تعادل',
    'game.thinking': 'يفكر...',
    'game.bot_unavailable': 'الخصم الآلي لا يستجيب. هل تريد إنهاء هذه المباراة؟',
    'game.your_turn': 'دورك',
    'game.opponent_turn': 'دور الخصم',
    'rank.title': 'الترتيب',
    'rank.leaderboard': 'لوحة المتصدرين',
    'rank.tournaments': 'البطولات',
    'social.title': 'الأصدقاء',
    'social.friends': 'الأصدقاء',
    'social.notifications': 'الإشعارات',
    'social.online': 'متصل',
    'shop.title': 'المتجر',
    'profile.title': 'حسابي',
    'profile.stats': 'الإحصائيات',
    'profile.history': 'المباريات',
    'profile.achievements': 'الإنجازات',
    'profile.settings': 'الإعدادات',
    'common.loading': 'جاري التحميل...',
    'common.error': 'حدث خطأ',
    'common.retry': 'إعادة المحاولة',
    'common.save': 'حفظ',
    'common.cancel': 'إلغاء',
    'common.confirm': 'تأكيد',
    'common.close': 'إغلاق',
    'common.search': 'بحث',
    'common.empty': 'لا توجد بيانات',
    'daily.claim': 'اجمع المكافأة',
    'daily.streak': 'أيام متتالية',
    'auth.guest_btn': 'العب كضيف',
    'auth.google_btn': 'الدخول بحساب Google',
    'auth.google_register': 'التسجيل بحساب Google',
    'auth.age_confirm': 'أؤكد أن عمري 13 سنة أو أكثر',
    'auth.agree_terms': 'بالتسجيل أنت توافق على',
    'guest.upgrade_prompt': 'سجّل حسابك للعب أونلاين',
    'guest.locked_feature': 'سجّل للوصول لهذه الميزة',
    'guest.create_account': 'إنشاء حساب',
    'settings.delete_account': 'حذف الحساب',
    'settings.delete_confirm': 'هل أنت متأكد؟ سيتم حذف جميع بياناتك نهائياً.',
    'settings.delete_password': 'أدخل كلمة المرور للتأكيد',
    'settings.privacy_policy': 'سياسة الخصوصية',
    'settings.terms': 'الشروط والأحكام',
    'settings.sound': 'الصوت',
    'settings.language': 'اللغة',
    'settings.on': 'مفعل',
    'settings.off': 'معطل',
    'settings.blocked_list': 'المحظورين',
    'block.block': 'حظر',
    'block.unblock': 'إلغاء الحظر',
    'block.mute': 'كتم',
    'block.unmute': 'إلغاء الكتم',
    'block.blocked': 'تم الحظر',
    'block.muted': 'تم الكتم',
    'block.confirm_block': 'حظر هذا اللاعب؟ لن يستطيع مراسلتك أو تحديك.',
    'block.empty': 'لا يوجد لاعبين محظورين',
    'block.cannot_message': 'لا يمكن مراسلة هذا اللاعب',
    'play.no_match_found': 'لم يتم العثور على خصم',
    'play.retry_or_cancel': 'لم يتم العثور على خصم. هل تريد المتابعة؟',
    'play.retry': 'إعادة',
    'play.challenge_friend': 'تحدّي صديق',
    'play.daily_reward': 'المكافأة اليومية',
    'play.my_tournaments': 'بطولاتي',
    'play.leaderboard': 'الترتيب',
    'play.my_games': 'مبارياتي',
    'play.puzzles': 'أحجيات',
    'game.bot': 'بوت',
    'game.loading_opponent': 'جاري التحميل...',
    'game.opponent_disconnected': 'انقطع الاتصال',
    'game.weak_connection': 'اتصال ضعيف',
    'game.draw_declined': 'الخصم رفض التعادل',
    'game.leave_confirm': 'المغادرة تحتسب كخسارة. هل أنت متأكد؟',
    'game.leave_title': 'مغادرة المباراة؟',
    'game.leave': 'مغادرة',
    'game.stay': 'البقاء',
    'chat.now': 'الآن',
    'chat.minutes_ago': 'منذ {n} دقيقة',
    'chat.hours_ago': 'منذ {n} ساعة',
    'chat.days_ago': 'منذ {n} يوم',
    'chat.mark_all_read': 'تعليم الكل كمقروء',
    'achievements.title': 'الإنجازات',
    'achievements.complete': 'مكتمل',
    'achievements.none': 'لا توجد إنجازات في هذه الفئة',
    'achievements.all': 'الكل',
    'achievements.gameplay': 'اللعب',
    'achievements.social': 'اجتماعي',
    'achievements.progression': 'التقدم',
    'achievements.collection': 'جمع',
    'common.ok': 'حسناً',
    'common.you': 'أنت',
    'common.opponent': 'خصم',
    'common.player': 'لاعب',
    'common.friend': 'صديق',
    'common.back': 'رجوع',
    'common.send': 'إرسال',
    'common.sending': 'جاري الإرسال...',
    'common.sent': '✓ تم الإرسال',
    'common.failed': 'فشل',
    'common.already_sent': 'مرسل سابقاً',
    'common.already_friends': 'صديق بالفعل',
    'common.accepted': '✓ تم القبول',
    'common.done': '✓ تم',
    'common.error_load': 'فشل التحميل',
    'common.now': 'الآن',
    'common.minutes_ago': 'منذ {n} دقيقة',
    'common.hours_ago': 'منذ {n} ساعة',
    'common.days_ago': 'منذ {n} يوم',
    'common.online': 'متصل الآن',
    'common.offline': 'غير متصل',
    'common.level': 'مستوى {n}',
    'common.pieces': '{n} قطع',
    'game.round_won': 'فزت بالجولة!',
    'game.round_lost': 'خسرت الجولة',
    'game.round_end': 'انتهت الجولة',
    'game.round_next': 'الجولة التالية تبدأ...',
    'game.points': '+{n} نقطة',
    'game.choose_placement': 'اختر مكان الوضع',
    'game.opponent_plays': 'الخصم يلعب...',
    'game.one_piece_warning': '⚠️ قطعة واحدة!',
    'game.two_piece_warning': '⚠️ قطعتين!',
    'game.resign_confirm': 'هل تريد الاستسلام؟',
    'game.resign_yes': 'نعم، استسلم',
    'game.resign_no': 'تراجع',
    'game.place_first': 'ضع أول قطعة',
    'game.vs_bot': 'ضد البوت',
    'game.online': 'أونلاين',
    'game.vs_friend': 'تحدي صديق',
    'game.roll_dice': 'ارمِ النرد',
    'game.choose_piece': 'اختر قطعة',
    'game.speed_mode': '⚡ وضع السرعة!',
    'game.turn_of': 'دور {name}',
    'game.bot_thinking': '{name} يفكر...',
    'game.rating': 'التصنيف',
    'game.coins': 'عملات',
    'game.my_games': 'مبارياتي',
    'game.xp': 'خبرة',
    'game.moves_count': '{n} نقلة',
    'game.rounds_count': '{n} جولة',
    'game.rounds_count_plural': '{n} جولات',
    'game.checkmate': 'كش ملك',
    'game.stalemate': 'بات (جمود)',
    'game.timeout': 'انتهاء الوقت',
    'game.threefold': 'تكرار ثلاثي',
    'game.insufficient': 'قطع غير كافية',
    'game.win': 'فوز!',
    'game.loss': 'خسارة',
    'game.draw_game': 'تعادل',
    'game.resigned': 'استسلمت',
    'game.opponent_resigned': 'الخصم استسلم!',
    'game.opponent_abandoned': 'الخصم انقطع',
    'game.congrats': 'مبروك! أنت البطل',
    'game.second_place': 'المركز الثاني — أحسنت!',
    'game.third_place': 'المركز الثالث',
    'game.fourth_place': 'المركز الرابع',
    'game.withdrew': 'انسحبت من المباراة',
    'game.player_ranking': 'ترتيب اللاعبين',
    'game.play_again': 'العب مرة ثانية',
    'game.back_to_menu': 'رجوع للقائمة',
    'game.not_found': 'مباراة غير موجودة',
    'match.disconnected_title': 'الخصم انقطع اتصاله',
    'match.disconnected_waiting': 'في انتظار عودته...',
    'match.disconnected_auto_win': 'ستفوز تلقائياً إذا لم يعد خلال الوقت المحدد',
    'match.claim_early_win': 'فوز مبكر',
    'match.opponent_returned': '✅ الخصم عاد — استمروا!',
    'match.you_won': 'فزت!',
    'match.opponent_left': 'الخصم غادر المباراة',
    'match.return': 'العودة',
    'match.connection_lost': 'انقطع الاتصال',
    'match.reconnecting': 'جاري إعادة الاتصال...',
    'match.reconnected': '✅ تم استعادة الاتصال',
    'match.restoring': 'جاري استعادة المباراة...',
    'match.your_turn_warning': '⏱️ دورك! العب قبل انتهاء الوقت',
    'match.opponent_thinking': 'الخصم يفكر...',
    'match.bot_replacement': '🤖 الخصم غادر — بوت يكمل بدلاً منه',
    'match.your_time_expired': '⏱️ انتهى وقتك! تم التمرير تلقائياً',
    'match.opponent_time_expired': '⏱️ انتهى وقت الخصم — دورك!',
    'tournament.round_ready': 'جولة {n} جاهزة!',
    'tournament.tap_to_play': 'اضغط للعب مباراتك',
    'tournament.play': 'العب',
    'tournament.back_to': 'العودة للبطولة',
    'mp.profile': 'الملف الشخصي',
    'mp.add_friend': 'إضافة صديق',
    'mp.report': 'إبلاغ',
    'mp.reported': '✓ تم الإبلاغ',
    'mp.block': 'حظر',
    'social.friends_tab': 'الأصدقاء',
    'social.pending_tab': 'الطلبات',
    'social.online_tab': 'متصلين',
    'social.groups_tab': 'المجموعات',
    'social.activity_tab': 'أخبار',
    'social.search_btn': 'بحث',
    'social.search_placeholder': 'اسم المستخدم أو الاسم...',
    'social.search_hint': 'ابحث بأي جزء من الاسم (حرفين على الأقل)',
    'social.search_min_chars': 'أدخل حرفين على الأقل',
    'social.searching': 'جاري البحث...',
    'social.no_results': 'لم يتم العثور على نتائج — جرب اسم آخر',
    'social.search_failed': 'فشل البحث',
    'social.add_btn': '+ أضف',
    'social.no_friends': 'لا يوجد أصدقاء بعد',
    'social.no_friends_hint': 'ابحث عن لاعبين وأرسل لهم طلب صداقة',
    'social.search_players': 'ابحث عن لاعبين',
    'social.friends_count': '{n} أصدقاء',
    'social.online_count': '{n} متصل',
    'social.no_pending': 'لا توجد طلبات معلقة',
    'social.pending_count': '{n} طلب معلق',
    'social.sent_friend_request': 'أرسل لك طلب صداقة',
    'social.no_online_friends': 'لا يوجد أصدقاء متصلين الآن',
    'social.will_appear_online': 'سيظهرون هنا عند دخولهم',
    'social.online_now_count': '{n} متصل الآن',
    'social.remove_friend': 'إزالة صديق',
    'social.remove_confirm': 'إزالة {name} من الأصدقاء؟',
    'social.challenges_you': '{name} يتحداك!',
    'social.accept': 'قبول',
    'social.error': 'خطأ',
    'social.retry_load': 'حاول مرة أخرى',
    'social.no_activity': 'لا توجد أخبار — العب لتظهر أخبارك هنا',
    'social.no_activity_short': 'لا توجد أخبار',
    'social.game_win': 'فاز بمباراة',
    'social.game_loss': 'خسر مباراة',
    'social.game_draw': 'تعادل',
    'social.achievement_unlock': 'حصل على إنجاز',
    'social.level_up': 'ارتقى لمستوى جديد',
    'social.tournament_join': 'انضم لبطولة',
    'social.tournament_win': 'فاز ببطولة',
    'social.friend_add': 'أضاف صديقاً جديداً',
    'challenge.title': 'تحدّي صديق',
    'challenge.loading_friends': 'جاري تحميل الأصدقاء...',
    'challenge.no_friends': 'لا يوجد أصدقاء بعد',
    'challenge.no_friends_hint': 'أضف أصدقاء أولاً لتتمكن من تحديهم',
    'challenge.online_now': 'متصلين الآن ({n})',
    'challenge.offline': 'غير متصلين',
    'challenge.select_game': 'اختر اللعبة ونوع الوقت',
    'challenge.send': 'أرسل التحدي',
    'challenge.sending': '⏳ جاري الإرسال...',
    'challenge.sent': '✓ تم إرسال التحدي!',
    'challenge.failed_create': 'فشل إنشاء المباراة',
    'challenge.failed_retry': 'فشل — حاول مرة أخرى',
    'challenge.sent_msg': 'أرسل تحدي {game}',
    'chat.placeholder': 'اكتب رسالة...',
    'chat.loading_messages': 'جاري التحميل...',
    'chat.failed_load': 'فشل تحميل الرسائل',
    'chat.start_conversation': 'ابدأ المحادثة مع صديقك!',
    'chat.challenge_label': 'تحدي {game}',
    'chat.challenge_title': 'تحدّي {name}',
    'chat.choose_game': 'اختر اللعبة',
    'lobby.title': 'غرفة التحدي',
    'lobby.ready': 'جاهز',
    'lobby.waiting': 'في الانتظار...',
    'lobby.waiting_accept': 'في انتظار القبول...',
    'lobby.ready_start': 'جاهز للبدء!',
    'lobby.waiting_opponent': 'في انتظار الخصم...',
    'lobby.auto_start': 'سيتم بدء المباراة تلقائياً عند قبول التحدي',
    'lobby.start': 'ابدأ المباراة',
    'lobby.accepted_preparing': 'تم القبول! جاري تجهيز المباراة...',
    'lobby.opponent_accepted': 'الخصم قبل! جاري البدء...',
    'time.bullet': 'رصاصة',
    'time.blitz': 'خاطفة',
    'time.rapid': 'سريعة',
    'time.classical': 'كلاسيكية',
    'time.1min': '1 دقيقة',
    'time.3min': '3 دقائق',
    'time.5min': '5 دقائق',
    'time.10min': '10 دقائق',
    'time.15min': '15 دقيقة',
    'time.20min': '20 دقيقة',
    'time.30min': '30 دقيقة',
    'time.60min': '60 دقيقة',
    'play.single_player': 'لاعب واحد',
    'play.single_player_desc': 'العب ضد الكمبيوتر',
    'play.online_desc': 'نافس لاعبين حقيقيين',
    'play.achievements': 'إنجازات',
    'play.gift': 'هدية',
    'play.coming_soon': 'قريباً',
    'play.login_required_online': 'سجّل دخولك للعب أونلاين',
    'play.login_required_friend': 'سجّل دخولك لتحدي صديق',
    'domino.title': 'دومينو',
    'domino.subtitle': 'أول من يوصل الهدف يفوز!',
    'domino.draw_boneyard': 'سحب من المخزن',
    'domino.pass': 'تمرير',
    'domino.select_bot': 'اختر مستوى البوت',
    'domino.bot_strategy': 'كل مستوى له استراتيجية مختلفة',
    'domino.beginner': 'مبتدئ',
    'domino.beginner_desc': 'يلعب عشوائي',
    'domino.intermediate': 'متوسط',
    'domino.intermediate_desc': 'يفضل النقاط العالية',
    'domino.expert': 'خبير',
    'domino.expert_desc': 'استراتيجي ومخادع',
    'domino.select_target': 'اختر الهدف',
    'domino.target_hint': 'أول من يوصل النقاط يفوز بالمباراة',
    'domino.50_points': '50 نقطة',
    'domino.50_desc': 'مباراة سريعة (~5 دقائق)',
    'domino.100_points': '100 نقطة',
    'domino.100_desc': 'كلاسيك (~10 دقائق)',
    'domino.150_points': '150 نقطة',
    'domino.150_desc': 'مباراة طويلة (~15 دقيقة)',
    'ludo.title': 'لودو',
    'ludo.subtitle': 'أول من يوصّل كل قطعه يفوز!',
    'ludo.local_play': 'لعب محلي',
    'ludo.local_desc': 'اختر عدد اللاعبين والبوتات',
    'ludo.online_desc': 'العب ضد لاعبين حقيقيين',
    'ludo.friend_desc': 'ادعُ أصدقاءك للعب',
    'ludo.settings_online': 'إعدادات الأونلاين',
    'ludo.settings_play': 'إعدادات اللعب',
    'ludo.settings_online_hint': 'اختر عدد اللاعبين الحقيقيين',
    'ludo.settings_play_hint': 'اختر تشكيلة اللاعبين',
    'ludo.player_count': 'عدد اللاعبين',
    'ludo.classic': 'كلاسيك',
    'ludo.triple': 'ثلاثي',
    'ludo.duel': 'مبارزة',
    'ludo.player_layout': 'توزيعة اللاعبين',
    'ludo.bot_level': 'مستوى البوت',
    'ludo.easy': 'سهل',
    'ludo.medium': 'متوسط',
    'ludo.hard': 'صعب',
    'ludo.seat_order': 'ترتيب المقاعد',
    'ludo.search_match': 'ابحث عن مباراة',
    'ludo.start_play': 'ابدأ اللعب',
    'ludo.players_no_bot': '{n} لاعبين (بدون بوت)',
    'ludo.one_player_bots': 'لاعب واحد + {n} بوت',
    'ludo.players_bots': '{h} لاعبين + {n} بوت',
    'ludo.red': 'أحمر',
    'ludo.green': 'أخضر',
    'ludo.yellow': 'أصفر',
    'ludo.blue': 'أزرق',
    'ludo.searching': 'جاري البحث...',
    'ludo.searching_hint': 'بنوصّلك بلاعبين قريب',
    'ludo.place_first': 'الأول',
    'ludo.place_second': 'الثاني',
    'ludo.place_third': 'الثالث',
    'ludo.place_fourth': 'الرابع',
    'backgammon.title': 'طاولة',
    'backgammon.subtitle': 'اول من يطلّع كل قطعه يفوز!',
    'backgammon.bot_desc': 'اختر المستوى والنوع',
    'backgammon.online_desc': 'العب ضد لاعبين حقيقيين',
    'backgammon.friend_desc': 'ادعُ صديقك للعب',
    'backgammon.settings_online': 'إعدادات الأونلاين',
    'backgammon.settings_game': 'إعدادات اللعبة',
    'backgammon.game_type': 'نوع اللعبة',
    'backgammon.sheshbesh': 'شيش بيش',
    'backgammon.mahbousa': 'محبوسة',
    'backgammon.thirtyone': '٣١',
    'backgammon.match_length': 'طول الماتش',
    'backgammon.short_match': 'سريع',
    'backgammon.medium_match': 'قصير',
    'backgammon.normal_match': 'عادي',
    'backgammon.long_match': 'طويل',
    'backgammon.doubling_cube': 'مكعب المضاعفة',
    'backgammon.enabled': 'مفعّل',
    'backgammon.disabled': 'بدون',
    'backgammon.searching': 'جاري البحث...',
    'backgammon.searching_hint': 'بنوصّلك بلاعب قريب',
    'backgammon.win_title': 'مبروك! فزت بالماتش!',
    'backgammon.lose_title': 'خسرت هالمرة...',
    'backgammon.win_subtitle': 'أداء ممتاز!',
    'backgammon.lose_subtitle': 'حاول مرة ثانية!',
    'backgammon.abandon_subtitle': 'الخصم انسحب من اللعبة',
    'backgammon.from_match': 'من {n}',
    'backgammon.opponent_doubles': 'الخصم يضاعف!',
    'backgammon.decline': 'رفض',
    'backgammon.accept': 'قبول',
    'backgammon.no_moves': 'لا حركات متاحة!',
    'backgammon.bot_accepted': 'البوت قبل! ×{n}',
    'backgammon.bot_declined': 'البوت رفض! فزت بالجولة',
    'emote.good_move': 'نقلة ممتازة',
    'emote.think': 'يفكر...',
    'emote.hurry': 'أسرع',
    'emote.wow': 'واو!',
    'emote.laugh': 'هههه',
    'emote.angry': 'غاضب',
    'emote.hello': 'مرحبا',
    'emote.nice_game': '!لعبة حلوة',
    'emote.great_move': '!حركة ممتازة',
    'emote.lucky': '!حظ',
    'emote.think_faster': '...فكّر أسرع',
    'emote.rematch': '?ريماتش',
    'analysis.title': 'تحليل المباراة',
    'analysis.analyzing': 'جاري التحليل...',
    'analysis.start': 'بداية',
    'analysis.engine_analyzing': 'جاري تحليل المحرك...',
    'analysis.failed': 'فشل التحليل',
    'analysis.openings_book': 'كتاب الافتتاحات',
    'review.title': 'مراجعة المباراة',
    'review.analyzing_moves': 'جاري تحليل كل نقلة...',
    'review.move_classification': 'تصنيف النقلات',
    'review.brilliant': '!! رائعة',
    'review.great': '! ممتازة',
    'review.best': 'أفضل نقلة',
    'review.good': '✓ جيدة',
    'review.book': 'نظرية',
    'review.inaccuracy': '?! عدم دقة',
    'review.mistake': '? خطأ',
    'review.blunder': '?? خطأ فادح',
    'review.full_analysis': 'التحليل التفصيلي (نقلة بنقلة)',
    'review.unknown_opening': 'غير معروف',
    'spectate.live': 'مشاهدة مباشرة',
    'spectate.black': 'أسود',
    'spectate.white': 'أبيض',
    'spectate.white_wins': 'فاز الأبيض',
    'spectate.black_wins': 'فاز الأسود',
    'spectate.game_over': 'انتهت المباراة',
    'history.no_matches': 'لا توجد مباريات بعد — العب لتظهر هنا',
    'history.win': 'فوز',
    'history.loss': 'خسارة',
    'history.draw': 'تعادل',
    'history.insufficient_data': 'بيانات غير كافية',
    'history.matches_count': '{n} مباراة',
    'result.copied': '✓ تم النسخ',
    'result.copy_pgn': 'نسخ',
    'result.share_pgn': 'مشاركة PGN',
    'result.analyze': 'تحليل المباراة',
    'result.rematch': 'إعادة',
    'classifier.excellent': 'ممتاز',
    'classifier.great': 'جيد جداً',
    'classifier.good': 'جيد',
    'classifier.average': 'متوسط',
    'classifier.poor': 'ضعيف',
    'profile.edit_title': 'تعديل الملف الشخصي',
    'profile.basic_info': 'المعلومات الأساسية',
    'profile.display_name_en': 'الاسم المعروض (إنجليزي)',
    'profile.display_name_ar': 'الاسم المعروض (عربي)',
    'profile.bio_en': 'النبذة (إنجليزي)',
    'profile.bio_ar': 'النبذة (عربي)',
    'profile.location': 'الموقع',
    'profile.country': 'الدولة',
    'profile.select_country': 'اختر الدولة',
    'profile.city': 'المدينة',
    'profile.preferred_language': 'اللغة المفضلة',
    'profile.fide_info': 'معلومات FIDE',
    'profile.fide_classical': 'تصنيف FIDE الكلاسيكي',
    'profile.fide_rapid': 'تصنيف FIDE السريع',
    'profile.fide_blitz': 'تصنيف FIDE الخاطف',
    'profile.fide_title': 'لقب FIDE',
    'profile.save': 'حفظ التغييرات',
    'profile.saving': 'جاري الحفظ...',
    'profile.save_success': 'تم حفظ التغييرات بنجاح',
    'profile.save_failed': 'فشل حفظ التغييرات',
    'profile.uploading': 'جاري الرفع...',
    'profile.upload_failed': 'فشل رفع الصورة',
    'profile.matches': 'مباريات',
    'profile.wins': 'فوز',
    'profile.streak': 'سلسلة',
    'profile.rating_section': 'التصنيف',
    'profile.chess_rapid': 'شطرنج (سريع)',
    'profile.chess_blitz': 'شطرنج (خاطف)',
    'profile.chess_bullet': 'شطرنج (رصاصة)',
    'profile.org_section': 'المنظمة',
    'profile.edit_btn': 'تعديل الملف الشخصي',
    'profile.org_apply': 'الانضمام لمنظمة',
    'profile.logout': 'خروج',
    'profile.view_title': 'الملف الشخصي',
    'profile.add_friend': '➕ إضافة صديق',
    'profile.friend_sent': '✓ تم إرسال الطلب',
    'profile.pending_request': 'طلب صداقة معلق',
    'profile.challenge': 'تحدي',
    'profile.message': 'مراسلة',
    'profile.playing_now': 'يلعب الآن — {game}',
    'profile.watch': 'شاهد',
    'profile.member': 'عضو',
    'profile.pending_review': 'قيد المراجعة',
    'profile.rejected': 'مرفوض',
    'profile.rejection_reason': 'السبب: {reason}',
    'profile.membership_request': 'طلب انضمام',
    'profile.no_org': 'لست عضواً في أي منظمة بعد',
    'profile.unrated': 'غير مصنف',
    'org.join_title': 'الانضمام لمنظمة',
    'org.no_orgs': 'لا توجد منظمات متاحة حالياً',
    'org.apply': 'تقديم طلب',
    'org.reapply': 'إعادة التقديم',
    'org.apply_title': 'تقديم طلب انضمام — {name}',
    'org.doc_type': 'نوع المستند',
    'org.notes': 'ملاحظات (اختياري)',
    'org.notes_placeholder': 'رسالة لإدارة المنظمة...',
    'org.proof_image': 'صورة إثبات',
    'org.tap_to_select': 'اضغط لاختيار صورة',
    'org.file_limit': 'PNG, JPG, WebP — حد أقصى 5MB',
    'org.file_too_large': 'حجم الملف أكبر من 5MB',
    'org.submit': 'إرسال الطلب',
    'org.submitting': 'جاري الإرسال...',
    'org.submit_success': 'تم إرسال الطلب بنجاح',
    'org.submit_failed': 'فشل إرسال الطلب',
    'room.waiting_friend': 'بانتظار الصديق...',
    'room.challenge_from': 'تحدي من {name}',
    'room.send_invite': 'أرسل الدعوة لصديقك',
    'room.tap_accept': 'اضغط قبول للبدء',
    'room.match_created': 'تم إنشاء المباراة، بانتظار القبول...',
    'daily.title': 'المكافأة اليومية',
    'daily.streak_days': '{n} يوم متتالي',
    'daily.day': 'يوم {n}',
    'daily.claimed_today': 'تم استلام مكافأة اليوم',
    'daily.come_back': 'عد غداً لمكافأة أكبر!',
    'daily.today_reward': 'مكافأة اليوم',
    'daily.claim_btn': 'استلم المكافأة',
    'daily.hint': 'كل يوم تجمع فيه المكافأة يزيد المبلغ • اليوم السابع = 300 عملة!',
    'daily.claiming': 'جاري الاستلام...',
    'daily.failed': 'فشل — حاول مرة أخرى',
    'challenges.title': 'التحديات اليومية',
    'challenges.all_done': 'أنجزت كل التحديات اليوم!',
    'challenges.streak': '{n} يوم',
    'challenges.claim': 'اجمع',
    'rank.bronze': 'برونزي',
    'rank.silver': 'فضي',
    'rank.gold': 'ذهبي',
    'rank.platinum': 'بلاتيني',
    'rank.diamond': 'ماسي',
    'rank.master': 'أسطوري',
    'rank.grandmaster': 'جراند ماستر',
    'shop.insufficient_balance': 'رصيد غير كافي',
    'shop.purchased': 'تم الشراء!',
    'group.create': 'إنشاء',
    'group.no_groups': 'لا توجد مجموعات بعد',
    'group.no_groups_hint': 'أنشئ مجموعة وادعُ أصدقائك!',
    'group.members': 'أعضاء',
    'group.owner': 'مالك',
    'group.admin': 'مشرف',
    'group.play': 'لعب',
    'group.load_error': 'خطأ في تحميل المجموعة',
    'group.play_invite': 'دعوة لعب',
    'group.players': 'لاعبين',
    'group.join': 'انضم',
    'group.accepted': '✓ قبلت',
    'group.invite_sent': 'تم إرسال دعوة اللعب!',
    'group.create_title': 'إنشاء مجموعة',
    'group.name_label': 'اسم المجموعة',
    'group.select_friends': 'اختر أصدقاء للإضافة',
    'group.create_btn': 'إنشاء المجموعة',
    'group.name_min': 'أدخل اسم المجموعة (حرفين على الأقل)',
    'group.creating': 'جاري الإنشاء...',
    'group.created': 'تم إنشاء المجموعة!',
    'group.add': 'إضافة',
    'group.leave': 'مغادرة المجموعة',
    'group.remove': 'إزالة',
    'group.remove_member': 'إزالة عضو',
    'group.leave_confirm': 'هل تريد مغادرة المجموعة؟',
    'group.leave_btn': 'غادر',
    'group.stay': 'ابقَ',
    'auth.login_title': 'تسجيل الدخول',
    'auth.login_btn': 'دخول',
    'auth.register_link': 'سجّل الآن',
    'auth.forgot_password': 'نسيت كلمة المرور؟',
    'auth.login_failed': 'فشل تسجيل الدخول',
    'auth.invalid_email': 'بريد إلكتروني غير صحيح',
    'auth.guest_login': 'دخول كضيف',
    'auth.register_title': 'إنشاء حساب',
    'auth.confirm_password': 'تأكيد كلمة المرور',
    'auth.has_account': 'لديك حساب بالفعل؟',
    'auth.login_link': 'سجّل دخول',
    'auth.register_failed': 'فشل التسجيل',
    'auth.password_mismatch': 'كلمتا المرور غير متطابقتين',
    'auth.username_short': 'اسم المستخدم قصير جداً',
    'auth.password_short': 'كلمة المرور قصيرة (6 أحرف على الأقل)',
    'auth.invalid_username': 'اسم المستخدم يمكن أن يحتوي فقط على حروف وأرقام و _.-',
    'app.tagline': 'العب مع أصدقائك',
    'common.or': 'أو',
    'common.play_again': 'العب مرة أخرى',
    'tournament.title': 'البطولات',
    'tournament.upcoming': 'القادمة',
    'tournament.active': 'جارية',
    'tournament.completed': 'منتهية',
    'tournament.no_tournaments': 'لا توجد بطولات حالياً',
    'tournament.players': '{n} لاعب',
    'tournament.join': 'انضم',
    'tournament.joined': 'مسجّل',
    'tournament.starts_in': 'تبدأ خلال {n}',
    'tournament.entry_fee': 'رسوم الدخول',
    'tournament.prize': 'الجائزة',
    'tournament.free': 'مجاني',
    'tournament.waiting': 'في انتظار اللاعبين...',
    'tournament.players_ready': '{n}/{total} لاعب جاهز',
    'tournament.starting_soon': 'تبدأ قريباً!',
    'tournament.leave': 'مغادرة',
    'tournament.ready': 'جاهز',
    'tournament.bracket': 'شجرة البطولة',
    'tournament.round': 'الجولة {n}',
    'tournament.final': 'النهائي',
    'tournament.semifinal': 'نصف النهائي',
    'tournament.quarterfinal': 'ربع النهائي',
    'tournament.bye': 'ترقية مباشرة',
    'tournament.match_starting': 'المباراة تبدأ...',
    'tournament.opponent': 'الخصم',
    'tournament.round_of': 'جولة {n}',
    'tournament.champion': 'البطل!',
    'tournament.eliminated': 'خسرت',
    'tournament.final_rank': 'المركز {n}',
    'tournament.prize_won': 'الجائزة: {n} عملة',
    'tournament.back_to_lobby': 'العودة',
    'tournament.hub_title': 'بطولات مباشرة',
    'tournament.create': 'إنشاء بطولة',
    'tournament.browse': 'تصفح البطولات',
    'tournament.arena': 'أرينا',
    'tournament.leave_arena': 'مغادرة الأرينا',
    'tournament.no_results': 'لا توجد نتائج بعد',
    'tournament.leaderboard': 'المتصدرون',
    'tournament.tab_info': 'معلومات',
    'tournament.tab_standings': 'الترتيب',
    'tournament.tab_rounds': 'الجولات',
    'tournament.tab_my_games': 'مبارياتي',
    'tournament.tab_bracket': 'الشجرة',
    'tournament.tab_arena': 'أرينا',
    'tournament.registration_open': 'تسجيل مفتوح',
    'tournament.coming_soon': 'قريباً',
    'tournament.round_n': 'الجولة {n}/{total}',
    'tournament.live_matches': 'مباريات جارية',
    'tournament.no_match': 'لا توجد مباراة',
    'spectate.watch': 'شاهد',
    'tournament.format': 'النظام',
    'tournament.time_control': 'الوقت',
    'tournament.prizes': 'الجوائز',
    'tournament.register_now': 'سجّل الآن',
    'tournament.registering': 'جاري التسجيل...',
    'tournament.registered': '✅ تم التسجيل',
    'tournament.player_col': 'اللاعب',
    'tournament.points_col': 'نقاط',
    'tournament.buchholz_col': 'بوخ',
    'tournament.rounds_not_started': 'لم تبدأ الجولات بعد',
    'tournament.tap_to_expand': 'اضغط لعرض التقابلات',
    'tournament.no_pairings': 'لا توجد تقابلات',
    'tournament.play_btn': 'العب',
    'tournament.no_games_yet': 'لم تلعب مباريات في هذه البطولة بعد',
    'tournament.ready_matches': 'مباريات جاهزة',
    'tournament.round_short': 'ج{n}',
    'tournament.bye_point': 'إجازة — نقطة كاملة',
    'tournament.prev_matches': 'المباريات السابقة',
    'tournament.my_tournaments': 'بطولاتي',
    'tournament.no_my_tournaments': 'لم تسجّل في أي بطولة بعد',
    'tournament.no_open_tournaments': 'لا توجد بطولات مفتوحة للتسجيل',
    'tournament.no_active_tournaments': 'لا توجد بطولات جارية',
    'tournament.no_completed_tournaments': 'لا توجد بطولات منتهية',
    'tournament.new_tournaments_here': 'ستظهر البطولات الجديدة هنا',
    'tournament.load_failed': 'فشل تحميل البطولات',
    'tournament.match_ready': 'مباراتك جاهزة',
    'tournament.players_label': 'لاعبين',
    'tournament.rounds_label': 'جولات',
    'tournament.time_label': 'الوقت',
    'tournament.format_swiss': 'سويسري',
    'tournament.format_round_robin': 'دوري كامل',
    'tournament.format_single_elim': 'خروج مباشر',
    'tournament.format_double_elim': 'خروج مزدوج',
    'tournament.format_arena': 'أرينا',
    'tournament.format_group_stage': 'مجموعات',
    'tournament.starts_in_hours': 'تبدأ خلال {n} ساعة',
    'tournament.starts_in_minutes': 'تبدأ خلال {n} دقيقة',
    'tournament.in_days': 'بعد {n} يوم',
    'common.all': 'الكل',
    'common.retry': 'إعادة المحاولة',
    'common.failed': 'فشل',
    'common.coins': 'عملة',
    'common.minutes_abbr': 'د',
    'common.play': 'العب',
    'chess.rating': 'التصنيف',
    'chess.rating_history': 'سجل التصنيف',
    'chess.highest': 'الأعلى',
    'chess.lowest': 'الأدنى',
    'chess.current': 'الحالي',
    'puzzle.title': 'أحجية شطرنج',
    'puzzle.correct': 'أحسنت! حل صحيح',
    'puzzle.wrong': 'حل خاطئ',
    'org.members': 'أعضاء',
    'org.game': 'اللعبة',
    'org.members_section': 'الأعضاء',
    'org.join': 'انضم للمنظمة',
    'org.joined': 'تم الانضمام',
    'org.title': 'المنظمات',
    'org.join_btn': 'انضم',
    'org.doc_membership': 'بطاقة عضوية',
    'org.doc_id': 'بطاقة هوية',
    'org.doc_receipt': 'إيصال دفع',
    'org.doc_other': 'أخرى',
    'ludo.emote_sad': 'حزين',
    'ludo.emote_strong': 'قوي',
    'ludo.emote_cool': 'كول',
    'ludo.phrase_gl': 'حظ سعيد!',
    'ludo.phrase_hurry': 'يلا بسرعة!',
    'ludo.phrase_nice': 'نايس!',
    'ludo.phrase_oops': 'يا ساتر!',
    'ludo.phrase_wow': 'ما شاء الله!'
  },
  en: {
    'app.name': 'EL3AB',
    'nav.rank': 'Rank',
    'nav.social': 'Social',
    'nav.play': 'Play',
    'nav.tournaments': 'Tournaments',
    'nav.profile': 'Profile',
    'auth.login': 'Login',
    'auth.register': 'Register',
    'auth.email': 'Email',
    'auth.password': 'Password',
    'auth.username': 'Username',
    'auth.login.btn': 'Login',
    'auth.register.btn': 'Create Account',
    'auth.no_account': "Don't have an account?",
    'auth.have_account': 'Already have an account?',
    'auth.logging_in': 'Logging in...',
    'auth.registering': 'Creating account...',
    'play.title': 'Play',
    'play.vs_bot': 'vs Bot',
    'play.vs_human': 'vs Human',
    'play.vs_friend': 'vs Friend',
    'play.local': 'Local Play',
    'play.btn': 'Play Now',
    'play.select_bot': 'Choose Opponent',
    'play.select_time': 'Time Control',
    'play.searching': 'Searching for opponent...',
    'play.cancel': 'Cancel',
    'game.chess': 'Chess',
    'game.domino': 'Domino',
    'game.ludo': 'Ludo',
    'game.backgammon': 'Backgammon',
    'game.resign': 'Resign',
    'game.draw': 'Draw',
    'game.flip': 'Flip',
    'game.rematch': 'Rematch',
    'game.new_game': 'New Game',
    'game.back': 'Back',
    'game.you_win': 'You Win!',
    'game.you_lose': 'You Lose',
    'game.draw_result': 'Draw',
    'game.thinking': 'Thinking...',
    'game.bot_unavailable': 'The computer opponent is not responding. End this game?',
    'game.your_turn': 'Your Turn',
    'game.opponent_turn': "Opponent's Turn",
    'rank.title': 'Rankings',
    'rank.leaderboard': 'Leaderboard',
    'rank.tournaments': 'Tournaments',
    'social.title': 'Social',
    'social.friends': 'Friends',
    'social.notifications': 'Notifications',
    'social.online': 'Online',
    'shop.title': 'Shop',
    'profile.title': 'Profile',
    'profile.stats': 'Stats',
    'profile.history': 'History',
    'profile.achievements': 'Achievements',
    'profile.settings': 'Settings',
    'common.loading': 'Loading...',
    'common.error': 'Error occurred',
    'common.retry': 'Retry',
    'common.save': 'Save',
    'common.cancel': 'Cancel',
    'common.confirm': 'Confirm',
    'common.close': 'Close',
    'common.search': 'Search',
    'common.empty': 'No data',
    'daily.claim': 'Claim Reward',
    'daily.streak': 'Day Streak',
    'auth.guest_btn': 'Play as Guest',
    'auth.google_btn': 'Sign in with Google',
    'auth.google_register': 'Sign up with Google',
    'auth.age_confirm': 'I confirm I am 13 years or older',
    'auth.agree_terms': 'By registering you agree to',
    'guest.upgrade_prompt': 'Create an account to play online',
    'guest.locked_feature': 'Sign up to access this feature',
    'guest.create_account': 'Create Account',
    'settings.delete_account': 'Delete Account',
    'settings.delete_confirm': 'Are you sure? All your data will be permanently deleted.',
    'settings.delete_password': 'Enter password to confirm',
    'settings.privacy_policy': 'Privacy Policy',
    'settings.terms': 'Terms of Service',
    'settings.sound': 'Sound',
    'settings.language': 'Language',
    'settings.on': 'On',
    'settings.off': 'Off',
    'settings.blocked_list': 'Blocked Players',
    'block.block': 'Block',
    'block.unblock': 'Unblock',
    'block.mute': 'Mute',
    'block.unmute': 'Unmute',
    'block.blocked': 'Blocked',
    'block.muted': 'Muted',
    'block.confirm_block': 'Block this player? They won\'t be able to message or challenge you.',
    'block.empty': 'No blocked players',
    'block.cannot_message': 'Cannot message this player',
    'play.no_match_found': 'No opponent found',
    'play.retry_or_cancel': 'No opponent found. Keep searching?',
    'play.retry': 'Retry',
    'play.challenge_friend': 'Challenge Friend',
    'play.daily_reward': 'Daily Reward',
    'play.my_tournaments': 'My Tournaments',
    'play.leaderboard': 'Leaderboard',
    'play.my_games': 'My Games',
    'play.puzzles': 'Puzzles',
    'game.bot': 'Bot',
    'game.loading_opponent': 'Loading...',
    'game.opponent_disconnected': 'Disconnected',
    'game.weak_connection': 'Weak connection',
    'game.draw_declined': 'Opponent declined draw',
    'game.leave_confirm': 'Leaving counts as a loss. Are you sure?',
    'game.leave_title': 'Leave match?',
    'game.leave': 'Leave',
    'game.stay': 'Stay',
    'chat.now': 'Now',
    'chat.minutes_ago': '{n}m ago',
    'chat.hours_ago': '{n}h ago',
    'chat.days_ago': '{n}d ago',
    'chat.mark_all_read': 'Mark all read',
    'achievements.title': 'Achievements',
    'achievements.complete': 'Complete',
    'achievements.none': 'No achievements in this category',
    'achievements.all': 'All',
    'achievements.gameplay': 'Gameplay',
    'achievements.social': 'Social',
    'achievements.progression': 'Progression',
    'achievements.collection': 'Collection',
    'common.ok': 'OK',
    'common.you': 'You',
    'common.opponent': 'Opponent',
    'common.player': 'Player',
    'common.friend': 'Friend',
    'common.back': 'Back',
    'common.send': 'Send',
    'common.sending': 'Sending...',
    'common.sent': '✓ Sent',
    'common.failed': 'Failed',
    'common.already_sent': 'Already sent',
    'common.already_friends': 'Already friends',
    'common.accepted': '✓ Accepted',
    'common.done': '✓ Done',
    'common.error_load': 'Failed to load',
    'common.now': 'Now',
    'common.minutes_ago': '{n}m ago',
    'common.hours_ago': '{n}h ago',
    'common.days_ago': '{n}d ago',
    'common.online': 'Online',
    'common.offline': 'Offline',
    'common.level': 'Level {n}',
    'common.pieces': '{n} pieces',
    'game.round_won': 'You won the round!',
    'game.round_lost': 'You lost the round',
    'game.round_end': 'Round over',
    'game.round_next': 'Next round starting...',
    'game.points': '+{n} points',
    'game.choose_placement': 'Choose placement',
    'game.opponent_plays': 'Opponent playing...',
    'game.one_piece_warning': '⚠️ One piece left!',
    'game.two_piece_warning': '⚠️ Two pieces left!',
    'game.resign_confirm': 'Do you want to resign?',
    'game.resign_yes': 'Yes, resign',
    'game.resign_no': 'Cancel',
    'game.place_first': 'Place first tile',
    'game.vs_bot': 'vs Bot',
    'game.online': 'Online',
    'game.vs_friend': 'Challenge Friend',
    'game.roll_dice': 'Roll Dice',
    'game.choose_piece': 'Choose piece',
    'game.speed_mode': '⚡ Speed Mode!',
    'game.turn_of': "{name}'s turn",
    'game.bot_thinking': '{name} thinking...',
    'game.rating': 'Rating',
    'game.coins': 'Coins',
    'game.my_games': 'My Games',
    'game.xp': 'XP',
    'game.moves_count': '{n} moves',
    'game.rounds_count': '{n} round',
    'game.rounds_count_plural': '{n} rounds',
    'game.checkmate': 'Checkmate',
    'game.stalemate': 'Stalemate',
    'game.timeout': 'Timeout',
    'game.threefold': 'Threefold Repetition',
    'game.insufficient': 'Insufficient Material',
    'game.win': 'Victory!',
    'game.loss': 'Defeat',
    'game.draw_game': 'Draw',
    'game.resigned': 'You resigned',
    'game.opponent_resigned': 'Opponent resigned!',
    'game.opponent_abandoned': 'Opponent disconnected',
    'game.congrats': 'Congratulations! You won!',
    'game.second_place': '2nd Place — Well played!',
    'game.third_place': '3rd Place',
    'game.fourth_place': '4th Place',
    'game.withdrew': 'You withdrew',
    'game.player_ranking': 'Player Rankings',
    'game.play_again': 'Play Again',
    'game.back_to_menu': 'Back to Menu',
    'game.not_found': 'Match not found',
    'match.disconnected_title': 'Opponent disconnected',
    'match.disconnected_waiting': 'Waiting for them to return...',
    'match.disconnected_auto_win': 'You will win automatically if they don\'t return in time',
    'match.claim_early_win': 'Claim Win',
    'match.opponent_returned': '✅ Opponent returned — continue!',
    'match.you_won': 'You Won!',
    'match.opponent_left': 'Opponent left the match',
    'match.return': 'Return',
    'match.connection_lost': 'Connection Lost',
    'match.reconnecting': 'Reconnecting...',
    'match.reconnected': '✅ Connection restored',
    'match.restoring': 'Restoring match...',
    'match.your_turn_warning': '⏱️ Your turn! Play before time runs out',
    'match.opponent_thinking': 'Opponent thinking...',
    'match.bot_replacement': '🤖 Opponent left — bot taking over',
    'match.your_time_expired': '⏱️ Time expired! Auto-passed',
    'match.opponent_time_expired': '⏱️ Opponent\'s time expired — your turn!',
    'tournament.round_ready': 'Round {n} ready!',
    'tournament.tap_to_play': 'Tap to play your match',
    'tournament.play': 'Play',
    'tournament.back_to': 'Back to Tournament',
    'mp.profile': 'Profile',
    'mp.add_friend': 'Add Friend',
    'mp.report': 'Report',
    'mp.reported': '✓ Reported',
    'mp.block': 'Block',
    'social.friends_tab': 'Friends',
    'social.pending_tab': 'Requests',
    'social.online_tab': 'Online',
    'social.groups_tab': 'Groups',
    'social.activity_tab': 'News',
    'social.search_btn': 'Search',
    'social.search_placeholder': 'Username or name...',
    'social.search_hint': 'Search by any part of the name (min 2 chars)',
    'social.search_min_chars': 'Enter at least 2 characters',
    'social.searching': 'Searching...',
    'social.no_results': 'No results found — try another name',
    'social.search_failed': 'Search failed',
    'social.add_btn': '+ Add',
    'social.no_friends': 'No friends yet',
    'social.no_friends_hint': 'Search for players and send friend requests',
    'social.search_players': 'Search for players',
    'social.friends_count': '{n} friends',
    'social.online_count': '{n} online',
    'social.no_pending': 'No pending requests',
    'social.pending_count': '{n} pending',
    'social.sent_friend_request': 'Sent you a friend request',
    'social.no_online_friends': 'No friends online right now',
    'social.will_appear_online': 'They\'ll appear here when they log in',
    'social.online_now_count': '{n} online now',
    'social.remove_friend': 'Remove Friend',
    'social.remove_confirm': 'Remove {name} from friends?',
    'social.challenges_you': '{name} challenges you!',
    'social.accept': 'Accept',
    'social.error': 'Error',
    'social.retry_load': 'Try again',
    'social.no_activity': 'No news — play to see your news here',
    'social.no_activity_short': 'No news',
    'social.game_win': 'Won a match',
    'social.game_loss': 'Lost a match',
    'social.game_draw': 'Drew a match',
    'social.achievement_unlock': 'Unlocked achievement',
    'social.level_up': 'Leveled up',
    'social.tournament_join': 'Joined tournament',
    'social.tournament_win': 'Won tournament',
    'social.friend_add': 'Added a new friend',
    'challenge.title': 'Challenge Friend',
    'challenge.loading_friends': 'Loading friends...',
    'challenge.no_friends': 'No friends yet',
    'challenge.no_friends_hint': 'Add friends first to challenge them',
    'challenge.online_now': 'Online now ({n})',
    'challenge.offline': 'Offline',
    'challenge.select_game': 'Choose game and time control',
    'challenge.send': 'Send Challenge',
    'challenge.sending': '⏳ Sending...',
    'challenge.sent': '✓ Challenge sent!',
    'challenge.failed_create': 'Failed to create match',
    'challenge.failed_retry': 'Failed — try again',
    'challenge.sent_msg': 'Sent {game} challenge',
    'chat.placeholder': 'Type a message...',
    'chat.loading_messages': 'Loading...',
    'chat.failed_load': 'Failed to load messages',
    'chat.start_conversation': 'Start chatting with your friend!',
    'chat.challenge_label': '{game} challenge',
    'chat.challenge_title': 'Challenge {name}',
    'chat.choose_game': 'Choose game',
    'lobby.title': 'Challenge Room',
    'lobby.ready': 'Ready',
    'lobby.waiting': 'Waiting...',
    'lobby.waiting_accept': 'Waiting for acceptance...',
    'lobby.ready_start': 'Ready to start!',
    'lobby.waiting_opponent': 'Waiting for opponent...',
    'lobby.auto_start': 'Match will start automatically when challenge is accepted',
    'lobby.start': 'Start Match',
    'lobby.accepted_preparing': 'Accepted! Preparing match...',
    'lobby.opponent_accepted': 'Opponent accepted! Starting...',
    'time.bullet': 'Bullet',
    'time.blitz': 'Blitz',
    'time.rapid': 'Rapid',
    'time.classical': 'Classical',
    'time.1min': '1 min',
    'time.3min': '3 min',
    'time.5min': '5 min',
    'time.10min': '10 min',
    'time.15min': '15 min',
    'time.20min': '20 min',
    'time.30min': '30 min',
    'time.60min': '60 min',
    'play.single_player': 'Single Player',
    'play.single_player_desc': 'Play against computer',
    'play.online_desc': 'Compete against real players',
    'play.achievements': 'Achievements',
    'play.gift': 'Gift',
    'play.coming_soon': 'Coming Soon',
    'play.login_required_online': 'Log in to play online',
    'play.login_required_friend': 'Log in to challenge a friend',
    'domino.title': 'Domino',
    'domino.subtitle': 'First to reach the target wins!',
    'domino.draw_boneyard': 'Draw from boneyard',
    'domino.pass': 'Pass',
    'domino.select_bot': 'Choose bot level',
    'domino.bot_strategy': 'Each level has a different strategy',
    'domino.beginner': 'Beginner',
    'domino.beginner_desc': 'Plays randomly',
    'domino.intermediate': 'Intermediate',
    'domino.intermediate_desc': 'Prefers high points',
    'domino.expert': 'Expert',
    'domino.expert_desc': 'Strategic and tricky',
    'domino.select_target': 'Choose target',
    'domino.target_hint': 'First to reach the points wins the match',
    'domino.50_points': '50 points',
    'domino.50_desc': 'Quick match (~5 min)',
    'domino.100_points': '100 points',
    'domino.100_desc': 'Classic (~10 min)',
    'domino.150_points': '150 points',
    'domino.150_desc': 'Long match (~15 min)',
    'ludo.title': 'Ludo',
    'ludo.subtitle': 'First to get all pieces home wins!',
    'ludo.local_play': 'Local Play',
    'ludo.local_desc': 'Choose players and bots',
    'ludo.online_desc': 'Play against real players',
    'ludo.friend_desc': 'Invite your friends to play',
    'ludo.settings_online': 'Online Settings',
    'ludo.settings_play': 'Game Settings',
    'ludo.settings_online_hint': 'Choose number of real players',
    'ludo.settings_play_hint': 'Choose player layout',
    'ludo.player_count': 'Player Count',
    'ludo.classic': 'Classic',
    'ludo.triple': 'Triple',
    'ludo.duel': 'Duel',
    'ludo.player_layout': 'Player Layout',
    'ludo.bot_level': 'Bot Level',
    'ludo.easy': 'Easy',
    'ludo.medium': 'Medium',
    'ludo.hard': 'Hard',
    'ludo.seat_order': 'Seat Order',
    'ludo.search_match': 'Find Match',
    'ludo.start_play': 'Start Game',
    'ludo.players_no_bot': '{n} players (no bot)',
    'ludo.one_player_bots': '1 player + {n} bots',
    'ludo.players_bots': '{h} players + {n} bots',
    'ludo.red': 'Red',
    'ludo.green': 'Green',
    'ludo.yellow': 'Yellow',
    'ludo.blue': 'Blue',
    'ludo.searching': 'Searching...',
    'ludo.searching_hint': 'Finding nearby players',
    'ludo.place_first': '1st',
    'ludo.place_second': '2nd',
    'ludo.place_third': '3rd',
    'ludo.place_fourth': '4th',
    'backgammon.title': 'Backgammon',
    'backgammon.subtitle': 'First to bear off all pieces wins!',
    'backgammon.bot_desc': 'Choose level and variant',
    'backgammon.online_desc': 'Play against real players',
    'backgammon.friend_desc': 'Invite your friend to play',
    'backgammon.settings_online': 'Online Settings',
    'backgammon.settings_game': 'Game Settings',
    'backgammon.game_type': 'Game Type',
    'backgammon.sheshbesh': 'Shesh Besh',
    'backgammon.mahbousa': 'Mahbousa',
    'backgammon.thirtyone': '31',
    'backgammon.match_length': 'Match Length',
    'backgammon.short_match': 'Quick',
    'backgammon.medium_match': 'Short',
    'backgammon.normal_match': 'Normal',
    'backgammon.long_match': 'Long',
    'backgammon.doubling_cube': 'Doubling Cube',
    'backgammon.enabled': 'Enabled',
    'backgammon.disabled': 'Disabled',
    'backgammon.searching': 'Searching...',
    'backgammon.searching_hint': 'Finding a nearby player',
    'backgammon.win_title': 'Congratulations! You won!',
    'backgammon.lose_title': 'You lost this time...',
    'backgammon.win_subtitle': 'Great performance!',
    'backgammon.lose_subtitle': 'Try again!',
    'backgammon.abandon_subtitle': 'Opponent left the game',
    'backgammon.from_match': 'of {n}',
    'backgammon.opponent_doubles': 'Opponent doubles!',
    'backgammon.decline': 'Decline',
    'backgammon.accept': 'Accept',
    'backgammon.no_moves': 'No moves available!',
    'backgammon.bot_accepted': 'Bot accepted! ×{n}',
    'backgammon.bot_declined': 'Bot declined! You win the round',
    'emote.good_move': 'Great move',
    'emote.think': 'Thinking...',
    'emote.hurry': 'Hurry up',
    'emote.wow': 'Wow!',
    'emote.laugh': 'Haha',
    'emote.angry': 'Angry',
    'emote.hello': 'Hello',
    'emote.nice_game': 'Nice game!',
    'emote.great_move': 'Great move!',
    'emote.lucky': 'Lucky!',
    'emote.think_faster': 'Think faster...',
    'emote.rematch': 'Rematch?',
    'analysis.title': 'Game Analysis',
    'analysis.analyzing': 'Analyzing...',
    'analysis.start': 'Start',
    'analysis.engine_analyzing': 'Engine analyzing...',
    'analysis.failed': 'Analysis failed',
    'analysis.openings_book': 'Openings Book',
    'review.title': 'Game Review',
    'review.analyzing_moves': 'Analyzing each move...',
    'review.move_classification': 'Move Classification',
    'review.brilliant': '!! Brilliant',
    'review.great': '! Great',
    'review.best': 'Best move',
    'review.good': '✓ Good',
    'review.book': 'Book',
    'review.inaccuracy': '?! Inaccuracy',
    'review.mistake': '? Mistake',
    'review.blunder': '?? Blunder',
    'review.full_analysis': 'Full Analysis (move by move)',
    'review.unknown_opening': 'Unknown',
    'spectate.live': 'Live',
    'spectate.black': 'Black',
    'spectate.white': 'White',
    'spectate.white_wins': 'White wins',
    'spectate.black_wins': 'Black wins',
    'spectate.game_over': 'Game over',
    'history.no_matches': 'No matches yet — play to see them here',
    'history.win': 'Win',
    'history.loss': 'Loss',
    'history.draw': 'Draw',
    'history.insufficient_data': 'Insufficient data',
    'history.matches_count': '{n} matches',
    'result.copied': '✓ Copied',
    'result.copy_pgn': 'Copy',
    'result.share_pgn': 'Share PGN',
    'result.analyze': 'Analyze Game',
    'result.rematch': 'Rematch',
    'classifier.excellent': 'Excellent',
    'classifier.great': 'Great',
    'classifier.good': 'Good',
    'classifier.average': 'Average',
    'classifier.poor': 'Poor',
    'profile.edit_title': 'Edit Profile',
    'profile.basic_info': 'Basic Info',
    'profile.display_name_en': 'Display Name (English)',
    'profile.display_name_ar': 'Display Name (Arabic)',
    'profile.bio_en': 'Bio (English)',
    'profile.bio_ar': 'Bio (Arabic)',
    'profile.location': 'Location',
    'profile.country': 'Country',
    'profile.select_country': 'Select Country',
    'profile.city': 'City',
    'profile.preferred_language': 'Preferred Language',
    'profile.fide_info': 'FIDE Info',
    'profile.fide_classical': 'FIDE Classical Rating',
    'profile.fide_rapid': 'FIDE Rapid Rating',
    'profile.fide_blitz': 'FIDE Blitz Rating',
    'profile.fide_title': 'FIDE Title',
    'profile.save': 'Save Changes',
    'profile.saving': 'Saving...',
    'profile.save_success': 'Changes saved successfully',
    'profile.save_failed': 'Failed to save changes',
    'profile.uploading': 'Uploading...',
    'profile.upload_failed': 'Failed to upload image',
    'profile.matches': 'Matches',
    'profile.wins': 'Wins',
    'profile.streak': 'Streak',
    'profile.rating_section': 'Rating',
    'profile.chess_rapid': 'Chess (Rapid)',
    'profile.chess_blitz': 'Chess (Blitz)',
    'profile.chess_bullet': 'Chess (Bullet)',
    'profile.org_section': 'Organization',
    'profile.edit_btn': 'Edit Profile',
    'profile.org_apply': 'Join Organization',
    'profile.logout': 'Logout',
    'profile.view_title': 'Profile',
    'profile.add_friend': '➕ Add Friend',
    'profile.friend_sent': '✓ Request sent',
    'profile.pending_request': 'Friend request pending',
    'profile.challenge': 'Challenge',
    'profile.message': 'Message',
    'profile.playing_now': 'Playing now — {game}',
    'profile.watch': 'Watch',
    'profile.member': 'Member',
    'profile.pending_review': 'Under Review',
    'profile.rejected': 'Rejected',
    'profile.rejection_reason': 'Reason: {reason}',
    'profile.membership_request': 'Membership Request',
    'profile.no_org': 'Not a member of any organization yet',
    'profile.unrated': 'Unrated',
    'org.join_title': 'Join Organization',
    'org.no_orgs': 'No organizations available',
    'org.apply': 'Apply',
    'org.reapply': 'Reapply',
    'org.apply_title': 'Apply to join — {name}',
    'org.doc_type': 'Document Type',
    'org.notes': 'Notes (optional)',
    'org.notes_placeholder': 'Message to organization admin...',
    'org.proof_image': 'Proof Image',
    'org.tap_to_select': 'Tap to select image',
    'org.file_limit': 'PNG, JPG, WebP — max 5MB',
    'org.file_too_large': 'File is larger than 5MB',
    'org.submit': 'Submit Application',
    'org.submitting': 'Submitting...',
    'org.submit_success': 'Application submitted successfully',
    'org.submit_failed': 'Failed to submit application',
    'room.waiting_friend': 'Waiting for friend...',
    'room.challenge_from': 'Challenge from {name}',
    'room.send_invite': 'Send the invite to your friend',
    'room.tap_accept': 'Tap accept to start',
    'room.match_created': 'Match created, waiting for acceptance...',
    'daily.title': 'Daily Reward',
    'daily.streak_days': '{n} day streak',
    'daily.day': 'Day {n}',
    'daily.claimed_today': 'Today\'s reward claimed',
    'daily.come_back': 'Come back tomorrow for a bigger reward!',
    'daily.today_reward': 'Today\'s Reward',
    'daily.claim_btn': 'Claim Reward',
    'daily.hint': 'Each day you claim increases the amount • Day 7 = 300 coins!',
    'daily.claiming': 'Claiming...',
    'daily.failed': 'Failed — try again',
    'challenges.title': 'Daily Challenges',
    'challenges.all_done': 'All challenges completed today!',
    'challenges.streak': '{n} days',
    'challenges.claim': 'Claim',
    'rank.bronze': 'Bronze',
    'rank.silver': 'Silver',
    'rank.gold': 'Gold',
    'rank.platinum': 'Platinum',
    'rank.diamond': 'Diamond',
    'rank.master': 'Master',
    'rank.grandmaster': 'Grandmaster',
    'shop.insufficient_balance': 'Insufficient balance',
    'shop.purchased': 'Purchased!',
    'group.create': 'Create',
    'group.no_groups': 'No groups yet',
    'group.no_groups_hint': 'Create a group and invite your friends!',
    'group.members': 'Members',
    'group.owner': 'Owner',
    'group.admin': 'Admin',
    'group.play': 'Play',
    'group.load_error': 'Error loading group',
    'group.play_invite': 'Play invite',
    'group.players': 'Players',
    'group.join': 'Join',
    'group.accepted': '✓ Accepted',
    'group.invite_sent': 'Play invite sent!',
    'group.create_title': 'Create Group',
    'group.name_label': 'Group Name',
    'group.select_friends': 'Choose friends to add',
    'group.create_btn': 'Create Group',
    'group.name_min': 'Enter group name (at least 2 characters)',
    'group.creating': 'Creating...',
    'group.created': 'Group created!',
    'group.add': 'Add',
    'group.leave': 'Leave Group',
    'group.remove': 'Remove',
    'group.remove_member': 'Remove Member',
    'group.leave_confirm': 'Do you want to leave this group?',
    'group.leave_btn': 'Leave',
    'group.stay': 'Stay',
    'auth.login_title': 'Login',
    'auth.login_btn': 'Login',
    'auth.register_link': 'Register now',
    'auth.forgot_password': 'Forgot password?',
    'auth.login_failed': 'Login failed',
    'auth.invalid_email': 'Invalid email',
    'auth.guest_login': 'Login as guest',
    'auth.register_title': 'Create Account',
    'auth.confirm_password': 'Confirm Password',
    'auth.has_account': 'Already have an account?',
    'auth.login_link': 'Login',
    'auth.register_failed': 'Registration failed',
    'auth.password_mismatch': 'Passwords do not match',
    'auth.username_short': 'Username too short',
    'auth.password_short': 'Password too short (min 6 characters)',
    'auth.invalid_username': 'Username can only contain letters, numbers, and _.-',
    'app.tagline': 'Play with your friends',
    'common.or': 'or',
    'common.play_again': 'Play Again',
    'tournament.title': 'Tournaments',
    'tournament.upcoming': 'Upcoming',
    'tournament.active': 'Active',
    'tournament.completed': 'Completed',
    'tournament.no_tournaments': 'No tournaments available',
    'tournament.players': '{n} players',
    'tournament.join': 'Join',
    'tournament.joined': 'Joined',
    'tournament.starts_in': 'Starts in {n}',
    'tournament.entry_fee': 'Entry Fee',
    'tournament.prize': 'Prize',
    'tournament.free': 'Free',
    'tournament.waiting': 'Waiting for players...',
    'tournament.players_ready': '{n}/{total} players ready',
    'tournament.starting_soon': 'Starting soon!',
    'tournament.leave': 'Leave',
    'tournament.ready': 'Ready',
    'tournament.bracket': 'Tournament Bracket',
    'tournament.round': 'Round {n}',
    'tournament.final': 'Final',
    'tournament.semifinal': 'Semifinal',
    'tournament.quarterfinal': 'Quarterfinal',
    'tournament.bye': 'Bye',
    'tournament.match_starting': 'Match starting...',
    'tournament.opponent': 'Opponent',
    'tournament.round_of': 'Round {n}',
    'tournament.champion': 'Champion!',
    'tournament.eliminated': 'Eliminated',
    'tournament.final_rank': 'Rank #{n}',
    'tournament.prize_won': 'Prize: {n} coins',
    'tournament.back_to_lobby': 'Back',
    'tournament.hub_title': 'Live Tournaments',
    'tournament.create': 'Create Tournament',
    'tournament.browse': 'Browse Tournaments',
    'tournament.arena': 'Arena',
    'tournament.leave_arena': 'Leave Arena',
    'tournament.no_results': 'No results yet',
    'tournament.leaderboard': 'Leaderboard',
    'tournament.tab_info': 'Info',
    'tournament.tab_standings': 'Standings',
    'tournament.tab_rounds': 'Rounds',
    'tournament.tab_my_games': 'My Games',
    'tournament.tab_bracket': 'Bracket',
    'tournament.tab_arena': 'Arena',
    'tournament.registration_open': 'Registration Open',
    'tournament.coming_soon': 'Coming Soon',
    'tournament.round_n': 'Round {n}/{total}',
    'tournament.live_matches': 'Live Matches',
    'tournament.no_match': 'No match found',
    'spectate.watch': 'Watch',
    'tournament.format': 'Format',
    'tournament.time_control': 'Time',
    'tournament.prizes': 'Prizes',
    'tournament.register_now': 'Register Now',
    'tournament.registering': 'Registering...',
    'tournament.registered': '✅ Registered',
    'tournament.player_col': 'Player',
    'tournament.points_col': 'Points',
    'tournament.buchholz_col': 'Buch.',
    'tournament.rounds_not_started': 'Rounds not started yet',
    'tournament.tap_to_expand': 'Tap to show pairings',
    'tournament.no_pairings': 'No pairings',
    'tournament.play_btn': 'Play',
    'tournament.no_games_yet': 'No games played in this tournament yet',
    'tournament.ready_matches': 'Ready Matches',
    'tournament.round_short': 'R{n}',
    'tournament.bye_point': 'Bye — full point',
    'tournament.prev_matches': 'Previous Matches',
    'tournament.my_tournaments': 'My Tournaments',
    'tournament.no_my_tournaments': 'No tournaments registered yet',
    'tournament.no_open_tournaments': 'No open tournaments',
    'tournament.no_active_tournaments': 'No active tournaments',
    'tournament.no_completed_tournaments': 'No completed tournaments',
    'tournament.new_tournaments_here': 'New tournaments will appear here',
    'tournament.load_failed': 'Failed to load tournaments',
    'tournament.match_ready': 'Your match is ready',
    'tournament.players_label': 'Players',
    'tournament.rounds_label': 'Rounds',
    'tournament.time_label': 'Time',
    'tournament.format_swiss': 'Swiss',
    'tournament.format_round_robin': 'Round Robin',
    'tournament.format_single_elim': 'Single Elimination',
    'tournament.format_double_elim': 'Double Elimination',
    'tournament.format_arena': 'Arena',
    'tournament.format_group_stage': 'Group Stage',
    'tournament.starts_in_hours': 'Starts in {n}h',
    'tournament.starts_in_minutes': 'Starts in {n}min',
    'tournament.in_days': 'In {n} days',
    'common.all': 'All',
    'common.retry': 'Retry',
    'common.failed': 'Failed',
    'common.coins': 'coins',
    'common.minutes_abbr': 'm',
    'common.play': 'Play',
    'chess.rating': 'Rating',
    'chess.rating_history': 'Rating History',
    'chess.highest': 'Highest',
    'chess.lowest': 'Lowest',
    'chess.current': 'Current',
    'puzzle.title': 'Chess Puzzle',
    'puzzle.correct': 'Correct!',
    'puzzle.wrong': 'Wrong answer',
    'org.members': 'Members',
    'org.game': 'Game',
    'org.members_section': 'Members',
    'org.join': 'Join Organization',
    'org.joined': 'Joined',
    'org.title': 'Organizations',
    'org.join_btn': 'Join',
    'org.doc_membership': 'Membership Card',
    'org.doc_id': 'ID Card',
    'org.doc_receipt': 'Payment Receipt',
    'org.doc_other': 'Other',
    'ludo.emote_sad': 'Sad',
    'ludo.emote_strong': 'Strong',
    'ludo.emote_cool': 'Cool',
    'ludo.phrase_gl': 'Good luck!',
    'ludo.phrase_hurry': 'Hurry up!',
    'ludo.phrase_nice': 'Nice!',
    'ludo.phrase_oops': 'Oops!',
    'ludo.phrase_wow': 'Wow!'
  }
};

export function t(key, replacements = {}) {
  const lang = store.get('language') || 'ar';
  let str = strings[lang]?.[key] || strings['ar']?.[key] || key;
  for (const [k, v] of Object.entries(replacements)) {
    str = str.replace(`{${k}}`, v);
  }
  return str;
}

export function getLang() {
  return store.get('language') || 'ar';
}

export function setLang(lang) {
  store.set('language', lang);
  document.documentElement.dir = lang === 'ar' ? 'rtl' : 'ltr';
  document.documentElement.lang = lang;
}
