/* ============================================================
   Asher Encounters — i18n core (EN / 简体中文)
   - lang(): current language 'en' | 'zh'
   - setLang(l): persist + reload (full re-render, simplest & robust)
   - L(en, zh): pick a string by current language
   - Auto-detect on first visit from navigator.language
   Load BEFORE all other site scripts.
   ============================================================ */
(function () {
  function detect() {
    try {
      const stored = localStorage.getItem('asherLang');
      if (stored === 'en' || stored === 'zh') return stored;
      const nav = (navigator.language || (navigator.languages && navigator.languages[0]) || 'en').toLowerCase();
      return nav.indexOf('zh') === 0 ? 'zh' : 'en';
    } catch (e) { return 'en'; }
  }
  const current = detect();
  try { document.documentElement.setAttribute('lang', current === 'zh' ? 'zh-CN' : 'en'); } catch (e) {}

  function lang() { return current; }
  function setLang(l) {
    if (l !== 'en' && l !== 'zh') return;
    try { localStorage.setItem('asherLang', l); } catch (e) {}
    location.reload();
  }
  function L(en, zh) { return current === 'zh' && zh != null ? zh : en; }

  window.Asher = Object.assign(window.Asher || {}, { lang, setLang, L });
})();
