/**
 * Minimal i18n for standalone final report print page + HRProFinalReport.render().
 * Lives alongside other Reports/ print assets.
 */
(function (global) {
  'use strict';

  const STRINGS = {
    en: {
      annual: 'Annual',
      casual: 'Casual',
      sick: 'Sick',
      employee: 'Employee',
      date: 'Period',
      day: 'Day',
      department: 'Department',
      branch: 'Branch',
      code: 'Code',
      job_title: 'Job title',
      work_nature: 'Work nature',
      external: 'External',
      internal: 'Internal',
      phone: 'Phone',
      email: 'Email',
      notes: 'Notes',
      status: 'Status',
      status_present: 'Present',
      status_absent: 'Absent',
      status_leave: 'Leave',
      status_official_holiday: 'Official holiday',
      weekend_days: 'Weekend',
      official_start: 'Sch. In',
      official_end: 'Sch. Out',
      first_in: 'Actual In',
      last_out: 'Actual Out',
      fr_policy: 'Policy',
      fr_balance_year: 'Balance year',
      fr_work_hours: 'Hours',
      fr_location: 'Location',
      fr_selfie: 'Face',
      fr_reg_method: 'Method',
      fr_field_day: 'Day type',
      fr_leave_deduct: 'Settlement',
      fr_loc_alert: 'Alert',
      fr_loc_ok: 'OK',
      fr_reg_qr: 'QR',
      fr_reg_manual: 'Manual',
      fr_reg_direct: 'Direct',
      fr_total_hours: 'Total work hours',
      fr_late_days: 'Late arrival days',
      fr_early_leave_days: 'Early departure days',
      fr_loc_alerts_days: 'Location alert days',
      fr_incomplete_days: 'Incomplete days (no checkout)',
      fr_salary_deduct_total: 'Salary marks (days)',
      fr_secondary_stats_toggle: 'More statistics (hours, late, alerts…)',
      fr_print_doc_title: 'Official monthly attendance record',
      fr_print_sub_calendar: 'Calendar',
      fr_print_col_date_day: 'Date · Day',
      fr_print_sub_official_vs_actual_in: 'Official time → recorded check-in',
      fr_print_sub_official_vs_actual_out: 'Official time → recorded check-out',
      fr_print_sub_other: 'Other details',
      fr_print_caption_leave: 'Leave balance deduction',
      fr_print_caption_salary: 'Salary deduction',
      fr_print_sep: '·',
      fr_print_legal_statement: 'This document lists each day in the selected period, the official schedule (expected in/out), and the actual check-in and check-out recorded in the HR system. It is produced for payroll, leave accounting, and lawful supervision. Any dispute must be cross-checked with the underlying attendance evidence.',
      fr_print_recap_title: 'Employee and period (for management approval)',
      fr_print_company: 'Company',
      fr_print_final_decision_title: 'Final administrative decision',
      fr_print_final_decision_body: 'Based on the register above, this record may be relied on for HR decisions (payroll, leave balance, discipline) in line with company policy and applicable law, unless amended in writing by an authorized signatory.',
      fr_print_gm_signature: 'General Manager — name & signature',
      fr_print_hr_manager: 'HR / direct manager — signature',
      fr_print_employee_ack: 'Employee — read and acknowledged',
      fr_print_stamp: 'Stamp (if applicable)',
      fr_print_date_label: 'Date',
      fr_print_generated: 'Document generated',
      fr_print_toolbar_print: 'Print',
      fr_print_toolbar_close: 'Close',
      fr_print_page_title: 'Employee final report — print view',
      fr_print_load_error: 'Could not load report.',
      fr_print_auth_required: 'Please sign in to the admin portal first (same browser).',
      no_records: 'No records',
      fr_hide_days_empty: 'No rows match the current hide filter.',
      dr_revert: 'Revert',
      fr_deduct_btn: 'Deduct leave',
      fr_salary_force_tag: 'forced',
      fr_salary_short: 'Salary',
      fr_salary_btn: 'Salary mark',
      fr_salary_section: 'Salary deduction',
      fr_suggestions_hint: 'Suggestions',
      fr_apply_late_row: 'Apply late deduction',
      ls_col_system: 'System',
      ls_reset_row: 'Reset row',
      fr_settlement_editor: 'Settlement editor',
      fr_sug_absent: 'Absent (workday)',
      fr_sug_late: 'Late check-in',
      fr_sug_early_leave: 'Early check-out',
      fr_sug_incomplete_checkout: 'No check-out',
      fr_sug_overtime: 'Long stay (possible overtime)',
      fr_sug_location_alert: 'Location alert',
      fr_sug_distance_far: 'Far from expected location',
      fr_sug_external_no_mission: 'Field day — no mission details'
    },
    ar: {
      annual: 'سنوية',
      casual: 'عارضة',
      sick: 'مرضية',
      employee: 'الموظف',
      date: 'الفترة',
      day: 'اليوم',
      department: 'القسم',
      branch: 'الفرع',
      code: 'الرمز',
      job_title: 'المسمى الوظيفي',
      work_nature: 'طبيعة العمل',
      external: 'خارجي',
      internal: 'داخلي',
      phone: 'الهاتف',
      email: 'البريد',
      notes: 'ملاحظات',
      status: 'الحالة',
      status_present: 'حاضر',
      status_absent: 'غائب',
      status_leave: 'إجازة',
      status_official_holiday: 'عطلة رسمية',
      weekend_days: 'عطلة أسبوعية',
      official_start: 'الدخول المقرر',
      official_end: 'الخروج المقرر',
      first_in: 'الدخول الفعلي',
      last_out: 'الخروج الفعلي',
      fr_policy: 'السياسة',
      fr_balance_year: 'سنة الرصيد',
      fr_work_hours: 'الساعات',
      fr_location: 'الموقع',
      fr_selfie: 'البصمة',
      fr_reg_method: 'طريقة التسجيل',
      fr_field_day: 'نوع اليوم',
      fr_leave_deduct: 'التسوية',
      fr_loc_alert: 'تنبيه',
      fr_loc_ok: 'سليم',
      fr_reg_qr: 'QR',
      fr_reg_manual: 'يدوي',
      fr_reg_direct: 'مباشر',
      fr_total_hours: 'إجمالي ساعات العمل',
      fr_late_days: 'أيام تأخر عن الدوام',
      fr_early_leave_days: 'أيام خروج مبكر',
      fr_loc_alerts_days: 'أيام تنبيه موقع',
      fr_incomplete_days: 'أيام غير مكتملة (بدون خروج)',
      fr_salary_deduct_total: 'تمييزات الراتب (أيام)',
      fr_secondary_stats_toggle: 'إحصائيات إضافية (ساعات، تأخير، تنبيهات…)',
      fr_print_doc_title: 'محضر حضور وانصراف شهري رسمي',
      fr_print_sub_calendar: 'التقويم',
      fr_print_col_date_day: 'التاريخ · اليوم',
      fr_print_sub_official_vs_actual_in: 'الموعد الرسمي ← وقت تسجيل الدخول الفعلي',
      fr_print_sub_official_vs_actual_out: 'الموعد الرسمي ← وقت تسجيل الخروج الفعلي',
      fr_print_sub_other: 'تفاصيل أخرى',
      fr_print_caption_leave: 'خصم من رصيد الإجازات',
      fr_print_caption_salary: 'خصم من الراتب',
      fr_print_sep: '؛',
      fr_print_legal_statement: 'يُدرج هذا المحضر أيام الفترة المحددة، والمواعيد الرسمية للعمل (الدخول والخروج المقررين)، وأوقات تسجيل الدخول والخروج الفعلية كما وردت في النظام. يُصدر لدعم صرف الأجور واحتساب الإجازات والرقابة الإدارية وفقاً للنظام. في حال المنازعة يُرجى الرجوع إلى أدلة التسجيل الأصلية.',
      fr_print_recap_title: 'بيانات الموظف والفترة (للاعتماد الإداري)',
      fr_print_company: 'الشركة',
      fr_print_final_decision_title: 'القرار الإداري النهائي',
      fr_print_final_decision_body: 'بناءً على جدول الحضور أعلاه، يُعتمد هذا المحضر لاتخاذ القرارات المتعلقة بالموارد البشرية (الأجور، رصيد الإجازات، الإجراءات التأديبية) في حدود سياسة الشركة والقانون المعمول به، ما لم يُعدَّل كتابةً من جهة مخولة.',
      fr_print_gm_signature: 'المدير العام — الاسم والتوقيع',
      fr_print_hr_manager: 'الموارد البشرية / المدير المباشر — التوقيع',
      fr_print_employee_ack: 'الموظف — اطلعت وأقر',
      fr_print_stamp: 'الختم (إن وجد)',
      fr_print_date_label: 'التاريخ',
      fr_print_generated: 'تاريخ إصدار المستند',
      fr_print_toolbar_print: 'طباعة',
      fr_print_toolbar_close: 'إغلاق',
      fr_print_page_title: 'التقرير الختامي للموظف — عرض الطباعة',
      fr_print_load_error: 'تعذر تحميل التقرير.',
      fr_print_auth_required: 'يرجى تسجيل الدخول إلى لوحة الإدارة أولاً (نفس المتصفح).',
      no_records: 'لا توجد سجلات',
      fr_hide_days_empty: 'لا توجد صفوف تطابق فلتر الإخفاء الحالي.',
      dr_revert: 'تراجع',
      fr_deduct_btn: 'خصم إجازة',
      fr_salary_force_tag: 'إجبار',
      fr_salary_short: 'الراتب',
      fr_salary_btn: 'تمييز الراتب',
      fr_salary_section: 'خصم الراتب',
      fr_suggestions_hint: 'اقتراحات',
      fr_apply_late_row: 'تطبيق خصم التأخير',
      ls_col_system: 'النظام',
      ls_reset_row: 'إعادة تعيين الصف',
      fr_settlement_editor: 'محرر التسوية',
      fr_sug_absent: 'غياب (يوم عمل)',
      fr_sug_late: 'تأخر عن الحضور',
      fr_sug_early_leave: 'انصراف مبكر',
      fr_sug_incomplete_checkout: 'بدون تسجيل خروج',
      fr_sug_overtime: 'بقاء طويل (احتمال وقت إضافي)',
      fr_sug_location_alert: 'تنبيه موقع',
      fr_sug_distance_far: 'بعيد عن الموقع المتوقع',
      fr_sug_external_no_mission: 'يوم ميداني — بدون تفاصيل مأمورية'
    }
  };

  function getLang() {
    try {
      const stored = localStorage.getItem('admin_lang');
      if (stored === 'en' || stored === 'ar') return stored;
    } catch (e) {}
    return 'ar';
  }

  function hrproFinalReportPrintT(key) {
    const lang = getLang();
    const dict = STRINGS[lang] || STRINGS.ar;
    if (dict[key] != null) return dict[key];
    const fallback = STRINGS.en[key];
    if (fallback != null) return fallback;
    return key;
  }

  function applyFinalReportPrintDomI18n(root) {
    const el = root || document;
    el.querySelectorAll('[data-i18n]').forEach((node) => {
      const k = node.getAttribute('data-i18n');
      if (!k) return;
      const val = hrproFinalReportPrintT(k);
      if (node.tagName === 'TITLE') document.title = val;
      else node.textContent = val;
    });
  }

  function syncDocumentLangDir() {
    const lang = getLang();
    document.documentElement.lang = lang;
    document.documentElement.dir = lang === 'ar' ? 'rtl' : 'ltr';
  }

  global.hrproFinalReportPrintI18n = {
    t: hrproFinalReportPrintT,
    applyDom: applyFinalReportPrintDomI18n,
    syncDocumentLangDir: syncDocumentLangDir,
    getLang: getLang
  };
})(typeof window !== 'undefined' ? window : self);
