/** Fills en.js strings missing from phrases-all.js (160-key atlas). Load after atlas-supplement.js */
(function (g) {
  if (typeof g.registerStringAtlas !== 'function') return;

  const E = {
    'See every device on your office or home Wi‑Fi and LAN. Real scan data.': {
      hi: 'अपने ऑफिस या घर के Wi‑Fi और LAN पर हर डिवाइस देखें। असली स्कैन डेटा।',
      ar: 'اعرض كل جهاز على شبكة Wi‑Fi وLAN في مكتبك أو منزلك. بيانات مسح حقيقية.',
      fr: 'Voyez chaque appareil sur le Wi‑Fi et le LAN de votre bureau ou maison. Données de scan réelles.',
      es: 'Vea cada dispositivo en el Wi‑Fi y LAN de su oficina u hogar. Datos de escaneo reales.',
      zh: '查看办公室或家庭 Wi‑Fi 和 LAN 上的每台设备。真实扫描数据。',
      ja: 'オフィスや自宅の Wi‑Fi と LAN 上のすべてのデバイスを表示。実際のスキャンデータ。',
      de: 'Alle Geräte im Büro- oder Heim-Wi‑Fi und LAN sehen. Echte Scan-Daten.',
      pt: 'Veja cada dispositivo no Wi‑Fi e LAN do escritório ou casa. Dados de varredura reais.',
      ru: 'Все устройства в офисной или домашней сети Wi‑Fi и LAN. Реальные данные сканирования.',
    },
    Calendar: {
      hi: 'कैलेंडर',
      ar: 'التقويم',
      fr: 'Calendrier',
      es: 'Calendario',
      zh: '日历',
      ja: 'カレンダー',
      de: 'Kalender',
      pt: 'Calendário',
      ru: 'Календарь',
    },
    Clock: {
      hi: 'घड़ी',
      ar: 'الساعة',
      fr: 'Horloge',
      es: 'Reloj',
      zh: '时钟',
      ja: '時計',
      de: 'Uhr',
      pt: 'Relógio',
      ru: 'Часы',
    },
    'Full app for Mac/PC, starter scripts, guide, and CSV export.': {
      hi: 'Mac/PC के लिए पूर्ण ऐप, स्टार्टर स्क्रिप्ट, गाइड और CSV निर्यात।',
      ar: 'تطبيق كامل لـ Mac/PC، سكربتات بدء، دليل وتصدير CSV.',
      fr: 'Application complète Mac/PC, scripts de démarrage, guide et export CSV.',
      es: 'App completa Mac/PC, scripts de inicio, guía y exportación CSV.',
      zh: 'Mac/PC 完整应用、启动脚本、指南和 CSV 导出。',
      ja: 'Mac/PC 向けフルアプリ、スターター、ガイド、CSV エクスポート。',
      de: 'Vollständige Mac/PC-App, Starter-Skripte, Anleitung und CSV-Export.',
      pt: 'App completo Mac/PC, scripts iniciais, guia e exportação CSV.',
      ru: 'Полное приложение Mac/PC, стартеры, руководство и экспорт CSV.',
    },
    'Download & start': {
      hi: 'डाउनलोड और शुरू करें',
      ar: 'تنزيل وبدء',
      fr: 'Télécharger et démarrer',
      es: 'Descargar e iniciar',
      zh: '下载并启动',
      ja: 'ダウンロードして開始',
      de: 'Herunterladen & starten',
      pt: 'Baixar e iniciar',
      ru: 'Скачать и запустить',
    },
    'Download the full package, unzip it, then double-click START.command (Mac) or START.bat (Windows). Keep Terminal or the command window open.': {
      hi: 'पूर्ण पैकेज डाउनलोड करें, अनज़िप करें, फिर START.command (Mac) या START.bat (Windows) पर डबल-क्लिक करें। Terminal या कमांड विंडो खुली रखें।',
      ar: 'نزّل الحزمة الكاملة، فك الضغط، ثم انقر مرتين على START.command (Mac) أو START.bat (Windows). أبقِ Terminal أو نافذة الأوامر مفتوحة.',
      fr: 'Téléchargez le pack complet, décompressez, puis double-cliquez START.command (Mac) ou START.bat (Windows). Gardez le terminal ouvert.',
      es: 'Descargue el paquete completo, descomprímalo y haga doble clic en START.command (Mac) o START.bat (Windows). Mantenga la terminal abierta.',
      zh: '下载完整包并解压，然后双击 START.command（Mac）或 START.bat（Windows）。保持终端窗口打开。',
      ja: 'フルパッケージをダウンロードして解凍し、START.command（Mac）または START.bat（Windows）をダブルクリック。ターミナルを開いたままに。',
      de: 'Vollpaket laden, entpacken, dann START.command (Mac) oder START.bat (Windows) doppelklicken. Terminal offen lassen.',
      pt: 'Baixe o pacote completo, descompacte e clique duas vezes em START.command (Mac) ou START.bat (Windows). Mantenha o terminal aberto.',
      ru: 'Скачайте полный пакет, распакуйте и дважды щёлкните START.command (Mac) или START.bat (Windows). Оставьте терминал открытым.',
    },
    'Full app (recommended)': {
      hi: 'पूर्ण ऐप (अनुशंसित)',
      ar: 'التطبيق الكامل (موصى به)',
      fr: 'Application complète (recommandé)',
      es: 'App completa (recomendado)',
      zh: '完整应用（推荐）',
      ja: 'フルアプリ（推奨）',
      de: 'Vollständige App (empfohlen)',
      pt: 'App completo (recomendado)',
      ru: 'Полное приложение (рекомендуется)',
    },
    'Mac — full download (.zip)': {
      hi: 'Mac — पूर्ण डाउनलोड (.zip)',
      ar: 'Mac — تنزيل كامل (.zip)',
      fr: 'Mac — téléchargement complet (.zip)',
      es: 'Mac — descarga completa (.zip)',
      zh: 'Mac — 完整下载 (.zip)',
      ja: 'Mac — フルダウンロード (.zip)',
      de: 'Mac — vollständiger Download (.zip)',
      pt: 'Mac — download completo (.zip)',
      ru: 'Mac — полная загрузка (.zip)',
    },
    'Windows / PC — full download (.zip)': {
      hi: 'Windows / PC — पूर्ण डाउनलोड (.zip)',
      ar: 'Windows / PC — تنزيل كامل (.zip)',
      fr: 'Windows / PC — téléchargement complet (.zip)',
      es: 'Windows / PC — descarga completa (.zip)',
      zh: 'Windows / PC — 完整下载 (.zip)',
      ja: 'Windows / PC — フルダウンロード (.zip)',
      de: 'Windows / PC — vollständiger Download (.zip)',
      pt: 'Windows / PC — download completo (.zip)',
      ru: 'Windows / PC — полная загрузка (.zip)',
    },
    'Starter only': {
      hi: 'केवल स्टार्टर',
      ar: 'المشغّل فقط',
      fr: 'Démarreur seulement',
      es: 'Solo iniciador',
      zh: '仅启动器',
      ja: 'スターターのみ',
      de: 'Nur Starter',
      pt: 'Apenas iniciador',
      ru: 'Только стартер',
    },
    'Mac — START.command only': {
      hi: 'Mac — केवल START.command',
      ar: 'Mac — START.command فقط',
      fr: 'Mac — START.command seulement',
      es: 'Mac — solo START.command',
      zh: 'Mac — 仅 START.command',
      ja: 'Mac — START.command のみ',
      de: 'Mac — nur START.command',
      pt: 'Mac — apenas START.command',
      ru: 'Mac — только START.command',
    },
    'Windows — START.bat only': {
      hi: 'Windows — केवल START.bat',
      ar: 'Windows — START.bat فقط',
      fr: 'Windows — START.bat seulement',
      es: 'Windows — solo START.bat',
      zh: 'Windows — 仅 START.bat',
      ja: 'Windows — START.bat のみ',
      de: 'Windows — nur START.bat',
      pt: 'Windows — apenas START.bat',
      ru: 'Windows — только START.bat',
    },
    'Mac app': {
      hi: 'Mac ऐप',
      ar: 'تطبيق Mac',
      fr: 'App Mac',
      es: 'App Mac',
      zh: 'Mac 应用',
      ja: 'Mac アプリ',
      de: 'Mac-App',
      pt: 'App Mac',
      ru: 'Приложение Mac',
    },
    'Mac — Network Monitor.app (.zip)': {
      hi: 'Mac — Network Monitor.app (.zip)',
      ar: 'Mac — Network Monitor.app (.zip)',
      fr: 'Mac — Network Monitor.app (.zip)',
      es: 'Mac — Network Monitor.app (.zip)',
      zh: 'Mac — Network Monitor.app (.zip)',
      ja: 'Mac — Network Monitor.app (.zip)',
      de: 'Mac — Network Monitor.app (.zip)',
      pt: 'Mac — Network Monitor.app (.zip)',
      ru: 'Mac — Network Monitor.app (.zip)',
    },
    'Requires Python 3. First run installs dependencies automatically.': {
      hi: 'Python 3 आवश्यक। पहली बार चलाने पर निर्भरताएँ स्वचालित स्थापित होती हैं।',
      ar: 'يتطلب Python 3. التشغيل الأول يثبّت التبعيات تلقائياً.',
      fr: 'Python 3 requis. La première exécution installe les dépendances automatiquement.',
      es: 'Requiere Python 3. La primera ejecución instala dependencias automáticamente.',
      zh: '需要 Python 3。首次运行会自动安装依赖。',
      ja: 'Python 3 が必要です。初回実行で依存関係を自動インストール。',
      de: 'Python 3 erforderlich. Beim ersten Start werden Abhängigkeiten automatisch installiert.',
      pt: 'Requer Python 3. A primeira execução instala dependências automaticamente.',
      ru: 'Требуется Python 3. При первом запуске зависимости устанавливаются автоматически.',
    },
    'Click any IP for scan fields from your last Wi‑Fi + LAN scan.': {
      hi: 'अपने अंतिम Wi‑Fi + LAN स्कैन के फ़ील्ड के लिए किसी भी IP पर क्लिक करें।',
      ar: 'انقر أي IP لحقول آخر مسح Wi‑Fi + LAN.',
      fr: 'Cliquez une IP pour les champs du dernier scan Wi‑Fi + LAN.',
      es: 'Haga clic en cualquier IP para los campos del último escaneo Wi‑Fi + LAN.',
      zh: '点击任意 IP 查看上次 Wi‑Fi + LAN 扫描字段。',
      ja: '最後の Wi‑Fi + LAN スキャンのフィールドは IP をクリック。',
      de: 'IP anklicken für Felder des letzten Wi‑Fi + LAN-Scans.',
      pt: 'Clique em qualquer IP para campos do último scan Wi‑Fi + LAN.',
      ru: 'Нажмите IP для полей последнего сканирования Wi‑Fi + LAN.',
    },
    'World calendars — Network Monitor': {
      hi: 'विश्व कैलेंडर — नेटवर्क मॉनिटर',
      ar: 'تقاويم العالم — مراقب الشبكة',
      fr: 'Calendriers du monde — Network Monitor',
      es: 'Calendarios mundiales — Network Monitor',
      zh: '世界日历 — 网络监视器',
      ja: '世界のカレンダー — Network Monitor',
      de: 'Weltkalender — Network Monitor',
      pt: 'Calendários mundiais — Network Monitor',
      ru: 'Мировые календари — Network Monitor',
    },
    'World clock — Network Monitor': {
      hi: 'विश्व घड़ी — नेटवर्क मॉनिटर',
      ar: 'ساعة العالم — مراقب الشبكة',
      fr: 'Horloge mondiale — Network Monitor',
      es: 'Reloj mundial — Network Monitor',
      zh: '世界时钟 — 网络监视器',
      ja: '世界時計 — Network Monitor',
      de: 'Weltuhr — Network Monitor',
      pt: 'Relógio mundial — Network Monitor',
      ru: 'Мировые часы — Network Monitor',
    },
    'World calendars': {
      hi: 'विश्व कैलेंडर',
      ar: 'تقاويم العالم',
      fr: 'Calendriers du monde',
      es: 'Calendarios mundiales',
      zh: '世界日历',
      ja: '世界のカレンダー',
      de: 'Weltkalender',
      pt: 'Calendários mundiais',
      ru: 'Мировые календари',
    },
    'World clock': {
      hi: 'विश्व घड़ी',
      ar: 'ساعة العالم',
      fr: 'Horloge mondiale',
      es: 'Reloj mundial',
      zh: '世界时钟',
      ja: '世界時計',
      de: 'Weltuhr',
      pt: 'Relógio mundial',
      ru: 'Мировые часы',
    },
    'UTC now: {time} · {date}': {
      hi: 'UTC अभी: {time} · {date}',
      ar: 'UTC الآن: {time} · {date}',
      fr: 'UTC maintenant : {time} · {date}',
      es: 'UTC ahora: {time} · {date}',
      zh: 'UTC 现在：{time} · {date}',
      ja: 'UTC 現在: {time} · {date}',
      de: 'UTC jetzt: {time} · {date}',
      pt: 'UTC agora: {time} · {date}',
      ru: 'UTC сейчас: {time} · {date}',
    },
    'Your time — {zone}': {
      hi: 'आपका समय — {zone}',
      ar: 'وقتك — {zone}',
      fr: 'Votre heure — {zone}',
      es: 'Su hora — {zone}',
      zh: '您的时间 — {zone}',
      ja: '現地時間 — {zone}',
      de: 'Ihre Zeit — {zone}',
      pt: 'Sua hora — {zone}',
      ru: 'Ваше время — {zone}',
    },
    Portfolio: {
      hi: 'पोर्टफोलियो',
      ar: 'معرض الأعمال',
      fr: 'Portfolio',
      es: 'Portafolio',
      zh: '作品集',
      ja: 'ポートフォリオ',
      de: 'Portfolio',
      pt: 'Portfólio',
      ru: 'Портфолио',
    },
    'Creator portfolio — Mohammad Faizan Khan': {
      hi: 'निर्माता पोर्टफोलियो — Mohammad Faizan Khan',
      ar: 'معرض المنشئ — Mohammad Faizan Khan',
      fr: 'Portfolio du créateur — Mohammad Faizan Khan',
      es: 'Portafolio del creador — Mohammad Faizan Khan',
      zh: '创作者作品集 — Mohammad Faizan Khan',
      ja: '作成者ポートフォリオ — Mohammad Faizan Khan',
      de: 'Ersteller-Portfolio — Mohammad Faizan Khan',
      pt: 'Portfólio do criador — Mohammad Faizan Khan',
      ru: 'Портфолио автора — Mohammad Faizan Khan',
    },
    'Map zoom {pct} percent. Drag to pan. Ctrl and scroll to zoom at pointer.': {
      hi: 'मानचित्र ज़ूम {pct} प्रतिशत। पैन के लिए खींचें। Ctrl+स्क्रॉल से पॉइंटर पर ज़ूम।',
      ar: 'تكبير الخريطة {pct} بالمئة. اسحب للتحريك. Ctrl+التمرير للتكبير عند المؤشر.',
      fr: 'Zoom carte {pct} %. Glisser pour déplacer. Ctrl+défilement pour zoomer au pointeur.',
      es: 'Zoom del mapa {pct} %. Arrastre para mover. Ctrl+scroll para zoom en el puntero.',
      zh: '地图缩放 {pct}%。拖动平移。Ctrl+滚轮在指针处缩放。',
      ja: 'マップズーム {pct}%。ドラッグでパン。Ctrl+スクロールでポインタ位置にズーム。',
      de: 'Kartenzoom {pct} %. Ziehen zum Schwenken. Strg+Scroll zoomt am Zeiger.',
      pt: 'Zoom do mapa {pct}%. Arraste para mover. Ctrl+scroll para zoom no ponteiro.',
      ru: 'Масштаб карты {pct}%. Перетаскивание. Ctrl+прокрутка — зум у курсора.',
    },
    'No online devices — run Scan on Device list (same Wi‑Fi/LAN).': {
      hi: 'कोई ऑनलाइन डिवाइस नहीं — डिवाइस सूची पर Scan चलाएँ (उसी Wi‑Fi/LAN)।',
      ar: 'لا أجهزة متصلة — شغّل المسح في قائمة الأجهزة (نفس Wi‑Fi/LAN).',
      fr: 'Aucun appareil en ligne — lancez Scan sur la liste (même Wi‑Fi/LAN).',
      es: 'Sin dispositivos en línea — ejecute Scan en la lista (misma Wi‑Fi/LAN).',
      zh: '无在线设备 — 在设备列表运行扫描（同一 Wi‑Fi/LAN）。',
      ja: 'オンラインデバイスなし — デバイス一覧でスキャン（同じ Wi‑Fi/LAN）。',
      de: 'Keine Online-Geräte — Scan in Geräteliste (gleiches Wi‑Fi/LAN).',
      pt: 'Nenhum dispositivo online — execute Scan na lista (mesmo Wi‑Fi/LAN).',
      ru: 'Нет устройств онлайн — запустите Scan в списке (тот же Wi‑Fi/LAN).',
    },
    'Map refreshes automatically after scans. Click Scan & redraw on this page.': {
      hi: 'स्कैन के बाद मानचित्र स्वतः अपडेट होता है। इस पृष्ठ पर Scan & redraw क्लिक करें।',
      ar: 'تُحدَّث الخريطة تلقائياً بعد المسح. انقر Scan & redraw في هذه الصفحة.',
      fr: 'La carte se met à jour après les scans. Cliquez Scan & redraw sur cette page.',
      es: 'El mapa se actualiza tras escanear. Haga clic en Scan & redraw en esta página.',
      zh: '扫描后地图自动刷新。请在本页点击 Scan & redraw。',
      ja: 'スキャン後にマップは自動更新。このページで Scan & redraw をクリック。',
      de: 'Karte aktualisiert sich nach Scans. Scan & redraw auf dieser Seite klicken.',
      pt: 'O mapa atualiza após varreduras. Clique Scan & redraw nesta página.',
      ru: 'Карта обновляется после сканирования. Нажмите Scan & redraw на этой странице.',
    },
    ' · map updated': {
      hi: ' · मानचित्र अपडेट',
      ar: ' · تم تحديث الخريطة',
      fr: ' · carte mise à jour',
      es: ' · mapa actualizado',
      zh: ' · 地图已更新',
      ja: ' · マップ更新',
      de: ' · Karte aktualisiert',
      pt: ' · mapa atualizado',
      ru: ' · карта обновлена',
    },
    'Network map ready. Fit view. Drag to pan. Ctrl+scroll zooms at pointer.': {
      hi: 'नेटवर्क मानचित्र तैयार। फ़िट दृश्य। पैन के लिए खींचें। Ctrl+स्क्रॉल से ज़ूम।',
      ar: 'خريطة الشبكة جاهزة. ملاءمة العرض. اسحب للتحريك. Ctrl+التمرير للتكبير.',
      fr: 'Carte réseau prête. Ajuster la vue. Glisser pour déplacer. Ctrl+défilement pour zoomer.',
      es: 'Mapa de red listo. Ajustar vista. Arrastre para mover. Ctrl+scroll para zoom.',
      zh: '网络地图就绪。适应视图。拖动平移。Ctrl+滚轮缩放。',
      ja: 'ネットワークマップ準備完了。フィット表示。ドラッグでパン。Ctrl+スクロールでズーム。',
      de: 'Netzwerkkarte bereit. Ansicht anpassen. Ziehen zum Schwenken. Strg+Scroll zum Zoomen.',
      pt: 'Mapa de rede pronto. Ajustar vista. Arraste para mover. Ctrl+scroll para zoom.',
      ru: 'Карта сети готова. Подогнать вид. Перетаскивание. Ctrl+прокрутка — зум.',
    },
    ' · auto-check': {
      hi: ' · स्वतः जाँच',
      ar: ' · فحص تلقائي',
      fr: ' · vérif. auto',
      es: ' · comprobación auto',
      zh: ' · 自动检查',
      ja: ' · 自動確認',
      de: ' · Auto-Prüfung',
      pt: ' · verificação auto',
      ru: ' · автопроверка',
    },
  };

  const langs = new Set();
  Object.values(E).forEach((row) => Object.keys(row).forEach((l) => langs.add(l)));
  langs.forEach((lang) => {
    const map = {};
    Object.entries(E).forEach(([en, row]) => {
      if (row[lang]) map[en] = row[lang];
    });
    if (Object.keys(map).length) g.registerStringAtlas(lang, map);
  });
})(window);
