(() => {
  'use strict';
  const COMPLETE_TRANSLATOR_HANDLES_CONTENT = true; // V6.29: prevent two translation observers from racing
  if (window.__APU_DESIGN_I18N_V61__) return;
  window.__APU_DESIGN_I18N_V61__ = true;
  const LANGUAGES = {
    id: { name: 'Indonesia', short: 'ID' },
    en: { name: 'English', short: 'EN' },
    ms: { name: 'Melayu', short: 'MS' },
    de: { name: 'Deutsch', short: 'DE' },
    vi: { name: 'Tiếng Việt', short: 'VI' },
    zh: { name: '中文', short: '中文' },
    ja: { name: '日本語', short: '日本' }
  };

  const UI = {
    id: { group: 'Tampilan dan bahasa', theme: 'Ganti mode warna', light: 'Terang', dark: 'Gelap', enabledLight: 'Mode terang aktif', enabledDark: 'Mode gelap aktif', language: 'Pilih bahasa', changed: 'Bahasa diubah ke Indonesia', brand: 'Kontrol tampilan', translating: 'Menerjemahkan', translated: 'Terjemahan selesai', modelDownload: 'Menyiapkan model bahasa', fallback: 'Menggunakan terjemahan bawaan' },
    en: { group: 'Appearance and language', theme: 'Change color mode', light: 'Light', dark: 'Dark', enabledLight: 'Light mode enabled', enabledDark: 'Dark mode enabled', language: 'Choose language', changed: 'Language changed to English', brand: 'Display controls', translating: 'Translating', translated: 'Translation complete', modelDownload: 'Preparing language model', fallback: 'Using built-in fallback translation' },
    ms: { group: 'Penampilan dan bahasa', theme: 'Tukar mod warna', light: 'Cerah', dark: 'Gelap', enabledLight: 'Mod cerah diaktifkan', enabledDark: 'Mod gelap diaktifkan', language: 'Pilih bahasa', changed: 'Bahasa ditukar kepada Melayu', brand: 'Kawalan paparan', translating: 'Menterjemah', translated: 'Terjemahan selesai', modelDownload: 'Menyediakan model bahasa', fallback: 'Menggunakan terjemahan sandaran' },
    de: { group: 'Darstellung und Sprache', theme: 'Farbmodus wechseln', light: 'Hell', dark: 'Dunkel', enabledLight: 'Heller Modus aktiviert', enabledDark: 'Dunkler Modus aktiviert', language: 'Sprache wählen', changed: 'Sprache auf Deutsch geändert', brand: 'Anzeigeoptionen', translating: 'Wird übersetzt', translated: 'Übersetzung abgeschlossen', modelDownload: 'Sprachmodell wird vorbereitet', fallback: 'Interne Ersatzübersetzung wird verwendet' },
    vi: { group: 'Giao diện và ngôn ngữ', theme: 'Đổi chế độ màu', light: 'Sáng', dark: 'Tối', enabledLight: 'Đã bật chế độ sáng', enabledDark: 'Đã bật chế độ tối', language: 'Chọn ngôn ngữ', changed: 'Đã đổi ngôn ngữ sang Tiếng Việt', brand: 'Điều khiển hiển thị', translating: 'Đang dịch', translated: 'Đã dịch xong', modelDownload: 'Đang chuẩn bị mô hình ngôn ngữ', fallback: 'Đang dùng bản dịch dự phòng' },
    zh: { group: '外观与语言', theme: '切换颜色模式', light: '浅色', dark: '深色', enabledLight: '已启用浅色模式', enabledDark: '已启用深色模式', language: '选择语言', changed: '语言已切换为中文', brand: '显示控制', translating: '正在翻译', translated: '翻译完成', modelDownload: '正在准备语言模型', fallback: '正在使用内置备用翻译' },
    ja: { group: '外観と言語', theme: 'カラーモードを変更', light: 'ライト', dark: 'ダーク', enabledLight: 'ライトモードを有効化', enabledDark: 'ダークモードを有効化', language: '言語を選択', changed: '言語を日本語に変更しました', brand: '表示コントロール', translating: '翻訳中', translated: '翻訳が完了しました', modelDownload: '言語モデルを準備中', fallback: '内蔵の代替翻訳を使用中' }
  };

  const PHRASES = {
    'Overview': ['Ikhtisar','Overview','Gambaran keseluruhan','Übersicht','Tổng quan','概览','概要'],
    'Dashboard': ['Dasbor','Dashboard','Papan pemuka','Dashboard','Bảng điều khiển','仪表板','ダッシュボード'],
    'Dataset': ['Kumpulan Data','Dataset','Set data','Datensatz','Tập dữ liệu','数据集','データセット'],
    'Model': ['Model','Model','Model','Modell','Mô hình','模型','モデル'],
    'Models': ['Model','Models','Model','Modelle','Mô hình','模型','モデル'],
    'Results': ['Hasil','Results','Keputusan','Ergebnisse','Kết quả','结果','結果'],
    'Analysis': ['Analisis','Analysis','Analisis','Analyse','Phân tích','分析','分析'],
    'Failure Analysis': ['Analisis Kegagalan','Failure Analysis','Analisis Kegagalan','Fehleranalyse','Phân tích lỗi','失败分析','失敗分析'],
    'Limitations': ['Keterbatasan','Limitations','Batasan','Einschränkungen','Hạn chế','局限性','制限事項'],
    'Source Code': ['Kode Sumber','Source Code','Kod Sumber','Quellcode','Mã nguồn','源代码','ソースコード'],
    'Technical Report': ['Laporan Teknis','Technical Report','Laporan Teknikal','Technischer Bericht','Báo cáo kỹ thuật','技术报告','技術レポート'],
    'Reports': ['Laporan','Reports','Laporan','Berichte','Báo cáo','报告','レポート'],
    'Report': ['Laporan','Report','Laporan','Bericht','Báo cáo','报告','レポート'],
    'Settings': ['Pengaturan','Settings','Tetapan','Einstellungen','Cài đặt','设置','設定'],
    'Search': ['Cari','Search','Cari','Suchen','Tìm kiếm','搜索','検索'],
    'Home': ['Beranda','Home','Laman Utama','Startseite','Trang chủ','首页','ホーム'],
    'Projects': ['Proyek','Projects','Projek','Projekte','Dự án','项目','プロジェクト'],
    'Project': ['Proyek','Project','Projek','Projekt','Dự án','项目','プロジェクト'],
    'Research': ['Riset','Research','Penyelidikan','Forschung','Nghiên cứu','研究','研究'],
    'Certificates': ['Sertifikat','Certificates','Sijil','Zertifikate','Chứng chỉ','证书','証明書'],
    'Admission': ['Penerimaan','Admission','Kemasukan','Zulassung','Tuyển sinh','招生','入学'],
    'Documents': ['Dokumen','Documents','Dokumen','Dokumente','Tài liệu','文档','ドキュメント'],
    'Contact': ['Kontak','Contact','Hubungi','Kontakt','Liên hệ','联系','お問い合わせ'],
    'Support': ['Dukungan','Support','Sokongan','Support','Hỗ trợ','支持','サポート'],
    'Resume': ['Resume','Resume','Resume','Lebenslauf','Hồ sơ','简历','履歴書'],
    'Security': ['Keamanan','Security','Keselamatan','Sicherheit','Bảo mật','安全','セキュリティ'],
    'Governance': ['Tata Kelola','Governance','Tadbir Urus','Governance','Quản trị','治理','ガバナンス'],
    'Cloud Compare': ['Perbandingan Cloud','Cloud Compare','Perbandingan Awan','Cloud-Vergleich','So sánh đám mây','云对比','クラウド比較'],
    'Blueprints': ['Cetak Biru','Blueprints','Pelan Tindakan','Blaupausen','Bản thiết kế','蓝图','ブループリント'],
    'Agents': ['Agen','Agents','Ejen','Agenten','Tác nhân','智能体','エージェント'],
    'Predict': ['Prediksi','Predict','Ramalan','Vorhersage','Dự đoán','预测','予測'],
    'Recommendations': ['Rekomendasi','Recommendations','Cadangan','Empfehlungen','Đề xuất','建议','推奨事項'],
    'Students': ['Siswa','Students','Pelajar','Studierende','Sinh viên','学生','学生'],
    'Fairness': ['Keadilan','Fairness','Keadilan','Fairness','Công bằng','公平性','公平性'],
    'Tickets': ['Tiket','Tickets','Tiket','Tickets','Phiếu hỗ trợ','工单','チケット'],
    'Incidents': ['Insiden','Incidents','Insiden','Vorfälle','Sự cố','事件','インシデント'],
    'Timeline': ['Linimasa','Timeline','Garis Masa','Zeitleiste','Dòng thời gian','时间线','タイムライン'],
    'Analytics': ['Analitik','Analytics','Analitik','Analytik','Phân tích','分析','分析'],
    'Campaigns': ['Kampanye','Campaigns','Kempen','Kampagnen','Chiến dịch','活动','キャンペーン'],
    'Create': ['Buat','Create','Cipta','Erstellen','Tạo','创建','作成'],
    'History': ['Riwayat','History','Sejarah','Verlauf','Lịch sử','历史','履歴'],
    'Calculator': ['Kalkulator','Calculator','Kalkulator','Rechner','Máy tính','计算器','計算機'],
    'Troubleshoot': ['Pemecahan Masalah','Troubleshoot','Penyelesaian Masalah','Fehlerbehebung','Khắc phục sự cố','故障排除','トラブルシューティング'],
    'Tutorial': ['Tutorial','Tutorial','Tutorial','Tutorial','Hướng dẫn','教程','チュートリアル'],
    'Segmentation': ['Segmentasi','Segmentation','Segmentasi','Segmentierung','Phân đoạn','分段','セグメンテーション'],
    'Feedback': ['Umpan Balik','Feedback','Maklum Balas','Feedback','Phản hồi','反馈','フィードバック'],
    'New Feedback': ['Umpan Balik Baru','New Feedback','Maklum Balas Baharu','Neues Feedback','Phản hồi mới','新反馈','新しいフィードバック'],
    'Keywords': ['Kata Kunci','Keywords','Kata Kunci','Schlüsselwörter','Từ khóa','关键词','キーワード'],
    'Topics': ['Topik','Topics','Topik','Themen','Chủ đề','主题','トピック'],
    'Categories': ['Kategori','Categories','Kategori','Kategorien','Danh mục','类别','カテゴリー'],
    'Costs': ['Biaya','Costs','Kos','Kosten','Chi phí','费用','費用'],
    'Housing': ['Perumahan','Housing','Perumahan','Wohnen','Nhà ở','住房','住宅'],
    'Simulator': ['Simulator','Simulator','Simulator','Simulator','Mô phỏng','模拟器','シミュレーター'],
    'Methodology': ['Metodologi','Methodology','Metodologi','Methodik','Phương pháp','方法论','方法論'],
    'Save': ['Simpan','Save','Simpan','Speichern','Lưu','保存','保存'],
    'Cancel': ['Batal','Cancel','Batal','Abbrechen','Hủy','取消','キャンセル'],
    'Delete': ['Hapus','Delete','Padam','Löschen','Xóa','删除','削除'],
    'Edit': ['Edit','Edit','Sunting','Bearbeiten','Chỉnh sửa','编辑','編集'],
    'Update': ['Perbarui','Update','Kemas Kini','Aktualisieren','Cập nhật','更新','更新'],
    'Add': ['Tambah','Add','Tambah','Hinzufügen','Thêm','添加','追加'],
    'Download': ['Unduh','Download','Muat Turun','Herunterladen','Tải xuống','下载','ダウンロード'],
    'Upload': ['Unggah','Upload','Muat Naik','Hochladen','Tải lên','上传','アップロード'],
    'Back': ['Kembali','Back','Kembali','Zurück','Quay lại','返回','戻る'],
    'Next': ['Berikutnya','Next','Seterusnya','Weiter','Tiếp theo','下一步','次へ'],
    'Previous': ['Sebelumnya','Previous','Sebelumnya','Zurück','Trước','上一步','前へ'],
    'View Details': ['Lihat Detail','View Details','Lihat Butiran','Details ansehen','Xem chi tiết','查看详情','詳細を見る'],
    'Loading...': ['Memuat...','Loading...','Memuatkan...','Wird geladen...','Đang tải...','加载中...','読み込み中...'],
    'No data available': ['Tidak ada data','No data available','Tiada data','Keine Daten verfügbar','Không có dữ liệu','暂无数据','データがありません'],
    'Language': ['Bahasa','Language','Bahasa','Sprache','Ngôn ngữ','语言','言語'],
    'Theme': ['Tema','Theme','Tema','Design','Giao diện','主题','テーマ']
  };

  Object.assign(PHRASES, {
    'Model Architecture': ['Arsitektur Model','Model Architecture','Seni Bina Model','Modellarchitektur','Kiến trúc mô hình','模型架构','モデルアーキテクチャ'],
    'Network Selection': ['Pemilihan Jaringan','Network Selection','Pemilihan Rangkaian','Netzwerkauswahl','Lựa chọn mạng','网络选择','ネットワーク選択'],
    'Training Configuration': ['Konfigurasi Pelatihan','Training Configuration','Konfigurasi Latihan','Trainingskonfiguration','Cấu hình huấn luyện','训练配置','トレーニング設定'],
    'Training Dynamics': ['Dinamika Pelatihan','Training Dynamics','Dinamik Latihan','Trainingsdynamik','Diễn biến huấn luyện','训练动态','トレーニング推移'],
    'Loss Curve': ['Kurva Loss','Loss Curve','Lengkung Kehilangan','Verlustkurve','Đường cong mất mát','损失曲线','損失曲線'],
    'Accuracy': ['Akurasi','Accuracy','Ketepatan','Genauigkeit','Độ chính xác','准确率','精度'],
    'Validation Accuracy': ['Akurasi Validasi','Validation Accuracy','Ketepatan Pengesahan','Validierungsgenauigkeit','Độ chính xác xác thực','验证准确率','検証精度'],
    'Training Loss': ['Loss Pelatihan','Training Loss','Kehilangan Latihan','Trainingsverlust','Mất mát huấn luyện','训练损失','トレーニング損失'],
    'Validation Loss': ['Loss Validasi','Validation Loss','Kehilangan Pengesahan','Validierungsverlust','Mất mát xác thực','验证损失','検証損失'],
    'Performance': ['Performa','Performance','Prestasi','Leistung','Hiệu suất','性能','パフォーマンス'],
    'Architecture': ['Arsitektur','Architecture','Seni Bina','Architektur','Kiến trúc','架构','アーキテクチャ'],
    'Data Explorer': ['Penjelajah Data','Data Explorer','Peneroka Data','Daten-Explorer','Trình khám phá dữ liệu','数据浏览器','データエクスプローラー'],
    'Model Comparison': ['Perbandingan Model','Model Comparison','Perbandingan Model','Modellvergleich','So sánh mô hình','模型对比','モデル比較'],
    'Feature Importance': ['Pentingnya Fitur','Feature Importance','Kepentingan Ciri','Merkmalsbedeutung','Tầm quan trọng của đặc trưng','特征重要性','特徴量重要度'],
    'System Status': ['Status Sistem','System Status','Status Sistem','Systemstatus','Trạng thái hệ thống','系统状态','システム状態'],
    'Recent Activity': ['Aktivitas Terbaru','Recent Activity','Aktiviti Terkini','Letzte Aktivität','Hoạt động gần đây','最近活动','最近のアクティビティ'],
    'Quick Actions': ['Tindakan Cepat','Quick Actions','Tindakan Pantas','Schnellaktionen','Thao tác nhanh','快捷操作','クイック操作'],
    'Open': ['Buka','Open','Buka','Öffnen','Mở','打开','開く'],
    'Close': ['Tutup','Close','Tutup','Schließen','Đóng','关闭','閉じる'],
    'Menu': ['Menu','Menu','Menu','Menü','Trình đơn','菜单','メニュー'],
    'Light': ['Terang','Light','Cerah','Hell','Sáng','浅色','ライト'],
    'Dark': ['Gelap','Dark','Gelap','Dunkel','Tối','深色','ダーク'],
    'Appearance': ['Tampilan','Appearance','Penampilan','Darstellung','Giao diện','外观','外観'],
    'Select language': ['Pilih bahasa','Select language','Pilih bahasa','Sprache auswählen','Chọn ngôn ngữ','选择语言','言語を選択'],
    'Change theme': ['Ganti tema','Change theme','Tukar tema','Design wechseln','Đổi giao diện','切换主题','テーマを変更'],
    'Refresh': ['Segarkan','Refresh','Muat Semula','Aktualisieren','Làm mới','刷新','更新'],
    'Apply': ['Terapkan','Apply','Gunakan','Anwenden','Áp dụng','应用','適用'],
    'Reset': ['Atur Ulang','Reset','Tetapkan Semula','Zurücksetzen','Đặt lại','重置','リセット'],
    'Submit': ['Kirim','Submit','Hantar','Senden','Gửi','提交','送信'],
    'Export': ['Ekspor','Export','Eksport','Exportieren','Xuất','导出','エクスポート'],
    'Import': ['Impor','Import','Import','Importieren','Nhập','导入','インポート'],
    'Filter': ['Filter','Filter','Tapis','Filter','Bộ lọc','筛选','フィルター'],
    'Sort': ['Urutkan','Sort','Isih','Sortieren','Sắp xếp','排序','並べ替え'],
    'Status': ['Status','Status','Status','Status','Trạng thái','状态','ステータス'],
    'Name': ['Nama','Name','Nama','Name','Tên','名称','名前'],
    'Description': ['Deskripsi','Description','Penerangan','Beschreibung','Mô tả','描述','説明'],
    'Date': ['Tanggal','Date','Tarikh','Datum','Ngày','日期','日付'],
    'Actions': ['Tindakan','Actions','Tindakan','Aktionen','Thao tác','操作','操作'],
    'Active': ['Aktif','Active','Aktif','Aktiv','Đang hoạt động','活跃','有効'],
    'Inactive': ['Tidak Aktif','Inactive','Tidak Aktif','Inaktiv','Không hoạt động','未启用','無効'],
    'Completed': ['Selesai','Completed','Selesai','Abgeschlossen','Hoàn thành','已完成','完了'],
    'Pending': ['Menunggu','Pending','Menunggu','Ausstehend','Đang chờ','待处理','保留中'],
    'Error': ['Kesalahan','Error','Ralat','Fehler','Lỗi','错误','エラー'],
    'Success': ['Berhasil','Success','Berjaya','Erfolgreich','Thành công','成功','成功'],
    'All': ['Semua','All','Semua','Alle','Tất cả','全部','すべて'],
    'Today': ['Hari Ini','Today','Hari Ini','Heute','Hôm nay','今天','今日'],
    'This Week': ['Minggu Ini','This Week','Minggu Ini','Diese Woche','Tuần này','本周','今週'],
    'This Month': ['Bulan Ini','This Month','Bulan Ini','Dieser Monat','Tháng này','本月','今月'],
    'Documentation': ['Dokumentasi','Documentation','Dokumentasi','Dokumentation','Tài liệu','文档','ドキュメント'],
    'Help': ['Bantuan','Help','Bantuan','Hilfe','Trợ giúp','帮助','ヘルプ'],
    'Log out': ['Keluar','Log out','Log keluar','Abmelden','Đăng xuất','退出登录','ログアウト'],
    'Sign in': ['Masuk','Sign in','Log masuk','Anmelden','Đăng nhập','登录','ログイン'],
    'Learn more': ['Pelajari Lebih Lanjut','Learn more','Ketahui lebih lanjut','Mehr erfahren','Tìm hiểu thêm','了解更多','詳しく見る'],
    'View all': ['Lihat Semua','View all','Lihat Semua','Alle anzeigen','Xem tất cả','查看全部','すべて表示'],
    'No results found': ['Tidak ada hasil','No results found','Tiada hasil ditemui','Keine Ergebnisse gefunden','Không tìm thấy kết quả','未找到结果','結果が見つかりません'],
    'Try again': ['Coba Lagi','Try again','Cuba Lagi','Erneut versuchen','Thử lại','重试','再試行'],
    'Loading': ['Memuat','Loading','Memuatkan','Wird geladen','Đang tải','加载中','読み込み中']
  });



  Object.assign(PHRASES, {
    'Feedback Explorer': ['Penjelajah Umpan Balik','Feedback Explorer','Peneroka Maklum Balas','Feedback-Explorer','Trình khám phá phản hồi','反馈浏览器','フィードバックエクスプローラー'],
    'Submit Feedback': ['Kirim Umpan Balik','Submit Feedback','Hantar Maklum Balas','Feedback senden','Gửi phản hồi','提交反馈','フィードバックを送信'],
    'Topic Analysis': ['Analisis Topik','Topic Analysis','Analisis Topik','Themenanalyse','Phân tích chủ đề','主题分析','トピック分析'],
    'Model Evaluation': ['Evaluasi Model','Model Evaluation','Penilaian Model','Modellbewertung','Đánh giá mô hình','模型评估','モデル評価'],
    'Enterprise RAG': ['RAG Perusahaan','Enterprise RAG','RAG Perusahaan','Enterprise-RAG','RAG doanh nghiệp','企业级 RAG','エンタープライズ RAG'],
    'AI Support': ['Dukungan AI','AI Support','Sokongan AI','KI-Support','Hỗ trợ AI','AI 支持','AI サポート'],
    'ML Predict API': ['API Prediksi ML','ML Predict API','API Ramalan ML','ML-Prognose-API','API dự đoán ML','ML 预测 API','ML 予測 API'],
    'Talent Match': ['Pencocokan Talenta','Talent Match','Padanan Bakat','Talentabgleich','Ghép nối nhân tài','人才匹配','人材マッチング'],
    'Doc Intel': ['Intelijen Dokumen','Doc Intel','Risikan Dokumen','Dokumentenintelligenz','Trí tuệ tài liệu','文档智能','文書インテリジェンス'],
    'ROI Estimator': ['Estimasi ROI','ROI Estimator','Penganggar ROI','ROI-Schätzer','Ước tính ROI','ROI 估算器','ROI 推定'],
    'Knowledge Base': ['Basis Pengetahuan','Knowledge Base','Pangkalan Pengetahuan','Wissensdatenbank','Cơ sở kiến thức','知识库','ナレッジベース'],
    'New Ticket': ['Tiket Baru','New Ticket','Tiket Baharu','Neues Ticket','Phiếu mới','新工单','新規チケット'],
    'Incident Monitoring': ['Pemantauan Insiden','Incident Monitoring','Pemantauan Insiden','Vorfallüberwachung','Giám sát sự cố','事件监控','インシデント監視'],
    'Academic Evidence': ['Bukti Akademik','Academic Evidence','Bukti Akademik','Akademische Nachweise','Minh chứng học thuật','学术证明','学術的証拠'],
    'Evidence Hub': ['Pusat Bukti','Evidence Hub','Hab Bukti','Nachweiszentrum','Trung tâm minh chứng','证据中心','証拠ハブ'],
    'Publications': ['Publikasi','Publications','Penerbitan','Publikationen','Ấn phẩm','出版物','出版物'],
    'Education': ['Pendidikan','Education','Pendidikan','Ausbildung','Giáo dục','教育','学歴'],
    'Awards': ['Penghargaan','Awards','Anugerah','Auszeichnungen','Giải thưởng','奖项','受賞歴'],
    'URL Shortener': ['Penyingkat URL','URL Shortener','Pemendek URL','URL-Kürzer','Trình rút gọn URL','URL 缩短器','URL 短縮'],
    'Cost Simulator': ['Simulator Biaya','Cost Simulator','Simulator Kos','Kostensimulator','Trình mô phỏng chi phí','费用模拟器','費用シミュレーター'],
    'Subnet Calculator': ['Kalkulator Subnet','Subnet Calculator','Kalkulator Subnet','Subnetzrechner','Máy tính mạng con','子网计算器','サブネット計算機'],
    'Student Performance': ['Performa Siswa','Student Performance','Prestasi Pelajar','Studierendenleistung','Kết quả học tập','学生表现','学生パフォーマンス'],
    'Data Studio': ['Studio Data','Data Studio','Studio Data','Datenstudio','Studio dữ liệu','数据工作室','データスタジオ'],
    'Run Prediction': ['Jalankan Prediksi','Run Prediction','Jalankan Ramalan','Prognose starten','Chạy dự đoán','运行预测','予測を実行'],
    'View Report': ['Lihat Laporan','View Report','Lihat Laporan','Bericht anzeigen','Xem báo cáo','查看报告','レポートを見る']
  });


  Object.assign(PHRASES, {
    'Privacy choice': ['Pilihan privasi','Privacy choice','Pilihan privasi','Datenschutzauswahl','Lựa chọn quyền riêng tư','隐私选择','プライバシー設定'],
    'Allow cookies to continue': ['Izinkan cookie untuk melanjutkan','Allow cookies to continue','Benarkan kuki untuk meneruskan','Cookies zum Fortfahren zulassen','Cho phép cookie để tiếp tục','允许 Cookie 以继续','続行するには Cookie を許可'],
    'Allow cookies & continue': ['Izinkan cookie dan lanjutkan','Allow cookies & continue','Benarkan kuki dan teruskan','Cookies zulassen und fortfahren','Cho phép cookie và tiếp tục','允许 Cookie 并继续','Cookie を許可して続行'],
    'Essential only': ['Hanya esensial','Essential only','Asas sahaja','Nur erforderliche','Chỉ thiết yếu','仅必要','必須のみ'],
    'Toggle theme': ['Ganti tema','Toggle theme','Tukar tema','Design wechseln','Đổi giao diện','切换主题','テーマ切替'],
    'Close navigation': ['Tutup navigasi','Close navigation','Tutup navigasi','Navigation schließen','Đóng điều hướng','关闭导航','ナビゲーションを閉じる'],
    'Open navigation': ['Buka navigasi','Open navigation','Buka navigasi','Navigation öffnen','Mở điều hướng','打开导航','ナビゲーションを開く'],
    'Menu': ['Menu','Menu','Menu','Menü','Menu','菜单','メニュー'],
    'Navigation': ['Navigasi','Navigation','Navigasi','Navigation','Điều hướng','导航','ナビゲーション'],
    'Research Navigation': ['Navigasi Riset','Research Navigation','Navigasi Penyelidikan','Forschungsnavigation','Điều hướng nghiên cứu','研究导航','研究ナビゲーション'],
    'Architecture Modules': ['Modul Arsitektur','Architecture Modules','Modul Seni Bina','Architekturmodule','Mô-đun kiến trúc','架构模块','アーキテクチャモジュール'],
    'interactive workspaces': ['ruang kerja interaktif','interactive workspaces','ruang kerja interaktif','interaktive Arbeitsbereiche','không gian làm việc tương tác','交互式工作区','インタラクティブワークスペース'],
    'Experiment Tracker': ['Pelacak Eksperimen','Experiment Tracker','Penjejak Eksperimen','Experiment-Tracker','Trình theo dõi thử nghiệm','实验跟踪器','実験トラッカー'],
    'Research Dashboard': ['Dasbor Riset','Research Dashboard','Papan Pemuka Penyelidikan','Forschungs-Dashboard','Bảng điều khiển nghiên cứu','研究仪表板','研究ダッシュボード'],
    'Image Classification': ['Klasifikasi Gambar','Image Classification','Pengelasan Imej','Bildklassifizierung','Phân loại hình ảnh','图像分类','画像分類'],
    'Student Feedback Sentiment Analysis': ['Analisis Sentimen Umpan Balik Siswa','Student Feedback Sentiment Analysis','Analisis Sentimen Maklum Balas Pelajar','Stimmungsanalyse von Studierendenfeedback','Phân tích cảm xúc phản hồi sinh viên','学生反馈情感分析','学生フィードバック感情分析'],
    'NLP Dashboard': ['Dasbor NLP','NLP Dashboard','Papan Pemuka NLP','NLP-Dashboard','Bảng điều khiển NLP','NLP 仪表板','NLP ダッシュボード'],
    'Positive': ['Positif','Positive','Positif','Positiv','Tích cực','正面','ポジティブ'],
    'Neutral': ['Netral','Neutral','Neutral','Neutral','Trung lập','中性','中立'],
    'Negative': ['Negatif','Negative','Negatif','Negativ','Tiêu cực','负面','ネガティブ'],
    'Open': ['Terbuka','Open','Terbuka','Offen','Mở','打开','未対応'],
    'Reviewed': ['Ditinjau','Reviewed','Disemak','Geprüft','Đã xem xét','已审核','確認済み'],
    'Archived': ['Diarsipkan','Archived','Diarkibkan','Archiviert','Đã lưu trữ','已归档','アーカイブ済み'],
    'Export JSON': ['Ekspor JSON','Export JSON','Eksport JSON','JSON exportieren','Xuất JSON','导出 JSON','JSON をエクスポート'],
    'Export CSV': ['Ekspor CSV','Export CSV','Eksport CSV','CSV exportieren','Xuất CSV','导出 CSV','CSV をエクスポート'],
    'Import JSON': ['Impor JSON','Import JSON','Import JSON','JSON importieren','Nhập JSON','导入 JSON','JSON をインポート'],
    'Clear form': ['Bersihkan formulir','Clear form','Kosongkan borang','Formular leeren','Xóa biểu mẫu','清空表单','フォームをクリア'],
    'Restore demo data': ['Pulihkan data demo','Restore demo data','Pulihkan data demo','Demodaten wiederherstellen','Khôi phục dữ liệu mẫu','恢复演示数据','デモデータを復元'],
    'Delete selected': ['Hapus yang dipilih','Delete selected','Padam yang dipilih','Auswahl löschen','Xóa mục đã chọn','删除所选项','選択項目を削除'],
    'Student Explorer': ['Penjelajah Siswa','Student Explorer','Peneroka Pelajar','Studierenden-Explorer','Trình khám phá sinh viên','学生浏览器','学生エクスプローラー'],
    'Prediction Model Lab': ['Lab Model Prediksi','Prediction Model Lab','Makmal Model Ramalan','Prognosemodell-Labor','Phòng thí nghiệm mô hình dự đoán','预测模型实验室','予測モデルラボ'],
    'Fairness Audit': ['Audit Keadilan','Fairness Audit','Audit Keadilan','Fairness-Audit','Kiểm tra công bằng','公平性审计','公平性監査'],
    'Student Recommendations': ['Rekomendasi Siswa','Student Recommendations','Cadangan Pelajar','Empfehlungen für Studierende','Đề xuất cho sinh viên','学生建议','学生向け推奨事項'],
    'Performance Report': ['Laporan Performa','Performance Report','Laporan Prestasi','Leistungsbericht','Báo cáo hiệu suất','表现报告','パフォーマンスレポート'],
    'Low risk': ['Risiko rendah','Low risk','Risiko rendah','Niedriges Risiko','Rủi ro thấp','低风险','低リスク'],
    'Medium risk': ['Risiko sedang','Medium risk','Risiko sederhana','Mittleres Risiko','Rủi ro trung bình','中风险','中リスク'],
    'High risk': ['Risiko tinggi','High risk','Risiko tinggi','Hohes Risiko','Rủi ro cao','高风险','高リスク'],
    'Active': ['Aktif','Active','Aktif','Aktiv','Hoạt động','活跃','アクティブ'],
    'Completed': ['Selesai','Completed','Selesai','Abgeschlossen','Hoàn thành','已完成','完了'],
    'Save & predict': ['Simpan dan prediksi','Save & predict','Simpan dan ramal','Speichern und prognostizieren','Lưu và dự đoán','保存并预测','保存して予測'],
    'Recalculate all': ['Hitung ulang semua','Recalculate all','Kira semula semua','Alle neu berechnen','Tính lại tất cả','全部重新计算','すべて再計算'],
    'Print report': ['Cetak laporan','Print report','Cetak laporan','Bericht drucken','In báo cáo','打印报告','レポートを印刷'],
    'Loading local metrics, governance data, solution blueprints, MLOps, RAG, and interactive architecture modules.': ['Memuat metrik lokal, data tata kelola, cetak biru solusi, MLOps, RAG, dan modul arsitektur interaktif.','Loading local metrics, governance data, solution blueprints, MLOps, RAG, and interactive architecture modules.','Memuatkan metrik tempatan, data tadbir urus, pelan tindakan penyelesaian, MLOps, RAG dan modul seni bina interaktif.','Lokale Metriken, Governance-Daten, Lösungsblaupausen, MLOps, RAG und interaktive Architekturmodule werden geladen.','Đang tải chỉ số cục bộ, dữ liệu quản trị, bản thiết kế giải pháp, MLOps, RAG và mô-đun kiến trúc tương tác.','正在加载本地指标、治理数据、解决方案蓝图、MLOps、RAG 和交互式架构模块。','ローカル指標、ガバナンスデータ、ソリューション設計、MLOps、RAG、インタラクティブなアーキテクチャモジュールを読み込んでいます。'],
    'Website tetap dapat dilihat. Pilih cookie analitik untuk membantu menghitung pengunjung unik, atau lanjutkan hanya dengan cookie esensial.': ['Website tetap dapat dilihat. Pilih cookie analitik untuk membantu menghitung pengunjung unik, atau lanjutkan hanya dengan cookie esensial.','The website remains available. Choose analytics cookies to help count unique visitors, or continue with essential cookies only.','Laman web kekal boleh dilihat. Pilih kuki analitik untuk membantu mengira pelawat unik, atau teruskan dengan kuki asas sahaja.','Die Website bleibt verfügbar. Wählen Sie Analyse-Cookies zur Zählung eindeutiger Besucher oder fahren Sie nur mit erforderlichen Cookies fort.','Trang web vẫn có thể xem được. Chọn cookie phân tích để hỗ trợ đếm khách truy cập duy nhất hoặc chỉ tiếp tục với cookie thiết yếu.','网站仍可正常查看。请选择分析 Cookie 以帮助统计独立访客，或仅使用必要 Cookie 继续。','ウェブサイトは引き続き閲覧できます。ユニーク訪問者の集計に役立つ分析 Cookie を選択するか、必須 Cookie のみで続行してください。']
  });

  /* AI_ARCHITECT_COMPLETE_TRANSLATIONS_V625 */
  Object.assign(PHRASES, {"Executive Overview":["Ikhtisar Eksekutif","Executive Overview","Gambaran Keseluruhan Eksekutif","Übersicht für Führungskräfte","Tổng quan điều hành","执行概览","エグゼクティブ概要"],"AI Enterprise Solutions Architecture Portfolio":["Portofolio Arsitektur Solusi AI Perusahaan","AI Enterprise Solutions Architecture Portfolio","Portfolio Seni Bina Penyelesaian AI Perusahaan","Portfolio für Enterprise-KI-Lösungsarchitektur","Hồ sơ kiến trúc giải pháp AI doanh nghiệp","企业 AI 解决方案架构作品集","エンタープライズAIソリューション・アーキテクチャ・ポートフォリオ"],"All Systems Nominal":["Semua Sistem Normal","All Systems Nominal","Semua Sistem Normal","Alle Systeme im Normalbetrieb","Tất cả hệ thống hoạt động bình thường","所有系统运行正常","すべてのシステムは正常です"],"Download Report":["Unduh Laporan","Download Report","Muat Turun Laporan","Bericht herunterladen","Tải báo cáo","下载报告","レポートをダウンロード"],"Deploy Cluster":["Terapkan Klaster","Deploy Cluster","Laksanakan Kluster","Cluster bereitstellen","Triển khai cụm","部署集群","クラスターをデプロイ"],"Architecture":["Arsitektur","Architecture","Seni Bina","Architektur","Kiến trúc","架构","アーキテクチャ"],"Distributed AI Mesh":["Mesh AI Terdistribusi","Distributed AI Mesh","Jaringan AI Teragih","Verteiltes KI-Mesh","Lưới AI phân tán","分布式 AI 网格","分散AIメッシュ"],"Inference Latency":["Latensi Inferensi","Inference Latency","Kependaman Inferens","Inferenzlatenz","Độ trễ suy luận","推理延迟","推論レイテンシ"],"Requests/Hour":["Permintaan/Jam","Requests/Hour","Permintaan/Jam","Anfragen/Stunde","Yêu cầu/Giờ","请求/小时","リクエスト/時"],"Active Models":["Model Aktif","Active Models","Model Aktif","Aktive Modelle","Mô hình đang hoạt động","活跃模型","アクティブモデル"],"Data Processed":["Data Diproses","Data Processed","Data Diproses","Verarbeitete Daten","Dữ liệu đã xử lý","已处理数据","処理済みデータ"],"API Latency P99":["Latensi API P99","API Latency P99","Kependaman API P99","API-Latenz P99","Độ trễ API P99","API 延迟 P99","APIレイテンシ P99"],"Security Score":["Skor Keamanan","Security Score","Skor Keselamatan","Sicherheitsbewertung","Điểm bảo mật","安全评分","セキュリティスコア"],"Platform Modules":["Modul Platform","Platform Modules","Modul Platform","Plattformmodule","Mô-đun nền tảng","平台模块","プラットフォームモジュール"],"12 Active":["12 Aktif","12 Active","12 Aktif","12 aktiv","12 đang hoạt động","12 个活跃","12件稼働中"],"Enterprise RAG Assistant":["Asisten RAG Perusahaan","Enterprise RAG Assistant","Pembantu RAG Perusahaan","Enterprise-RAG-Assistent","Trợ lý RAG doanh nghiệp","企业 RAG 助手","エンタープライズRAGアシスタント"],"Document Q&A with citation grounding":["Tanya jawab dokumen dengan landasan sitasi","Document Q&A with citation grounding","Soal jawab dokumen berasaskan petikan","Dokumenten-Q&A mit Quellenbelegen","Hỏi đáp tài liệu có căn cứ trích dẫn","带引用依据的文档问答","引用根拠付き文書Q&A"],"Intent classification & ticket routing":["Klasifikasi intent & perutean tiket","Intent classification & ticket routing","Pengelasan niat & penghalaan tiket","Intent-Klassifizierung und Ticket-Routing","Phân loại ý định và định tuyến phiếu","意图分类与工单路由","意図分類とチケットルーティング"],"Churn, sales & risk prediction engine":["Mesin prediksi churn, penjualan & risiko","Churn, sales & risk prediction engine","Enjin ramalan churn, jualan & risiko","Prognose-Engine für Abwanderung, Umsatz und Risiko","Công cụ dự đoán rời bỏ, doanh số và rủi ro","流失、销售与风险预测引擎","解約・売上・リスク予測エンジン"],"Drift detection & model versioning":["Deteksi drift & versi model","Drift detection & model versioning","Pengesanan hanyutan & versi model","Drift-Erkennung und Modellversionierung","Phát hiện độ lệch và quản lý phiên bản mô hình","漂移检测与模型版本管理","ドリフト検知とモデルバージョン管理"],"Secure AI Portal":["Portal AI Aman","Secure AI Portal","Portal AI Selamat","Sicheres KI-Portal","Cổng AI bảo mật","安全 AI 门户","セキュアAIポータル"],"RBAC, audit logs & compliance":["RBAC, log audit & kepatuhan","RBAC, audit logs & compliance","RBAC, log audit & pematuhan","RBAC, Auditprotokolle und Compliance","RBAC, nhật ký kiểm toán và tuân thủ","RBAC、审计日志与合规","RBAC・監査ログ・コンプライアンス"],"5 enterprise architecture blueprints":["5 cetak biru arsitektur perusahaan","5 enterprise architecture blueprints","5 pelan seni bina perusahaan","5 Enterprise-Architekturvorlagen","5 bản thiết kế kiến trúc doanh nghiệp","5 个企业架构蓝图","5つのエンタープライズ・アーキテクチャ設計図"],"5 Blueprints":["5 Cetak Biru","5 Blueprints","5 Pelan Tindakan","5 Blaupausen","5 Bản thiết kế","5 个蓝图","5つの設計図"],"Talent Matching":["Pencocokan Talenta","Talent Matching","Padanan Bakat","Talent-Matching","Ghép nối nhân tài","人才匹配","人材マッチング"],"Resume scoring & bias detection":["Penilaian resume & deteksi bias","Resume scoring & bias detection","Pemarkahan resume & pengesanan bias","Lebenslaufbewertung und Bias-Erkennung","Chấm điểm hồ sơ và phát hiện thiên lệch","简历评分与偏见检测","履歴書スコアリングとバイアス検知"],"Extraction, summarization & search":["Ekstraksi, peringkasan & pencarian","Extraction, summarization & search","Pengekstrakan, peringkasan & carian","Extraktion, Zusammenfassung und Suche","Trích xuất, tóm tắt và tìm kiếm","提取、摘要与搜索","抽出・要約・検索"],"Agentic Workflows":["Alur Kerja Agen","Agentic Workflows","Aliran Kerja Ejen","Agentische Workflows","Quy trình tác nhân","智能体工作流","エージェント型ワークフロー"],"Multi-step AI agent with HITL":["Agen AI multi-langkah dengan HITL","Multi-step AI agent with HITL","Ejen AI berbilang langkah dengan HITL","Mehrstufiger KI-Agent mit HITL","Tác nhân AI nhiều bước với HITL","带 HITL 的多步骤 AI 智能体","HITL対応の多段階AIエージェント"],"ROI Estimator":["Estimator ROI","ROI Estimator","Penganggar ROI","ROI-Schätzer","Công cụ ước tính ROI","ROI 估算器","ROI見積もり"],"Cost modeling & break-even analysis":["Pemodelan biaya & analisis titik impas","Cost modeling & break-even analysis","Pemodelan kos & analisis pulang modal","Kostenmodellierung und Break-even-Analyse","Mô hình chi phí và phân tích hòa vốn","成本建模与盈亏平衡分析","コストモデリングと損益分岐分析"],"Cloud Comparison":["Perbandingan Cloud","Cloud Comparison","Perbandingan Awan","Cloud-Vergleich","So sánh đám mây","云比较","クラウド比較"],"AWS vs Azure vs GCP scoring matrix":["Matriks penilaian AWS vs Azure vs GCP","AWS vs Azure vs GCP scoring matrix","Matriks pemarkahan AWS vs Azure vs GCP","Bewertungsmatrix AWS vs. Azure vs. GCP","Ma trận chấm điểm AWS so với Azure so với GCP","AWS、Azure 与 GCP 评分矩阵","AWS・Azure・GCP評価マトリクス"],"AI Governance":["Tata Kelola AI","AI Governance","Tadbir Urus AI","KI-Governance","Quản trị AI","AI 治理","AIガバナンス"],"Risk register & compliance dashboard":["Daftar risiko & dasbor kepatuhan","Risk register & compliance dashboard","Daftar risiko & papan pemuka pematuhan","Risikoregister und Compliance-Dashboard","Sổ đăng ký rủi ro và bảng điều khiển tuân thủ","风险登记与合规仪表板","リスク登録簿とコンプライアンス・ダッシュボード"],"Enterprise RAG Knowledge Assistant":["Asisten Pengetahuan RAG Perusahaan","Enterprise RAG Knowledge Assistant","Pembantu Pengetahuan RAG Perusahaan","Enterprise-RAG-Wissensassistent","Trợ lý tri thức RAG doanh nghiệp","企业 RAG 知识助手","エンタープライズRAGナレッジアシスタント"],"Retrieval-Augmented Generation · 4 documents indexed":["Retrieval-Augmented Generation · 4 dokumen terindeks","Retrieval-Augmented Generation · 4 documents indexed","Penjanaan Berbantu Dapatan · 4 dokumen diindeks","Retrieval-Augmented Generation · 4 Dokumente indexiert","Sinh tăng cường truy xuất · Đã lập chỉ mục 4 tài liệu","检索增强生成 · 已索引 4 个文档","検索拡張生成 · 4文書を索引済み"],"Total Size":["Ukuran Total","Total Size","Jumlah Saiz","Gesamtgröße","Tổng dung lượng","总大小","合計サイズ"],"RAG Assistant":["Asisten RAG","RAG Assistant","Pembantu RAG","RAG-Assistent","Trợ lý RAG","RAG 助手","RAGアシスタント"],"Online · Knowledge base connected":["Online · Basis pengetahuan terhubung","Online · Knowledge base connected","Dalam talian · Pangkalan pengetahuan disambungkan","Online · Wissensbasis verbunden","Trực tuyến · Đã kết nối cơ sở tri thức","在线 · 知识库已连接","オンライン · ナレッジベース接続済み"],"Knowledge Base":["Basis Pengetahuan","Knowledge Base","Pangkalan Pengetahuan","Wissensbasis","Cơ sở tri thức","知识库","ナレッジベース"],"Suggested questions — click to ask":["Pertanyaan yang disarankan — klik untuk bertanya","Suggested questions — click to ask","Soalan dicadangkan — klik untuk bertanya","Vorgeschlagene Fragen — zum Fragen klicken","Câu hỏi gợi ý — nhấp để hỏi","建议问题 — 点击提问","おすすめの質問 — クリックして質問"],"Ask anything about your indexed knowledge base...":["Tanyakan apa saja tentang basis pengetahuan yang telah diindeks...","Ask anything about your indexed knowledge base...","Tanya apa sahaja tentang pangkalan pengetahuan yang diindeks...","Fragen Sie alles zu Ihrer indexierten Wissensbasis...","Hỏi bất kỳ điều gì về cơ sở tri thức đã lập chỉ mục...","询问有关已索引知识库的任何问题……","索引済みナレッジベースについて何でも質問できます…"],"Answers are grounded in indexed documents. Always verify critical decisions with authoritative sources.":["Jawaban didasarkan pada dokumen terindeks. Selalu verifikasi keputusan penting dengan sumber otoritatif.","Answers are grounded in indexed documents. Always verify critical decisions with authoritative sources.","Jawapan berasaskan dokumen yang diindeks. Sentiasa sahkan keputusan penting dengan sumber berautoriti.","Antworten basieren auf indexierten Dokumenten. Prüfen Sie kritische Entscheidungen stets anhand maßgeblicher Quellen.","Câu trả lời dựa trên tài liệu đã lập chỉ mục. Luôn xác minh quyết định quan trọng bằng nguồn có thẩm quyền.","答案以已索引文档为依据。关键决策请始终通过权威来源核实。","回答は索引済み文書に基づきます。重要な判断は必ず権威ある情報源で確認してください。"],"Extracted Text":["Teks Terekstraksi","Extracted Text","Teks Diekstrak","Extrahierter Text","Văn bản đã trích xuất","提取文本","抽出テキスト"],"Ask Questions":["Ajukan Pertanyaan","Ask Questions","Tanya Soalan","Fragen stellen","Đặt câu hỏi","提问","質問する"],"Key Points":["Poin Utama","Key Points","Isi Utama","Kernaussagen","Điểm chính","要点","要点"],"AI Customer Support":["Dukungan Pelanggan AI","AI Customer Support","Sokongan Pelanggan AI","KI-Kundensupport","Hỗ trợ khách hàng bằng AI","AI 客户支持","AIカスタマーサポート"],"Automated intent classification and routing":["Klasifikasi intent dan perutean otomatis","Automated intent classification and routing","Pengelasan niat dan penghalaan automatik","Automatisierte Intent-Klassifizierung und Weiterleitung","Phân loại ý định và định tuyến tự động","自动意图分类与路由","自動意図分類とルーティング"],"Simulate New Ticket":["Simulasikan Tiket Baru","Simulate New Ticket","Simulasikan Tiket Baharu","Neues Ticket simulieren","Mô phỏng phiếu mới","模拟新工单","新規チケットをシミュレート"],"AI Classification":["Klasifikasi AI","AI Classification","Pengelasan AI","KI-Klassifizierung","Phân loại AI","AI 分类","AI分類"],"Auto-Routed":["Dirutekan Otomatis","Auto-Routed","Dihalakan Automatik","Automatisch weitergeleitet","Định tuyến tự động","自动路由","自動ルーティング済み"],"Intent":["Intent","Intent","Niat","Intent","Ý định","意图","意図"],"Confidence":["Keyakinan","Confidence","Keyakinan","Konfidenz","Độ tin cậy","置信度","信頼度"],"Suggested Action:":["Tindakan yang Disarankan:","Suggested Action:","Tindakan Dicadangkan:","Empfohlene Maßnahme:","Hành động đề xuất:","建议操作：","推奨アクション："],"Authentication":["Autentikasi","Authentication","Pengesahan","Authentifizierung","Xác thực","身份验证","認証"],"Technical":["Teknis","Technical","Teknikal","Technisch","Kỹ thuật","技术","技術"],"High priority issue. Escalated to human agent.":["Masalah prioritas tinggi. Diteruskan ke agen manusia.","High priority issue. Escalated to human agent.","Isu keutamaan tinggi. Ditingkatkan kepada ejen manusia.","Problem mit hoher Priorität. An einen menschlichen Agenten eskaliert.","Vấn đề ưu tiên cao. Đã chuyển cho nhân viên hỗ trợ.","高优先级问题。已升级至人工客服。","優先度の高い問題です。担当者にエスカレーションしました。"],"Reset the SSO session.":["Atur ulang sesi SSO.","Reset the SSO session.","Tetapkan semula sesi SSO.","SSO-Sitzung zurücksetzen.","Đặt lại phiên SSO.","重置 SSO 会话。","SSOセッションをリセットします。"],"Real-time inference and feature importance":["Inferensi real-time dan kepentingan fitur","Real-time inference and feature importance","Inferens masa nyata dan kepentingan ciri","Echtzeit-Inferenz und Merkmalsbedeutung","Suy luận thời gian thực và tầm quan trọng của đặc trưng","实时推理与特征重要性","リアルタイム推論と特徴量重要度"],"Inference Parameters":["Parameter Inferensi","Inference Parameters","Parameter Inferens","Inferenzparameter","Tham số suy luận","推理参数","推論パラメーター"],"Select model and input features":["Pilih model dan fitur input","Select model and input features","Pilih model dan ciri input","Modell und Eingabemerkmale auswählen","Chọn mô hình và đặc trưng đầu vào","选择模型和输入特征","モデルと入力特徴量を選択"],"Prediction Results":["Hasil Prediksi","Prediction Results","Keputusan Ramalan","Vorhersageergebnisse","Kết quả dự đoán","预测结果","予測結果"],"Output and interpretability":["Output dan interpretabilitas","Output and interpretability","Output dan kebolehtafsiran","Ausgabe und Interpretierbarkeit","Đầu ra và khả năng diễn giải","输出与可解释性","出力と解釈可能性"],"Run Prediction":["Jalankan Prediksi","Run Prediction","Jalankan Ramalan","Vorhersage ausführen","Chạy dự đoán","运行预测","予測を実行"],"Run a prediction to see results":["Jalankan prediksi untuk melihat hasil","Run a prediction to see results","Jalankan ramalan untuk melihat keputusan","Führen Sie eine Vorhersage aus, um Ergebnisse zu sehen","Chạy dự đoán để xem kết quả","运行预测以查看结果","予測を実行して結果を表示"],"MLOps Monitoring":["Pemantauan MLOps","MLOps Monitoring","Pemantauan MLOps","MLOps-Monitoring","Giám sát MLOps","MLOps 监控","MLOpsモニタリング"],"Model performance, drift, and version registry":["Performa model, drift, dan registri versi","Model performance, drift, and version registry","Prestasi model, hanyutan dan daftar versi","Modellleistung, Drift und Versionsregister","Hiệu suất mô hình, độ lệch và sổ đăng ký phiên bản","模型性能、漂移与版本注册表","モデル性能・ドリフト・バージョンレジストリ"],"P99 Latency":["Latensi P99","P99 Latency","Kependaman P99","P99-Latenz","Độ trễ P99","P99 延迟","P99レイテンシ"],"Error Rate":["Tingkat Kesalahan","Error Rate","Kadar Ralat","Fehlerrate","Tỷ lệ lỗi","错误率","エラー率"],"Data Drift Score":["Skor Drift Data","Data Drift Score","Skor Hanyutan Data","Daten-Drift-Score","Điểm độ lệch dữ liệu","数据漂移评分","データドリフトスコア"],"Accuracy":["Akurasi","Accuracy","Ketepatan","Genauigkeit","Độ chính xác","准确率","精度"],"Traffic & Errors":["Trafik & Kesalahan","Traffic & Errors","Trafik & Ralat","Traffic und Fehler","Lưu lượng và lỗi","流量与错误","トラフィックとエラー"],"Active Alerts":["Peringatan Aktif","Active Alerts","Amaran Aktif","Aktive Warnungen","Cảnh báo đang hoạt động","活跃警报","アクティブアラート"],"Model Registry":["Registri Model","Model Registry","Daftar Model","Modellregister","Sổ đăng ký mô hình","模型注册表","モデルレジストリ"],"Deployed models and versions":["Model dan versi yang diterapkan","Deployed models and versions","Model dan versi yang dilaksanakan","Bereitgestellte Modelle und Versionen","Mô hình và phiên bản đã triển khai","已部署的模型和版本","デプロイ済みモデルとバージョン"],"Model Name":["Nama Model","Model Name","Nama Model","Modellname","Tên mô hình","模型名称","モデル名"],"Version":["Versi","Version","Versi","Version","Phiên bản","版本","バージョン"],"Status":["Status","Status","Status","Status","Trạng thái","状态","ステータス"],"Deployed At":["Diterapkan Pada","Deployed At","Dilaksanakan Pada","Bereitgestellt am","Triển khai lúc","部署时间","デプロイ日時"],"Within SLO":["Dalam SLO","Within SLO","Dalam SLO","Innerhalb des SLO","Trong SLO","符合 SLO","SLO内"],"Nearing threshold (0.15)":["Mendekati ambang batas (0,15)","Nearing threshold (0.15)","Menghampiri ambang (0.15)","Nahe am Schwellenwert (0,15)","Gần ngưỡng (0,15)","接近阈值（0.15）","しきい値に接近（0.15）"],"Secure AI Architecture":["Arsitektur AI Aman","Secure AI Architecture","Seni Bina AI Selamat","Sichere KI-Architektur","Kiến trúc AI bảo mật","安全 AI 架构","セキュアAIアーキテクチャ"],"Compliance, audit trails, and access control":["Kepatuhan, jejak audit, dan kontrol akses","Compliance, audit trails, and access control","Pematuhan, jejak audit dan kawalan akses","Compliance, Audit-Trails und Zugriffskontrolle","Tuân thủ, dấu vết kiểm toán và kiểm soát truy cập","合规、审计追踪与访问控制","コンプライアンス・監査証跡・アクセス制御"],"Overall Security Posture":["Postur Keamanan Keseluruhan","Overall Security Posture","Postur Keselamatan Keseluruhan","Gesamtsicherheitslage","Tư thế bảo mật tổng thể","总体安全态势","総合セキュリティ態勢"],"SCORE / 100":["SKOR / 100","SCORE / 100","SKOR / 100","PUNKTZAHL / 100","ĐIỂM / 100","评分 / 100","スコア / 100"],"LOW RISK":["RISIKO RENDAH","LOW RISK","RISIKO RENDAH","GERINGES RISIKO","RỦI RO THẤP","低风险","低リスク"],"Compliance Checklist":["Daftar Periksa Kepatuhan","Compliance Checklist","Senarai Semak Pematuhan","Compliance-Checkliste","Danh sách kiểm tra tuân thủ","合规检查清单","コンプライアンス・チェックリスト"],"Real-time automated control verification":["Verifikasi kontrol otomatis secara real-time","Real-time automated control verification","Pengesahan kawalan automatik masa nyata","Automatisierte Kontrollprüfung in Echtzeit","Xác minh kiểm soát tự động theo thời gian thực","实时自动控制验证","リアルタイム自動統制検証"],"Data Privacy (PII/PHI)":["Privasi Data (PII/PHI)","Data Privacy (PII/PHI)","Privasi Data (PII/PHI)","Datenschutz (PII/PHI)","Quyền riêng tư dữ liệu (PII/PHI)","数据隐私（PII/PHI）","データプライバシー（PII/PHI）"],"API Security":["Keamanan API","API Security","Keselamatan API","API-Sicherheit","Bảo mật API","API 安全","APIセキュリティ"],"Access Control (RBAC)":["Kontrol Akses (RBAC)","Access Control (RBAC)","Kawalan Akses (RBAC)","Zugriffskontrolle (RBAC)","Kiểm soát truy cập (RBAC)","访问控制（RBAC）","アクセス制御（RBAC）"],"Audit Log":["Log Audit","Audit Log","Log Audit","Auditprotokoll","Nhật ký kiểm toán","审计日志","監査ログ"],"Immutable trail of access and modifications":["Jejak akses dan perubahan yang tidak dapat diubah","Immutable trail of access and modifications","Jejak akses dan pengubahsuaian yang tidak boleh diubah","Unveränderliche Spur von Zugriffen und Änderungen","Dấu vết bất biến về truy cập và sửa đổi","不可篡改的访问与修改记录","アクセスと変更の改ざん不能な履歴"],"Timestamp":["Stempel Waktu","Timestamp","Cap Masa","Zeitstempel","Dấu thời gian","时间戳","タイムスタンプ"],"User":["Pengguna","User","Pengguna","Benutzer","Người dùng","用户","ユーザー"],"Action":["Tindakan","Action","Tindakan","Aktion","Hành động","操作","アクション"],"Resource":["Sumber Daya","Resource","Sumber","Ressource","Tài nguyên","资源","リソース"],"IP Address":["Alamat IP","IP Address","Alamat IP","IP-Adresse","Địa chỉ IP","IP 地址","IPアドレス"],"Result":["Hasil","Result","Keputusan","Ergebnis","Kết quả","结果","結果"],"Review Required":["Perlu Ditinjau","Review Required","Semakan Diperlukan","Überprüfung erforderlich","Cần xem xét","需要审核","レビュー必須"],"Solution Blueprints":["Cetak Biru Solusi","Solution Blueprints","Pelan Penyelesaian","Lösungsblaupausen","Bản thiết kế giải pháp","解决方案蓝图","ソリューション設計図"],"Production-ready AI architectures designed for enterprise scale":["Arsitektur AI siap produksi yang dirancang untuk skala perusahaan","Production-ready AI architectures designed for enterprise scale","Seni bina AI sedia pengeluaran yang direka untuk skala perusahaan","Produktionsreife KI-Architekturen für den Unternehmenseinsatz","Kiến trúc AI sẵn sàng sản xuất được thiết kế cho quy mô doanh nghiệp","面向企业规模的生产就绪 AI 架构","エンタープライズ規模向けに設計された本番対応AIアーキテクチャ"],"Enterprise RAG Platform":["Platform RAG Perusahaan","Enterprise RAG Platform","Platform RAG Perusahaan","Enterprise-RAG-Plattform","Nền tảng RAG doanh nghiệp","企业 RAG 平台","エンタープライズRAGプラットフォーム"],"Production MLOps Pipeline":["Pipeline MLOps Produksi","Production MLOps Pipeline","Saluran MLOps Pengeluaran","Produktions-MLOps-Pipeline","Quy trình MLOps sản xuất","生产级 MLOps 流水线","本番MLOpsパイプライン"],"Grounded document Q&A with hybrid retrieval and citations.":["Tanya jawab dokumen berbasis bukti dengan retrieval hibrida dan sitasi.","Grounded document Q&A with hybrid retrieval and citations.","Soal jawab dokumen berasaskan bukti dengan dapatan hibrid dan petikan.","Belegtes Dokumenten-Q&A mit hybrider Suche und Zitaten.","Hỏi đáp tài liệu có căn cứ với truy xuất lai và trích dẫn.","基于证据的文档问答，支持混合检索与引用。","ハイブリッド検索と引用に基づく文書Q&A。"],"Intent classification and human escalation.":["Klasifikasi intent dan eskalasi manusia.","Intent classification and human escalation.","Pengelasan niat dan eskalasi manusia.","Intent-Klassifizierung und Eskalation an Menschen.","Phân loại ý định và chuyển tiếp cho con người.","意图分类与人工升级。","意図分類と担当者へのエスカレーション。"],"Versioning, monitoring, drift detection, and rollout.":["Versi, pemantauan, deteksi drift, dan peluncuran.","Versioning, monitoring, drift detection, and rollout.","Pengurusan versi, pemantauan, pengesanan hanyutan dan pelancaran.","Versionierung, Monitoring, Drift-Erkennung und Rollout.","Quản lý phiên bản, giám sát, phát hiện độ lệch và triển khai.","版本管理、监控、漂移检测与发布。","バージョン管理・監視・ドリフト検知・ロールアウト。"],"KEY COMPONENTS":["KOMPONEN UTAMA","KEY COMPONENTS","KOMPONEN UTAMA","SCHLÜSSELKOMPONENTEN","THÀNH PHẦN CHÍNH","关键组件","主要コンポーネント"],"View Architecture":["Lihat Arsitektur","View Architecture","Lihat Seni Bina","Architektur ansehen","Xem kiến trúc","查看架构","アーキテクチャを見る"],"AI Resume Screening":["Penyaringan Resume AI","AI Resume Screening","Saringan Resume AI","KI-Lebenslaufprüfung","Sàng lọc hồ sơ bằng AI","AI 简历筛选","AI履歴書スクリーニング"],"Talent matching with bias detection and skill gap analysis":["Pencocokan talenta dengan deteksi bias dan analisis kesenjangan keterampilan","Talent matching with bias detection and skill gap analysis","Padanan bakat dengan pengesanan bias dan analisis jurang kemahiran","Talent-Matching mit Bias-Erkennung und Kompetenzlückenanalyse","Ghép nối nhân tài với phát hiện thiên lệch và phân tích khoảng cách kỹ năng","人才匹配、偏见检测与技能差距分析","バイアス検知とスキルギャップ分析を備えた人材マッチング"],"Target Role: Senior AI Solutions Architect":["Peran Target: Arsitek Solusi AI Senior","Target Role: Senior AI Solutions Architect","Peranan Sasaran: Arkitek Penyelesaian AI Kanan","Zielrolle: Senior AI Solutions Architect","Vai trò mục tiêu: Kiến trúc sư giải pháp AI cấp cao","目标职位：高级 AI 解决方案架构师","対象職種：シニアAIソリューションアーキテクト"],"Click “Analyze Match” on any candidate to run AI-powered scoring":["Klik “Analisis Kecocokan” pada kandidat untuk menjalankan penilaian berbasis AI","Click “Analyze Match” on any candidate to run AI-powered scoring","Klik “Analisis Padanan” pada calon untuk menjalankan pemarkahan AI","Klicken Sie bei einem Kandidaten auf „Übereinstimmung analysieren“, um die KI-Bewertung zu starten","Nhấp “Phân tích độ phù hợp” trên ứng viên để chạy chấm điểm bằng AI","点击候选人的“分析匹配度”以运行 AI 评分","候補者の「マッチ分析」をクリックしてAIスコアリングを実行"],"AI-Powered Matching":["Pencocokan Berbasis AI","AI-Powered Matching","Padanan Berkuasa AI","KI-gestütztes Matching","Ghép nối bằng AI","AI 驱动匹配","AI搭載マッチング"],"Analyze Match":["Analisis Kecocokan","Analyze Match","Analisis Padanan","Übereinstimmung analysieren","Phân tích độ phù hợp","分析匹配度","マッチ分析"],"AI-powered extraction, summarization, and semantic search":["Ekstraksi, peringkasan, dan pencarian semantik berbasis AI","AI-powered extraction, summarization, and semantic search","Pengekstrakan, peringkasan dan carian semantik berkuasa AI","KI-gestützte Extraktion, Zusammenfassung und semantische Suche","Trích xuất, tóm tắt và tìm kiếm ngữ nghĩa bằng AI","AI 驱动的提取、摘要与语义搜索","AIによる抽出・要約・セマンティック検索"],"Extract":["Ekstrak","Extract","Ekstrak","Extrahieren","Trích xuất","提取","抽出"],"Summarize":["Ringkas","Summarize","Ringkaskan","Zusammenfassen","Tóm tắt","摘要","要約"],"Document Extraction":["Ekstraksi Dokumen","Document Extraction","Pengekstrakan Dokumen","Dokumentenextraktion","Trích xuất tài liệu","文档提取","文書抽出"],"Select a document type to simulate structured field extraction using AI":["Pilih jenis dokumen untuk menyimulasikan ekstraksi field terstruktur menggunakan AI","Select a document type to simulate structured field extraction using AI","Pilih jenis dokumen untuk mensimulasikan pengekstrakan medan berstruktur menggunakan AI","Wählen Sie einen Dokumenttyp, um die strukturierte Feldextraktion mit KI zu simulieren","Chọn loại tài liệu để mô phỏng trích xuất trường có cấu trúc bằng AI","选择文档类型以模拟使用 AI 提取结构化字段","文書タイプを選択し、AIによる構造化フィールド抽出をシミュレート"],"Document Type":["Jenis Dokumen","Document Type","Jenis Dokumen","Dokumenttyp","Loại tài liệu","文档类型","文書タイプ"],"Invoice":["Faktur","Invoice","Invois","Rechnung","Hóa đơn","发票","請求書"],"Sample Document Preview":["Pratinjau Contoh Dokumen","Sample Document Preview","Pratonton Contoh Dokumen","Vorschau des Beispieldokuments","Xem trước tài liệu mẫu","示例文档预览","サンプル文書プレビュー"],"Run Extraction":["Jalankan Ekstraksi","Run Extraction","Jalankan Pengekstrakan","Extraktion ausführen","Chạy trích xuất","运行提取","抽出を実行"],"Extracted Fields":["Field Terekstraksi","Extracted Fields","Medan Diekstrak","Extrahierte Felder","Các trường đã trích xuất","提取字段","抽出フィールド"],"Structured output with confidence score and auto-tags":["Output terstruktur dengan skor keyakinan dan tag otomatis","Structured output with confidence score and auto-tags","Output berstruktur dengan skor keyakinan dan tag automatik","Strukturierte Ausgabe mit Konfidenzwert und automatischen Tags","Đầu ra có cấu trúc với điểm tin cậy và thẻ tự động","带置信度评分和自动标签的结构化输出","信頼度スコアと自動タグ付きの構造化出力"],"Run extraction to see results":["Jalankan ekstraksi untuk melihat hasil","Run extraction to see results","Jalankan pengekstrakan untuk melihat keputusan","Führen Sie die Extraktion aus, um Ergebnisse zu sehen","Chạy trích xuất để xem kết quả","运行提取以查看结果","抽出を実行して結果を表示"],"Agentic Workflow Automation":["Otomatisasi Alur Kerja Agen","Agentic Workflow Automation","Automasi Aliran Kerja Ejen","Agentische Workflow-Automatisierung","Tự động hóa quy trình tác nhân","智能体工作流自动化","エージェント型ワークフロー自動化"],"Multi-step AI agent with tool use, HITL approval, and audit trail":["Agen AI multi-langkah dengan penggunaan alat, persetujuan HITL, dan jejak audit","Multi-step AI agent with tool use, HITL approval, and audit trail","Ejen AI berbilang langkah dengan penggunaan alat, kelulusan HITL dan jejak audit","Mehrstufiger KI-Agent mit Werkzeugnutzung, HITL-Freigabe und Audit-Trail","Tác nhân AI nhiều bước với sử dụng công cụ, phê duyệt HITL và dấu vết kiểm toán","支持工具调用、HITL 审批和审计追踪的多步骤 AI 智能体","ツール利用・HITL承認・監査証跡を備えた多段階AIエージェント"],"Configure Workflow":["Konfigurasi Alur Kerja","Configure Workflow","Konfigurasi Aliran Kerja","Workflow konfigurieren","Cấu hình quy trình","配置工作流","ワークフローを設定"],"Define a task and the AI agent will decompose and execute it autonomously":["Tentukan tugas dan agen AI akan menguraikan serta menjalankannya secara mandiri","Define a task and the AI agent will decompose and execute it autonomously","Tentukan tugas dan ejen AI akan menghurai serta melaksanakannya secara autonomi","Definieren Sie eine Aufgabe; der KI-Agent zerlegt und führt sie autonom aus","Xác định nhiệm vụ và tác nhân AI sẽ tự động phân rã rồi thực thi","定义任务，AI 智能体将自主分解并执行","タスクを定義するとAIエージェントが自律的に分解・実行します"],"Task Description":["Deskripsi Tugas","Task Description","Penerangan Tugas","Aufgabenbeschreibung","Mô tả nhiệm vụ","任务描述","タスク説明"],"Quick Presets":["Preset Cepat","Quick Presets","Pratetap Pantas","Schnellvorlagen","Cài đặt nhanh","快速预设","クイックプリセット"],"Human-in-the-Loop":["Manusia dalam Proses","Human-in-the-Loop","Manusia dalam Gelung","Human-in-the-Loop","Con người trong vòng lặp","人在回路","ヒューマン・イン・ザ・ループ"],"Require reviewer sign-off before output is released":["Memerlukan persetujuan peninjau sebelum output dirilis","Require reviewer sign-off before output is released","Memerlukan kelulusan penyemak sebelum output dikeluarkan","Prüferfreigabe vor Veröffentlichung der Ausgabe erforderlich","Yêu cầu người duyệt phê duyệt trước khi phát hành đầu ra","输出发布前需审核人签署批准","出力公開前にレビュー担当者の承認が必要"],"Run Agent Workflow":["Jalankan Alur Kerja Agen","Run Agent Workflow","Jalankan Aliran Kerja Ejen","Agenten-Workflow ausführen","Chạy quy trình tác nhân","运行智能体工作流","エージェントワークフローを実行"],"Run a workflow to see step-by-step agent execution":["Jalankan alur kerja untuk melihat eksekusi agen langkah demi langkah","Run a workflow to see step-by-step agent execution","Jalankan aliran kerja untuk melihat pelaksanaan ejen langkah demi langkah","Führen Sie einen Workflow aus, um die schrittweise Agentenausführung zu sehen","Chạy quy trình để xem tác nhân thực thi từng bước","运行工作流以查看智能体逐步执行过程","ワークフローを実行してエージェントの段階的な実行を表示"],"Workflow History":["Riwayat Alur Kerja","Workflow History","Sejarah Aliran Kerja","Workflow-Verlauf","Lịch sử quy trình","工作流历史","ワークフロー履歴"],"Completed":["Selesai","Completed","Selesai","Abgeschlossen","Hoàn thành","已完成","完了"],"AI Cost & ROI Estimator":["Estimator Biaya & ROI AI","AI Cost & ROI Estimator","Penganggar Kos & ROI AI","KI-Kosten- und ROI-Schätzer","Công cụ ước tính chi phí và ROI AI","AI 成本与 ROI 估算器","AIコスト・ROI見積もり"],"Model infrastructure costs, ROI, and break-even analysis across cloud providers":["Biaya infrastruktur model, ROI, dan analisis titik impas lintas penyedia cloud","Model infrastructure costs, ROI, and break-even analysis across cloud providers","Kos infrastruktur model, ROI dan analisis pulang modal merentas penyedia awan","Modellinfrastrukturkosten, ROI und Break-even-Analyse über Cloud-Anbieter hinweg","Chi phí hạ tầng mô hình, ROI và phân tích hòa vốn giữa các nhà cung cấp đám mây","跨云提供商的模型基础设施成本、ROI 与盈亏平衡分析","クラウド事業者横断のモデル基盤コスト・ROI・損益分岐分析"],"Startup Pilot":["Pilot Startup","Startup Pilot","Perintis Permulaan","Startup-Pilot","Thử nghiệm khởi nghiệp","初创试点","スタートアップ・パイロット"],"Growth Platform":["Platform Pertumbuhan","Growth Platform","Platform Pertumbuhan","Wachstumsplattform","Nền tảng tăng trưởng","增长平台","成長プラットフォーム"],"Enterprise AI Scale":["Skala AI Perusahaan","Enterprise AI Scale","Skala AI Perusahaan","Enterprise-KI-Skalierung","Quy mô AI doanh nghiệp","企业 AI 规模","エンタープライズAI規模"],"Parameters":["Parameter","Parameters","Parameter","Parameter","Tham số","参数","パラメーター"],"Users":["Pengguna","Users","Pengguna","Benutzer","Người dùng","用户","ユーザー"],"Requests / Day":["Permintaan / Hari","Requests / Day","Permintaan / Hari","Anfragen / Tag","Yêu cầu / Ngày","请求 / 天","リクエスト / 日"],"Dev Team Size":["Ukuran Tim Pengembang","Dev Team Size","Saiz Pasukan Pembangun","Größe des Entwicklungsteams","Quy mô đội phát triển","开发团队规模","開発チーム規模"],"Dev Duration":["Durasi Pengembangan","Dev Duration","Tempoh Pembangunan","Entwicklungsdauer","Thời gian phát triển","开发周期","開発期間"],"Cloud Provider":["Penyedia Cloud","Cloud Provider","Penyedia Awan","Cloud-Anbieter","Nhà cung cấp đám mây","云提供商","クラウドプロバイダー"],"Deployment Tier":["Tingkat Deployment","Deployment Tier","Tahap Pelaksanaan","Bereitstellungsstufe","Cấp triển khai","部署层级","デプロイ階層"],"Calculate ROI":["Hitung ROI","Calculate ROI","Kira ROI","ROI berechnen","Tính ROI","计算 ROI","ROIを計算"],"Configure parameters and calculate ROI":["Konfigurasikan parameter dan hitung ROI","Configure parameters and calculate ROI","Konfigurasikan parameter dan kira ROI","Parameter konfigurieren und ROI berechnen","Cấu hình tham số và tính ROI","配置参数并计算 ROI","パラメーターを設定してROIを計算"],"engineers":["insinyur","engineers","jurutera","Ingenieure","kỹ sư","名工程师","人のエンジニア"],"months":["bulan","months","bulan","Monate","tháng","个月","か月"],"Multi-Cloud AI Comparison":["Perbandingan AI Multi-Cloud","Multi-Cloud AI Comparison","Perbandingan AI Berbilang Awan","Multi-Cloud-KI-Vergleich","So sánh AI đa đám mây","多云 AI 比较","マルチクラウドAI比較"],"AWS vs Azure vs GCP — scoring matrix for enterprise AI workloads":["AWS vs Azure vs GCP — matriks penilaian untuk beban kerja AI perusahaan","AWS vs Azure vs GCP — scoring matrix for enterprise AI workloads","AWS vs Azure vs GCP — matriks pemarkahan untuk beban kerja AI perusahaan","AWS vs. Azure vs. GCP — Bewertungsmatrix für Enterprise-KI-Workloads","AWS so với Azure so với GCP — ma trận chấm điểm cho tải AI doanh nghiệp","AWS、Azure 与 GCP — 企业 AI 工作负载评分矩阵","AWS・Azure・GCP — エンタープライズAIワークロード評価マトリクス"],"Overall Score":["Skor Keseluruhan","Overall Score","Skor Keseluruhan","Gesamtbewertung","Điểm tổng thể","综合评分","総合スコア"],"Top Pick":["Pilihan Terbaik","Top Pick","Pilihan Utama","Top-Empfehlung","Lựa chọn hàng đầu","首选","最優秀"],"Capability Radar":["Radar Kapabilitas","Capability Radar","Radar Keupayaan","Fähigkeitsradar","Biểu đồ năng lực","能力雷达图","機能レーダー"],"Multi-dimensional comparison across 8 key AI dimensions":["Perbandingan multidimensi pada 8 dimensi utama AI","Multi-dimensional comparison across 8 key AI dimensions","Perbandingan berbilang dimensi merentas 8 dimensi utama AI","Mehrdimensionaler Vergleich über 8 zentrale KI-Dimensionen","So sánh đa chiều trên 8 khía cạnh AI chính","涵盖 8 个关键 AI 维度的多维比较","8つの主要AI次元にわたる多面的比較"],"Overall Score Comparison":["Perbandingan Skor Keseluruhan","Overall Score Comparison","Perbandingan Skor Keseluruhan","Vergleich der Gesamtbewertungen","So sánh điểm tổng thể","综合评分比较","総合スコア比較"],"Weighted aggregate across all evaluated criteria":["Agregat berbobot dari seluruh kriteria yang dievaluasi","Weighted aggregate across all evaluated criteria","Agregat berwajaran merentas semua kriteria dinilai","Gewichtetes Aggregat aller bewerteten Kriterien","Tổng hợp có trọng số trên tất cả tiêu chí đánh giá","所有评估标准的加权汇总","全評価基準の加重集計"],"Detailed Scoring Matrix":["Matriks Penilaian Terperinci","Detailed Scoring Matrix","Matriks Pemarkahan Terperinci","Detaillierte Bewertungsmatrix","Ma trận chấm điểm chi tiết","详细评分矩阵","詳細評価マトリクス"],"Score out of 100 — higher is better (except vendor lock-in and cost where lower risk is preferred)":["Skor dari 100 — lebih tinggi lebih baik (kecuali vendor lock-in dan biaya, yang mengutamakan risiko lebih rendah)","Score out of 100 — higher is better (except vendor lock-in and cost where lower risk is preferred)","Skor daripada 100 — lebih tinggi lebih baik (kecuali penguncian vendor dan kos yang mengutamakan risiko lebih rendah)","Punktzahl von 100 — höher ist besser (außer Anbieterbindung und Kosten, bei denen geringeres Risiko bevorzugt wird)","Điểm trên 100 — cao hơn là tốt hơn (trừ phụ thuộc nhà cung cấp và chi phí, ưu tiên rủi ro thấp hơn)","满分 100 分——越高越好（供应商锁定和成本除外，此处风险越低越好）","100点満点 — 高いほど優秀（ベンダーロックインとコストは低リスクを優先）"],"Compute":["Komputasi","Compute","Pengkomputeran","Rechenleistung","Tính toán","计算","コンピュート"],"Storage":["Penyimpanan","Storage","Storan","Speicher","Lưu trữ","存储","ストレージ"],"Model Serving":["Penyajian Model","Model Serving","Penyajian Model","Modellbereitstellung","Phục vụ mô hình","模型服务","モデルサービング"],"LLM Access":["Akses LLM","LLM Access","Akses LLM","LLM-Zugriff","Truy cập LLM","LLM 访问","LLMアクセス"],"Vector Database":["Basis Data Vektor","Vector Database","Pangkalan Data Vektor","Vektordatenbank","Cơ sở dữ liệu vector","向量数据库","ベクトルデータベース"],"Security & Compliance":["Keamanan & Kepatuhan","Security & Compliance","Keselamatan & Pematuhan","Sicherheit und Compliance","Bảo mật và tuân thủ","安全与合规","セキュリティとコンプライアンス"],"Developer Experience":["Pengalaman Pengembang","Developer Experience","Pengalaman Pembangun","Entwicklererlebnis","Trải nghiệm nhà phát triển","开发者体验","開発者体験"],"Responsible AI Governance":["Tata Kelola AI Bertanggung Jawab","Responsible AI Governance","Tadbir Urus AI Bertanggungjawab","Verantwortungsvolle KI-Governance","Quản trị AI có trách nhiệm","负责任的 AI 治理","責任あるAIガバナンス"],"Risk register, model cards, incident log, and compliance overview":["Daftar risiko, kartu model, log insiden, dan ikhtisar kepatuhan","Risk register, model cards, incident log, and compliance overview","Daftar risiko, kad model, log insiden dan gambaran pematuhan","Risikoregister, Modellkarten, Vorfallsprotokoll und Compliance-Übersicht","Sổ đăng ký rủi ro, thẻ mô hình, nhật ký sự cố và tổng quan tuân thủ","风险登记、模型卡、事件日志与合规概览","リスク登録簿・モデルカード・インシデントログ・コンプライアンス概要"],"Compliance Score":["Skor Kepatuhan","Compliance Score","Skor Pematuhan","Compliance-Bewertung","Điểm tuân thủ","合规评分","コンプライアンススコア"],"Open Risks":["Risiko Terbuka","Open Risks","Risiko Terbuka","Offene Risiken","Rủi ro đang mở","未结风险","未対応リスク"],"Pending Approvals":["Persetujuan Tertunda","Pending Approvals","Kelulusan Tertunda","Ausstehende Genehmigungen","Phê duyệt đang chờ","待审批","承認待ち"],"Last Audit":["Audit Terakhir","Last Audit","Audit Terakhir","Letztes Audit","Lần kiểm toán gần nhất","上次审计","最終監査"],"require action":["memerlukan tindakan","require action","memerlukan tindakan","Maßnahme erforderlich","cần hành động","需要处理","対応が必要"],"awaiting sign-off":["menunggu persetujuan","awaiting sign-off","menunggu kelulusan","wartet auf Freigabe","đang chờ phê duyệt","等待签署批准","承認待ち"],"Model Cards — Fairness & Bias Audit":["Kartu Model — Audit Keadilan & Bias","Model Cards — Fairness & Bias Audit","Kad Model — Audit Keadilan & Bias","Modellkarten — Fairness- und Bias-Audit","Thẻ mô hình — Kiểm toán công bằng và thiên lệch","模型卡 — 公平性与偏见审计","モデルカード — 公平性・バイアス監査"],"Real-time fairness scoring for all production models":["Penilaian keadilan real-time untuk semua model produksi","Real-time fairness scoring for all production models","Pemarkahan keadilan masa nyata untuk semua model pengeluaran","Echtzeit-Fairnessbewertung für alle Produktionsmodelle","Chấm điểm công bằng theo thời gian thực cho mọi mô hình sản xuất","对所有生产模型进行实时公平性评分","すべての本番モデルをリアルタイムで公平性評価"],"Fairness Score":["Skor Keadilan","Fairness Score","Skor Keadilan","Fairness-Bewertung","Điểm công bằng","公平性评分","公平性スコア"],"Passed":["Lulus","Passed","Lulus","Bestanden","Đạt","通过","合格"],"Bias Detected":["Bias Terdeteksi","Bias Detected","Bias Dikesan","Bias erkannt","Phát hiện thiên lệch","检测到偏见","バイアス検出"],"Risk Register":["Daftar Risiko","Risk Register","Daftar Risiko","Risikoregister","Sổ đăng ký rủi ro","风险登记","リスク登録簿"],"Incident Log":["Log Insiden","Incident Log","Log Insiden","Vorfallsprotokoll","Nhật ký sự cố","事件日志","インシデントログ"],"LLM Hallucination":["Halusinasi LLM","LLM Hallucination","Halusinasi LLM","LLM-Halluzination","Ảo giác LLM","LLM 幻觉","LLMハルシネーション"],"Training Data Privacy":["Privasi Data Pelatihan","Training Data Privacy","Privasi Data Latihan","Datenschutz bei Trainingsdaten","Quyền riêng tư dữ liệu huấn luyện","训练数据隐私","学習データプライバシー"],"Model Bias":["Bias Model","Model Bias","Bias Model","Modell-Bias","Thiên lệch mô hình","模型偏见","モデルバイアス"],"Mitigated":["Dimitigasi","Mitigated","Dikurangkan","Abgemildert","Đã giảm thiểu","已缓解","軽減済み"],"Monitoring":["Dipantau","Monitoring","Dipantau","Überwachung","Đang giám sát","监控中","監視中"],"Open":["Terbuka","Open","Terbuka","Offen","Mở","未结","未対応"],"Likelihood:":["Kemungkinan:","Likelihood:","Kebarangkalian:","Wahrscheinlichkeit:","Khả năng:","可能性：","発生可能性："],"Contact & Book a Call":["Hubungi & Jadwalkan Panggilan","Contact & Book a Call","Hubungi & Tempah Panggilan","Kontakt aufnehmen und Termin buchen","Liên hệ và đặt lịch gọi","联系并预约通话","お問い合わせ・通話予約"],"Open to junior full-stack, backend, and AI-adjacent roles — remote, hybrid, or on-site across Indonesia and APAC.":["Terbuka untuk peran junior full-stack, backend, dan yang berdekatan dengan AI — remote, hybrid, atau on-site di Indonesia dan APAC.","Open to junior full-stack, backend, and AI-adjacent roles — remote, hybrid, or on-site across Indonesia and APAC.","Terbuka kepada peranan junior full-stack, backend dan berkaitan AI — jarak jauh, hibrid atau di lokasi merentas Indonesia dan APAC.","Offen für Junior-Full-Stack-, Backend- und KI-nahe Rollen — remote, hybrid oder vor Ort in Indonesien und APAC.","Sẵn sàng cho các vai trò full-stack cấp cơ sở, backend và liên quan AI — từ xa, kết hợp hoặc tại chỗ ở Indonesia và APAC.","接受初级全栈、后端及 AI 相关岗位——可远程、混合或在印度尼西亚及亚太地区现场工作。","ジュニアフルスタック・バックエンド・AI関連職を希望 — インドネシアおよびAPACでリモート・ハイブリッド・オンサイト対応。"],"Open to Opportunities":["Peluang Terbuka","Open to Opportunities","Terbuka kepada Peluang","Offen für Möglichkeiten","Sẵn sàng đón nhận cơ hội","开放机会","機会を募集中"],"Indonesia — Remote & Relocation Ready":["Indonesia — Siap Remote & Relokasi","Indonesia — Remote & Relocation Ready","Indonesia — Sedia Jarak Jauh & Penempatan Semula","Indonesien — bereit für Remote-Arbeit und Umzug","Indonesia — Sẵn sàng làm từ xa và chuyển nơi ở","印度尼西亚 — 可远程并愿意搬迁","インドネシア — リモート・転居対応"],"Core Expertise":["Keahlian Utama","Core Expertise","Kepakaran Teras","Kernkompetenzen","Chuyên môn cốt lõi","核心专长","中核専門分野"],"Quick Links":["Tautan Cepat","Quick Links","Pautan Pantas","Schnelllinks","Liên kết nhanh","快捷链接","クイックリンク"],"Access portfolio materials":["Akses materi portofolio","Access portfolio materials","Akses bahan portfolio","Portfolio-Materialien aufrufen","Truy cập tài liệu hồ sơ năng lực","访问作品集资料","ポートフォリオ資料にアクセス"],"Download Resume PDF":["Unduh PDF Resume","Download Resume PDF","Muat Turun PDF Resume","Lebenslauf-PDF herunterladen","Tải PDF hồ sơ","下载简历 PDF","履歴書PDFをダウンロード"],"Download Resume":["Unduh Resume","Download Resume","Muat Turun Resume","Lebenslauf herunterladen","Tải hồ sơ","下载简历","履歴書をダウンロード"],"View all platform modules":["Lihat semua modul platform","View all platform modules","Lihat semua modul platform","Alle Plattformmodule anzeigen","Xem tất cả mô-đun nền tảng","查看所有平台模块","すべてのプラットフォームモジュールを見る"],"Open LinkedIn profile (opens in new tab)":["Buka profil LinkedIn (terbuka di tab baru)","Open LinkedIn profile (opens in new tab)","Buka profil LinkedIn (dibuka dalam tab baharu)","LinkedIn-Profil öffnen (in neuem Tab)","Mở hồ sơ LinkedIn (trong tab mới)","打开 LinkedIn 个人资料（新标签页）","LinkedInプロフィールを開く（新しいタブ）"],"Open LinkedIn":["Buka LinkedIn","Open LinkedIn","Buka LinkedIn","LinkedIn öffnen","Mở LinkedIn","打开 LinkedIn","LinkedInを開く"],"Typical Response Time":["Waktu Respons Umum","Typical Response Time","Masa Respons Biasa","Übliche Antwortzeit","Thời gian phản hồi thông thường","通常回复时间","通常の返信時間"],"Send Message":["Kirim Pesan","Send Message","Hantar Mesej","Nachricht senden","Gửi tin nhắn","发送消息","メッセージを送信"],"Book a Call":["Jadwalkan Panggilan","Book a Call","Tempah Panggilan","Gespräch buchen","Đặt lịch gọi","预约通话","通話を予約"],"Full Name":["Nama Lengkap","Full Name","Nama Penuh","Vollständiger Name","Họ và tên","姓名","氏名"],"Work Email":["Email Kerja","Work Email","E-mel Kerja","Geschäftliche E-Mail","Email công việc","工作邮箱","勤務先メール"],"Company":["Perusahaan","Company","Syarikat","Unternehmen","Công ty","公司","会社"],"Your Role / Title":["Peran / Jabatan Anda","Your Role / Title","Peranan / Jawatan Anda","Ihre Rolle / Position","Vai trò / Chức danh của bạn","您的职位 / 头衔","役割 / 役職"],"Country":["Negara","Country","Negara","Land","Quốc gia","国家","国"],"Inquiry Type":["Jenis Pertanyaan","Inquiry Type","Jenis Pertanyaan","Art der Anfrage","Loại yêu cầu","咨询类型","お問い合わせ種別"],"Message":["Pesan","Message","Mesej","Nachricht","Tin nhắn","消息","メッセージ"],"Select country":["Pilih negara","Select country","Pilih negara","Land auswählen","Chọn quốc gia","选择国家","国を選択"],"Select type":["Pilih jenis","Select type","Pilih jenis","Typ auswählen","Chọn loại","选择类型","種別を選択"],"Describe your project, opportunity, or question...":["Jelaskan proyek, peluang, atau pertanyaan Anda...","Describe your project, opportunity, or question...","Terangkan projek, peluang atau pertanyaan anda...","Beschreiben Sie Ihr Projekt, Ihre Möglichkeit oder Ihre Frage...","Mô tả dự án, cơ hội hoặc câu hỏi của bạn...","请描述您的项目、机会或问题……","プロジェクト・機会・質問についてご記入ください…"],"Contact forms: within 24 hours":["Form kontak: dalam 24 jam","Contact forms: within 24 hours","Borang hubungan: dalam 24 jam","Kontaktformulare: innerhalb von 24 Stunden","Biểu mẫu liên hệ: trong vòng 24 giờ","联系表单：24 小时内","お問い合わせフォーム：24時間以内"],"Call bookings: calendar invite within 2 hours":["Pemesanan panggilan: undangan kalender dalam 2 jam","Call bookings: calendar invite within 2 hours","Tempahan panggilan: jemputan kalendar dalam 2 jam","Gesprächsbuchungen: Kalendereinladung innerhalb von 2 Stunden","Đặt lịch gọi: lời mời lịch trong vòng 2 giờ","通话预约：2 小时内发送日历邀请","通話予約：2時間以内にカレンダー招待"],"All communications are handled directly. No third-party recruiters.":["Semua komunikasi ditangani langsung. Tanpa perekrut pihak ketiga.","All communications are handled directly. No third-party recruiters.","Semua komunikasi dikendalikan secara langsung. Tiada perekrut pihak ketiga.","Alle Kommunikationen werden direkt bearbeitet. Keine Drittanbieter-Recruiter.","Mọi liên lạc được xử lý trực tiếp. Không qua nhà tuyển dụng bên thứ ba.","所有沟通均直接处理，不通过第三方招聘机构。","すべて直接対応します。第三者のリクルーターは介しません。"],"ML Prediction API":["API Prediksi ML","ML Prediction API","API Ramalan ML","ML-Vorhersage-API","API dự đoán ML","ML 预测 API","ML予測API"],"Document Intelligence":["Intelijen Dokumen","Document Intelligence","Kecerdasan Dokumen","Dokumentenintelligenz","Trí tuệ tài liệu","文档智能","ドキュメントインテリジェンス"],"Enterprise RAG":["RAG Perusahaan","Enterprise RAG","RAG Perusahaan","Enterprise RAG","RAG doanh nghiệp","企业 RAG","エンタープライズRAG"],"AI Support":["Dukungan AI","AI Support","Sokongan AI","KI-Support","Hỗ trợ AI","AI 支持","AIサポート"],"ML Predict API":["API Prediksi ML","ML Predict API","API Ramalan ML","ML-Prognose-API","API dự đoán ML","ML 预测 API","ML予測API"],"MLOps":["MLOps","MLOps","MLOps","MLOps","MLOps","MLOps","MLOps"],"Talent Match":["Pencocokan Talenta","Talent Match","Padanan Bakat","Talent-Matching","Ghép nối nhân tài","人才匹配","人材マッチング"],"Doc Intel":["Intelijen Dokumen","Doc Intel","Kecerdasan Dokumen","Dokumentenintelligenz","Trí tuệ tài liệu","文档智能","ドキュメントインテリジェンス"],"AI ARCHITECT LAB":["LAB ARSITEK AI","AI ARCHITECT LAB","MAKMAL ARKITEK AI","KI-ARCHITEKTUR-LABOR","PHÒNG THÍ NGHIỆM KIẾN TRÚC SƯ AI","AI 架构实验室","AIアーキテクト・ラボ"]});

  const WORD_ROWS = {
    about:['tentang','about','tentang','über','giới thiệu','关于','概要'],
    add:['tambah','add','tambah','hinzufügen','thêm','添加','追加'],
    all:['semua','all','semua','alle','tất cả','全部','すべて'],
    analysis:['analisis','analysis','analisis','analyse','phân tích','分析','分析'],
    application:['aplikasi','application','aplikasi','anwendung','ứng dụng','应用','アプリケーション'],
    architecture:['arsitektur','architecture','seni bina','architektur','kiến trúc','架构','アーキテクチャ'],
    attendance:['kehadiran','attendance','kehadiran','anwesenheit','chuyên cần','出勤率','出席率'],
    average:['rata-rata','average','purata','durchschnitt','trung bình','平均','平均'],
    browser:['browser','browser','pelayar','browser','trình duyệt','浏览器','ブラウザー'],
    calculate:['hitung','calculate','kira','berechnen','tính toán','计算','計算'],
    category:['kategori','category','kategori','kategorie','danh mục','类别','カテゴリー'],
    change:['ubah','change','ubah','ändern','thay đổi','更改','変更'],
    choose:['pilih','choose','pilih','auswählen','chọn','选择','選択'],
    classification:['klasifikasi','classification','pengelasan','klassifizierung','phân loại','分类','分類'],
    close:['tutup','close','tutup','schließen','đóng','关闭','閉じる'],
    complete:['lengkap','complete','lengkap','vollständig','hoàn chỉnh','完整','完全'],
    confidence:['keyakinan','confidence','keyakinan','konfidenz','độ tin cậy','置信度','信頼度'],
    contact:['kontak','contact','hubungi','kontakt','liên hệ','联系','お問い合わせ'],
    cost:['biaya','cost','kos','kosten','chi phí','费用','費用'],
    create:['buat','create','cipta','erstellen','tạo','创建','作成'],
    current:['saat ini','current','semasa','aktuell','hiện tại','当前','現在'],
    dashboard:['dasbor','dashboard','papan pemuka','dashboard','bảng điều khiển','仪表板','ダッシュボード'],
    data:['data','data','data','daten','dữ liệu','数据','データ'],
    dataset:['kumpulan data','dataset','set data','datensatz','tập dữ liệu','数据集','データセット'],
    delete:['hapus','delete','padam','löschen','xóa','删除','削除'],
    description:['deskripsi','description','penerangan','beschreibung','mô tả','描述','説明'],
    details:['detail','details','butiran','details','chi tiết','详细信息','詳細'],
    document:['dokumen','document','dokumen','dokument','tài liệu','文档','ドキュメント'],
    download:['unduh','download','muat turun','herunterladen','tải xuống','下载','ダウンロード'],
    edit:['edit','edit','sunting','bearbeiten','chỉnh sửa','编辑','編集'],
    education:['pendidikan','education','pendidikan','bildung','giáo dục','教育','教育'],
    error:['kesalahan','error','ralat','fehler','lỗi','错误','エラー'],
    evaluation:['evaluasi','evaluation','penilaian','bewertung','đánh giá','评估','評価'],
    export:['ekspor','export','eksport','exportieren','xuất','导出','エクスポート'],
    feedback:['umpan balik','feedback','maklum balas','feedback','phản hồi','反馈','フィードバック'],
    filter:['filter','filter','tapis','filtern','lọc','筛选','フィルター'],
    form:['formulir','form','borang','formular','biểu mẫu','表单','フォーム'],
    group:['grup','group','kumpulan','gruppe','nhóm','组','グループ'],
    help:['bantuan','help','bantuan','hilfe','trợ giúp','帮助','ヘルプ'],
    history:['riwayat','history','sejarah','verlauf','lịch sử','历史','履歴'],
    information:['informasi','information','maklumat','informationen','thông tin','信息','情報'],
    input:['masukan','input','input','eingabe','đầu vào','输入','入力'],
    language:['bahasa','language','bahasa','sprache','ngôn ngữ','语言','言語'],
    light:['terang','light','cerah','hell','sáng','浅色','ライト'],
    loading:['memuat','loading','memuatkan','wird geladen','đang tải','加载中','読み込み中'],
    local:['lokal','local','tempatan','lokal','cục bộ','本地','ローカル'],
    model:['model','model','model','modell','mô hình','模型','モデル'],
    monthly:['bulanan','monthly','bulanan','monatlich','hàng tháng','每月','月間'],
    name:['nama','name','nama','name','tên','名称','名前'],
    navigation:['navigasi','navigation','navigasi','navigation','điều hướng','导航','ナビゲーション'],
    new:['baru','new','baharu','neu','mới','新建','新規'],
    open:['buka','open','buka','öffnen','mở','打开','開く'],
    operations:['operasi','operations','operasi','vorgänge','thao tác','操作','操作'],
    performance:['performa','performance','prestasi','leistung','hiệu suất','表现','パフォーマンス'],
    prediction:['prediksi','prediction','ramalan','prognose','dự đoán','预测','予測'],
    previous:['sebelumnya','previous','sebelumnya','vorherig','trước đó','之前','以前'],
    privacy:['privasi','privacy','privasi','datenschutz','quyền riêng tư','隐私','プライバシー'],
    project:['proyek','project','projek','projekt','dự án','项目','プロジェクト'],
    recommendation:['rekomendasi','recommendation','cadangan','empfehlung','đề xuất','建议','推奨事項'],
    report:['laporan','report','laporan','bericht','báo cáo','报告','レポート'],
    research:['riset','research','penyelidikan','forschung','nghiên cứu','研究','研究'],
    reset:['reset','reset','set semula','zurücksetzen','đặt lại','重置','リセット'],
    result:['hasil','result','keputusan','ergebnis','kết quả','结果','結果'],
    risk:['risiko','risk','risiko','risiko','rủi ro','风险','リスク'],
    save:['simpan','save','simpan','speichern','lưu','保存','保存'],
    score:['skor','score','skor','punktzahl','điểm','分数','スコア'],
    search:['cari','search','cari','suchen','tìm kiếm','搜索','検索'],
    security:['keamanan','security','keselamatan','sicherheit','bảo mật','安全','セキュリティ'],
    select:['pilih','select','pilih','auswählen','chọn','选择','選択'],
    settings:['pengaturan','settings','tetapan','einstellungen','cài đặt','设置','設定'],
    status:['status','status','status','status','trạng thái','状态','ステータス'],
    student:['siswa','student','pelajar','studierende','sinh viên','学生','学生'],
    students:['siswa','students','pelajar','studierende','sinh viên','学生','学生'],
    support:['dukungan','support','sokongan','support','hỗ trợ','支持','サポート'],
    system:['sistem','system','sistem','system','hệ thống','系统','システム'],
    technical:['teknis','technical','teknikal','technisch','kỹ thuật','技术','技術'],
    text:['teks','text','teks','text','văn bản','文本','テキスト'],
    theme:['tema','theme','tema','design','giao diện','主题','テーマ'],
    total:['total','total','jumlah','gesamt','tổng','总计','合計'],
    update:['perbarui','update','kemas kini','aktualisieren','cập nhật','更新','更新'],
    user:['pengguna','user','pengguna','benutzer','người dùng','用户','ユーザー'],
    value:['nilai','value','nilai','wert','giá trị','值','値'],
    view:['lihat','view','lihat','anzeigen','xem','查看','表示'],
    website:['situs web','website','laman web','website','trang web','网站','ウェブサイト'],
    yearly:['tahunan','yearly','tahunan','jährlich','hàng năm','每年','年間'],
    and:['dan','and','dan','und','và','和','と'],
    or:['atau','or','atau','oder','hoặc','或','または'],
    with:['dengan','with','dengan','mit','với','与','と'],
    without:['tanpa','without','tanpa','ohne','không có','不使用','なし'],
    for:['untuk','for','untuk','für','cho','用于','用'],
    from:['dari','from','daripada','von','từ','从','から'],
    to:['ke','to','ke','zu','đến','到','へ'],
    in:['di','in','dalam','in','trong','在','で'],
    of:['dari','of','daripada','von','của','的','の'],
    is:['adalah','is','ialah','ist','là','是','です'],
    are:['adalah','are','ialah','sind','là','是','です'],
    this:['ini','this','ini','dies','này','此','この'],
    every:['setiap','every','setiap','jede','mọi','每个','すべての'],
    complete:['lengkap','complete','lengkap','vollständig','hoàn chỉnh','完整','完全'],
    automatically:['secara otomatis','automatically','secara automatik','automatisch','tự động','自动','自動的に'],
    available:['tersedia','available','tersedia','verfügbar','có sẵn','可用','利用可能'],
    visible:['terlihat','visible','kelihatan','sichtbar','hiển thị','可见','表示可能'],
    selected:['dipilih','selected','dipilih','ausgewählt','đã chọn','已选择','選択済み']
  };

  Object.assign(PHRASES, {"Living Cost Planner":["Perencana Biaya Hidup","Living Cost Planner","Perancang Kos Sara Hidup","Lebenshaltungskostenplaner","Trình lập chi phí sinh hoạt","生活成本规划器","生活費プランナー"],"Cross-country budget planner":["Perencana anggaran lintas negara","Cross-country budget planner","Perancang bajet antara negara","Länderübergreifender Budgetplaner","Trình lập ngân sách đa quốc gia","跨国预算规划器","国別予算プランナー"],"Summary":["Ringkasan","Summary","Ringkasan","Zusammenfassung","Tóm tắt","摘要","概要"],"Comparison":["Perbandingan","Comparison","Perbandingan","Vergleich","So sánh","比较","比較"],"Education":["Pendidikan","Education","Pendidikan","Bildung","Giáo dục","教育","教育"],"Information":["Informasi","Information","Maklumat","Information","Thông tin","信息","情報"],"Frugal":["Hemat","Frugal","Jimat","Sparsam","Tiết kiệm","节俭","節約"],"Normal":["Normal","Normal","Normal","Normal","Bình thường","正常","標準"],"Premium":["Premium","Premium","Premium","Premium","Cao cấp","高级","プレミアム"],"Cost Breakdown":["Rincian Biaya","Cost Breakdown","Pecahan Kos","Kostenaufschlüsselung","Chi tiết chi phí","费用明细","費用内訳"],"Family & Health":["Keluarga & Kesehatan","Family & Health","Keluarga & Kesihatan","Familie & Gesundheit","Gia đình & Sức khỏe","家庭与健康","家族と健康"],"Currency & Savings":["Mata Uang & Tabungan","Currency & Savings","Mata Wang & Simpanan","Währung & Ersparnisse","Tiền tệ & Tiết kiệm","货币与储蓄","通貨と貯蓄"],"MY Cost Insights":["Wawasan Biaya Saya","MY Cost Insights","Wawasan Kos Saya","Meine Kostenübersicht","Thông tin chi phí của tôi","我的成本洞察","自分の費用分析"],"Compare major costs, organize monthly needs, and evaluate financial capacity in one concise workspace.":["Bandingkan biaya utama, susun kebutuhan bulanan, dan evaluasi kemampuan finansial dalam satu ruang kerja yang ringkas.","Compare major costs, organize monthly needs, and evaluate financial capacity in one concise workspace.","Bandingkan kos utama, susun keperluan bulanan dan nilai kemampuan kewangan dalam satu ruang kerja ringkas.","Vergleichen Sie Hauptkosten, planen Sie monatliche Bedürfnisse und bewerten Sie die finanzielle Leistungsfähigkeit in einem kompakten Arbeitsbereich.","So sánh chi phí chính, sắp xếp nhu cầu hàng tháng và đánh giá khả năng tài chính trong một không gian gọn gàng.","在一个简洁的工作区中比较主要成本、规划每月需求并评估财务能力。","主要費用を比較し、月々の必要額を整理し、財務能力を一つの簡潔なワークスペースで評価します。"],"249 countries & territories":["249 negara & wilayah","249 countries & territories","249 negara & wilayah","249 Länder & Gebiete","249 quốc gia & vùng lãnh thổ","249 个国家和地区","249の国と地域"],"Compare 4 locations":["Perbandingan 4 lokasi","Compare 4 locations","Bandingkan 4 lokasi","4 Standorte vergleichen","So sánh 4 địa điểm","比较 4 个地点","4地点を比較"],"Export-ready report":["Laporan siap ekspor","Export-ready report","Laporan sedia eksport","Exportfertiger Bericht","Báo cáo sẵn sàng xuất","可导出的报告","エクスポート対応レポート"],"Open calculator":["Buka kalkulator","Open calculator","Buka kalkulator","Rechner öffnen","Mở máy tính","打开计算器","計算機を開く"],"Export data":["Ekspor data","Export data","Eksport data","Daten exportieren","Xuất dữ liệu","导出数据","データを書き出す"],"Print report":["Cetak laporan","Print report","Cetak laporan","Bericht drucken","In báo cáo","打印报告","レポートを印刷"],"Country / territory":["Negara / wilayah","Country / territory","Negara / wilayah","Land / Gebiet","Quốc gia / vùng lãnh thổ","国家/地区","国・地域"],"Default currency":["Mata uang bawaan","Default currency","Mata wang lalai","Standardwährung","Tiền tệ mặc định","默认货币","既定通貨"],"Country preset available":["Preset negara tersedia","Country preset available","Pratetap negara tersedia","Ländervoreinstellung verfügbar","Có cài đặt sẵn cho quốc gia","国家预设可用","国別プリセットあり"],"City":["Kota","City","Bandar","Stadt","Thành phố","城市","都市"],"Currency":["Mata uang","Currency","Mata wang","Währung","Tiền tệ","货币","通貨"],"1 USD = local currency":["1 USD = mata uang lokal","1 USD = local currency","1 USD = mata wang tempatan","1 USD = lokale Währung","1 USD = tiền tệ địa phương","1 美元 = 当地货币","1米ドル = 現地通貨"],"World Bank 2025: official annual exchange rate":["World Bank 2025: kurs resmi tahunan","World Bank 2025: official annual exchange rate","World Bank 2025: kadar pertukaran rasmi tahunan","World Bank 2025: offizieller jährlicher Wechselkurs","World Bank 2025: tỷ giá chính thức hàng năm","世界银行 2025：官方年度汇率","世界銀行 2025：公式年間為替レート"],"Official annual exchange rate":["Kurs resmi tahunan","Official annual exchange rate","Kadar pertukaran rasmi tahunan","Offizieller jährlicher Wechselkurs","Tỷ giá chính thức hàng năm","官方年度汇率","公式年間為替レート"],"Household size":["Jumlah orang","Household size","Saiz isi rumah","Haushaltsgröße","Quy mô hộ gia đình","家庭人数","世帯人数"],"Lifestyle":["Gaya hidup","Lifestyle","Gaya hidup","Lebensstil","Lối sống","生活方式","ライフスタイル"],"Comfortable":["Nyaman","Comfortable","Selesa","Komfortabel","Thoải mái","舒适","快適"],"Monthly income":["Pendapatan bulanan","Monthly income","Pendapatan bulanan","Monatliches Einkommen","Thu nhập hàng tháng","月收入","月収"],"Load starting estimate":["Muat estimasi awal","Load starting estimate","Muat anggaran awal","Startschätzung laden","Tải ước tính ban đầu","加载初始估算","初期見積もりを読み込む"],"Sync World Bank data":["Sinkronkan data World Bank","Sync World Bank data","Segerakkan data World Bank","World-Bank-Daten synchronisieren","Đồng bộ dữ liệu World Bank","同步世界银行数据","世界銀行データを同期"],"Reset":["Atur ulang","Reset","Tetapkan semula","Zurücksetzen","Đặt lại","重置","リセット"],"Academic Evidence Pack":["Paket Bukti Akademik","Academic Evidence Pack","Pek Bukti Akademik","Paket akademischer Nachweise","Gói minh chứng học thuật","学术证据包","学術証拠パック"],"View All on GitHub":["Lihat Semua di GitHub","View All on GitHub","Lihat Semua di GitHub","Alle auf GitHub ansehen","Xem tất cả trên GitHub","在 GitHub 查看全部","GitHubですべて表示"],"Full Source":["Kode Sumber Lengkap","Full Source","Sumber Penuh","Vollständiger Quellcode","Mã nguồn đầy đủ","完整源代码","完全なソース"],"Personal Statement":["Pernyataan Pribadi","Personal Statement","Pernyataan Peribadi","Persönliche Erklärung","Bài luận cá nhân","个人陈述","自己紹介書"],"Study Plan":["Rencana Studi","Study Plan","Rancangan Pengajian","Studienplan","Kế hoạch học tập","学习计划","学習計画"],"Research Detail":["Detail Riset","Research Detail","Butiran Penyelidikan","Forschungsdetails","Chi tiết nghiên cứu","研究详情","研究詳細"],"Academic Evidence Hub":["Pusat Bukti Akademik","Academic Evidence Hub","Hab Bukti Akademik","Zentrum für akademische Nachweise","Trung tâm minh chứng học thuật","学术证据中心","学術証拠ハブ"],"Main navigation":["Navigasi utama","Main navigation","Navigasi utama","Hauptnavigation","Điều hướng chính","主导航","メインナビゲーション"],"Explore the Evidence Hub":["Jelajahi Pusat Bukti","Explore the Evidence Hub","Terokai Hab Bukti","Nachweiszentrum erkunden","Khám phá trung tâm minh chứng","探索证据中心","証拠ハブを探索"],"View Projects":["Lihat Proyek","View Projects","Lihat Projek","Projekte ansehen","Xem dự án","查看项目","プロジェクトを見る"],"Research Statement":["Pernyataan Riset","Research Statement","Pernyataan Penyelidikan","Forschungserklärung","Tuyên bố nghiên cứu","研究陈述","研究声明"],"Curriculum Vitae":["Daftar Riwayat Hidup","Curriculum Vitae","Riwayat Hidup","Lebenslauf","Sơ yếu lý lịch","个人简历","履歴書"],"Evidence Pack":["Paket Bukti","Evidence Pack","Pek Bukti","Nachweispaket","Gói minh chứng","证据包","証拠パック"],"Admission Docs":["Dokumen Penerimaan","Admission Docs","Dokumen Kemasukan","Zulassungsunterlagen","Tài liệu tuyển sinh","申请材料","出願書類"],"Graduate admissions reviewers":["Peninjau penerimaan pascasarjana","Graduate admissions reviewers","Penilai kemasukan siswazah","Prüfer für Graduiertenzulassungen","Người xét tuyển sau đại học","研究生招生审核人员","大学院入試審査担当者"],"Independent academic evidence":["Bukti akademik independen","Independent academic evidence","Bukti akademik bebas","Unabhängige akademische Nachweise","Minh chứng học thuật độc lập","独立学术证据","独立した学術証拠"],"Verified credentials and badges":["Kredensial dan lencana terverifikasi","Verified credentials and badges","Kelayakan dan lencana disahkan","Verifizierte Qualifikationen und Abzeichen","Chứng chỉ và huy hiệu đã xác minh","已验证的资历和徽章","検証済み資格とバッジ"],"Downloadable academic evidence":["Bukti akademik yang dapat diunduh","Downloadable academic evidence","Bukti akademik boleh dimuat turun","Herunterladbare akademische Nachweise","Minh chứng học thuật có thể tải xuống","可下载的学术证据","ダウンロード可能な学術証拠"],"Open source repositories":["Repositori sumber terbuka","Open source repositories","Repositori sumber terbuka","Open-Source-Repositories","Kho mã nguồn mở","开源代码仓库","オープンソースリポジトリ"],"Education, skills, and experience":["Pendidikan, keterampilan, dan pengalaman","Education, skills, and experience","Pendidikan, kemahiran dan pengalaman","Ausbildung, Fähigkeiten und Erfahrung","Học vấn, kỹ năng và kinh nghiệm","教育、技能与经验","学歴・スキル・経験"],"Statement of purpose and study plan":["Pernyataan tujuan dan rencana studi","Statement of purpose and study plan","Pernyataan tujuan dan rancangan pengajian","Motivationsschreiben und Studienplan","Tuyên bố mục đích và kế hoạch học tập","目的陈述与学习计划","志望理由書と学習計画"],"All content reflects independent, self-directed work.":["Seluruh konten mencerminkan pekerjaan mandiri yang diarahkan sendiri.","All content reflects independent, self-directed work.","Semua kandungan mencerminkan kerja bebas yang diarahkan sendiri.","Alle Inhalte spiegeln unabhängige, selbstgesteuerte Arbeit wider.","Tất cả nội dung phản ánh công việc độc lập, tự định hướng.","所有内容均反映独立、自主完成的工作。","すべての内容は独立した自己主導の作業を反映しています。"]});

  Object.assign(PHRASES,{"Reference and usage":["Referensi dan penggunaan","Reference and usage","Rujukan dan penggunaan","Referenzen und Verwendung","Tài liệu tham khảo và cách sử dụng","参考与使用","参考情報と利用方法"],"Use the results as an initial estimate and verify them against official local prices.":["Gunakan hasil sebagai estimasi awal dan cocokkan kembali dengan harga resmi setempat.","Use the results as an initial estimate and verify them against official local prices.","Gunakan hasil sebagai anggaran awal dan semak semula dengan harga rasmi tempatan.","Verwenden Sie die Ergebnisse als erste Schätzung und gleichen Sie sie mit den offiziellen Preisen vor Ort ab.","Hãy dùng kết quả làm ước tính ban đầu và đối chiếu lại với giá chính thức tại địa phương.","将结果用作初步估算，并与当地官方价格核对。","結果を初期見積もりとして使用し、現地の公式価格と照合してください。"],"Using the results":["Penggunaan hasil","Using the results","Penggunaan hasil","Verwendung der Ergebnisse","Sử dụng kết quả","结果的使用","結果の利用"],"Values in the calculator can be adjusted to your needs, city, rental contract, education costs, and lifestyle.":["Nilai pada kalkulator dapat disesuaikan dengan kebutuhan, kota, kontrak sewa, biaya pendidikan, dan gaya hidup Anda.","Values in the calculator can be adjusted to your needs, city, rental contract, education costs, and lifestyle.","Nilai dalam kalkulator boleh disesuaikan mengikut keperluan, bandar, kontrak sewa, kos pendidikan dan gaya hidup anda.","Die Werte im Rechner können an Ihre Bedürfnisse, die Stadt, den Mietvertrag, die Bildungskosten und Ihren Lebensstil angepasst werden.","Các giá trị trong máy tính có thể được điều chỉnh theo nhu cầu, thành phố, hợp đồng thuê, chi phí giáo dục và lối sống của bạn.","计算器中的数值可根据您的需求、城市、租赁合同、教育费用和生活方式进行调整。","計算機の値は、必要条件、都市、賃貸契約、教育費、ライフスタイルに合わせて調整できます。"],"Results are planning estimates. Before making a decision, recheck exchange rates, tuition, visa costs, property prices, and health costs from official sources.":["Hasil berfungsi sebagai estimasi perencanaan. Sebelum mengambil keputusan, periksa kembali kurs, tuition, biaya visa, harga properti, dan biaya kesehatan dari sumber resmi.","Results are planning estimates. Before making a decision, recheck exchange rates, tuition, visa costs, property prices, and health costs from official sources.","Hasil ialah anggaran perancangan. Sebelum membuat keputusan, semak semula kadar pertukaran, yuran pengajian, kos visa, harga hartanah dan kos kesihatan daripada sumber rasmi.","Die Ergebnisse sind Planungsschätzungen. Prüfen Sie vor einer Entscheidung Wechselkurse, Studiengebühren, Visakosten, Immobilienpreise und Gesundheitskosten anhand offizieller Quellen erneut.","Kết quả chỉ là ước tính để lập kế hoạch. Trước khi quyết định, hãy kiểm tra lại tỷ giá, học phí, chi phí thị thực, giá bất động sản và chi phí y tế từ các nguồn chính thức.","结果仅用于规划估算。做出决定前，请通过官方来源重新核对汇率、学费、签证费用、房产价格和医疗费用。","結果は計画用の見積もりです。意思決定の前に、為替レート、授業料、ビザ費用、不動産価格、医療費を公式情報で再確認してください。"],"Calculation privacy":["Privasi perhitungan","Calculation privacy","Privasi pengiraan","Datenschutz bei der Berechnung","Quyền riêng tư của phép tính","计算隐私","計算のプライバシー"],"Budget data is processed on your device and can be deleted using the Reset button.":["Data anggaran diproses di perangkat Anda dan dapat dihapus melalui tombol Reset.","Budget data is processed on your device and can be deleted using the Reset button.","Data bajet diproses pada peranti anda dan boleh dipadam menggunakan butang Tetapkan semula.","Budgetdaten werden auf Ihrem Gerät verarbeitet und können über die Schaltfläche „Zurücksetzen“ gelöscht werden.","Dữ liệu ngân sách được xử lý trên thiết bị của bạn và có thể xóa bằng nút Đặt lại.","预算数据在您的设备上处理，可通过“重置”按钮删除。","予算データは端末上で処理され、リセットボタンで削除できます。"],"Reference sources":["Sumber referensi","Reference sources","Sumber rujukan","Referenzquellen","Nguồn tham khảo","参考来源","参照元"],"Use local prices, rental contracts, official tuition, and payment-provider exchange rates before making financial decisions.":["Gunakan harga lokal, kontrak sewa, tuition resmi, dan kurs penyedia pembayaran sebelum membuat keputusan finansial.","Use local prices, rental contracts, official tuition, and payment-provider exchange rates before making financial decisions.","Gunakan harga tempatan, kontrak sewa, yuran pengajian rasmi dan kadar pertukaran penyedia pembayaran sebelum membuat keputusan kewangan.","Verwenden Sie lokale Preise, Mietverträge, offizielle Studiengebühren und die Wechselkurse des Zahlungsanbieters, bevor Sie finanzielle Entscheidungen treffen.","Hãy sử dụng giá địa phương, hợp đồng thuê, học phí chính thức và tỷ giá của nhà cung cấp thanh toán trước khi đưa ra quyết định tài chính.","在做出财务决定前，请采用当地价格、租赁合同、官方学费和支付服务商汇率。","財務判断を行う前に、現地価格、賃貸契約、公式授業料、決済事業者の為替レートを使用してください。"],"Import data":["Impor data","Import data","Import data","Daten importieren","Nhập dữ liệu","导入数据","データを読み込む"],"No file chosen":["Belum ada file dipilih","No file chosen","Tiada fail dipilih","Keine Datei ausgewählt","Chưa chọn tệp","未选择文件","ファイルが選択されていません"],"Choose file":["Pilih file","Choose file","Pilih fail","Datei auswählen","Chọn tệp","选择文件","ファイルを選択"],"Download detailed CSV":["Unduh rincian CSV","Download detailed CSV","Muat turun CSV terperinci","Detaillierte CSV herunterladen","Tải CSV chi tiết","下载详细 CSV","詳細CSVをダウンロード"],"World Bank Country API":["World Bank Country API","World Bank Country API","World Bank Country API","World Bank Country API","World Bank Country API","世界银行国家 API","世界銀行 Country API"],"World Bank PPP conversion factor":["Faktor konversi PPP World Bank","World Bank PPP conversion factor","Faktor penukaran PPP World Bank","PPP-Umrechnungsfaktor der Weltbank","Hệ số chuyển đổi PPP của World Bank","世界银行 PPP 换算因子","世界銀行PPP換算係数"],"World Bank official exchange rate":["Kurs resmi World Bank","World Bank official exchange rate","Kadar pertukaran rasmi World Bank","Offizieller Wechselkurs der Weltbank","Tỷ giá chính thức của World Bank","世界银行官方汇率","世界銀行公式為替レート"],"ECB reference exchange rates":["Kurs referensi ECB","ECB reference exchange rates","Kadar pertukaran rujukan ECB","EZB-Referenzwechselkurse","Tỷ giá tham chiếu ECB","欧洲央行参考汇率","ECB参照為替レート"],"Export CSV":["Ekspor CSV","Export CSV","Eksport CSV","CSV exportieren","Xuất CSV","导出 CSV","CSVを書き出す"],"Import JSON":["Impor JSON","Import JSON","Import JSON","JSON importieren","Nhập JSON","导入 JSON","JSONを読み込む"],"Export JSON":["Ekspor JSON","Export JSON","Eksport JSON","JSON exportieren","Xuất JSON","导出 JSON","JSONを書き出す"],"Print report":["Cetak laporan","Print report","Cetak laporan","Bericht drucken","In báo cáo","打印报告","レポートを印刷"],"Latest Tickets":["Tiket Terbaru","Latest Tickets","Tiket Terkini","Neueste Tickets","Phiếu mới nhất","最新工单","最新チケット"],"Total Tickets":["Total Tiket","Total Tickets","Jumlah Tiket","Tickets insgesamt","Tổng số phiếu","工单总数","チケット総数"],"New Ticket":["Tiket Baru","New Ticket","Tiket Baharu","Neues Ticket","Phiếu mới","新工单","新規チケット"],"New Tickets":["Tiket Baru","New Tickets","Tiket Baharu","Neue Tickets","Phiếu mới","新工单","新規チケット"],"Processed":["Diproses","Processed","Diproses","In Bearbeitung","Đang xử lý","处理中","処理中"],"Completed Tickets":["Tiket Selesai","Completed Tickets","Tiket Selesai","Abgeschlossene Tickets","Phiếu đã hoàn tất","已完成工单","完了チケット"],"Total assets":["Total aset","Total assets","Jumlah aset","Assets insgesamt","Tổng tài sản","资产总数","資産総数"],"In Maintenance":["Dalam Perawatan","In Maintenance","Dalam Penyelenggaraan","In Wartung","Đang bảo trì","维护中","メンテナンス中"],"Division":["Divisi","Division","Bahagian","Abteilung","Bộ phận","部门","部門"],"Reporter":["Pelapor","Reporter","Pelapor","Meldende Person","Người báo cáo","报告人","報告者"],"Priority":["Prioritas","Priority","Keutamaan","Priorität","Ưu tiên","优先级","優先度"],"Date":["Tanggal","Date","Tarikh","Datum","Ngày","日期","日付"],"Laptop cannot connect to VPN":["Laptop tidak dapat terhubung ke VPN","Laptop cannot connect to VPN","Komputer riba tidak dapat menyambung ke VPN","Laptop kann keine Verbindung zum VPN herstellen","Máy tính xách tay không thể kết nối VPN","笔记本电脑无法连接 VPN","ノートPCがVPNに接続できません"],"Email client synchronization issue":["Masalah sinkronisasi klien email","Email client synchronization issue","Masalah penyegerakan klien e-mel","Problem bei der Synchronisierung des E-Mail-Clients","Sự cố đồng bộ ứng dụng email","电子邮件客户端同步问题","メールクライアントの同期問題"],"Printer toner and queue issue":["Masalah toner printer dan antrean","Printer toner and queue issue","Masalah toner pencetak dan baris gilir","Problem mit Druckertoner und Warteschlange","Sự cố mực in và hàng đợi","打印机墨粉和队列问题","プリンターのトナーとキューの問題"],"Incident Timeline":["Linimasa Insiden","Incident Timeline","Garis Masa Insiden","Vorfall-Zeitleiste","Dòng thời gian sự cố","事件时间线","インシデントタイムライン"],"Chronological view of all incident activities":["Tampilan kronologis seluruh aktivitas insiden","Chronological view of all incident activities","Paparan kronologi semua aktiviti insiden","Chronologische Ansicht aller Vorfallaktivitäten","Chế độ xem theo thời gian của mọi hoạt động sự cố","所有事件活动的时间顺序视图","すべてのインシデント活動を時系列で表示"],"All Incidents":["Semua Insiden","All Incidents","Semua Insiden","Alle Vorfälle","Tất cả sự cố","所有事件","すべてのインシデント"],"Critical Only":["Hanya Kritis","Critical Only","Kritikal Sahaja","Nur kritisch","Chỉ nghiêm trọng","仅严重事件","重大のみ"],"Last 7 Days":["7 Hari Terakhir","Last 7 Days","7 Hari Terakhir","Letzte 7 Tage","7 ngày qua","最近 7 天","過去7日間"],"Last 30 Days":["30 Hari Terakhir","Last 30 Days","30 Hari Terakhir","Letzte 30 Tage","30 ngày qua","最近 30 天","過去30日間"],"Payment Gateway":["Gateway Pembayaran","Payment Gateway","Gerbang Pembayaran","Zahlungs-Gateway","Cổng thanh toán","支付网关","決済ゲートウェイ"],"Authentication":["Autentikasi","Authentication","Pengesahan","Authentifizierung","Xác thực","身份验证","認証"],"Data Pipeline":["Pipeline Data","Data Pipeline","Saluran Data","Daten-Pipeline","Đường ống dữ liệu","数据管道","データパイプライン"],"CDN Service":["Layanan CDN","CDN Service","Perkhidmatan CDN","CDN-Dienst","Dịch vụ CDN","CDN 服务","CDNサービス"],"Mobile Push":["Push Seluler","Mobile Push","Push Mudah Alih","Mobiler Push","Thông báo đẩy di động","移动推送","モバイルプッシュ"],"Payment Team":["Tim Pembayaran","Payment Team","Pasukan Pembayaran","Zahlungsteam","Nhóm thanh toán","支付团队","決済チーム"],"Security Team":["Tim Keamanan","Security Team","Pasukan Keselamatan","Sicherheitsteam","Nhóm bảo mật","安全团队","セキュリティチーム"],"Data Team":["Tim Data","Data Team","Pasukan Data","Datenteam","Nhóm dữ liệu","数据团队","データチーム"],"Frontend Team":["Tim Frontend","Frontend Team","Pasukan Frontend","Frontend-Team","Nhóm frontend","前端团队","フロントエンドチーム"],"Mobile Team":["Tim Seluler","Mobile Team","Pasukan Mudah Alih","Mobiles Team","Nhóm di động","移动团队","モバイルチーム"],"Connection pool exhausted during transaction peak":["Pool koneksi habis saat puncak transaksi","Connection pool exhausted during transaction peak","Kumpulan sambungan habis ketika puncak transaksi","Verbindungspool während der Transaktionsspitze erschöpft","Cạn nhóm kết nối trong thời điểm giao dịch cao điểm","交易高峰期间连接池耗尽","取引ピーク時に接続プールが枯渇"],"Payment processing temporarily unavailable":["Pemrosesan pembayaran sementara tidak tersedia","Payment processing temporarily unavailable","Pemprosesan pembayaran tidak tersedia buat sementara","Zahlungsabwicklung vorübergehend nicht verfügbar","Xử lý thanh toán tạm thời không khả dụng","支付处理暂时不可用","決済処理が一時的に利用できません"],"Expanded pool and circuit breaker":["Pool diperbesar dan circuit breaker diterapkan","Expanded pool and circuit breaker","Kumpulan diperluas dan pemutus litar digunakan","Pool erweitert und Leistungsschalter aktiviert","Mở rộng nhóm kết nối và bật bộ ngắt mạch","扩展连接池并启用熔断器","プールを拡張しサーキットブレーカーを有効化"],"Token validation memory leak":["Kebocoran memori pada validasi token","Token validation memory leak","Kebocoran memori pengesahan token","Speicherleck bei der Token-Validierung","Rò rỉ bộ nhớ khi xác thực mã thông báo","令牌验证内存泄漏","トークン検証のメモリリーク"],"Users could not log in":["Pengguna tidak dapat masuk","Users could not log in","Pengguna tidak dapat log masuk","Benutzer konnten sich nicht anmelden","Người dùng không thể đăng nhập","用户无法登录","ユーザーがログインできませんでした"],"Service restarted and patched":["Layanan dimulai ulang dan ditambal","Service restarted and patched","Perkhidmatan dimulakan semula dan ditampal","Dienst neu gestartet und gepatcht","Đã khởi động lại và vá dịch vụ","服务已重启并修补","サービスを再起動してパッチを適用"],"Disk capacity reached":["Kapasitas disk mencapai batas","Disk capacity reached","Kapasiti cakera telah mencapai had","Festplattenkapazität erreicht","Dung lượng đĩa đã đạt giới hạn","磁盘容量已满","ディスク容量が上限に到達"],"Analytics refresh delayed":["Pembaruan analitik tertunda","Analytics refresh delayed","Kemas kini analitik tertunda","Analytik-Aktualisierung verzögert","Làm mới phân tích bị trì hoãn","分析刷新延迟","分析更新が遅延"],"Logs rotated and storage expanded":["Log dirotasi dan penyimpanan diperluas","Logs rotated and storage expanded","Log diputar dan storan diperluas","Protokolle gedreht und Speicher erweitert","Đã luân chuyển nhật ký và mở rộng bộ nhớ","已轮转日志并扩展存储","ログをローテーションしストレージを拡張"],"Cache invalidation issue":["Masalah invalidasi cache","Cache invalidation issue","Masalah pembatalan cache","Problem mit der Cache-Ungültigkeit","Sự cố vô hiệu hóa bộ nhớ đệm","缓存失效问题","キャッシュ無効化の問題"],"Stale content in multiple regions":["Konten usang di beberapa wilayah","Stale content in multiple regions","Kandungan lapuk di beberapa rantau","Veraltete Inhalte in mehreren Regionen","Nội dung cũ ở nhiều khu vực","多个区域出现陈旧内容","複数リージョンで古いコンテンツ"],"Manual purge completed":["Pembersihan manual selesai","Manual purge completed","Pembersihan manual selesai","Manuelle Bereinigung abgeschlossen","Đã hoàn tất xóa thủ công","手动清除完成","手動パージ完了"],"Certificate renewal pending":["Pembaruan sertifikat tertunda","Certificate renewal pending","Pembaharuan sijil belum selesai","Zertifikatsverlängerung ausstehend","Đang chờ gia hạn chứng chỉ","证书续期待处理","証明書更新待ち"],"Push delivery delayed":["Pengiriman push tertunda","Push delivery delayed","Penghantaran push tertunda","Push-Zustellung verzögert","Gửi thông báo đẩy bị trì hoãn","推送发送延迟","プッシュ配信が遅延"],"AcademIQ":["AcademIQ","AcademIQ","AcademIQ","AcademIQ","AcademIQ","AcademIQ","AcademIQ"],"Risk Intelligence":["Inteligensi Risiko","Risk Intelligence","Risikan Risiko","Risikoanalyse","Phân tích rủi ro","风险智能","リスクインテリジェンス"],"Student Performance Dashboard":["Dasbor Performa Siswa","Student Performance Dashboard","Papan Pemuka Prestasi Pelajar","Dashboard zur Studienleistung","Bảng điều khiển kết quả học tập","学生表现仪表板","学生パフォーマンスダッシュボード"],"Monitor predictions, attendance, academic risk, and program-level patterns. The complete demonstration dataset is loaded automatically and remains editable in the browser.":["Pantau prediksi, kehadiran, risiko akademik, dan pola tingkat program. Kumpulan data demonstrasi lengkap dimuat otomatis dan tetap dapat diedit di browser.","Monitor predictions, attendance, academic risk, and program-level patterns. The complete demonstration dataset is loaded automatically and remains editable in the browser.","Pantau ramalan, kehadiran, risiko akademik dan corak peringkat program. Set data demonstrasi lengkap dimuatkan secara automatik dan kekal boleh diedit dalam pelayar.","Überwachen Sie Prognosen, Anwesenheit, akademische Risiken und Muster auf Programmebene. Der vollständige Demonstrationsdatensatz wird automatisch geladen und bleibt im Browser bearbeitbar.","Theo dõi dự đoán, chuyên cần, rủi ro học tập và xu hướng theo chương trình. Bộ dữ liệu minh họa đầy đủ được tải tự động và vẫn có thể chỉnh sửa trong trình duyệt.","监控预测、出勤率、学业风险和项目层面的模式。完整演示数据集会自动加载，并可在浏览器中编辑。","予測、出席率、学業リスク、プログラム単位の傾向を監視します。完全なデモデータセットは自動的に読み込まれ、ブラウザーで編集できます。"],"Students monitored":["Siswa dipantau","Students monitored","Pelajar dipantau","Überwachte Studierende","Sinh viên được theo dõi","监测学生数","監視対象学生"],"Complete visible records":["Rekaman lengkap terlihat","Complete visible records","Rekod lengkap kelihatan","Vollständig sichtbare Datensätze","Bản ghi đầy đủ đang hiển thị","完整可见记录","完全に表示されたレコード"],"Average prediction":["Rata-rata prediksi","Average prediction","Purata ramalan","Durchschnittliche Prognose","Dự đoán trung bình","平均预测","平均予測"],"Weighted demonstration score":["Skor demonstrasi berbobot","Weighted demonstration score","Skor demonstrasi berwajaran","Gewichteter Demonstrationswert","Điểm minh họa có trọng số","加权演示分数","重み付きデモスコア"],"Average attendance":["Rata-rata kehadiran","Average attendance","Purata kehadiran","Durchschnittliche Anwesenheit","Chuyên cần trung bình","平均出勤率","平均出席率"],"Across current dataset":["Di seluruh kumpulan data saat ini","Across current dataset","Merentasi set data semasa","Im aktuellen Datensatz","Trên toàn bộ dữ liệu hiện tại","在当前数据集中","現在のデータセット全体"],"High-risk students":["Siswa berisiko tinggi","High-risk students","Pelajar berisiko tinggi","Studierende mit hohem Risiko","Sinh viên rủi ro cao","高风险学生","高リスク学生"],"Priority review required":["Perlu tinjauan prioritas","Priority review required","Semakan keutamaan diperlukan","Prioritätsprüfung erforderlich","Cần xem xét ưu tiên","需要优先审查","優先レビューが必要"],"Performance trend":["Tren performa","Performance trend","Trend prestasi","Leistungstrend","Xu hướng kết quả","表现趋势","パフォーマンス傾向"],"Illustrative period trend ending with the current dataset average.":["Tren periode ilustratif yang berakhir pada rata-rata kumpulan data saat ini.","Illustrative period trend ending with the current dataset average.","Trend tempoh ilustrasi yang berakhir dengan purata set data semasa.","Beispielhafter Periodentrend, der mit dem Durchschnitt des aktuellen Datensatzes endet.","Xu hướng giai đoạn minh họa kết thúc bằng mức trung bình của dữ liệu hiện tại.","以当前数据集平均值结束的示例周期趋势。","現在のデータセット平均で終わる例示的な期間トレンド。"],"Risk distribution":["Distribusi risiko","Risk distribution","Taburan risiko","Risikoverteilung","Phân bố rủi ro","风险分布","リスク分布"],"Current risk classification calculated from scores and attendance.":["Klasifikasi risiko saat ini dihitung dari skor dan kehadiran.","Current risk classification calculated from scores and attendance.","Klasifikasi risiko semasa dikira daripada skor dan kehadiran.","Die aktuelle Risikoklassifizierung wird aus Punktzahlen und Anwesenheit berechnet.","Phân loại rủi ro hiện tại được tính từ điểm số và chuyên cần.","当前风险分类根据分数和出勤率计算。","現在のリスク分類はスコアと出席率から計算されます。"],"Low risk":["Risiko rendah","Low risk","Risiko rendah","Niedriges Risiko","Rủi ro thấp","低风险","低リスク"],"Medium risk":["Risiko sedang","Medium risk","Risiko sederhana","Mittleres Risiko","Rủi ro trung bình","中风险","中リスク"],"High risk":["Risiko tinggi","High risk","Risiko tinggi","Hohes Risiko","Rủi ro cao","高风险","高リスク"],"Priority monitoring":["Pemantauan prioritas","Priority monitoring","Pemantauan keutamaan","Prioritätsüberwachung","Theo dõi ưu tiên","优先监控","優先監視"],"Students ordered by risk and predicted score.":["Siswa diurutkan berdasarkan risiko dan skor prediksi.","Students ordered by risk and predicted score.","Pelajar disusun mengikut risiko dan skor ramalan.","Studierende nach Risiko und prognostiziertem Wert sortiert.","Sinh viên được sắp xếp theo rủi ro và điểm dự đoán.","学生按风险和预测分数排序。","学生をリスクと予測スコアで並べています。"],"Program summary":["Ringkasan program","Program summary","Ringkasan program","Programmübersicht","Tóm tắt chương trình","项目摘要","プログラム概要"],"Average prediction grouped by academic program.":["Rata-rata prediksi dikelompokkan berdasarkan program akademik.","Average prediction grouped by academic program.","Purata ramalan dikumpulkan mengikut program akademik.","Durchschnittliche Prognose nach Studienprogramm gruppiert.","Dự đoán trung bình được nhóm theo chương trình học.","按学术项目分组的平均预测。","学術プログラム別の平均予測。"],"Complete CRUD workspace":["Ruang kerja CRUD lengkap","Complete CRUD workspace","Ruang kerja CRUD lengkap","Vollständiger CRUD-Arbeitsbereich","Không gian CRUD đầy đủ","完整 CRUD 工作区","完全なCRUDワークスペース"],"Student Explorer":["Penjelajah Siswa","Student Explorer","Peneroka Pelajar","Studierenden-Explorer","Trình khám phá sinh viên","学生浏览器","学生エクスプローラー"],"Create, read, update, duplicate, delete, search, filter, sort, import, export, and recalculate student prediction records. Data is visible immediately and stored locally.":["Buat, baca, perbarui, duplikat, hapus, cari, filter, urutkan, impor, ekspor, dan hitung ulang rekaman prediksi siswa. Data langsung terlihat dan disimpan secara lokal.","Create, read, update, duplicate, delete, search, filter, sort, import, export, and recalculate student prediction records. Data is visible immediately and stored locally.","Cipta, baca, kemas kini, salin, padam, cari, tapis, susun, import, eksport dan kira semula rekod ramalan pelajar. Data terus kelihatan dan disimpan secara setempat.","Erstellen, lesen, aktualisieren, duplizieren, löschen, suchen, filtern, sortieren, importieren, exportieren und berechnen Sie Prognosedatensätze neu. Die Daten sind sofort sichtbar und werden lokal gespeichert.","Tạo, đọc, cập nhật, nhân bản, xóa, tìm kiếm, lọc, sắp xếp, nhập, xuất và tính lại bản ghi dự đoán sinh viên. Dữ liệu hiển thị ngay và được lưu cục bộ.","创建、读取、更新、复制、删除、搜索、筛选、排序、导入、导出并重新计算学生预测记录。数据会立即显示并在本地存储。","学生予測レコードの作成、読み取り、更新、複製、削除、検索、フィルター、並べ替え、インポート、エクスポート、再計算を行えます。データはすぐに表示され、ローカルに保存されます。"],"Prediction Model Lab":["Model Lab Prediksi","Prediction Model Lab","Makmal Model Ramalan","Labor für Prognosemodelle","Phòng thí nghiệm mô hình dự đoán","预测模型实验室","予測モデルラボ"],"Adjust academic indicators and see the predicted score and risk class instantly. The model is an explainable demonstration formula, not a production admissions or grading system.":["Sesuaikan indikator akademik dan lihat skor prediksi serta kelas risiko secara langsung. Model ini adalah formula demonstrasi yang dapat dijelaskan, bukan sistem penerimaan atau penilaian produksi.","Adjust academic indicators and see the predicted score and risk class instantly. The model is an explainable demonstration formula, not a production admissions or grading system.","Laraskan penunjuk akademik dan lihat skor ramalan serta kelas risiko dengan serta-merta. Model ini ialah formula demonstrasi yang boleh dijelaskan, bukan sistem kemasukan atau pemarkahan produksi.","Passen Sie akademische Indikatoren an und sehen Sie prognostizierten Wert und Risikoklasse sofort. Das Modell ist eine erklärbare Demonstrationsformel und kein produktives Zulassungs- oder Benotungssystem.","Điều chỉnh chỉ số học tập và xem ngay điểm dự đoán cùng nhóm rủi ro. Mô hình là công thức minh họa có thể giải thích, không phải hệ thống tuyển sinh hay chấm điểm thực tế.","调整学业指标并立即查看预测分数和风险类别。该模型是可解释的演示公式，并非生产级招生或评分系统。","学業指標を調整し、予測スコアとリスク分類をすぐに確認できます。このモデルは説明可能なデモ式であり、実運用の入試・採点システムではありません。"],"Scenario inputs":["Skenario masukan","Scenario inputs","Input senario","Szenarioeingaben","Đầu vào kịch bản","情景输入","シナリオ入力"],"Explainable formula":["Formula yang dapat dijelaskan","Explainable formula","Formula yang boleh dijelaskan","Erklärbare Formel","Công thức có thể giải thích","可解释公式","説明可能な式"],"Study hours / day":["Jam belajar / hari","Study hours / day","Jam belajar / hari","Lernstunden / Tag","Giờ học / ngày","每日学习小时","学習時間／日"],"Previous score":["Skor sebelumnya","Previous score","Skor sebelumnya","Vorheriger Wert","Điểm trước đó","之前分数","前回スコア"],"Assignments":["Tugas","Assignments","Tugasan","Aufgaben","Bài tập","作业","課題"],"Quiz score":["Skor kuis","Quiz score","Skor kuiz","Quiz-Punktzahl","Điểm bài kiểm tra","测验分数","クイズスコア"],"Engagement":["Keterlibatan","Engagement","Penglibatan","Engagement","Mức độ tham gia","参与度","エンゲージメント"],"Predicted score":["Skor prediksi","Predicted score","Skor ramalan","Prognostizierter Wert","Điểm dự đoán","预测分数","予測スコア"],"Risk class":["Kelas risiko","Risk class","Kelas risiko","Risikoklasse","Nhóm rủi ro","风险类别","リスク分類"],"Demo confidence":["Keyakinan demo","Demo confidence","Keyakinan demo","Demo-Konfidenz","Độ tin cậy demo","演示置信度","デモ信頼度"],"Input validation":["Validasi masukan","Input validation","Pengesahan input","Eingabevalidierung","Xác thực đầu vào","输入验证","入力検証"],"All numeric fields are clamped to valid ranges and invalid values resolve safely instead of producing NaN.":["Semua kolom numerik dibatasi pada rentang yang valid dan nilai tidak valid ditangani dengan aman alih-alih menghasilkan NaN.","All numeric fields are clamped to valid ranges and invalid values resolve safely instead of producing NaN.","Semua medan angka dihadkan kepada julat sah dan nilai tidak sah diselesaikan dengan selamat tanpa menghasilkan NaN.","Alle numerischen Felder werden auf gültige Bereiche begrenzt; ungültige Werte werden sicher behandelt, statt NaN zu erzeugen.","Mọi trường số được giới hạn trong phạm vi hợp lệ và giá trị không hợp lệ được xử lý an toàn thay vì tạo NaN.","所有数值字段均限制在有效范围内，无效值会被安全处理而不会产生 NaN。","すべての数値項目は有効範囲に制限され、無効な値はNaNを生成せず安全に処理されます。"],"Explainability":["Keterjelasan","Explainability","Kebolehjelasan","Erklärbarkeit","Khả năng giải thích","可解释性","説明可能性"],"Every output can be traced to visible weighted inputs, avoiding an opaque or unverifiable prediction.":["Setiap keluaran dapat ditelusuri ke masukan berbobot yang terlihat, sehingga menghindari prediksi yang buram atau tidak dapat diverifikasi.","Every output can be traced to visible weighted inputs, avoiding an opaque or unverifiable prediction.","Setiap output boleh dijejaki kepada input berwajaran yang kelihatan, mengelakkan ramalan yang kabur atau tidak boleh disahkan.","Jede Ausgabe lässt sich auf sichtbare gewichtete Eingaben zurückführen; undurchsichtige oder nicht überprüfbare Prognosen werden vermieden.","Mọi đầu ra đều có thể truy ngược về các đầu vào có trọng số hiển thị, tránh dự đoán mơ hồ hoặc không thể kiểm chứng.","每个输出都可追溯到可见的加权输入，避免不透明或无法验证的预测。","すべての出力は表示された重み付き入力まで追跡でき、不透明または検証不能な予測を避けます。"],"Responsible use":["Penggunaan yang bertanggung jawab","Responsible use","Penggunaan bertanggungjawab","Verantwortungsvolle Nutzung","Sử dụng có trách nhiệm","负责任的使用","責任ある利用"],"Predictions are decision-support signals only and require human academic review.":["Prediksi hanya merupakan sinyal pendukung keputusan dan memerlukan tinjauan akademik oleh manusia.","Predictions are decision-support signals only and require human academic review.","Ramalan hanyalah isyarat sokongan keputusan dan memerlukan semakan akademik manusia.","Prognosen sind lediglich Entscheidungshilfen und erfordern eine menschliche akademische Prüfung.","Dự đoán chỉ là tín hiệu hỗ trợ quyết định và cần được con người đánh giá về mặt học thuật.","预测仅用于辅助决策，仍需人工学术审核。","予測は意思決定支援のシグナルにすぎず、人による学術的レビューが必要です。"],"All values are demonstration data and not final academic decisions.":["Semua nilai merupakan data demonstrasi dan bukan keputusan akademik final.","All values are demonstration data and not final academic decisions.","Semua nilai ialah data demonstrasi dan bukan keputusan akademik muktamad.","Alle Werte sind Demonstrationsdaten und keine endgültigen akademischen Entscheidungen.","Mọi giá trị đều là dữ liệu minh họa, không phải quyết định học thuật cuối cùng.","所有数值均为演示数据，并非最终学术决定。","すべての値はデモデータであり、最終的な学術判断ではありません。"],"Open records":["Buka rekaman","Open records","Buka rekod","Datensätze öffnen","Mở bản ghi","打开记录","レコードを開く"],"This portfolio is independently maintained by Roberto Ocaviantyo Tahta Laksmana as an academic evidence hub for graduate admissions. It is not affiliated with, endorsed by, or representative of any formal admission, employment, or institutional relationship with UTM Malaysia, ETH Zurich, MIT, Tsinghua University, or The University of Aizu.":["Portofolio ini dikelola secara mandiri oleh Roberto Ocaviantyo Tahta Laksmana sebagai pusat bukti akademik untuk penerimaan pascasarjana. Portofolio ini tidak berafiliasi, didukung, atau mewakili hubungan penerimaan, pekerjaan, maupun institusional resmi dengan UTM Malaysia, ETH Zurich, MIT, Tsinghua University, atau The University of Aizu.","This portfolio is independently maintained by Roberto Ocaviantyo Tahta Laksmana as an academic evidence hub for graduate admissions. It is not affiliated with, endorsed by, or representative of any formal admission, employment, or institutional relationship with UTM Malaysia, ETH Zurich, MIT, Tsinghua University, or The University of Aizu.","Portfolio ini diselenggara secara bebas oleh Roberto Ocaviantyo Tahta Laksmana sebagai hab bukti akademik untuk kemasukan siswazah. Ia tidak mempunyai hubungan, sokongan atau perwakilan rasmi dengan UTM Malaysia, ETH Zurich, MIT, Tsinghua University atau The University of Aizu.","Dieses Portfolio wird von Roberto Ocaviantyo Tahta Laksmana eigenständig als Zentrum akademischer Nachweise für Graduiertenzulassungen gepflegt. Es ist weder mit UTM Malaysia, ETH Zürich, MIT, der Tsinghua University oder der University of Aizu verbunden noch von ihnen unterstützt und stellt keine formelle Zulassungs-, Beschäftigungs- oder institutionelle Beziehung dar.","Hồ sơ này do Roberto Ocaviantyo Tahta Laksmana tự quản lý như một trung tâm minh chứng học thuật phục vụ tuyển sinh sau đại học. Hồ sơ không liên kết, không được bảo trợ và không đại diện cho bất kỳ mối quan hệ tuyển sinh, việc làm hay tổ chức chính thức nào với UTM Malaysia, ETH Zurich, MIT, Đại học Thanh Hoa hoặc Đại học Aizu.","本作品集由 Roberto Ocaviantyo Tahta Laksmana 独立维护，作为研究生申请的学术证据中心。它与 UTM Malaysia、ETH Zurich、MIT、清华大学或会津大学不存在任何正式的招生、雇佣或机构隶属关系，也不代表这些机构的认可。","このポートフォリオは、Roberto Ocaviantyo Tahta Laksmana が大学院入試向けの学術証拠ハブとして独立して運営しています。UTM Malaysia、ETH Zurich、MIT、清華大学、会津大学との正式な入学・雇用・機関関係を示すものではなく、提携や推薦も受けていません。"],"All content reflects independent, self-directed work. AI tools (GitHub Copilot, ChatGPT) were used solely as coding assistants for syntax and boilerplate — never for core system design, research formulation, or academic writing.":["Seluruh konten mencerminkan pekerjaan mandiri yang diarahkan sendiri. Alat AI (GitHub Copilot, ChatGPT) hanya digunakan sebagai asisten pengodean untuk sintaks dan boilerplate—tidak pernah untuk desain sistem inti, perumusan riset, atau penulisan akademik.","All content reflects independent, self-directed work. AI tools (GitHub Copilot, ChatGPT) were used solely as coding assistants for syntax and boilerplate — never for core system design, research formulation, or academic writing.","Semua kandungan mencerminkan kerja bebas yang diarahkan sendiri. Alat AI (GitHub Copilot, ChatGPT) hanya digunakan sebagai pembantu pengekodan untuk sintaks dan boilerplate—bukan untuk reka bentuk sistem teras, perumusan penyelidikan atau penulisan akademik.","Alle Inhalte beruhen auf unabhängiger, selbstgesteuerter Arbeit. KI-Werkzeuge (GitHub Copilot, ChatGPT) wurden ausschließlich als Programmierassistenten für Syntax und Boilerplate verwendet — niemals für das Kerndesign des Systems, die Formulierung der Forschung oder akademisches Schreiben.","Mọi nội dung phản ánh công việc độc lập, tự định hướng. Công cụ AI (GitHub Copilot, ChatGPT) chỉ được dùng để hỗ trợ viết mã về cú pháp và mã mẫu — không dùng cho thiết kế hệ thống cốt lõi, xây dựng nghiên cứu hay viết học thuật.","所有内容均体现独立、自主完成的工作。AI 工具（GitHub Copilot、ChatGPT）仅用于协助编写语法和样板代码，从未用于核心系统设计、研究构思或学术写作。","すべての内容は独立した自己主導の作業を反映しています。AIツール（GitHub Copilot、ChatGPT）は構文や定型コードのコーディング支援にのみ使用され、コアシステム設計、研究構成、学術文章には使用されていません。"]});
  Object.assign(WORD_ROWS,{"activity":["aktivitas","activity","aktiviti","aktivität","hoạt động","活动","活動"],"actions":["tindakan","actions","tindakan","aktionen","hành động","操作","操作"],"active":["aktif","active","aktif","aktiv","hoạt động","活跃","有効"],"administration":["administrasi","administration","pentadbiran","verwaltung","quản trị","管理","管理"],"admissions":["penerimaan","admissions","kemasukan","zulassungen","tuyển sinh","招生","入試"],"affected":["terdampak","affected","terjejas","betroffen","bị ảnh hưởng","受影响","影響あり"],"analytics":["analitik","analytics","analitik","analytik","phân tích","分析","分析"],"annual":["tahunan","annual","tahunan","jährlich","hàng năm","年度","年間"],"asset":["aset","asset","aset","asset","tài sản","资产","資産"],"assets":["aset","assets","aset","assets","tài sản","资产","資産"],"attendance":["kehadiran","attendance","kehadiran","anwesenheit","chuyên cần","出勤率","出席率"],"average":["rata-rata","average","purata","durchschnitt","trung bình","平均","平均"],"budget":["anggaran","budget","bajet","budget","ngân sách","预算","予算"],"capacity":["kemampuan","capacity","keupayaan","kapazität","khả năng","能力","能力"],"category":["kategori","category","kategori","kategorie","danh mục","类别","カテゴリー"],"classification":["klasifikasi","classification","pengelasan","klassifizierung","phân loại","分类","分類"],"complete":["lengkap","complete","lengkap","vollständig","hoàn chỉnh","完整","完全"],"completed":["selesai","completed","selesai","abgeschlossen","hoàn thành","已完成","完了"],"confidence":["keyakinan","confidence","keyakinan","konfidenz","độ tin cậy","置信度","信頼度"],"current":["saat ini","current","semasa","aktuell","hiện tại","当前","現在"],"dashboard":["dasbor","dashboard","papan pemuka","dashboard","bảng điều khiển","仪表板","ダッシュボード"],"data":["data","data","data","daten","dữ liệu","数据","データ"],"dataset":["kumpulan data","dataset","set data","datensatz","tập dữ liệu","数据集","データセット"],"decision":["keputusan","decision","keputusan","entscheidung","quyết định","决定","判断"],"decisions":["keputusan","decisions","keputusan","entscheidungen","quyết định","决定","判断"],"demonstration":["demonstrasi","demonstration","demonstrasi","demonstration","minh họa","演示","デモ"],"description":["deskripsi","description","penerangan","beschreibung","mô tả","描述","説明"],"details":["detail","details","butiran","details","chi tiết","详细信息","詳細"],"duration":["durasi","duration","tempoh","dauer","thời lượng","持续时间","期間"],"education":["pendidikan","education","pendidikan","bildung","giáo dục","教育","教育"],"estimate":["estimasi","estimate","anggaran","schätzung","ước tính","估算","見積もり"],"evaluation":["evaluasi","evaluation","penilaian","bewertung","đánh giá","评估","評価"],"export":["ekspor","export","eksport","exportieren","xuất","导出","エクスポート"],"financial":["finansial","financial","kewangan","finanziell","tài chính","财务","財務"],"formula":["formula","formula","formula","formel","công thức","公式","式"],"health":["kesehatan","health","kesihatan","gesundheit","sức khỏe","健康","健康"],"high":["tinggi","high","tinggi","hoch","cao","高","高"],"impact":["dampak","impact","impak","auswirkung","tác động","影响","影響"],"import":["impor","import","import","importieren","nhập","导入","インポート"],"incident":["insiden","incident","insiden","vorfall","sự cố","事件","インシデント"],"incidents":["insiden","incidents","insiden","vorfälle","sự cố","事件","インシデント"],"information":["informasi","information","maklumat","informationen","thông tin","信息","情報"],"input":["masukan","input","input","eingabe","đầu vào","输入","入力"],"intelligence":["inteligensi","intelligence","risikan","intelligenz","thông minh","智能","インテリジェンス"],"latest":["terbaru","latest","terkini","neueste","mới nhất","最新","最新"],"local":["lokal","local","tempatan","lokal","cục bộ","本地","ローカル"],"low":["rendah","low","rendah","niedrig","thấp","低","低"],"maintenance":["perawatan","maintenance","penyelenggaraan","wartung","bảo trì","维护","メンテナンス"],"medium":["sedang","medium","sederhana","mittel","trung bình","中","中"],"model":["model","model","model","modell","mô hình","模型","モデル"],"monitoring":["pemantauan","monitoring","pemantauan","überwachung","giám sát","监控","監視"],"monthly":["bulanan","monthly","bulanan","monatlich","hàng tháng","每月","月間"],"navigation":["navigasi","navigation","navigasi","navigation","điều hướng","导航","ナビゲーション"],"open":["terbuka","open","terbuka","offen","mở","开放","未完了"],"performance":["performa","performance","prestasi","leistung","hiệu suất","表现","パフォーマンス"],"prediction":["prediksi","prediction","ramalan","prognose","dự đoán","预测","予測"],"predictions":["prediksi","predictions","ramalan","prognosen","dự đoán","预测","予測"],"priority":["prioritas","priority","keutamaan","priorität","ưu tiên","优先级","優先度"],"privacy":["privasi","privacy","privasi","datenschutz","quyền riêng tư","隐私","プライバシー"],"processed":["diproses","processed","diproses","verarbeitet","đã xử lý","已处理","処理済み"],"program":["program","program","program","programm","chương trình","项目","プログラム"],"record":["rekaman","record","rekod","datensatz","bản ghi","记录","レコード"],"records":["rekaman","records","rekod","datensätze","bản ghi","记录","レコード"],"reference":["referensi","reference","rujukan","referenz","tham khảo","参考","参照"],"report":["laporan","report","laporan","bericht","báo cáo","报告","レポート"],"reports":["laporan","reports","laporan","berichte","báo cáo","报告","レポート"],"required":["diperlukan","required","diperlukan","erforderlich","bắt buộc","必需","必要"],"resolution":["penyelesaian","resolution","penyelesaian","lösung","giải pháp","解决方案","解決"],"responsible":["bertanggung jawab","responsible","bertanggungjawab","verantwortlich","có trách nhiệm","负责","責任ある"],"result":["hasil","result","keputusan","ergebnis","kết quả","结果","結果"],"results":["hasil","results","keputusan","ergebnisse","kết quả","结果","結果"],"risk":["risiko","risk","risiko","risiko","rủi ro","风险","リスク"],"savings":["tabungan","savings","simpanan","ersparnisse","tiết kiệm","储蓄","貯蓄"],"score":["skor","score","skor","punktzahl","điểm","分数","スコア"],"search":["cari","search","cari","suchen","tìm kiếm","搜索","検索"],"service":["layanan","service","perkhidmatan","dienst","dịch vụ","服务","サービス"],"status":["status","status","status","status","trạng thái","状态","ステータス"],"student":["siswa","student","pelajar","studierende","sinh viên","学生","学生"],"students":["siswa","students","pelajar","studierende","sinh viên","学生","学生"],"team":["tim","team","pasukan","team","nhóm","团队","チーム"],"theme":["tema","theme","tema","design","giao diện","主题","テーマ"],"total":["total","total","jumlah","gesamt","tổng","总计","合計"],"trend":["tren","trend","trend","trend","xu hướng","趋势","傾向"],"usage":["penggunaan","usage","penggunaan","verwendung","cách sử dụng","使用","利用"],"validation":["validasi","validation","pengesahan","validierung","xác thực","验证","検証"],"visible":["terlihat","visible","kelihatan","sichtbar","hiển thị","可见","表示"],"workspace":["ruang kerja","workspace","ruang kerja","arbeitsbereich","không gian làm việc","工作区","ワークスペース"]});

  Object.assign(PHRASES,{"Search by service name or team...":["Cari berdasarkan nama layanan atau tim...","Search by service name or team...","Cari mengikut nama perkhidmatan atau pasukan...","Nach Dienstname oder Team suchen...","Tìm theo tên dịch vụ hoặc nhóm...","按服务名称或团队搜索...","サービス名またはチームで検索..."],"Root Cause":["Penyebab Utama","Root Cause","Punca Utama","Ursache","Nguyên nhân gốc","根本原因","根本原因"],"Impact":["Dampak","Impact","Kesan","Auswirkung","Tác động","影响","影響"],"Resolution":["Penyelesaian","Resolution","Penyelesaian","Lösung","Giải pháp","解决方案","解決策"],"Duration":["Durasi","Duration","Tempoh","Dauer","Thời lượng","持续时间","所要時間"],"Resolved":["Terselesaikan","Resolved","Selesai","Gelöst","Đã giải quyết","已解决","解決済み"],"Monitoring":["Pemantauan","Monitoring","Pemantauan","Überwachung","Giám sát","监控中","監視中"],"Investigation":["Investigasi","Investigation","Siasatan","Untersuchung","Điều tra","调查中","調査中"],"Critical":["Kritis","Critical","Kritikal","Kritisch","Nghiêm trọng","严重","重大"],"Asset Inventory":["Inventaris Aset","Asset Inventory","Inventori Aset","Anlageninventar","Kho tài sản","资产清单","資産インベントリ"],"Report":["Laporan","Report","Laporan","Bericht","Báo cáo","报告","レポート"],"No file selected":["Belum ada file dipilih","No file selected","Tiada fail dipilih","Keine Datei ausgewählt","Chưa chọn tệp","未选择文件","ファイルが選択されていません"],"Summary":["Ringkasan","Summary","Ringkasan","Zusammenfassung","Tóm tắt","摘要","概要"],"Cost Details":["Rincian Biaya","Cost Details","Butiran Kos","Kostendetails","Chi tiết chi phí","费用明细","費用詳細"],"Comparison":["Perbandingan","Comparison","Perbandingan","Vergleich","So sánh","比较","比較"],"Housing":["Perumahan","Housing","Perumahan","Wohnen","Nhà ở","住房","住居"],"Education":["Pendidikan","Education","Pendidikan","Bildung","Giáo dục","教育","教育"],"Family & Health":["Keluarga & Kesehatan","Family & Health","Keluarga & Kesihatan","Familie & Gesundheit","Gia đình & Sức khỏe","家庭与健康","家族・健康"],"Currency & Savings":["Mata Uang & Tabungan","Currency & Savings","Mata Wang & Simpanan","Währung & Ersparnisse","Tiền tệ & Tiết kiệm","货币与储蓄","通貨・貯蓄"],"Information":["Informasi","Information","Maklumat","Informationen","Thông tin","信息","情報"],"Country / territory":["Negara / wilayah","Country / territory","Negara / wilayah","Land / Gebiet","Quốc gia / vùng lãnh thổ","国家／地区","国・地域"],"Number of people":["Jumlah orang","Number of people","Bilangan orang","Personenzahl","Số người","人数","人数"],"Load initial estimate":["Muat estimasi awal","Load initial estimate","Muat anggaran awal","Erste Schätzung laden","Tải ước tính ban đầu","加载初始估算","初期見積もりを読み込む"],"Sync World Bank data":["Sinkronkan data World Bank","Sync World Bank data","Segerakkan data World Bank","Weltbankdaten synchronisieren","Đồng bộ dữ liệu World Bank","同步世界银行数据","世界銀行データを同期"],"Living Cost Dashboard":["Dashboard biaya hidup","Living Cost Dashboard","Papan pemuka kos sara hidup","Lebenshaltungskosten-Dashboard","Bảng điều khiển chi phí sinh hoạt","生活成本仪表板","生活費ダッシュボード"],"Monthly cost":["Biaya bulanan","Monthly cost","Kos bulanan","Monatliche Kosten","Chi phí hàng tháng","月度费用","月額費用"],"Annual cost":["Biaya tahunan","Annual cost","Kos tahunan","Jährliche Kosten","Chi phí hàng năm","年度费用","年間費用"],"Cost / income ratio":["Rasio biaya / pendapatan","Cost / income ratio","Nisbah kos / pendapatan","Kosten-/Einkommensverhältnis","Tỷ lệ chi phí / thu nhập","成本／收入比","費用／収入比率"],"Potential savings":["Potensi tabungan","Potential savings","Potensi simpanan","Mögliches Sparpotenzial","Tiết kiệm tiềm năng","潜在储蓄","貯蓄可能額"],"Expense distribution":["Distribusi pengeluaran","Expense distribution","Taburan perbelanjaan","Ausgabenverteilung","Phân bổ chi tiêu","支出分布","支出構成"],"Budget recommendation":["Rekomendasi anggaran","Budget recommendation","Cadangan bajet","Budgetempfehlung","Khuyến nghị ngân sách","预算建议","予算の推奨"],"Complete calculator":["Kalkulator lengkap","Complete calculator","Kalkulator lengkap","Vollständiger Rechner","Máy tính đầy đủ","完整计算器","完全版計算機"],"Add category":["Tambah kategori","Add category","Tambah kategori","Kategorie hinzufügen","Thêm danh mục","添加类别","カテゴリーを追加"],"Frequency":["Frekuensi","Frequency","Kekerapan","Häufigkeit","Tần suất","频率","頻度"],"Action":["Aksi","Action","Tindakan","Aktion","Thao tác","操作","操作"],"Total monthly":["Total bulanan","Total monthly","Jumlah bulanan","Monatssumme","Tổng hàng tháng","月度总计","月間合計"],"Annual inflation (%)":["Inflasi tahunan (%)","Annual inflation (%)","Inflasi tahunan (%)","Jährliche Inflation (%)","Lạm phát hàng năm (%)","年通胀率（%）","年間インフレ率（%）"],"Emergency fund (months)":["Dana darurat (bulan)","Emergency fund (months)","Dana kecemasan (bulan)","Notfallfonds (Monate)","Quỹ khẩn cấp (tháng)","应急基金（月）","緊急資金（月）"],"Unexpected buffer (%)":["Buffer tidak terduga (%)","Unexpected buffer (%)","Penampan luar jangka (%)","Puffer für Unerwartetes (%)","Dự phòng ngoài dự kiến (%)","意外缓冲（%）","予備費（%）"],"Student name":["Nama siswa","Student name","Nama pelajar","Name der Studierenden","Tên sinh viên","学生姓名","学生名"],"Gender group":["Kelompok gender","Gender group","Kumpulan jantina","Geschlechtsgruppe","Nhóm giới tính","性别组","性別グループ"],"Female":["Perempuan","Female","Perempuan","Weiblich","Nữ","女性","女性"],"Male":["Laki-laki","Male","Lelaki","Männlich","Nam","男性","男性"],"Other":["Lainnya","Other","Lain-lain","Andere","Khác","其他","その他"],"Semester":["Semester","Semester","Semester","Semester","Học kỳ","学期","学期"],"Record status":["Status rekaman","Record status","Status rekod","Datensatzstatus","Trạng thái bản ghi","记录状态","レコード状態"],"Needs support":["Membutuhkan dukungan","Needs support","Memerlukan sokongan","Unterstützung erforderlich","Cần hỗ trợ","需要支持","支援が必要"],"Dataset operations":["Operasi kumpulan data","Dataset operations","Operasi set data","Datensatzvorgänge","Thao tác dữ liệu","数据集操作","データセット操作"],"All risk levels":["Semua tingkat risiko","All risk levels","Semua tahap risiko","Alle Risikostufen","Mọi mức rủi ro","所有风险级别","すべてのリスクレベル"],"All programs":["Semua program","All programs","Semua program","Alle Programme","Tất cả chương trình","所有项目","すべてのプログラム"],"All statuses":["Semua status","All statuses","Semua status","Alle Status","Mọi trạng thái","所有状态","すべてのステータス"],"Operations":["Operasi","Operations","Operasi","Aktionen","Thao tác","操作","操作"],"Interactive local model":["Model lokal interaktif","Interactive local model","Model tempatan interaktif","Interaktives lokales Modell","Mô hình cục bộ tương tác","交互式本地模型","対話型ローカルモデル"],"Group-level quality review":["Tinjauan kualitas tingkat kelompok","Group-level quality review","Semakan kualiti peringkat kumpulan","Qualitätsprüfung auf Gruppenebene","Đánh giá chất lượng theo nhóm","群体级质量审查","グループ単位の品質レビュー"],"Groups evaluated":["Kelompok yang dievaluasi","Groups evaluated","Kumpulan dinilai","Bewertete Gruppen","Nhóm được đánh giá","已评估组","評価済みグループ"],"Largest score gap":["Kesenjangan skor terbesar","Largest score gap","Jurang skor terbesar","Größte Punktedifferenz","Chênh lệch điểm lớn nhất","最大分差","最大スコア差"],"Audit status":["Status audit","Audit status","Status audit","Auditstatus","Trạng thái kiểm toán","审计状态","監査状態"],"Records":["Rekaman","Records","Rekod","Datensätze","Bản ghi","记录","レコード"],"Average prediction":["Prediksi rata-rata","Average prediction","Purata ramalan","Durchschnittliche Prognose","Dự đoán trung bình","平均预测","平均予測"],"High-risk rate":["Tingkat risiko tinggi","High-risk rate","Kadar risiko tinggi","Hochrisikoquote","Tỷ lệ rủi ro cao","高风险率","高リスク率"],"Interpretation":["Interpretasi","Interpretation","Tafsiran","Interpretation","Diễn giải","解读","解釈"],"Student details":["Detail siswa","Student details","Butiran pelajar","Studierendendetails","Chi tiết sinh viên","学生详情","学生詳細"]});

  /* V6.5 exact phrase coverage for mobile navigation, Network Subnet, Student Performance and SentiScope. */
  Object.assign(PHRASES,{"Project menu":["Menu proyek","Project menu","Menu projek","Projektmenü","Menu dự án","项目菜单","プロジェクトメニュー"],"Close menu":["Tutup menu","Close menu","Tutup menu","Menü schließen","Đóng menu","关闭菜单","メニューを閉じる"],"Exit project":["Keluar dari proyek","Exit project","Keluar daripada projek","Projekt verlassen","Thoát dự án","退出项目","プロジェクトを終了"],"Project navigation":["Navigasi proyek","Project navigation","Navigasi projek","Projektnavigation","Điều hướng dự án","项目导航","プロジェクトナビゲーション"],"Feedback Explorer":["Penjelajah Umpan Balik","Feedback Explorer","Peneroka Maklum Balas","Feedback-Explorer","Trình khám phá phản hồi","反馈浏览器","フィードバックエクスプローラー"],"Submit Feedback":["Kirim Umpan Balik","Submit Feedback","Hantar Maklum Balas","Feedback senden","Gửi phản hồi","提交反馈","フィードバックを送信"],"Topic Analysis":["Analisis Topik","Topic Analysis","Analisis Topik","Themenanalyse","Phân tích chủ đề","主题分析","トピック分析"],"Model Evaluation":["Evaluasi Model","Model Evaluation","Penilaian Model","Modellbewertung","Đánh giá mô hình","模型评估","モデル評価"],"Model Lab":["Laboratorium Model","Model Lab","Makmal Model","Modelllabor","Phòng thí nghiệm mô hình","模型实验室","モデルラボ"],"Subnet Calculator":["Kalkulator Subnet","Subnet Calculator","Kalkulator Subnet","Subnetzrechner","Máy tính mạng con","子网计算器","サブネット計算機"],"Segmentation / VLSM":["Segmentasi / VLSM","Segmentation / VLSM","Segmentasi / VLSM","Segmentierung / VLSM","Phân đoạn / VLSM","网络分段 / VLSM","セグメンテーション / VLSM"],"Network Tools":["Peralatan Jaringan","Network Tools","Alat Rangkaian","Netzwerkwerkzeuge","Công cụ mạng","网络工具","ネットワークツール"],"Subnet Intelligence & Troubleshooting":["Inteligensi Subnet & Pemecahan Masalah","Subnet Intelligence & Troubleshooting","Kecerdasan Subnet & Penyelesaian Masalah","Subnetz-Analyse & Fehlerbehebung","Phân tích mạng con & khắc phục sự cố","子网分析与故障排除","サブネット分析・トラブルシューティング"],"Configuration Validation":["Validasi Konfigurasi","Configuration Validation","Pengesahan Konfigurasi","Konfigurationsprüfung","Xác thực cấu hình","配置验证","構成検証"],"Network Troubleshooter":["Pemecah Masalah Jaringan","Network Troubleshooter","Penyelesai Masalah Rangkaian","Netzwerk-Fehlerdiagnose","Trình khắc phục sự cố mạng","网络故障排查器","ネットワークトラブルシューター"],"Print reports":["Cetak laporan","Print reports","Cetak laporan","Berichte drucken","In báo cáo","打印报告","レポートを印刷"],"JSON exports":["Ekspor JSON","JSON exports","Eksport JSON","JSON-Exporte","Xuất JSON","导出 JSON","JSON エクスポート"],"Calculate network address with AND operation":["Hitung alamat jaringan dengan operasi AND","Calculate network address with AND operation","Kira alamat rangkaian dengan operasi AND","Netzwerkadresse mit AND-Verknüpfung berechnen","Tính địa chỉ mạng bằng phép AND","使用 AND 运算计算网络地址","AND 演算でネットワークアドレスを計算"],"Each IP bit is compared to the subnet mask bit. Only pairs 1 and 1 remain 1.":["Setiap bit IP dibandingkan dengan bit subnet mask. Hanya pasangan 1 dan 1 yang tetap bernilai 1.","Each IP bit is compared to the subnet mask bit. Only pairs 1 and 1 remain 1.","Setiap bit IP dibandingkan dengan bit subnet mask. Hanya pasangan 1 dan 1 kekal 1.","Jedes IP-Bit wird mit dem Bit der Subnetzmaske verglichen. Nur die Kombination 1 und 1 bleibt 1.","Mỗi bit IP được so sánh với bit của mặt nạ mạng con. Chỉ cặp 1 và 1 vẫn bằng 1.","逐位比较 IP 地址与子网掩码，只有 1 与 1 的组合结果为 1。","IP の各ビットをサブネットマスクと比較し、1 と 1 の組み合わせだけが 1 になります。"],"Calculate Wildcard and Broadcast":["Hitung Wildcard dan Broadcast","Calculate Wildcard and Broadcast","Kira Wildcard dan Broadcast","Wildcard- und Broadcast-Adresse berechnen","Tính Wildcard và Broadcast","计算通配符与广播地址","ワイルドカードとブロードキャストを計算"],"Wildcard is the opposite of a subnet mask. Broadcast is obtained from network OR wildcard.":["Wildcard adalah kebalikan subnet mask. Broadcast diperoleh dari operasi OR antara jaringan dan wildcard.","Wildcard is the opposite of a subnet mask. Broadcast is obtained from network OR wildcard.","Wildcard ialah songsangan subnet mask. Broadcast diperoleh daripada operasi OR rangkaian dan wildcard.","Die Wildcard ist die Umkehrung der Subnetzmaske. Die Broadcast-Adresse entsteht durch Netzwerk OR Wildcard.","Wildcard là phần bù của mặt nạ mạng con. Broadcast được tính bằng phép OR giữa mạng và wildcard.","通配符掩码是子网掩码的反码，广播地址由网络地址与通配符掩码执行 OR 运算得到。","ワイルドカードはサブネットマスクの反転値で、ネットワークとワイルドカードの OR 演算からブロードキャストを求めます。"],"Student Performance Dashboard":["Dasbor Performa Siswa","Student Performance Dashboard","Papan Pemuka Prestasi Pelajar","Dashboard zur Studienleistung","Bảng điều khiển kết quả học tập","学生表现仪表板","学生パフォーマンスダッシュボード"],"Monitor predictions, attendance, academic risk, and program-level patterns. The complete demonstration dataset is loaded automatically and remains editable in the browser.":["Pantau prediksi, kehadiran, risiko akademik, dan pola tingkat program. Seluruh dataset demonstrasi dimuat otomatis dan tetap dapat diedit di browser.","Monitor predictions, attendance, academic risk, and program-level patterns. The complete demonstration dataset is loaded automatically and remains editable in the browser.","Pantau ramalan, kehadiran, risiko akademik dan pola peringkat program. Set data demonstrasi lengkap dimuat secara automatik dan kekal boleh disunting dalam pelayar.","Überwachen Sie Prognosen, Anwesenheit, akademische Risiken und Muster auf Programmebene. Der vollständige Demonstrationsdatensatz wird automatisch geladen und bleibt im Browser bearbeitbar.","Theo dõi dự đoán, chuyên cần, rủi ro học tập và xu hướng theo chương trình. Bộ dữ liệu minh họa đầy đủ được tải tự động và vẫn có thể chỉnh sửa trong trình duyệt.","监控预测、出勤率、学业风险和专业层面的趋势。完整演示数据集会自动加载，并可在浏览器中继续编辑。","予測、出席率、学業リスク、プログラム別の傾向を監視します。完全なデモデータセットは自動的に読み込まれ、ブラウザー内で編集できます。"],"Open Student Explorer":["Buka Penjelajah Siswa","Open Student Explorer","Buka Peneroka Pelajar","Studierenden-Explorer öffnen","Mở trình khám phá sinh viên","打开学生浏览器","学生エクスプローラーを開く"],"Students monitored":["Siswa dipantau","Students monitored","Pelajar dipantau","Überwachte Studierende","Sinh viên được theo dõi","已监控学生","監視対象の学生"],"Complete visible records":["Rekaman lengkap yang terlihat","Complete visible records","Rekod lengkap yang kelihatan","Vollständige sichtbare Datensätze","Bản ghi đầy đủ đang hiển thị","完整可见记录","表示中の完全なレコード"],"Weighted demonstration score":["Skor demonstrasi berbobot","Weighted demonstration score","Skor demonstrasi berwajaran","Gewichteter Demonstrationswert","Điểm minh họa có trọng số","加权演示分数","重み付きデモスコア"],"Across current dataset":["Pada dataset saat ini","Across current dataset","Merentas set data semasa","Im aktuellen Datensatz","Trên bộ dữ liệu hiện tại","基于当前数据集","現在のデータセット全体"],"High-risk students":["Siswa berisiko tinggi","High-risk students","Pelajar berisiko tinggi","Studierende mit hohem Risiko","Sinh viên rủi ro cao","高风险学生","高リスクの学生"],"Priority review required":["Perlu tinjauan prioritas","Priority review required","Semakan keutamaan diperlukan","Priorisierte Prüfung erforderlich","Cần xem xét ưu tiên","需要优先审查","優先レビューが必要"],"Performance trend":["Tren performa","Performance trend","Trend prestasi","Leistungstrend","Xu hướng kết quả","表现趋势","パフォーマンス推移"],"Risk distribution":["Distribusi risiko","Risk distribution","Taburan risiko","Risikoverteilung","Phân bố rủi ro","风险分布","リスク分布"],"Priority monitoring":["Pemantauan prioritas","Priority monitoring","Pemantauan keutamaan","Prioritätsüberwachung","Theo dõi ưu tiên","优先监控","優先モニタリング"],"Program summary":["Ringkasan program","Program summary","Ringkasan program","Programmübersicht","Tóm tắt chương trình","专业汇总","プログラム概要"],"Confusion matrix, performance metrics, and qualitative error analysis":["Matriks kebingungan, metrik performa, dan analisis kesalahan kualitatif","Confusion matrix, performance metrics, and qualitative error analysis","Matriks kekeliruan, metrik prestasi dan analisis ralat kualitatif","Konfusionsmatrix, Leistungsmetriken und qualitative Fehleranalyse","Ma trận nhầm lẫn, chỉ số hiệu suất và phân tích lỗi định tính","混淆矩阵、性能指标与定性错误分析","混同行列、性能指標、定性的エラー分析"],"Bias & Fairness Note":["Catatan Bias & Keadilan","Bias & Fairness Note","Nota Bias & Keadilan","Hinweis zu Bias & Fairness","Lưu ý về thiên lệch & công bằng","偏差与公平性说明","バイアス・公平性に関する注記"],"Privacy Note":["Catatan Privasi","Privacy Note","Nota Privasi","Datenschutzhinweis","Lưu ý về quyền riêng tư","隐私说明","プライバシーに関する注記"],"Performance Metrics":["Metrik Performa","Performance Metrics","Metrik Prestasi","Leistungsmetriken","Chỉ số hiệu suất","性能指标","性能指標"],"Confusion Matrix":["Matriks Kebingungan","Confusion Matrix","Matriks Kekeliruan","Konfusionsmatrix","Ma trận nhầm lẫn","混淆矩阵","混同行列"],"Qualitative Error Analysis":["Analisis Kesalahan Kualitatif","Qualitative Error Analysis","Analisis Ralat Kualitatif","Qualitative Fehleranalyse","Phân tích lỗi định tính","定性错误分析","定性的エラー分析"],"Technical Report Summary":["Ringkasan Laporan Teknis","Technical Report Summary","Ringkasan Laporan Teknikal","Zusammenfassung des technischen Berichts","Tóm tắt báo cáo kỹ thuật","技术报告摘要","技術レポート概要"],"Correct prediction":["Prediksi benar","Correct prediction","Ramalan betul","Korrekte Vorhersage","Dự đoán đúng","预测正确","正しい予測"],"Misclassification":["Salah klasifikasi","Misclassification","Salah pengelasan","Fehlklassifikation","Phân loại sai","误分类","誤分類"],"Accuracy":["Akurasi","Accuracy","Ketepatan","Genauigkeit","Độ chính xác","准确率","正解率"],"Precision (Macro)":["Presisi (Makro)","Precision (Macro)","Kepersisan (Makro)","Präzision (Makro)","Độ chuẩn xác (Macro)","精确率（宏平均）","適合率（マクロ）"],"Recall (Macro)":["Recall (Makro)","Recall (Macro)","Panggil Balik (Makro)","Trefferquote (Makro)","Độ bao phủ (Macro)","召回率（宏平均）","再現率（マクロ）"],"F1 Score (Macro)":["Skor F1 (Makro)","F1 Score (Macro)","Skor F1 (Makro)","F1-Wert (Makro)","Điểm F1 (Macro)","F1 分数（宏平均）","F1 スコア（マクロ）"],"No labeled data yet. Submit feedback with a ground truth label to compute metrics.":["Belum ada data berlabel. Kirim umpan balik dengan label kebenaran dasar untuk menghitung metrik.","No labeled data yet. Submit feedback with a ground truth label to compute metrics.","Belum ada data berlabel. Hantar maklum balas dengan label kebenaran asas untuk mengira metrik.","Noch keine beschrifteten Daten. Senden Sie Feedback mit Ground-Truth-Label, um Metriken zu berechnen.","Chưa có dữ liệu được gắn nhãn. Hãy gửi phản hồi kèm nhãn chuẩn để tính các chỉ số.","尚无标注数据。请提交带真实标签的反馈以计算指标。","ラベル付きデータがありません。正解ラベル付きのフィードバックを送信すると指標を計算できます。"],"No misclassification errors found. Submit feedback with ground truth labels to enable error analysis.":["Tidak ditemukan kesalahan klasifikasi. Kirim umpan balik dengan label kebenaran dasar untuk mengaktifkan analisis kesalahan.","No misclassification errors found. Submit feedback with ground truth labels to enable error analysis.","Tiada ralat pengelasan ditemui. Hantar maklum balas dengan label kebenaran asas untuk mengaktifkan analisis ralat.","Keine Fehlklassifikationen gefunden. Senden Sie Feedback mit Ground-Truth-Labels, um die Fehleranalyse zu aktivieren.","Không tìm thấy lỗi phân loại. Hãy gửi phản hồi kèm nhãn chuẩn để bật phân tích lỗi.","未发现误分类。请提交带真实标签的反馈以启用错误分析。","誤分類は見つかりませんでした。正解ラベル付きフィードバックを送信するとエラー分析を有効化できます。"]});

  const languageOrder = ['id','en','ms','de','vi','zh','ja'];
  const indexByLanguage = Object.fromEntries(languageOrder.map((lang, index) => [lang, index]));
  const root = document.documentElement;
  const EMBEDDED = window.self !== window.top;
  const THEME_KEY = 'apu-ui-theme';
  const LANGUAGE_KEY = 'apu-ui-language';
  const LEGACY_THEME_KEYS = ['apu-ui-theme-v5.5','apu-ui-theme-v5.6'];
  const LEGACY_LANGUAGE_KEYS = ['apu-ui-language-v5.5','apu-ui-language-v5.6'];
  const originalText = new WeakMap();
  const originalAttrs = new WeakMap();
  const expectedText = new WeakMap();
  const expectedAttrs = new WeakMap();
  const darkOwners = new WeakSet();
  const translationCache = new Map();
  const translatorPromises = new Map();
  let detectorPromise = null;
  let currentLanguage = LANGUAGES[root.dataset.apuLanguage] ? root.dataset.apuLanguage : 'en';
  let observer = null;
  let applying = false;
  let toastTimer = 0;
  let generation = 0;
  let translationTimer = 0;

  const normalize = value => String(value || '').replace(/\s+/g, ' ').trim();
  const escapeRegExp = value => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
  const sourceToCanonical = new Map();
  const sourceLanguage = new Map();
  const sourceEntries = [];
  for (const [canonical, translations] of Object.entries(PHRASES)) {
    [canonical, ...translations].forEach((source, idx) => {
      const clean = normalize(source);
      if (!clean) return;
      const key = clean.toLocaleLowerCase();
      sourceToCanonical.set(key, canonical);
      sourceLanguage.set(key, idx === 0 ? 'en' : languageOrder[idx - 1]);
      sourceEntries.push([clean, canonical]);
    });
  }
  sourceEntries.sort((a,b) => b[0].length - a[0].length);

  const wordSourceToCanonical = new Map();
  for (const [canonical, translations] of Object.entries(WORD_ROWS)) {
    [canonical, ...translations].forEach((source, idx) => {
      const clean = normalize(source).toLocaleLowerCase();
      if (clean && !clean.includes(' ')) wordSourceToCanonical.set(clean, canonical);
    });
  }

  function targetFor(canonical, language) {
    return PHRASES[canonical]?.[indexByLanguage[language] ?? 1] || canonical;
  }
  function wordTargetFor(canonical, language) {
    return WORD_ROWS[canonical]?.[indexByLanguage[language] ?? 1] || canonical;
  }
  function preserveCase(source, target) {
    if (!source || !target) return target;
    if (source === source.toUpperCase() && source.length > 1) return target.toLocaleUpperCase();
    if (source[0] === source[0].toUpperCase()) return target[0]?.toLocaleUpperCase() + target.slice(1);
    return target;
  }
  const APU_OFFLINE_WORDS={id:{"academic":"akademik","evidence":"bukti","hub":"pusat","graduate":"pascasarjana","graduates":"lulusan","admission":"penerimaan","admissions":"penerimaan","reviewer":"peninjau","reviewers":"peninjau","independent":"independen","self-directed":"mandiri","work":"pekerjaan","works":"karya","project":"proyek","projects":"proyek","research":"riset","statement":"pernyataan","study":"studi","plan":"rencana","education":"pendidikan","skill":"keterampilan","skills":"keterampilan","experience":"pengalaman","certificate":"sertifikat","certificates":"sertifikat","credential":"kredensial","credentials":"kredensial","badge":"lencana","badges":"lencana","verified":"terverifikasi","downloadable":"dapat diunduh","download":"unduh","source":"sumber","code":"kode","open":"buka","view":"lihat","profile":"profil","repository":"repositori","repositories":"repositori","software":"perangkat lunak","engineering":"rekayasa","computer":"komputer","science":"sains","artificial":"kecerdasan","intelligence":"buatan","machine":"mesin","learning":"pembelajaran","model":"model","models":"model","data":"data","system":"sistem","systems":"sistem","design":"desain","architecture":"arsitektur","methodology":"metodologi","result":"hasil","results":"hasil","limitation":"keterbatasan","limitations":"keterbatasan","current":"saat ini","completed":"selesai","status":"status","category":"kategori","description":"deskripsi","formal":"resmi","relationship":"hubungan","affiliation":"afiliasi","endorsement":"dukungan resmi","content":"konten","prepared":"disiapkan","program":"program","application":"aplikasi","applications":"aplikasi","motivation":"motivasi","goal":"tujuan","goals":"tujuan","semester":"semester","coursework":"mata kuliah","thesis":"tesis","timeline":"linimasa","proposed":"diusulkan","question":"pertanyaan","questions":"pertanyaan","method":"metode","methods":"metode","preliminary":"awal","document":"dokumen","documents":"dokumen","university":"universitas","universities":"universitas","professional":"profesional","technical":"teknis","complete":"lengkap","full":"lengkap","all":"semua","each":"setiap","with":"dengan","without":"tanpa","for":"untuk","from":"dari","into":"ke dalam","across":"di seluruh","relevant":"relevan","public":"publik","private":"privat","available":"tersedia","created":"dibuat","built":"dibangun","using":"menggunakan","includes":"mencakup","including":"termasuk","covering":"mencakup","demonstrates":"menunjukkan","documentation":"dokumentasi","review":"tinjauan","reviewing":"meninjau","contact":"kontak","overview":"ikhtisar","navigation":"navigasi","main":"utama","explore":"jelajahi","purpose":"tujuan","career":"karier","careers":"karier","country":"negara","countries":"negara","territory":"wilayah","territories":"wilayah","city":"kota","currency":"mata uang","exchange":"pertukaran","rate":"kurs","monthly":"bulanan","annual":"tahunan","yearly":"tahunan","household":"rumah tangga","lifestyle":"gaya hidup","comfortable":"nyaman","income":"pendapatan","estimate":"estimasi","initial":"awal","starting":"awal","sync":"sinkronkan","reset":"atur ulang","cost":"biaya","costs":"biaya","breakdown":"rincian","comparison":"perbandingan","housing":"perumahan","family":"keluarga","health":"kesehatan","savings":"tabungan","information":"informasi","report":"laporan","reports":"laporan","export":"ekspor","print":"cetak","calculator":"kalkulator","location":"lokasi","locations":"lokasi","financial":"finansial","capacity":"kemampuan","workspace":"ruang kerja","local":"lokal","default":"bawaan","preset":"preset","official":"resmi","people":"orang","normal":"normal","frugal":"hemat","premium":"premium","world":"dunia","bank":"bank","ready":"siap","major":"utama","organize":"susun","evaluate":"evaluasi","concise":"ringkas"},en:{"akademik":"academic","bukti":"evidence","pusat":"hub","pascasarjana":"graduate","lulusan":"graduates","penerimaan":"admissions","peninjau":"reviewers","independen":"independent","mandiri":"self-directed","pekerjaan":"work","karya":"works","proyek":"projects","riset":"research","pernyataan":"statement","studi":"study","rencana":"plan","pendidikan":"education","keterampilan":"skills","pengalaman":"experience","sertifikat":"certificates","kredensial":"credentials","lencana":"badges","terverifikasi":"verified","dapat diunduh":"downloadable","unduh":"download","sumber":"source","kode":"code","buka":"open","lihat":"view","profil":"profile","repositori":"repositories","perangkat lunak":"software","rekayasa":"engineering","komputer":"computer","sains":"science","kecerdasan":"artificial","buatan":"intelligence","mesin":"machine","pembelajaran":"learning","sistem":"systems","desain":"design","arsitektur":"architecture","metodologi":"methodology","hasil":"results","keterbatasan":"limitations","saat ini":"current","selesai":"completed","kategori":"category","deskripsi":"description","resmi":"official","hubungan":"relationship","afiliasi":"affiliation","dukungan resmi":"endorsement","konten":"content","disiapkan":"prepared","aplikasi":"applications","motivasi":"motivation","tujuan":"purpose","mata kuliah":"coursework","tesis":"thesis","linimasa":"timeline","diusulkan":"proposed","pertanyaan":"questions","metode":"methods","awal":"starting","dokumen":"documents","universitas":"universities","profesional":"professional","teknis":"technical","lengkap":"full","semua":"all","setiap":"each","dengan":"with","tanpa":"without","untuk":"for","dari":"from","ke dalam":"into","di seluruh":"across","relevan":"relevant","publik":"public","privat":"private","tersedia":"available","dibuat":"created","dibangun":"built","menggunakan":"using","mencakup":"covering","termasuk":"including","menunjukkan":"demonstrates","dokumentasi":"documentation","tinjauan":"review","meninjau":"reviewing","kontak":"contact","ikhtisar":"overview","navigasi":"navigation","utama":"major","jelajahi":"explore","karier":"careers","negara":"countries","wilayah":"territories","kota":"city","mata uang":"currency","pertukaran":"exchange","kurs":"rate","bulanan":"monthly","tahunan":"yearly","rumah tangga":"household","gaya hidup":"lifestyle","nyaman":"comfortable","pendapatan":"income","estimasi":"estimate","sinkronkan":"sync","atur ulang":"reset","biaya":"costs","rincian":"breakdown","perbandingan":"comparison","perumahan":"housing","keluarga":"family","kesehatan":"health","tabungan":"savings","informasi":"information","laporan":"reports","ekspor":"export","cetak":"print","kalkulator":"calculator","lokasi":"locations","finansial":"financial","kemampuan":"capacity","ruang kerja":"workspace","lokal":"local","bawaan":"default","orang":"people","hemat":"frugal","dunia":"world","siap":"ready","susun":"organize","evaluasi":"evaluate","ringkas":"concise"}};
  function applyOfflineWords(value,language){
    const table=APU_OFFLINE_WORDS[language];if(!table)return value;
    return String(value).replace(/[\p{L}][\p{L}-]*/gu,token=>{const hit=table[token.toLocaleLowerCase()];return hit?preserveCase(token,hit):token;});
  }

  function localTranslate(value, language) {
    const raw = String(value ?? '');
    const clean = normalize(raw);
    if (!clean) return raw;
    const exact = sourceToCanonical.get(clean.toLocaleLowerCase());
    if (exact) return raw.replace(clean, targetFor(exact, language));
    let result = raw;
    let replacements = 0;
    if (clean.length <= 700) {
      for (const [source, canonical] of sourceEntries) {
        if (source.length < 3 || replacements >= 18) continue;
        const target = targetFor(canonical, language);
        if (!target || normalize(target).toLocaleLowerCase() === source.toLocaleLowerCase()) continue;
        const wordLike = /^[\p{L}\p{N} .&'’()/%+\-]+$/u.test(source);
        const pattern = wordLike
          ? new RegExp(`(^|[^\\p{L}\\p{N}])(${escapeRegExp(source)})(?=$|[^\\p{L}\\p{N}])`, 'giu')
          : new RegExp(escapeRegExp(source), 'g');
        const next = result.replace(pattern, wordLike ? `$1${target}` : target);
        if (next !== result) { result = next; replacements += 1; }
      }
    }
    result = result.replace(/\p{L}+/gu, token => {
      const canonical = wordSourceToCanonical.get(token.toLocaleLowerCase());
      return canonical ? preserveCase(token, wordTargetFor(canonical, language)) : token;
    });
    result = applyOfflineWords(result, language);
    if (language === 'zh' || language === 'ja') {
      result = result.replace(/([\u3040-\u30ff\u3400-\u9fff])\s+(?=[\u3040-\u30ff\u3400-\u9fff])/g, '$1');
    }
    return result;
  }

  function looksHuman(text) {
    const clean = normalize(text);
    if (!clean || clean.length < 2 || clean.length > 1600) return false;
    if (/^(?:[\d\s.,:%+\-–—/()]+|[A-Z]{2,8}|[A-Z]{3}-\d+)$/.test(clean)) return false;
    if (/^(?:https?:\/\/|mailto:|\/|#)/i.test(clean)) return false;
    if (!/[\p{L}]/u.test(clean)) return false;
    return true;
  }

  function heuristicLanguage(text) {
    const clean = ` ${normalize(text).toLocaleLowerCase()} `;
    if (/[\u3040-\u30ff]/.test(clean)) return 'ja';
    if (/[\u3400-\u9fff]/.test(clean)) return 'zh';
    const groups = {
      id:[' yang ',' dan ',' untuk ',' dengan ',' dari ',' pada ',' ini ',' siswa ',' biaya ',' pilih ',' semua ',' dapat ',' data ',' risiko ',' laporan ',' tampilan '],
      ms:[' yang ',' dan ',' untuk ',' dengan ',' daripada ',' ini ',' pelajar ',' kos ',' pilih ',' semua ',' boleh ',' data ',' risiko ',' laporan ',' paparan '],
      en:[' the ',' and ',' for ',' with ',' from ',' this ',' student ',' cost ',' choose ',' all ',' can ',' data ',' risk ',' report ',' view ',' is ',' are '],
      de:[' der ',' die ',' das ',' und ',' für ',' mit ',' von ',' diese ',' daten ',' risiko ',' bericht ',' wird ',' sind '],
      vi:[' và ',' cho ',' với ',' từ ',' này ',' sinh viên ',' dữ liệu ',' rủi ro ',' báo cáo ',' đang ',' được ']
    };
    let best='en',score=0;
    for (const [lang, words] of Object.entries(groups)) {
      const s=words.reduce((n,w)=>n+(clean.includes(w)?1:0),0);
      if (s>score) {score=s;best=lang;}
    }
    return best;
  }

  const withTimeout = (promise, ms=8000) => Promise.race([promise, new Promise((_,reject)=>setTimeout(()=>reject(new Error('timeout')),ms))]);

  async function getDetector() {
    if (!self.isSecureContext || !('LanguageDetector' in self)) return null;
    if (!detectorPromise) {
      detectorPromise = (async () => {
        try {
          return await withTimeout(LanguageDetector.create({ monitor(monitor) {
            monitor.addEventListener?.('downloadprogress', event => updateTranslationState(true, Math.round((event.loaded || 0) * 100), (UI[currentLanguage]||UI.en).modelDownload));
          }}), 20000);
        } catch (_) { detectorPromise = null; return null; }
      })();
    }
    return detectorPromise;
  }

  async function detectLanguage(text) {
    const clean = normalize(text);
    const exactLang = sourceLanguage.get(clean.toLocaleLowerCase());
    if (exactLang) return exactLang;
    const heuristic = heuristicLanguage(clean);
    try {
      const detector = await getDetector();
      if (detector && clean.length >= 12) {
        const results = await withTimeout(detector.detect(clean.slice(0,600)), 5000);
        const code = results?.[0]?.detectedLanguage?.split('-')[0];
        if (LANGUAGES[code]) return code;
      }
    } catch (_) {}
    return heuristic;
  }

  async function getTranslator(source, target) {
    const normalizedSource = source === 'ms' ? 'id' : source;
    const normalizedTarget = target === 'ms' ? 'id' : target;
    if (!self.isSecureContext || !('Translator' in self) || normalizedSource === normalizedTarget) return null;
    const key = `${normalizedSource}>${normalizedTarget}`;
    if (!translatorPromises.has(key)) {
      const promise = (async () => {
        try {
          const options={sourceLanguage:normalizedSource,targetLanguage:normalizedTarget};
          return await withTimeout(Translator.create({...options, monitor(monitor) {
            monitor.addEventListener?.('downloadprogress', event => updateTranslationState(true, Math.round((event.loaded || 0) * 100), (UI[currentLanguage]||UI.en).modelDownload));
          }}), 25000);
        } catch (_) { translatorPromises.delete(key); return null; }
      })();
      translatorPromises.set(key,promise);
    }
    return translatorPromises.get(key);
  }

  async function smartTranslate(raw, target) {
    const clean = normalize(raw);
    if (!looksHuman(clean)) return raw;
    const cacheKey = `${target}\u0000${clean}`;
    if (translationCache.has(cacheKey)) return translationCache.get(cacheKey);
    const local = localTranslate(raw, target);
    const source = await detectLanguage(clean);
    if (source === target) { translationCache.set(cacheKey, raw); return raw; }
    try {
      const translator = await getTranslator(source, target);
      if (translator) {
        let translatedClean = await withTimeout(translator.translate(clean), 15000);
        if (target === 'ms' && translatedClean) translatedClean = localTranslate(translatedClean, 'ms');
        if (translatedClean && normalize(translatedClean).toLocaleLowerCase() !== clean.toLocaleLowerCase()) {
          const translated = raw.replace(clean, translatedClean);
          translationCache.set(cacheKey, translated);
          return translated;
        }
      }
    } catch (_) {}
    translationCache.set(cacheKey, local);
    return local;
  }

  function shouldSkip(element) {
    return !element || Boolean(element.closest('#apu-ui-dock-v62,#apu-ui-toast-v62,script,style,code,pre,textarea,[contenteditable="true"],[data-apu-no-translate],[translate="no"]'));
  }

  function rememberNode(node) {
    if (!originalText.has(node)) originalText.set(node, node.nodeValue || '');
    return originalText.get(node);
  }
  function rememberAttr(element, attr) {
    if (!originalAttrs.has(element)) originalAttrs.set(element, {});
    const stored=originalAttrs.get(element);
    if (!(attr in stored)) stored[attr]=element.getAttribute(attr);
    return stored[attr];
  }
  function setNodeText(node, value) {
    applying=true;
    try { expectedText.set(node,value); if(node.nodeValue!==value) node.nodeValue=value; }
    finally { applying=false; }
  }
  function setAttr(element, attr, value) {
    applying=true;
    try {
      if(!expectedAttrs.has(element)) expectedAttrs.set(element,{});
      expectedAttrs.get(element)[attr]=value;
      if(element.getAttribute(attr)!==value) element.setAttribute(attr,value);
    } finally { applying=false; }
  }

  function collectTranslatables(container=document.body) {
    const nodes=[], attrs=[];
    if (!container) return {nodes,attrs};
    const rootEl=container.nodeType===Node.ELEMENT_NODE?container:container.parentElement;
    if(!rootEl||shouldSkip(rootEl)) return {nodes,attrs};
    const walker=document.createTreeWalker(rootEl,NodeFilter.SHOW_TEXT,{acceptNode(node){
      const p=node.parentElement,t=normalize(node.nodeValue||'');
      return !shouldSkip(p)&&looksHuman(t)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;
    }});
    while(walker.nextNode()) nodes.push(walker.currentNode);
    rootEl.querySelectorAll?.('[placeholder],[title],[aria-label],[aria-description],[alt],input[type="button"][value],input[type="submit"][value],input[type="reset"][value]').forEach(element=>{
      if(shouldSkip(element))return;
      ['placeholder','title','aria-label','aria-description','alt','value'].forEach(attr=>{
        if(element.hasAttribute(attr)&&looksHuman(element.getAttribute(attr)))attrs.push([element,attr]);
      });
    });
    return {nodes,attrs};
  }

  async function runPool(items, worker, limit=4) {
    let cursor=0;
    const workers=Array.from({length:Math.min(limit,items.length)},async()=>{
      while(cursor<items.length){const index=cursor++;await worker(items[index],index);}
    });
    await Promise.all(workers);
  }

  async function translateMetadata(target, runId) {
    const entries=[];
    if(!document.documentElement.dataset.apuOriginalTitle) document.documentElement.dataset.apuOriginalTitle=document.title;
    entries.push(['title',document.documentElement.dataset.apuOriginalTitle,null]);
    document.querySelectorAll('meta[name="description"],meta[property="og:title"],meta[property="og:description"],meta[name="twitter:title"],meta[name="twitter:description"]').forEach(meta=>{
      if(!meta.dataset.apuOriginalContent) meta.dataset.apuOriginalContent=meta.content||'';
      entries.push(['meta',meta.dataset.apuOriginalContent,meta]);
    });
    for(const [type,raw,meta] of entries){
      const value=await smartTranslate(raw,target);if(runId!==generation)return;
      if(type==='title')document.title=value;else meta.content=value;
    }
  }

  async function translateAll(container=document.body, runId=generation) {
    if (COMPLETE_TRANSLATOR_HANDLES_CONTENT) {
      updateTranslationState(false,100,(UI[currentLanguage]||UI.en).translated,container===document.body);
      return;
    }
    const {nodes,attrs}=collectTranslatables(container);
    const total=nodes.length+attrs.length;
    const fullPage=container===document.body;
    let done=0;
    updateTranslationState(true,0,(UI[currentLanguage]||UI.en).translating,fullPage);
    await runPool(nodes,async node=>{
      const original=rememberNode(node);
      const immediate=localTranslate(original,currentLanguage);
      if(runId===generation&&node.isConnected)setNodeText(node,immediate);
      const result=await smartTranslate(original,currentLanguage);
      if(runId===generation&&node.isConnected)setNodeText(node,result);
      done++;if(done%8===0)updateTranslationState(true,Math.round(done/Math.max(total,1)*100),(UI[currentLanguage]||UI.en).translating,fullPage);
    },4);
    await runPool(attrs,async pair=>{
      const [element,attr]=pair, original=rememberAttr(element,attr);
      const immediate=localTranslate(original,currentLanguage);
      if(runId===generation&&element.isConnected)setAttr(element,attr,immediate);
      const result=await smartTranslate(original,currentLanguage);
      if(runId===generation&&element.isConnected)setAttr(element,attr,result);
      done++;
    },4);
    await translateMetadata(currentLanguage,runId);
    if(runId===generation){updateTranslationState(false,100,(UI[currentLanguage]||UI.en).translated,fullPage);refreshLayout();}
  }

  function persist(key,value,legacy=[]) {try{localStorage.setItem(key,value);legacy.forEach(k=>localStorage.setItem(k,value));}catch(_) {}}
  function updateThemeMeta(theme){let meta=document.querySelector('meta[name="theme-color"]');if(!meta){meta=document.createElement('meta');meta.name='theme-color';document.head.appendChild(meta);}meta.content=theme==='dark'?'#000000':'#ffffff';}
  function ensureThemeEnforcer(){
    if(document.getElementById('apu-theme-enforcer-v62'))return;
    const style=document.createElement('style');style.id='apu-theme-enforcer-v62';style.dataset.apuNoTranslate='true';
    style.textContent=`html[data-apu-theme="dark"],html[data-apu-theme="dark"] body{background-color:#050608!important;color:#f8fafc}html[data-apu-theme="light"],html[data-apu-theme="light"] body{background-color:#f7f8fb!important;color:#111827}`;
    document.head.appendChild(style);
  }
  function syncThemeToApp(theme) {
    const dark=theme==='dark';
    if(dark&&!root.classList.contains('dark'))root.classList.add('dark');
    if(!dark&&root.classList.contains('dark'))root.classList.remove('dark');
    const body=document.body;
    if(body){if(dark&&!body.classList.contains('dark'))body.classList.add('dark');if(!dark&&body.classList.contains('dark'))body.classList.remove('dark');}
    const appRoot=document.getElementById('root');
    if(appRoot){if(dark&&!appRoot.classList.contains('dark'))appRoot.classList.add('dark');if(!dark&&appRoot.classList.contains('dark'))appRoot.classList.remove('dark');}
    document.querySelectorAll('[data-theme],[data-color-mode],[data-mode]').forEach(el=>{
      if(el.hasAttribute('data-theme')&&el.getAttribute('data-theme')!==theme)el.setAttribute('data-theme',theme);
      if(el.hasAttribute('data-color-mode')&&el.getAttribute('data-color-mode')!==theme)el.setAttribute('data-color-mode',theme);
      if(el.hasAttribute('data-mode')&&el.getAttribute('data-mode')!==theme)el.setAttribute('data-mode',theme);
    });
    document.querySelectorAll('#root > *,#root > * > *').forEach(el=>{
      if(!dark&&el.classList.contains('dark')){darkOwners.add(el);el.classList.remove('dark');}
      if(dark&&darkOwners.has(el)&&!el.classList.contains('dark'))el.classList.add('dark');
    });
    root.style.colorScheme=theme;
  }
  function setTheme(theme,announce=false,persistChoice=true){
    const resolved=theme==='dark'?'dark':'light';root.dataset.apuTheme=resolved;root.dataset.apuPalette='native';
    syncThemeToApp(resolved);updateThemeMeta(resolved);if(persistChoice)persist(THEME_KEY,resolved,LEGACY_THEME_KEYS);updateDock();refreshLayout();
    if(announce)showToast((UI[currentLanguage]||UI.en)[resolved==='dark'?'enabledDark':'enabledLight']);
    window.dispatchEvent(new CustomEvent('apu:themechange',{detail:{theme:resolved}}));
  }
  const NATIVE_LANGUAGE_CONFIG={
    'it-helpdesk':{key:'helpdesk_lang',supported:new Set(['id','en','de','vi','zh','ja'])},
    'incident-monitoring':{key:'i18n_lang',supported:new Set(['id','en','de','vi','zh','ja'])},
    'url-shortener':{key:'linkmanager_language',supported:new Set(['id','ms','en','de','vi','zh','ja'])}
  };
  function syncNativeLanguage(language){
    const project=root.getAttribute('data-scroll-theme')||'';
    const cfg=NATIVE_LANGUAGE_CONFIG[project];
    if(!cfg)return false;
    const nativeLanguage=cfg.supported.has(language)?language:(language==='ms'?'id':'en');
    try{localStorage.setItem(cfg.key,nativeLanguage);}catch(_){}
    root.dataset.apuNativeLanguage=nativeLanguage;
    window.dispatchEvent(new CustomEvent('apu:native-language',{detail:{language:nativeLanguage,project}}));
    return true;
  }

  function setLanguage(language,announce=false,persistChoice=true){
    if(!LANGUAGES[language])language='en';currentLanguage=language;syncNativeLanguage(language);root.dataset.apuLanguage=language;root.lang=language;root.dir='ltr';
    if(persistChoice)persist(LANGUAGE_KEY,language,LEGACY_LANGUAGE_KEYS);updateDock();
    if(announce&&self.isSecureContext){getDetector();getTranslator('en',language);getTranslator('id',language);}
    generation++;const runId=generation;
    clearTimeout(translationTimer);translationTimer=setTimeout(()=>translateAll(document.body,runId),10);[350,900,1800,3600,7000,12000].forEach(delay=>setTimeout(()=>{if(runId===generation)translateAll(document.body,runId);},delay));
    refreshFilePickers();if(announce)showToast((UI[language]||UI.en).changed);
    window.dispatchEvent(new CustomEvent('apu:languagechange',{detail:{language}}));
    window.__APU_TRANSLATE_REFRESH__=()=>{const run=++generation;return translateAll(document.body,run);};
  }
  window.__APU_SET_LANGUAGE__=(language,announce=true)=>setLanguage(language,announce,true);
  window.__APU_GET_LANGUAGE__=()=>currentLanguage;
  function refreshLayout(){requestAnimationFrame(()=>{try{window.ScrollTrigger?.refresh?.(true);}catch(_){}window.dispatchEvent(new Event('resize'));});}
  function gridIcon(){return '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><g fill="currentColor"><circle cx="5" cy="5" r="1.55"/><circle cx="12" cy="5" r="1.55"/><circle cx="19" cy="5" r="1.55"/><circle cx="5" cy="12" r="1.55"/><circle cx="12" cy="12" r="1.55"/><circle cx="19" cy="12" r="1.55"/><circle cx="5" cy="19" r="1.55"/><circle cx="12" cy="19" r="1.55"/><circle cx="19" cy="19" r="1.55"/></g></svg>';}
  function themeIcon(theme){return theme==='dark'?'<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M12 3v2m0 14v2M3 12h2m14 0h2M5.64 5.64l1.42 1.42m9.88 9.88 1.42 1.42m0-12.72-1.42 1.42M7.06 16.94l-1.42 1.42M16.5 12a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Z" stroke="currentColor" stroke-width="1.7" stroke-linecap="round"/></svg>':'<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M20.6 15.7A8.5 8.5 0 0 1 8.3 3.4 8.6 8.6 0 1 0 20.6 15.7Z" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round"/></svg>';}
  function buildOverlay(){if(document.querySelector('.apu-grid-overlay-v62'))return;const el=document.createElement('div');el.className='apu-grid-overlay-v62';el.setAttribute('aria-hidden','true');document.body.prepend(el);}
  function findMenuMount(){
    /* V6.8 + V5.2 compatibility: keep appearance/language controls inside the
       actual navigation drawer, even while that drawer is closed. This avoids
       squeezing the compact V5.2 header or creating a second floating bar. */
    const preferred=[
      '[data-apu-controls-slot]',
      '.apu-v5-mobile-nav-drawer',
      '[data-apu-v52-cv-sidebar="true"] nav',
      '[data-apu-v52-cv-sidebar="true"]',
      '.ai-architect-drawer nav',
      '.ai-architect-drawer',
      '#mainNav',
      '.sp-nav'
    ];
    for(const selector of preferred){
      for(const el of document.querySelectorAll(selector)){
        if(el.closest('#apu-ui-dock-v62,#apu-ui-toast-v62'))continue;
        return el;
      }
    }
    const selectors=['aside nav','aside','[data-sidebar]','.sidebar','[role="navigation"]','nav','header'];
    for(const selector of selectors){
      for(const el of document.querySelectorAll(selector)){
        if(el.closest('#apu-ui-dock-v62,#apu-ui-toast-v62'))continue;
        const style=getComputedStyle(el),rect=el.getBoundingClientRect();
        if(style.display==='none'||style.visibility==='hidden'||rect.width<120||rect.height<30)continue;
        return el;
      }
    }
    return null;
  }
  function mountDockInMenu(dock){
    const mount=findMenuMount();
    if(!mount)return false;
    dock.dataset.apuInline='true';
    dock.dataset.apuMenuMounted='true';
    mount.appendChild(dock);
    return true;
  }
  function buildDock(){
    document.getElementById('apu-ui-dock-v58')?.remove();document.getElementById('apu-ui-toast-v58')?.remove();
    document.getElementById('apu-ui-dock-v57')?.remove();document.getElementById('apu-ui-toast-v57')?.remove();
    document.getElementById('apu-ui-dock-v56')?.remove();document.getElementById('apu-ui-toast-v56')?.remove();
    if(document.getElementById('apu-ui-dock-v62'))return;
    const dock=document.createElement('div');dock.id='apu-ui-dock-v62';dock.role='group';dock.dataset.apuNoTranslate='true';
    const brand=document.createElement('div');brand.className='apu-ui-brand-v62';brand.innerHTML=`${gridIcon()}<span data-apu-brand-label>UI</span>`;
    const theme=document.createElement('button');theme.type='button';theme.className='apu-ui-theme-v62 apu-chunky-v62';theme.dataset.apuAction='theme';theme.onclick=()=>setTheme(root.dataset.apuTheme==='dark'?'light':'dark',true);
    const langWrap=document.createElement('label');langWrap.className='apu-ui-language-wrap-v62 apu-chunky-v62';langWrap.innerHTML='<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="1.7"/><path d="M3.5 12h17M12 3c2.3 2.5 3.5 5.5 3.5 9S14.3 18.5 12 21c-2.3-2.5-3.5-5.5-3.5-9S9.7 5.5 12 3Z" stroke="currentColor" stroke-width="1.7"/></svg>';
    const select=document.createElement('select');select.className='apu-ui-language-v62';select.dataset.apuAction='language';
    Object.entries(LANGUAGES).forEach(([code,info])=>{const o=document.createElement('option');o.value=code;o.textContent=info.name;select.appendChild(o);});
    select.onchange=e=>setLanguage(e.target.value,true);langWrap.appendChild(select);
    const progress=document.createElement('span');progress.className='apu-translation-progress-v62';progress.dataset.apuProgress='';progress.hidden=true;
    dock.append(brand,theme,langWrap,progress);
    if(!mountDockInMenu(dock))document.body.appendChild(dock);
    const toast=document.createElement('div');toast.id='apu-ui-toast-v62';toast.role='status';toast.setAttribute('aria-live','polite');toast.dataset.apuNoTranslate='true';document.body.appendChild(toast);updateDock();
    if(!dock.dataset.apuMenuMounted){
      let tries=0;
      const relocate=setInterval(()=>{
        tries+=1;
        if(mountDockInMenu(dock)||tries>24)clearInterval(relocate);
      },250);
    }
  }
  function updateDock(){const dock=document.getElementById('apu-ui-dock-v62');if(!dock)return;const ui=UI[currentLanguage]||UI.en,theme=root.dataset.apuTheme==='dark'?'dark':'light';const btn=dock.querySelector('[data-apu-action="theme"]'),sel=dock.querySelector('[data-apu-action="language"]'),label=dock.querySelector('[data-apu-brand-label]');dock.setAttribute('aria-label',ui.group);label.textContent=ui.brand;btn.innerHTML=`${themeIcon(theme)}<span>${ui[theme]}</span>`;btn.title=ui.theme;btn.setAttribute('aria-label',`${ui.theme} — ${ui[theme]}`);btn.setAttribute('aria-pressed',String(theme==='dark'));sel.value=currentLanguage;sel.title=ui.language;sel.setAttribute('aria-label',ui.language);}

  let translationGateHideTimer=0;
  function ensureTranslationGate(){
    let gate=document.getElementById('apu-translation-gate-v62');
    if(gate)return gate;
    gate=document.createElement('div');gate.id='apu-translation-gate-v62';gate.dataset.apuNoTranslate='true';gate.hidden=true;
    gate.innerHTML='<div class="apu-translation-gate-card-v62"><span class="apu-translation-spinner-v62" aria-hidden="true"></span><strong data-apu-gate-message></strong><span data-apu-gate-percent>0%</span></div>';
    document.body.appendChild(gate);return gate;
  }
  function setTranslationGate(active,percent=0,message=''){
    const gate=ensureTranslationGate();clearTimeout(translationGateHideTimer);
    if(active&&currentLanguage!=='en'){
      gate.hidden=false;gate.dataset.show='true';root.dataset.apuTranslating='true';
      const msg=gate.querySelector('[data-apu-gate-message]'),pct=gate.querySelector('[data-apu-gate-percent]');
      if(msg)msg.textContent=message||(UI[currentLanguage]||UI.en).translating;if(pct)pct.textContent=`${Math.max(0,Math.min(100,percent))}%`;
    }else{
      translationGateHideTimer=setTimeout(()=>{gate.dataset.show='false';gate.hidden=true;delete root.dataset.apuTranslating;},220);
    }
  }
  function updateTranslationState(active,percent=0,message='',fullPage=false){const dock=document.getElementById('apu-ui-dock-v62');if(dock){dock.dataset.translating=String(active);dock.setAttribute('aria-busy',String(active));const p=dock.querySelector('[data-apu-progress]');if(p){p.hidden=!active;p.textContent=active?`${Math.max(0,Math.min(100,percent))}%`:'';}}if(fullPage)setTranslationGate(active,percent,message);if(message&&active&&percent===0)showToast(message);}
  function showToast(message){const toast=document.getElementById('apu-ui-toast-v62');if(!toast)return;clearTimeout(toastTimer);toast.textContent=message;toast.dataset.show='true';toastTimer=setTimeout(()=>toast.dataset.show='false',2200);}
  function removeAiArchitectLocalTheme(){
    if(root.getAttribute('data-scroll-theme')!=='ai-architect')return;
    const selectors=[
      '[data-testid="btn-toggle-theme"]','[data-testid*="theme-toggle" i]',
      'button[aria-label*="toggle theme" i]','button[aria-label*="switch to light" i]',
      'button[aria-label*="switch to dark" i]','button[title*="theme" i]',
      'button[title*="light mode" i]','button[title*="dark mode" i]'
    ];
    selectors.forEach(selector=>document.querySelectorAll(selector).forEach(el=>{if(!el.closest('#apu-ui-dock-v62'))el.remove();}));
  }

  function observe(){observer=new MutationObserver(mutations=>{
    if(applying)return;let target=null,themeNeedsSync=false;
    for(const m of mutations){
      if(m.type==='childList'&&m.addedNodes.length){target=m.target.nodeType===1?m.target:m.target.parentElement;themeNeedsSync=true;}
      if(m.type==='characterData'&&m.target.nodeValue!==expectedText.get(m.target)){originalText.set(m.target,m.target.nodeValue||'');target=m.target.parentElement;}
      if(m.type==='attributes'){const expected=expectedAttrs.get(m.target)?.[m.attributeName];if(m.target.getAttribute(m.attributeName)!==expected){if(originalAttrs.has(m.target))delete originalAttrs.get(m.target)[m.attributeName];target=m.target;}}
    }
    if(themeNeedsSync)syncThemeToApp(root.dataset.apuTheme||'light');
    removeAiArchitectLocalTheme();
    if(target&&!shouldSkip(target)){const runId=++generation;clearTimeout(translationTimer);translationTimer=setTimeout(()=>translateAll(target,runId),80);}
  });observer.observe(document.body,{childList:true,subtree:true,characterData:true,attributes:true,attributeFilter:['placeholder','title','aria-label','aria-description','alt','value']});}

  const FILE_EMPTY_LABELS={id:'Belum ada file dipilih',en:'No file selected',ms:'Tiada fail dipilih',de:'Keine Datei ausgewählt',vi:'Chưa chọn tệp',zh:'未选择文件',ja:'ファイルが選択されていません'};
  function refreshFilePickers(){document.querySelectorAll('[data-apu-file-name]').forEach(span=>{const input=span.closest('label')?.querySelector('input[type="file"]');if(!input?.files?.length)span.textContent=FILE_EMPTY_LABELS[currentLanguage]||FILE_EMPTY_LABELS.en;});}
  document.addEventListener('change',event=>{const input=event.target;if(!(input instanceof HTMLInputElement)||input.type!=='file')return;const span=input.closest('label')?.querySelector('[data-apu-file-name]');if(span)span.textContent=input.files?.[0]?.name||(FILE_EMPTY_LABELS[currentLanguage]||FILE_EMPTY_LABELS.en);});
  window.addEventListener('apu:languagechange',refreshFilePickers);

  function bindSync(){
    window.addEventListener('storage',e=>{
      if(e.key===THEME_KEY&&['light','dark'].includes(e.newValue))setTheme(e.newValue,false,false);
      if(e.key===LANGUAGE_KEY&&LANGUAGES[e.newValue])setLanguage(e.newValue,false,false);
    });
    window.addEventListener('message',event=>{
      if(event.origin!==location.origin)return;
      const data=event.data;
      if(!data||data.type!=='apu:viewer-settings')return;
      if(['light','dark'].includes(data.theme))setTheme(data.theme,false,false);
      if(LANGUAGES[data.language])setLanguage(data.language,false,false);
    });
  }
  function init(){
    const project=root.getAttribute('data-scroll-theme')||root.dataset.apuStandaloneProject||'';
    if(project==='url-shortener'){
      const appRoot=document.getElementById('root');
      if(appRoot){appRoot.dataset.apuNativeI18n='linkmanager';appRoot.dataset.apuNoTranslate='true';appRoot.setAttribute('translate','no');}
    }
    ensureThemeEnforcer();
    buildOverlay();
    removeAiArchitectLocalTheme();
    [120,500,1400].forEach(delay=>setTimeout(removeAiArchitectLocalTheme,delay));
    if(!EMBEDDED)buildDock();
    setTheme(root.dataset.apuTheme||'light',false,false);
    observe();
    bindSync();
    setLanguage(root.dataset.apuLanguage||'en',false,false);
    root.classList.add('apu-ui-ready-v62');
    if(EMBEDDED){
      try{window.parent.postMessage({type:'apu:project-ready'},location.origin);}catch(_){}
    }
  }
  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init,{once:true});else init();
})();
