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

const strings = {
  ar: {
    'app.name': 'EL3AB',
    'nav.rank': 'الترتيب',
    'nav.social': 'الأصدقاء',
    'nav.play': 'العب',
    'nav.shop': 'المتجر',
    '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.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': 'أيام متتالية'
  },
  en: {
    'app.name': 'EL3AB',
    'nav.rank': 'Rank',
    'nav.social': 'Social',
    'nav.play': 'Play',
    'nav.shop': 'Shop',
    '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.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'
  }
};

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;
}
