// Constants used in translation map const applicationName = 'auto-py-to-exe'; const helpPostLinkAnchorTagContents = 'href="https://nitratine.net/blog/post/issues-when-using-auto-py-to-exe/?utm_source=auto_py_to_exe&utm_medium=application_link&utm_campaign=auto_py_to_exe_help&utm_content=bottom" target="_blank"'; const onFileModeAdditionalFilesHelpAnchorTagContents = 'href="https://stackoverflow.com/a/13790741/" target="_blank" style="text-decoration: none;"'; // Translation mappings const translationMap = { ui: { // Static UI elements title: { scriptLocation: { en: 'Script Location', zh: '脚本位置', zh_tw: '腳本位置', ua: 'Місцезнаходження скрипта', ru: 'Расположение скрипта', de: 'Scriptpfad', pt_br: 'Localização do Script', sp: 'Localización del Script', sp_la: 'Ubicacion del archivo', tr: 'Script Konumu', th: 'ตำแหน่งสคริปต์', fr: 'Emplacement des scripts', it: 'Locazione script', id: 'Lokasi script', cz: 'Umístění skriptu', gr: 'Διαδρομή Αρχείου', ar: 'موقع البرنامج النصي', fa: 'محل فایل اسکریپت', sr: 'Lokacija skripte', ja: 'スクリプトの場所', pl: 'Lokalizacja skryptu', fi: 'Skriptin sijainti', vi: 'Vị trí tập lệnh', nl: 'Script Locatie', }, language: { en: 'Language', zh: '语言', zh_tw: '語言', ua: 'Мова', ru: 'идиома', de: 'Sprache', pt_br: 'Idioma', sp: 'Idioma', sp_la: 'Idioma', tr: 'Deyim', th: 'สำนวน', fr: 'Langage', it: 'Idioma', id: 'Idiom', cz: 'Idiom', gr: 'ιδίωμα', ar: 'لغة. مثل', fa: 'زبان', sr: 'Jezik', ja: '言語', pl: 'Język', fi: 'Kieli', vi: 'Ngôn ngữ', nl: 'Taal', }, oneFile: { en: 'Onefile', zh: '单文件', zh_tw: '單檔案', ua: 'Один файл', ru: 'Один файл', de: 'Eine Datei', pt_br: 'Arquivo Único', sp: 'Archivo Único', sp_la: 'Tipo de archivo', tr: 'Tek Dosya', th: 'หนึ่งไฟล์', fr: 'un fichier', it: 'Un file', id: 'Satu Berkas', cz: 'Jeden soubor', gr: 'Ένα αρχείο', ar: 'ملف', fa: 'فایل یکپارچه', sr: 'Jedana datoteka', ja: '1つのファイル', pl: 'Wynik konwersji skryptu', fi: 'Yksi tiedosto', vi: 'Một tập tin', nl: 'Een Bestand', }, consoleWindow: { en: 'Console Window', zh: '控制台窗口', zh_tw: '控制台視窗', ua: 'Консольний застосунок', ru: 'Консольное приложение', de: 'Konsolen Anwendung', pt_br: 'Janela do Console', sp: 'Consola de Windows', sp_la: 'Tipo de consola', tr: 'Konsol Penceresi', th: 'หน้าต่างคอนโซล', fr: 'Console Windows', it: 'Finestra console', id: 'Jendela konsol', cz: 'Okno konzole', gr: 'Εφαρμογή παραθύρου', ar: 'نافذة وحدة التحكم', fa: 'پنجره خط فرمان', sr: 'Konzolni prozor', ja: 'コンソール画面', pl: 'Wygląd aplikacji po konwersji .py', fi: 'Konsoli-ikkuna', vi: 'Cửa sổ bảng điều khiển', nl: 'Console Venster', }, icon: { en: 'Icon', zh: '图标', zh_tw: '圖示', ua: 'Іконка', ru: 'Иконка', de: 'Icon', pt_br: 'Ícone', sp: 'Icono', sp_la: 'Ícono', tr: 'Simge', th: 'ไอคอน', fr: 'Icone', it: 'Icona', id: 'Ikon', cz: 'Ikona', gr: 'Εικονίδιο', ar: 'أيقونة', fa: 'آیکون', sr: 'Ikona', ja: 'アイコン', pl: 'Dodanie ikony', fi: 'Kuvake', vi: 'Biểu tượng', nl: 'Icoon', }, additionalFiles: { en: 'Additional Files', zh: '附加文件', zh_tw: '附加檔案', ua: 'Додаткові файли', ru: 'Дополнительные файлы', de: 'Dateien hinzufügen', pt_br: 'Arquivos Adicionais', sp: 'Archivos adicionales', sp_la: 'Archivos adicionales', tr: 'Ek dosyalar', th: 'ไฟล์เพิ่มเติม', fr: 'Fichiers additionnels', it: 'File addizionali', id: 'File tambahan', cz: 'Další soubory', gr: 'Πρόσθετα αρχεία', ar: 'ملفات إضافية', fa: 'فایل‌های تکمیلی', sr: 'Dodatne datoteke', ja: '追加ファイル', pl: 'Dodanie dodatkowych plików', fi: 'Lisätiedostot', vi: 'Các tệp bổ sung', nl: 'Extra Bestanden', }, advanced: { en: 'Advanced', zh: '高级', zh_tw: '進階', ua: 'Додаткові', ru: 'Расширенные', de: 'Erweitert', pt_br: 'Avançado', sp: 'Avanzado', sp_la: 'Avanzado', tr: 'Daha Fazla', th: 'ขั้นสูง', fr: 'Paramètres avancées', it: 'Opzioni avanzate', id: 'Lanjutan', cz: 'Pokročilé', gr: 'Για προχωρημένους', ar: 'متقدم', fa: 'پیشرفته', sr: 'Napredno', ja: '高度な設定', pl: 'Parametry zaawansowane', fi: 'Lisävaihtoehdot', vi: 'Trình độ cao', nl: 'Geadvanceerd', }, settings: { en: 'Settings', zh: '设置', zh_tw: '設定', ua: 'Налаштування', ru: 'Настройки', de: 'Einstellungen', pt_br: 'Configurações', sp: 'Configuraciones', sp_la: 'Configuración', tr: 'Ayarlar', th: 'การตั้งค่า', fr: 'Paramètres', it: 'Impostazioni', id: 'Pengaturan', cz: 'Nastavení', gr: 'Ρυθμίσεις', ar: 'إعدادات', fa: 'تنظیمات', sr: 'Postavke', ja: '設定', pl: 'Ustawienia', fi: 'Asetukset', vi: 'Cài đặt', nl: 'Instellingen', }, currentCommand: { en: 'Current Command', zh: '当前命令', zh_tw: '當前命令', ua: 'Поточна команда', ru: 'Текущая команда', de: 'Aktueller Befehl', pt_br: 'Comando Atual', sp: 'Comando Actual', sp_la: 'Comando actual', tr: 'Geçerli Komut', th: 'คำสั่งปัจจุบัน', fr: 'Commande', it: 'Comando', id: 'Perintah saat ini', cz: 'Aktuální příkaz', gr: 'Τρέχον Εντολή', ar: 'الأمر الحالي', fa: 'دستور فعلی', sr: 'Trenutna komanda', ja: '現在のコマンド', pl: 'Aktualnie stworzone polecenie konwersji', fi: 'Tämänhetkinen komento', vi: 'Lệnh hiện tại', nl: 'Huidig Comando', }, output: { en: 'Output', zh: '输出', zh_tw: '輸出', ua: 'Вивід', ru: 'Вывод', de: 'Ausgabe', pt_br: 'Saída', sp: 'Salida', sp_la: 'Salida', tr: 'Çıktı', fr: 'Sortie', it: 'Output', id: 'Keluaran', cz: 'Výstup', gr: 'Έξοδος', ar: 'المخرجات', fa: 'خروجی', sr: 'Izlaz (Output)', ja: '出力', pl: 'Wyjście', fi: 'Ulostulo', vi: 'Lối ra', nl: 'Uitvoer', }, specificOptions: { en: `${applicationName} Specific Options`, zh: `${applicationName} 特定的选项`, zh_tw: `${applicationName} 特定的選項`, ua: `Особливі параметри ${applicationName}`, ru: `Особые параметры ${applicationName}`, de: `${applicationName} spezifische Optionen`, pt_br: `Opções Específicas ${applicationName}`, sp: `Opciones Específicas ${applicationName}`, sp_la: `Opciones Específicas ${applicationName}`, tr: `${applicationName} ye Özel Seçenekler`, th: `${applicationName} ตัวเลือกเฉพาะ`, fr: 'Options spécifiques', it: `Opzioni specifiche ${applicationName}`, id: `Pilihan Spesifik ${applicationName}`, cz: `Přesné nastavení ${applicationName}`, gr: `${applicationName} Συγκεκριμένες Επιλογές`, ar: `خيارات محددة ${applicationName}`, fa: `گزینه‌های ویژه ${applicationName}`, sr: 'Precizno podešavanje auto-py-to-exe-a', ja: `${applicationName} 固有の設定`, pl: `${applicationName} Opcje szczególne`, fi: `${applicationName} Tarkat asetukset`, vi: `${applicationName} Cài đặt chính xác`, nl: 'Specifieke Opties', }, outputDirectory: { en: 'Output Directory', zh: '输出路径', zh_tw: '輸出路徑', ua: 'Директорія Виводу', ru: 'Папка Вывода', de: 'Ausgabeverzeichnis', pt_br: 'Diretório de Saída', sp: 'Directorio de Salida', sp_la: 'Ubicacion de salida', tr: 'Çıktı Dizini', th: 'Output Directory', fr: 'Repertoire de sortie', it: 'Cartella di output', id: 'Direktori Keluaran', cz: 'Složka výstupu', gr: 'Διαδρομή Έξοδου Αρχείου', ar: 'دليل المخرجات', fa: 'پوشه خروجی', sr: 'Izlazni direktorijum', ja: '出力先ディレクトリ', pl: 'Katalog wyjściowy', fi: 'Ulostulon kansio', vi: 'Thư mục đầu ra', nl: 'Uitvoer Pad', }, increaseRecursionLimit: { en: 'Increase Recursion Limit', zh: '增加递归限制', zh_tw: '增加遞歸限制', ua: 'Збільшити Ліміт Глибини Рекурсії', ru: 'Увеличить Лимит Рекурсии', de: 'Erhöhen der Rekursionsbegrenzung', pt_br: 'Limite de Recursividade', sp: 'Límite de Recursividad', sp_la: 'Límite de Recursividad', tr: 'Özyineleme Sınırını Artırın', th: 'ขีด จำกัด การเรียกซ้ำ', fr: 'Augmenter la limite de récursivité', it: 'Aumenta limite recursione', id: 'Tingkatkan Batas Pengulangan', cz: 'Zvýšit limit rekurze', gr: 'Αύξηση ορίου αναδρομής', ar: 'زيادة حد التكرار', fa: 'افزایش محدودیت تکرار', sr: 'Povećaj granicu rekurzije', ja: '再帰回数の上限を増やす', pl: 'Zwiększenie limitu rekursji', fi: 'Nosta rekursioiden rajaa', vi: 'Tăng giới hạn đệ quy', nl: 'Verhoog Herhaling Limiet', }, manuallyProvideOptions: { en: 'Manually Provide Options', zh: '手动提供选项', zh_tw: '手動提供選項', ua: 'Параметри Вказані Вручну', ru: 'Вручную Указанные Параметры', de: 'Optionen manuell eingeben', pt_br: 'Fornecer Opções Manualmente', sp: 'Opciones Manuales', sp_la: 'Opciones manuales', tr: 'Seçenekleri Manuel Olarak Sağlayın', th: 'ระบุตัวเลือกด้วยตนเอง', fr: 'Fournir manuellement des options', it: 'Opzioni manuali', id: 'Berikan Opsi secara manual', cz: 'Manuálně poskytnout nastavení', gr: 'Χειροκίνητες Επιλογές', ar: 'قم بتوفير الخيارات يدويًا', fa: 'ارائه دستی تنظیمات', sr: 'Ručno unesi podešavanja', ja: '手動設定', pl: 'Opcje manualne', fi: 'Säädä asetuksia manuaalisesti', vi: 'Cung cấp cài đặt theo cách thủ công', nl: 'Handmatig Toegestaande Opties', }, manualArgumentInput: { en: 'Manual Argument Input', zh: '手动参数输入', zh_tw: '手動參數輸入', ua: 'Додати аргументи вручну', ru: 'Ручной Ввод Аргументов', de: 'Manuelle Argumenteingabe', pt_br: 'Entrada Manual de Argumentos', sp: 'Argumentos de Entrada', sp_la: 'Argumentos de entrada', tr: 'Manuel Argüman Girişi', th: 'ระบุตัวเลือกด้วยตนเอง', fr: 'Saisie manuelle des arguments', it: 'Input opzioni manuali', id: 'Masukkan Argumen secara manual', cz: 'Manuální vstup argumentů', gr: 'Χειροκίνητη προσθήκη argument', ar: 'إدخال المُعْطَيات يدوي', fa: 'ورود دستی آرگومان', sr: 'Ručni unos argumenata', ja: '手動指定引数', pl: 'Manualne wprowadzanie argumentów', fi: 'Manuaaliset argumentit', vi: 'Nhập thủ công các đối số', nl: 'Manuele Feit Ingave', }, configuration: { en: 'Configuration', zh: '配置', zh_tw: '配置', ua: 'Конфігурація', ru: 'Конфигурация', de: 'Konfiguration', pt_br: 'Configuração', sp: 'Configuración', sp_la: 'Configuración', tr: 'Yapılandırma', th: 'การกำหนดค่า', fr: 'Paramétrage', it: 'Configurazione', id: 'Konfigurasi', cz: 'Konfigurace', gr: 'Διαμόρφωση', ar: 'ترتيب', fa: 'پیکربندی', sr: 'Konfiguracija', ja: '構成', pl: 'Konfiguracja', fi: 'Konfiguraatio', vi: 'Cấu hình', nl: 'Configuratie', } }, button: { browse: { en: 'Browse', zh: '浏览', zh_tw: '瀏覽', ua: 'Місцезнаходження', ru: 'Расположение', de: 'Durchsuchen', pt_br: 'Explorar', sp: 'Mostrar', sp_la: 'Mostrar', tr: 'Araştır', th: 'เลือก', fr: 'Navigateur', it: 'Sfoglia', id: 'Telusuri', cz: 'Prohlížet', gr: 'Αναζήτηση', ar: 'تصفح', fa: 'جستجو', sr: 'Pronađi', ja: '開く', pl: 'Przeglądaj', fi: 'Selaa', vi: 'Xem', nl: 'Knop', }, oneDirectory: { en: 'One Directory', zh: '单目录', zh_tw: '單目錄', ua: 'Одна Директорія', ru: 'Одна Папка', de: 'Ein Verzeichnis', pt_br: 'Um Diretório', sp: 'Un directorio', sp_la: 'Directorio unico', tr: 'Tek Dizin', th: 'หนึ่งไดเรกทอรี', fr: 'un répertoire', it: 'Una cartella', id: 'Satu Direktori', cz: 'Jedna složka', gr: 'Μια Διαδρομή', ar: 'دليل واحد', fa: 'یک فولدر', sr: 'Jedan direktorijum', ja: '1つのディレクトリ', pl: 'Jeden katalog', fi: 'Yksi kansio', vi: 'Một thư mục', nl: 'Een Map', }, oneFile: { en: 'One File', zh: '单文件', zh_tw: '單檔案', ua: 'Один файл', ru: 'Один файл', de: 'Eine Datei', pt_br: 'Arquivo Único', sp: 'Un Archivo', sp_la: 'Unico archivo', tr: 'Tek Dosya', th: 'ไฟล์เดียว', fr: 'Un fichier', it: 'Un file', id: 'Satu Berkas', cz: 'Jeden soubor', gr: 'Ένα Αρχείο', ar: 'ملف واحد', fa: 'یک فایل', sr: 'Jedana datoteka', ja: '1つのファイル', pl: 'Jeden plik', fi: 'Yksi tiedosto', vi: 'Một tập tin', nl: 'Een Bestand', }, consoleBased: { en: 'Console Based', zh: '基于控制台的', zh_tw: '基於控制台', ua: 'Консольний Застосунок', ru: 'Консольное Приложение', de: 'Befehlszeilenbasiert', pt_br: 'Baseado em Console', sp: 'Consola básica', sp_la: 'Consola básica', tr: 'Konsol Tabanlı', th: 'คอนโซล', fr: 'Présence de la console', it: 'Mostra console', id: 'Berdasarkan Konsol', cz: 'V konzoli', gr: 'Βασιμένο σε Παράθυρο Κονσόλας', ar: 'قائم على وحدة التحكم', fa: 'مبتنی بر کنسول', sr: 'Konzolna aplikacija', ja: 'コンソールベース', pl: 'Aplikacja w konsoli', fi: 'Konsolipohjainen', vi: 'Trong bảng điều khiển', nl: 'Console Gebaseerd', }, windowBased: { en: 'Window Based (hide the console)', zh: '基于窗口的 (隐藏控制台)', zh_tw: '基於視窗 (隱藏控制台)', ua: 'Віконний Застосунок (приховати консоль)', ru: 'Оконное Приложение (скрыть консоль)', de: 'Fensterbasiert (Befehlszeile ausblenden)', pt_br: 'Baseado em Janelas (ocultar o console)', sp: 'Consola de Windows (Ocultar consola)', sp_la: 'Ventana (ocultar consola)', tr: 'Pencere Tabanlı (Konsolu gizleyin)', th: 'หน้าต่าง (ซ่อนคอนโซล)', fr: 'Basé sur windows (la console n\'est pas visible)', it: 'Mostra finestra (nascondi la console)', id: 'Berdasarkan Jendela (sembunyikan konsol)', cz: 'V okně (skrýt konzoli)', gr: 'Βασισμένο σε Παράθυρο (απόκρυψη κονσόλας)', ar: 'قائم على النافذة (إخفاء وحدة التحكم)', fa: 'مبتنی بر پنجره (عدم نمایش کنسول)', sr: 'Aplikacija sa prozorom (sakrij konzolu)', ja: 'ウィンドウベース (コンソールを非表示にする)', pl: 'Aplikacja okienkowa (ukrycie konsoli)', fi: 'Ikkunapohjainen (piilota konsoli)', vi: 'Trong cửa sổ (ẩn bàn điều khiển)', nl: 'Venster Gebaseerd', }, addFiles: { en: 'Add Files', zh: '添加文件', zh_tw: '新增檔案', ua: 'Додати Файли', ru: 'Добавить Файлы', de: 'Dateien hinzufügen', pt_br: 'Adicionar Arquivos', sp: 'Añadir archivos', sp_la: 'Añadir archivos', tr: 'Dosyalar Ekle', th: 'เพิ่มไฟล์', fr: 'Ajout de fichiers', it: 'Aggiungi file', id: 'Tambahkan Berkas', cz: 'Přidat soubory', gr: 'Προσθήκη Αρχείων', ar: 'إضافة ملفات', fa: 'افزودن فایل‌ها', sr: 'Dodaj datoteku', ja: 'ファイルの追加', pl: 'Dodaj pliki', fi: 'Lisää tiedostoja', vi: 'Thêm các tập tin', nl: 'Bestanden Toevoegen', }, addFolder: { en: 'Add Folder', zh: '添加目录', zh_tw: '新增目錄', ua: 'Додати директорію', ru: 'Добавить Папку', de: 'Verzeichnis hinzufügen', pt_br: 'Adicionar Pasta', sp: 'Añadir carpeta', sp_la: 'Añadir carpeta', tr: 'Klasör Ekle', th: 'เพิ่มแฟ้มใหม่', fr: 'Ajout de dossiers', it: 'Aggiungi cartelle', id: 'Tambahkan Folder', cz: 'Přidat složku', gr: 'Προσθήκη Φακέλου', ar: 'أضف مجلدًا', fa: 'افزودن پوشه', sr: 'Dodaj direktorijum', ja: 'フォルダの追加', pl: 'Dodaj katalog', fi: 'Lisää kansio', vi: 'Thêm thư mục', nl: 'Map Toevoegen', }, addBlank: { en: 'Add Blank', zh: '添加空白', zh_tw: '新增空白', ua: 'Додати шаблон', ru: 'Добавить шаблон', de: 'Leerzeichen hinzufügen', pt_br: 'Adicionar em Branco', sp: 'Añadir en blanco', sp_la: 'Añadir en blanco', tr: 'Boş Alan Ekle', th: 'เพิ่มช่องว่าง', fr: 'Ajout de pages', it: 'Aggiungi vuoto', id: 'Tambahkan Kosong', cz: 'Přidat prázdný', gr: 'Προσθήκη Κενού Αρχείου', ar: 'أضف فارغًا', fa: 'افزودن فضای خالی', sr: 'Dodaj prazno', ja: '空白の追加', pl: 'Dodaj puste pole', fi: 'Lisää tyhjä', vi: 'Thêm trống', nl: 'Leeg Toevoegen', }, importConfig: { en: 'Import Config From JSON File', zh: '从JSON文件导入配置', zh_tw: '從 JSON 檔案導入配置', ua: 'Імпортувати Конфігурацію з файлу JSON', ru: 'Импортировать Конфигурацию из JSON Файла', de: 'Konfiguration aus JSON-Datei importieren', pt_br: 'Importar Config de Arquivo JSON', sp: 'Importar Configuración de Archivo JSON', sp_la: 'Importar Configuración de un archivo JSON', tr: 'Yapılandırmayı JSON Dosyasından İçe Aktar', th: 'นำเข้าการตั้งค่า (ไฟล์ JSON)', fr: 'Importation de la configuration d\'un fichier JSON', it: 'Importa configurazione da file JSON', id: 'Impor Config dari Berkas JSON', cz: 'Importovat konfiguraci z JSON souboru', gr: 'Εισαγωγή Ρυθμίσεων από JSON αρχείο', ar: 'استيراد التكوين من ملف JSON', fa: 'وارد کردن پیکربندی از فایل JSON', sr: 'Učitaj konfiguracuju iz JSON datoteke', ja: '構成をJSONファイルからインポート', pl: 'Import konfiguracji z pliku JSON', fi: 'Tuo konfiguraatio JSON-tiedostosta', vi: 'Nhập cấu hình từ tệp JSON', nl: 'Importeer Config Uit JSON Bestand', }, exportConfig: { en: 'Export Config To JSON File', zh: '将配置导出到JSON文件', zh_tw: '將配置導出到 JSON 檔案', ua: 'Експортувати Конфігурацію у файл JSON', ru: 'Экспортировать Конфигурацию в JSON Файл', de: 'Konfiguration in JSON-Datei exportieren', pt_br: 'Exportar Config para Arquivo JSON', sp: 'Exportar Configuración para Archivo JSON', sp_la: 'Exportar Configuración a un archivo JSON', th: 'ส่งออกการตั้งค่า (ไฟล์ JSON)', fr: 'Exportation de la configuration vers un fichier JSON', it: 'Esporta configurazione su un file JSON', id: 'Ekspor Config ke Berkas JSON', cz: 'Exportovat konfiguraci do JSON souboru', gr: 'Εξαγωγή ρυθμίσεων σε αρχείο JSON', ar: 'تصدير التكوين إلى ملف JSON', fa: 'ذخیره تنظیمات در فایل JSON', sr: 'Sačuvaj konfiguracuju kao JSON datoteku', ja: '構成をJSONファイルへエクスポート', pl: 'Eksport konfiguracji do pliku JSON', fi: 'Vie konfiguraatio JSON-tiedostoon', vi: 'Xuất cấu hình sang tệp JSON', nl: 'Exporteer Config', }, convert: { en: 'Convert .py to .exe', zh: '将.PY转换为.EXE', zh_tw: '將.PY 轉換為 .EXE', ua: 'Конвертувати .py в .exe', ru: 'Конвертировать .py В .exe', de: 'Konvertiere .py in .exe', pt_br: 'Converter .py para .exe', sp: 'Convertir .py a .exe', sp_la: 'Convertir .py a .exe', tr: '.py\'yi .exe\'ye dönüştürün', th: 'เริ่มการแปลงไฟล์', fr: 'Convert. .py vers .exe', it: 'Converti .py a .exe', id: 'Konversi .py ke .exe', cz: 'Převést .py na .exe', gr: 'Μετατροπή .py σε .exe', ar: 'تحويل .py إلى. exe', fa: 'تبدیل .py به .exe', sr: 'Konvertuj .py u .exe', ja: '.pyを.exeに変換', pl: 'Konwertuj .py na .exe', fi: 'Muunna .py-tiedosto .exe-tiedostoksi', vi: 'Chuyển đổi .py sang .exe', nl: 'Converteer .py naar .exe', }, openOutputFolder: { en: 'Open Output Folder', zh: '打开输出目录', zh_tw: '打開輸出目錄', ua: 'Відкрити Кінцеву Директорію', ru: 'Открыть Папку Вывода', de: 'Ausgabeverzeichnis öffnen', pt_br: 'Abrir Pasta de Saída', sp: 'Abrir Carpeta de Destino', sp_la: 'Abrir carpeta de destino', tr: 'Çıktı Klasörünü Aç', th: 'เปิดโฟลเดอร์ผลลัพธ์', fr: 'Ouvrir le dossier de sortie', it: 'Apri cartella di destinazione', id: 'Buka Folder Keluaran', cz: 'Otevřít složku výstupu', gr: 'Άνοιγμα φακέλου εξαγωγής αρχείου', ar: 'فتح مجلد المخرجات', fa: 'باز کردن پوشه خروجی', sr: 'Otvori izlazni direktorijum', ja: '出力フォルダを開く', pl: 'Otwórz katalog wyjściowy', fi: 'Avaa ulostulon kansio', vi: 'Mở thư mục đầu ra', nl: 'Open Uitvoer Map', }, enable: { en: 'Enable', zh: '开启', zh_tw: '開啟', ua: 'Увімкнути', ru: 'Включить', de: 'Aktivieren', pt_br: 'Habilitar', sp: 'Habilitar', sp_la: 'Habilitar', tr: 'Aktif', th: 'เปิดใช้งาน', fr: 'Autorisé', it: 'Abilita', id: 'Aktifkan', cz: 'Povolit', gr: 'Συμπερίληψη', ar: 'يُمكَِن', fa: 'فعالسازی', sr: 'Omogući', ja: '有効', pl: 'Włączyć', fi: 'Aktivoi', vi: 'Cho phép', nl: 'Ingeschakeld', }, }, links: { helpPost: { en: 'Help Post', zh: '帮助帖子', zh_tw: '幫助文章', ua: 'Довідка', ru: 'Справка', de: 'Hilfe-Post', pt_br: 'Artigo de Ajuda', sp: 'Ayuda', sp_la: 'Ayuda', tr: 'Yardım', th: 'บทความช่วยเหลือ', fr: 'Message d\'aide', it: 'Aiuto', id: 'Post Bantuan', cz: 'Příspěvek pomoci', gr: 'Βοήθεια', ar: 'مساعدة آخر', fa: 'پست راهنما', sr: 'Pomoć', ja: 'ヘルプ記事', pl: 'Pomoc', fi: 'Apua (Englanniksi)', vi: 'Đăng trợ giúp', nl: 'Help', } }, placeholders: { pathToFile: { en: 'Path to file', zh: '文件路径', zh_tw: '檔案路徑', ua: 'Шлях до файлу', ru: 'Путь к файлу', de: 'Pfad zur Datei', pt_br: 'Caminho para Arquivo', sp: 'Ruta de archivo', sp_la: 'Ruta de archivo', tr: 'Dosya yolu', th: 'เส้นทางไปยังไฟล์', fr: 'Chemin vers le fichier', it: 'Percorso file', id: 'Jalur ke berkas', cz: 'Cesta k souboru', gr: 'Διαδρομή στο αρχείο', ar: 'مسار الملف', fa: 'مسیر فایل', sr: 'Putanja datoteke', ja: 'ファイルのパス', pl: 'Ścieżka pliku', fi: 'Polku tiedostoon', vi: 'Đường dẫn tập tin', nl: 'Bestand Pad', }, icoFile: { en: '.ico file', zh: '图标路径', zh_tw: '圖示路徑', ua: '.ico файл', ru: '.ico файл', de: '.ico Datei', pt_br: 'Arquivo .ico', sp: 'Archivo .ico', sp_la: 'Archivo .ico', tr: '.ico Dosyasi', th: '.ico ไฟล์', fr: '.ico fichier', it: '.ico file', id: '.ico berkas', cz: '.ico soubor', gr: 'Αρχείο .ico', ar: 'ملف .ico', fa: 'فایل .ico', sr: '.ico datoteka', ja: '.ico ファイル', pl: 'plik .ico', fi: '.ico tiedosto', vi: 'tập tin .ico', nl: '.ico Bestand', }, directory: { en: 'DIRECTORY', zh: '目录', zh_tw: '目錄', ua: 'Директорія', ru: 'Директория', de: 'VERZEICHNIS', pt_br: 'DIRETÓRIO', sp: 'Directorio', sp_la: 'Directorio', tr: 'Dizin', th: 'ไดเรกทอรี', fr: 'REPERTOIRE', it: 'CARTELLA', id: 'DIREKTORI', cz: 'SLOŽKA', gr: 'Ευρετήριο', ar: 'الدليل', fa: 'فهرست راهنما', sr: 'Direktorijum', ja: 'ディレクトリ', pl: 'KATALOG', fi: 'KANSIO', vi: 'THÀNH PHẦN', nl: 'MAP', }, arguments: { en: 'ARGUMENTS', zh: '参数', zh_tw: '參數', ua: 'Аргументи', ru: 'Аргументы', de: 'ARGUMENTE', pt_br: 'ARGUMENTOS', sp: 'ARGUMENTOS', sp_la: 'ARGUMENTOS', tr: 'ARGÜMANLAR', th: 'อาร์กิวเมนต์', fr: 'ARGUMENTS', it: 'OPZIONI', id: 'ARGUMEN', cz: 'ARGUMENTY', gr: 'Παράμετροι', ar: 'المعطيات', fa: 'پارامترها', sr: 'Argumenti', ja: '引数', pl: 'ARGUMENTY', fi: 'ARGUMENTIT', vi: 'TRANH LUẬN', nl: 'ARGUMENTEN', } }, helpText: { outputDirectory: { en: 'The directory to put the output in. Will be created if it doesn\'t exist', zh: '用于放置输出的目录。如果不存在,将创建该目录', zh_tw: '用於放置輸出的目錄如果不存在,將自動創建該目錄', ua: 'Директорія, в яку буде зібрано кінцевий застосунок. Буде створено за необхідності', ru: 'Папка, в которую переместиться итоговое приложение. Будет создано при необходимости.', de: 'Ausgabeverzeichnis. Wird erzeugt wenn es nicht existiert', pt_br: 'O diretório para colocar a saída. Será criado se não existir', sp: 'El directorio para colocar el archivo de salida. Será creado si no existe', sp_la: 'El directorio para colocar el archivo de salida. Será creado si no existe', tr: 'Çıktının yerleştirileceği dizin. Mevcut değilse oluşturulacaktır.', th: 'Directory สำหรับ Output ไฟล์ จะถูกสร้างขึ้น ถ้า Directory นั้นไม่มี', fr: 'Le répertoire sera créé s\'il n\'existe pas.', it: 'Cartella dove mettere l\'output, sarà creata se non esiste.', id: 'Direktori untuk menyimpan output. Akan dibuat jika tidak ada', cz: 'Složka kde bude výstup. Bude vytvořena pokud neexistuje.', gr: 'Εάν δεν υπάρχει ο φάκελος εξόδου, θα δημιουργηθεί.', ar: 'الدليل المراد وضع الإخراج فيه. سيتم إنشاؤه إذا لم يكن موجودًا', fa: 'مسیر پوشه خروجی. در صورت وجود نداشتن، ساخته خواهد شد', sr: 'Direktorijum za izlaz. Napraviće se ako ne postoji.', ja: '出力したものを置くディレクトリ。存在しない場合は作成されます。', pl: 'Katalog, w którym należy umieścić dane wyjściowe. Zostanie utworzony, jeśli nie istnieje.', fi: 'Kansio johon valmis .exe-tiedosto laitetaan. Kansio luodaan, jos se ei ole jo olemassa.', vi: 'Thư mục chứa đầu ra. Nó sẽ được tạo ra nếu nó không tồn tại.', nl: 'De uitvoermap. Wordt aangemaakt als de map niet bestaat.', }, increaseRecursionLimit: { en: 'Having this enabled will set the recursion limit to 5000 using sys.setrecursionlimit(5000).', zh: '启用此功能将使用sys.setrecursionlimit(5000)将递归限制设置为5000。', zh_tw: '啟用此功能將使用 sys.setrecursionlimit(5000)將遞歸限制設置為5000。', ua: 'Якщо увімкнено, встановить ліміт глибини рекурсії рівний 5000 використовуючи sys.setrecursionlimit(5000).', ru: 'Если включено установит лимит рекурсии равный 5000 с помощью sys.setrecursionlimit(5000).', de: 'Setzt das Rekursionslimit auf 5000 per sys.setrecursionlimit(5000).', pt_br: 'Ativar isso definirá o limite de recursão para 5000 usando sys.setrecursionlimit(5000)', sp: 'Al activar esto se definirá el límite de recursión a 5000 usando sys.setrecursionlimit(5000)', sp_la: 'Al activar esto se definirá el límite de recursión a 5000 usando sys.setrecursionlimit(5000)', tr: 'Bunun etkinleştirilmesi, sys.setrecursionlimit(5000) kullanılarak yineleme sınırını 5000\'e ayarlayacaktır.', th: 'การเปิดใช้งานนี้จะตั้งค่าขีดจำกัดการเรียกซ้ำเป็น 5000 โดยใช้ sys.setrecursionlimit(5000)', fr: 'L\'activation de cette option définira la limite de récursivité à 5000 en utilisant sys.setrecursionlimit(5000).', it: 'Abilitando questa opzione imposterà il limite di recursione a 5000 utilizzando sys.setrecursionlimit(5000).', id: 'Dengan mengaktifkan ini, pengaturan limit rekursi akan diatur ke 5000 menggunakan sys.setrecursionlimit(5000)', cz: 'Pokud zapnuté, limit rekurze se zvýší ná 5000 pomocí sys.setrecursionlimit(5000).', gr: 'Έχοντας ενεργοποιήσει το όριο που θα χρησιμοποιηθεί είναι 5000 με την παράμετρο sys.setrecursionlimit(5000).', ar: 'سيؤدي تمكين هذا إلى تعيين حد العودية على 5000 باستخدام sys.setrecursionlimit (5000).', fa: 'با فعال کردن این گزینه، محدودیت بازگشت به 5000 با استفاده از sys.setrecursionlimit(5000) تنظیم می شود.', sr: 'Ako je omogućeno, ograničenje rekurzije će biti povećano na 5000 korišćenjem sys.setrecursionlimit(5000).', ja: 'これを有効にすると、sys.setrecursionlimit(5000)を使い、再帰回数の上限を5000にします。', pl: 'Przy włączeniu tego ustawimy limit rekurencji na 5000 używając sys.setrecursionlimit(5000).', fi: 'Tämän kytkeminen päälle asettaa 5000 rekursiorajaksi käyttämällä sys.setrecursionlimit(5000).', vi: 'Nếu được bật, giới hạn đệ quy được tăng lên 5000 bằng cách sử dụng sys.setrecursionlimit(5000).', nl: 'Indien ingeschakeld, dan is de recurentie limiet beperkt tot 5000 gebruik makend van sys.setrecursionlimit(5000).', }, manualArgumentInput: { en: 'Inject raw text into the generated command.', zh: '将原始文本插入到生成的命令中。', zh_tw: '將原始文字插入到產生的命令中。', ua: 'Додасть текст в кінцеву команду', ru: 'Вставит текст в итоговую команду', de: 'Text zum generierten Befehl hinzufügen.', pt_br: 'Injete texto bruto no comando gerado.', sp: 'Inserte texto bruto en el comando generado', sp_la: 'Inserte texto bruto en el comando generado', tr: 'Oluşturulan komuta ham metin ekleyin.', th: 'ใส่ raw text ลงในคำสั่งที่สร้างขึ้น', fr: 'Injectez du texte brut dans la commande générée.', it: 'Inserisci testo forzatamente alla fine del comando generato.', id: 'Masukkan teks mentah ke dalam command yang dibuat', cz: 'Vložit text do vygenerovaného příkazu.', gr: 'Εισάγετε το κείμενο για την εντολή', ar: 'أدخل نصًا خامًا في الأمر الذي تم إنشاؤه.', fa: 'افزودن متن خام به دستور تولید شده.', sr: 'Ubaci tekst u generisanu komandu.', ja: '生成されたコマンドにテキストを挿入する。', pl: 'Wstrzyknij raw tekst do wygenerowanego polecenia.', fi: 'Lisää raakaa tekstiä generoituun komentoon', vi: 'Dán văn bản vào lệnh đã tạo.', nl: 'Voeg rauwe tekst in de gegenereerde commando', } }, notes: { invalidIcoFormatWarning: { en: 'Warning: this file is not a valid .ico file', zh: '警告:此文件不是有效的 .ico 文件', zh_tw: '警告:此文件不是有效的 .ico 文件', ua: 'Попередження: це недопустимий файл .ico', ru: 'Предупреждение: этот файл не является допустимым файлом .ico', de: 'Warnung: Diese Datei ist keine gültige .ico-Datei', pt_br: 'Aviso: este arquivo não é um arquivo .ico válido', sp: 'Advertencia: este archivo no es un archivo .ico válido', sp_la: 'Advertencia: este archivo no es un archivo .ico válido', tr: 'Uyarı: Bu dosya geçerli bir .ico dosyası değil', th: 'คำเตือน: ไฟล์นี้ไม่ใช่ไฟล์ .ico ที่ถูกต้อง', fr: "Attention: ce fichier n'est pas un fichier .ico valide", it: 'Attenzione: questo file non è un file .ico valido', id: 'Peringatan: file ini bukan file .ico yang valid', cz: 'Upozornění: Tento soubor není platným souborem .ico', gr: 'Προειδοποίηση: αυτό το αρχείο δεν είναι έγκυρο αρχείο .ico', ar: 'تحذير: هذا الملف ليس ملف .ico صالح', fa: 'هشدار: این فایل یک .ico معتبر نیست.', sr: 'Упозорење: ова датотека није важећа .ицо датотека', ja: '警告: このファイルは有効な .ico ファイルではありません', pl: 'Ostrzeżenie: ten plik nie jest prawidłowym plikiem .ico', fi: 'Varoitus: tämä tiedosto ei ole kelpaava .ico-tiedosto', vi: 'Cảnh báo: tệp này không phải là tệp .ico hợp lệ', nl: 'Waarschuwing: het bestand is geen geldig .ico bestand', }, oneFileAdditionalFilesNote: { en: 'Be careful when using additional files with onefile mode;\n' + `read this\n` + 'and update your code to work with PyInstaller.', zh: '使用单文件模式的附加文件时要小心;\n' + `read this\n` + '并更新您的代码以使用PyInstaller。', zh_tw: '使用單檔案模式的附加檔案時要小心;\n' + `read this\n` + '並更新您的代碼以使用 PyInstaller。', ua: 'Будьте уважні під час використання додаткових файлів в режимі onefile;' + `Прочитайте це\n` + 'і оновіть свій код для подальшого використання PyInstaller.', ru: 'Будьте внимательны при использовании дополнительных файлов в режиме одного файла;\n' + `Прочитайте Это\n` + 'и обновите свой код для работы с PyInstaller.', de: 'Vorsicht bei Verwendung von zusätzlichen Dateien im Modus "Eine Datei";\n' + `Siehe\n` + 'und aktualisiere den Code zur Verwendung mit PyInstaller.', pt_br: 'Tenha cuidado ao usar arquivos adicionais com o modo de arquivo único;\n' + `leia isto\n` + 'e atualize seu código para trabalhar com PyInstaller.', sp: 'Tenga cuidado al utilizar archivos adicionales con el modo de un solo archivo;\n' + `read this\n` + 'and update your code to work with PyInstaller.', sp_la: 'Tenga cuidado al utilizar archivos adicionales con el modo de un solo archivo;\n' + `read this\n` + 'y actualiza tu codigo para funcionar con PyInstaller.', tr: 'Tek dosya modunda ek dosyalar kullanırken dikkatli olun;\n' + `read this\n` + 've kodunuzu PyInstaller ile çalışacak şekilde güncelleyin.', th: 'โปรดใช้ความระมัดระวัง เมื่อใช้ไฟล์เพิ่มเติมกับโหมด onefile;\n' + `read this\n` + 'และอัปเดต code ของคุณเพื่อทำงานกับ PyInstaller', fr: 'Soyez prudent lorsque vous utilisez des fichiers supplémentaires avec le mode onefile;\n' + `read this\n` + 'et mettez à jour votre code pour qu\'il fonctionne avec PyInstaller.', it: 'Fai attenzione quando usi più di un file in modalità un file;\n' + `leggi qui (articolo in inglese)\n` + 'e aggiorna il tuo codice per funzionare con PyInstaller.', id: 'Berhati-hati saat menggunakan berkas tambahan dengan mode onefile;\n' + `baca ini\n` + 'dan perbarui kode Anda untuk bekerja dengan PyInstaller.', cz: 'Buďte opatrní když přidáváte soubory s režimem jednoho souboru;\n' + `přečtěte si tohle (stránka v angličtině)\n` + 'a aktualizujte kód tak aby fungoval s PyInstaller.', gr: 'Να είσατε προσεκτικοί με την χρήση επιλογής ενός αρχείου\n' + `read this\n` + 'and update your code to work with PyInstaller.', ar: 'كن حذرًا عند استخدام ملفات إضافية مع وضع الملف الواحد ؛ \n' + `اقرا هذا\n` + 'وقم بتحديث التعليمات البرمجية الخاصة بك للعمل مع PyInstaller.', fa: 'هنگام استفاده از فایل های اضافی با حالت onefile مراقب باشید؛\n' + `لینک را بخوانید\n` + 'و کد خود را برای کار با PyInstaller به روز کنید.', sr: 'Budi oprezan kada koristiš dodatne datoteke u režimu jedne datoteke;\n' + `pročitaj ovo (na engleskom)\n` + 'i ažuriraj svoj kod da bi radio sa PyInstaller.', ja: '1つのファイルモードで追加ファイルを使用する際は、注意が必要です。;\n' + `こちら (原文記事)\n` + 'で、PyInstallerで動作するようにコードを変更してください。', pl: 'Należy zachować ostrożność przy używaniu dodatkowych plików w trybie jednoplikowym;\n' + `Czytaj to\n` + 'i zaktualizuj swój kod, aby działał z PyInstaller.', fi: 'Ole varovainen kun käytät lisätiedostoja yhden tiedoston tilassa;\n' + `Lue tämä (englanniksi)\n` + 'ja päivitä koodisi toimimaan PyInstallerin kanssa.', vi: 'Hãy cẩn thận khi thêm tệp với chế độ tệp đơn;\n' + `přečtěte si tohle (stránka v angličtině)\n` + 'và cập nhật mã để hoạt động với PyInstaller.', nl: 'Wees voorzichtig bij gebruik van extra bestanden in Eenbestan modus;\n' + `\n` + 'en update je code voor het werken met PyInstaller.', }, rootDirectory: { en: 'If you want to put files in the root directory, put a period (.) in the destination.', zh: '如果要将文件放到根目录中,请在目标目录中输入句点(.)。', zh_tw: '如果要將檔案放到根目錄中,請在目標目錄中輸入句點(.)。', ua: 'Якщо хочете розмістити файли в основній директорії, додайте крапку (.) на початку шляху.', ru: 'Если вы хотите расположить файлы в главной директории, вставьте точку (.) в начале пути.', pt_br: 'Se você quiser colocar arquivos no diretório raiz, coloque um ponto (.) no destino.', de: 'Um Dateien im Rootverzeichnis zu speichern, verwende einen Punkt (.) bei der Angabe des Zielverzeichnisses.', sp: 'Si quiere poner los archivos en el directorio raíz, ponga un punto (.) en el destino.', sp_la: 'Si quiere poner los archivos en el directorio raíz, ponga un punto (.) en el destino.', tr: 'Dosyaları kök dizine koymak istiyorsanız, hedefe nokta (.) koyun.', th: 'หากคุณต้องการใส่ไฟล์ในไดเร็กทอรีราก ให้ใส่จุด (.) ที่ปลายทาง', fr: 'Si vous souhaitez placer des fichiers dans le répertoire racine, mettez un point (.) dans la destination.', it: 'Se vuoi mettere file nella cartella radice, inserisci (.) nella destinazione', id: 'Jika Anda ingin menyimpan berkas di direktori root, tambahkan titik (.) di tujuan.', cz: 'Pokud chcete přidat soubory do kořenové složky, přidejte tečku (.) do destinace.', gr: 'Έαν θέλετε να εισάγετε τα αρχεία σας στον κεντρικό φάκελο απλά τοποθετήστε μια τελεία (.) στον προορισμό', ar: 'إذا كنت تريد وضع الملفات في الدليل الجذر ، فضع نقطة (.) في الوجهة.', fa: 'اگر می خواهید فایل ها را در پوشه اصلی قرار دهید، یک نقطه (.) در پوشه مقصد قرار دهید.', sr: 'Ako želiš da dodaš datoteke u osnovni direktorijum (tzv. root), dodaj tačku (.) u odredištu.', ja: 'ルートディレクトリにファイルを置きたい場合は、移動先にピリオド (.) を入れます。', pl: 'Jeśli chcesz umieścić pliki w katalogu głównym, postaw kropkę (.) w miejscu przeznaczenia.', fi: 'Jos haluat laittaa tiedostoja juurikansioon, laita piste (.) kohteeseen.', vi: 'Nếu bạn muốn thêm tệp vào thư mục gốc, hãy thêm dấu chấm (.) vào đích.', nl: 'Als je de bestanden wil toevoegen aan de root map, gebruik een punt (.) in de bestemming', }, somethingWrongWithOutput: { en: 'Something wrong with your exe? Read ' + `this post on how to fix common issues` + ' for possible solutions.', zh: '你的exe有问题? 阅读 ' + `这篇文章是关于如何修复常见问题的` + ' 寻找可能的解决方案。', zh_tw: '您的 exe 有問題? 請閱讀 ' + `這篇文章是關於如何修復常見的問題` + ' 尋找可能的解決方案。', ua: 'Щось не так з вашим EXE? Можете з легкістю знайти відповідь' + `тут, ознайомившись з описом більшості проблем`, ru: 'Что-то не так с вашим exe? Прочитайте ' + `эту справку, с описанием большинства проблем` + ' чтобы решить свою.', de: 'Probleme mit der .exe-Datei? Lies ' + `diesen Artikel zur Behebung von bekannten Problemen` + ' für mögliche Lösungen.', pt_br: 'Algo errado com seu exe? Leia ' + `este artigo sobre como corrigir problemas comuns` + ' para possíveis soluções.', sp: 'Algo fue mal con tu exe? Lea ' + `este post contiene posibles problemas comunes` + ' y posibles soluciones.', sp_la: 'Algo fue mal con tu archivo .exe? Lea ' + `este post contiene posibles soluciones a problemas comunes.`, tr: 'exe\'nizde bir sorun mu var? Oku ' + `yaygın sorunların nasıl çözüleceğiyle ilgili bu gönderiye bakin` + ' olası çözümler için.', th: 'มีอะไรผิดปกติกับ exe ของคุณ? อ่าน ' + `โพสต์เกี่ยวกับวิธีแก้ไขปัญหาทั่วไป` + ' สำหรับวิธีแก้ปัญหาที่เป็นไปได้', fr: 'Quelque chose ne va pas avec votre exe? Lire ' + `ce post sur la façon de résoudre les problèmes courants` + ' pour les solutions possibles.', it: 'Qualcosa è andato storto con il tuo exe? leggi ' + `questo articolo su come risolvere problemi comuni (articolo in inglese)` + ' per possibili soluzioni.', id: 'Ada yang salah dengan exe Anda? Baca ' + `artikel ini untuk menyelesaikan masalah-masalah umum` + ' yang mungkin.', cz: 'Něco špatně s exe souborem? Přečtěte si ' + `tento příspěvek na jak opravit běžné chyby` + ' pro možné řešení.', gr: 'Πήγε κάτι στραβά με το εκτελέσιμο (exe); Διαβάστε ' + `this post on how to fix common issues` + ' για πιθανές λύσεις.', ar: 'شيء خاطئ مع exe الخاص بك؟ اقرأ ' + `هذا المنشور حول كيفية إصلاح المشكلات الشائعة` + ' للحلول الممكنة.', fa: 'مشکلی در exe شما وجود دارد؟ بخوانید' + `این پست درباره رفع مشکلات رایج است.` + ' برای راه حل‌های ممکن.', sr: 'Nešto nije u redu sa tvojim exe-om? Pročitaj ' + `ovaj post o tome kako da popraviš česte greške,` + ' za moguća rešenja problema.', ja: 'exeに不具合がありますか? ' + `よくある問題を解決する方法についての記事` + ' をご覧ください。', pl: 'Coś nie tak z twoim exe? Przeczytaj ' + `ten post o tym, jak naprawić typowe problemy` + ' w celu uzyskania możliwych rozwiązań ', fi: 'Tuliko vastaan ongelmia= lue' + `tämä postaus (englanniksi) niin näet yleiset ongelmat` + ' ja mahdolliset ratkaisut.', vi: 'Đã xảy ra sự cố với tệp exe? Đọc ' + `bài đăng này về cách khắc phục các lỗi phổ biến` + ' cho một giải pháp có thể.', nl: 'Is er iets mis met je .exe bestand?Lees ' + `dit artikel hoe men algemene problemen oplost` + ' voor mogelijke oplossingen.', } } }, // Elements dynamically added to the DOM dynamic: { title: { // For the usage of constants.js:advancedSections generalOptions: { en: 'General Options', zh: '常规选项', zh_tw: '一般選項', ua: 'Основні Налаштування', ru: 'Основные Настройки', de: 'Allgemeine Optionen', pt_br: 'Opções Gerais', sp: 'Opciones generales', sp_la: 'Opciones generales', tr: 'Genel Seçenekler', th: 'ตัวเลือกทั่วไป', fr: 'Options Générales', it: 'Opzioni generali', id: 'Pilihan Umum', cz: 'Obyčejné nastavení', gr: 'Γενικές Παράμετροι', ar: 'خيارات عامة', fa: 'گزینه‌های عمومی', sr: 'Osnovna podešavanja', ja: '一般設定', pl: 'Opcje generalne', fi: 'Yleiset asetukset', vi: 'Cài đặt đơn giản', nl: 'Algemene Opties', }, whatToBundleWhereToSearch: { en: 'What to bundle, where to search', zh: '捆绑什么,搜索哪里', zh_tw: '怎樣捆綁,哪裡搜尋', ua: 'Що використовується і де це шукати', ru: 'Что используется и где это искать', de: 'Was zusammenfassen, wo suchen', pt_br: 'O que agrupar, onde buscar', sp: 'Qué agrupar, dónde buscar', sp_la: 'Qué agrupar, dónde buscar', tr: 'Ne paketlenir, nerede aranır', th: 'What to bundle, ค้นหาที่ไหน', fr: 'Quoi regrouper, où chercher', it: 'Cosa ragruppare, dove cercare', id: 'Apa yang dibundling, dimana cari', cz: 'Co přibalit, kde hledat', gr: 'Που θέλετε να γίνει η αναζήση;', ar: 'ماذا تحزم ، أين تبحث', fa: 'موارد بسته‌بندی و مکان‌های جستجو', sr: 'Šta uključiti, gde ga naći', ja: '何を同梱するか、どこを探すか', pl: 'Co połączyć, gdzie szukać', fi: 'Mitä paketoida, mistä etsiä', vi: 'Gói gì, tìm ở đâu', nl: 'Wat samenbrengen, waar te zoeken', }, howToGenerate: { en: 'How to generate', zh: '如何生成', zh_tw: '如何產生', ua: 'Налаштування генератора', ru: 'Настройки генератора', de: 'Wie generieren', pt_br: 'Como gerar', sp: 'Como generar', sp_la: 'Como generar', tr: 'Nasıl oluşturulur', th: 'วิธีการ generate', fr: 'Comment générer', it: 'Come generare', id: 'Bagaimana cara generate', cz: 'Jak vygenerovat', gr: 'Πως να γίνει η αναπαραγωή', ar: 'كيف تنشئ', fa: 'نحوه ی ساخت', sr: 'Kako generisati', ja: 'どのように生成するか', pl: 'Jak wygenerować', fi: 'Miten generoida', vi: 'Làm thế nào để tạo ra', nl: 'Hoe te genereren', }, windowsAndMacOsXSpecificOptions: { en: 'Windows And macOS X Specific Options', zh_tw: 'Windows 和 macOS X 特定選項', ua: 'Налаштування для Windows та macOS X', ru: 'Настройки для Windows и macOS X', de: 'Windows- und macOS-spezifische Optionen', pt_br: 'Opções específicas para Windows e macOS X', sp: 'Opciones específicas Windows y macOS X', sp_la: 'Opciones específicas de Windows y de macOS X', tr: 'Windows ve macOS X\'e Özel Seçenekler', th: 'ตัวเลือกเฉพาะของ Windows และ macOS X', fr: 'Windows et macOS X options specifiques', it: 'Opzioni specifice Windows e macOS X', id: 'Pilihan Windows dan macOS X', cz: 'Windows a macOS X specifické nastavení', gr: 'Συγκεκριμένες Επιλογές για Windows και macOS X', ar: 'خيارات محددة لنظام التشغيل Windows و macOS X', fa: 'گزینه های خاص برای Windows و macOS X', sr: 'Specifična podešavanja za Windows i macOS X', ja: 'WindowsとmacOS X 固有の設定', pl: 'Opcje specyficzne dla systemów Windows i macOS X', fi: 'Yksilölliset asetukset Windowsille ja macOSille', vi: 'Cài đặt cụ thể của Windows và macOS X', nl: 'Windows an macOS X Specifieke Opties', }, windowsSpecificOptions: { en: 'Windows specific options', zh: 'Windows特定选项', zh_tw: 'Windows 特定選項', ua: 'Налаштування для Windows', ru: 'Настройки для Windows', de: 'Windows-spezifische Optionen', pt_br: 'Opções específicas para Windows', sp: 'Opciones específicas Windows', sp_la: 'Opciones específicas de Windows', tr: 'Windows\'a özel seçenekler', th: 'ตัวเลือกเฉพาะของ Windows', fr: 'Options spécifiques à Windows', it: 'Opzioni specifice Windows', id: 'Pilihan Windows', cz: 'Windows specifické nastavení', gr: 'Συγκεκριμένες Επιλογές για Windows', ar: 'خيارات Windows المحددة', fa: 'گزینه های خاص Windows', sr: 'Specifična podešavanja za Windows', ja: 'Windows固有の設定', pl: 'Opcje dla systemu Windows', fi: 'Yksilälliset asetukset Windowsille', vi: 'Cài đặt cụ thể của Windows', nl: 'Windows Specifieke Opties', }, windowsSideBySideAssemblySearchingOptions: { en: 'Windows Side-by-side Assembly searching options (advanced)', zh: '窗口并排汇编搜索选项(高级)', zh_tw: '視窗並排彙編搜尋選項(進階)', ua: 'Параметри пошуку паралельних збірок Windows (додатково)', ru: 'Параметры поиска параллельных сборок Windows (дополнительно)', de: 'Windows Side-by-side Suchoptionen (Erweitert)', pt_br: 'Opções pesquisa do Windows Side-by-side Assembly (avançado)', sp: 'Opciones de búsqueda de ensamblaje en paralelo para Windows (avanzadas)', sp_la: 'Opciones de búsqueda de ensamblaje en paralelo para Windows (avanzadas)', tr: 'Windows Yan Yana Montaj arama seçenekleri (gelişmiş)', th: 'ตัวเลือกการค้นหา Assembly ของ Windows Side-by-side (ขั้นสูง)', fr: 'Options de recherche Windows Side-by-side Assembly (avancées)', it: 'Opzioni ricerca Windows Side-by-side Assembly (avanzato)', id: 'Pilihan pencarian Assembly Windows Side-by-side (lanjutan)', cz: 'Windows Side-by-side Assembly nastavení hledání (pokročilé)', gr: 'Εργαλεία αναζήτησης για Windows με Assembly (για προχωρημένους)', ar: 'خيارات البحث عن تجميع Windows جنبًا إلى جنب (متقدمة)', fa: 'گزینه های جستجوی گروهی ویندوز کنار هم (پیشرفته)', sr: 'Windows Side-by-side Assembly podešavanja pretrage (napredno)', ja: 'Windows Side-by-side アセンブリ検索オプション (上級者向け)', pl: 'Windows Side-by-side Assembly opcje przeszukiwania(zaawansowane)', fi: 'Windows Side-by-side Assembly etsimisasetukset (edistynyt)', vi: 'Windows Side-by-side Cài đặt tìm kiếm hội (nâng cao)', nl: 'Windows Zijde-Bij-Zijde Sazmenvoeging Zoek Opties (geadvanceerd)', }, macOsxSpecificOptions: { en: 'macOS X specific options', zh: 'macOS X特定选项', zh_tw: 'macOS X 特定選項', ua: 'Налаштування для macOS X', ru: 'Настройки для macOS X', de: 'macOS-spezifische Optionen', pt_br: 'Opções específicas para macOS X', sp: 'Opciones específicas macOS X', sp_la: 'Opciones específicas de macOS X', tr: 'macOS X\'e özel seçenekler', th: 'ตัวเลือกเฉพาะของ macOS X', fr: 'Options spécifiques pour macOS X', it: 'Opzioni specifiche macOS X', id: 'Pilihan macOS X', cz: 'macOS X specifické nastavení', gr: 'Συγκεκριμένες Επιλογές για macOS X', ar: 'خيارات محددة لنظام التشغيل macOS X', fa: 'گزینه های خاص MacOS X', sr: 'Specifična podešavanja za macOS X', ja: 'macOS X 固有の設定', pl: 'macOS X opcje specyficzne', fi: 'Yksilölliset asetukset macOSille', vi: 'Cài đặt cụ thể của macOS X', nl: 'macOS X Specifieke Opties', }, rarelyUsedSpecialOptions: { en: 'Rarely used special options', zh: '很少使用的特殊选项', zh_tw: '很少使用的特殊選項', ua: 'Додаткові опції, що рідко використовуються', ru: 'Редко используемые дополнительные опции', de: 'Selten genutzte Spezialoptionen', pt_br: 'Opções especiais raramente utilizadas', sp: 'Opciones especiales raramente usadas', sp_la: 'Opciones especiales raramente usadas', tr: 'Nadiren kullanılan özel seçenekler', th: 'ตัวเลือกพิเศษ (ไม่ค่อยได้ใช้)', fr: 'Options spéciales rarement utilisées', it: 'Opzioni speciali raramente utilizzate', id: 'Pilihan khusus yang jarang digunakan', cz: 'Málo používané speciální nastavení', gr: 'Σπάνιες χρησιμοποιημένες επιλογές', ar: 'نادرًا ما يتم استخدام خيارات خاصة', fa: 'گزینه های خاص کمتر استفاده شده', sr: 'Retko korišćena podešavanja', ja: 'あまり使われない設定', pl: 'Rzadko wykorzystywane opcje specjalne', fi: 'Harvoin käytetyt erikoisasetukset', vi: 'Các cài đặt đặc biệt hiếm khi được sử dụng', nl: 'Uitzonderlijk gebruikte opties', }, other: { en: 'Other', zh: '其他', zh_tw: '其它', ua: 'Інше', ru: 'Другое', de: 'Andere', pt_br: 'Outras', sp: 'Otros', sp_la: 'Otros', tr: 'Diğer', th: 'อื่นๆ', fr: 'Autres', it: 'Altro', id: 'Lainnya', cz: 'Ostatní', gr: 'Διάφορα', ar: 'آخر', fa: 'غیره', sr: 'Ostalo', ja: 'その他', pl: 'Inne', fi: 'Muu', vi: 'Khác', nl: 'Andere', }, }, button: { // For the usage of interface.js_createSubSectionInAdvanced browseForFile: { en: 'Browse for File', zh: '浏览文件', zh_tw: '瀏覽檔案', ua: 'Пошук файлу', ru: 'Поиск файла', de: 'Datei suchen', pt_br: 'Procurar arquivo', sp: 'Buscar archivo', sp_la: 'Buscar archivo', tr: 'Dosyaya Gözat', th: 'เรียกดูไฟล์', fr: 'Rechercher un fichier', it: 'Sfoglia file', id: 'Telusuri berkas', cz: 'Hledat soubor', gr: 'Αναζήτηση Αρχείου', ar: 'تصفح بحثًا عن ملف', fa: 'انتخاب فایل', sr: 'Pronađi datoteku', ja: 'ファイルを参照', pl: 'Przeglądaj w celu znalezienia pliku', fi: 'Selaa tiedostoja', vi: 'Tìm kiếm tập tin', nl: 'Zoeken naar Bestand', }, browseForFolder: { en: 'Browse for Folder', zh: '浏览文件夹', zh_tw: '瀏覽檔案夾', ua: 'Пошук директорії', ru: 'Поиск Папки', de: 'Verzeichnis suchen', pt_br: 'Procurar Pasta', sp: 'Buscar carpeta', sp_la: 'Buscar carpeta', tr: 'Klasöre Gözat', th: 'เรียกดูโฟลเดอร์', fr: 'Rechercher un dossier', it: 'Sfoglia archivio', id: 'Telusuri folder', cz: 'Hledat složku', gr: 'Αναζητήση Φακέλου', ar: 'قم بالاستعراض بحثًا عن مجلد', fa: 'انتخاب پوشه', sr: 'Pronađi direktorijum', ja: 'フォルダを参照', pl: 'Przeglądaj w celu znalezienia katalogu', fi: 'Selaa kansioita', vi: 'Thư mục tìm kiếm', nl: 'Zoeken naar Map', }, enable: { en: 'Enable', zh: '开启', zh_tw: '開啟', ua: 'Увімкнути', ru: 'Включить', de: 'Aktivieren', pt_br: 'Habilitar', sp: 'Habilitar', sp_la: 'Habilitar', tr: 'Aktif', th: 'เปิดใช้งาน', fr: 'Activer', it: 'Abilita', id: 'Aktifkan', cz: 'Zapnout', gr: 'Ενεργοποιήση', ar: 'يُمكَِن', fa: 'فعال', sr: 'Omogući', ja: '有効', pl: 'Włączenie', fi: 'Aktivoi', vi: 'Bật', nl: 'Inschakelen', }, disable: { en: 'Disable', zh: '关掉', zh_tw: '關閉', ua: 'Вимкнути', ru: 'Выключить', de: 'Deaktivieren', pt_br: 'Desabilitar', sp: 'Deshabilitar', sp_la: 'Deshabilitar', tr: 'Devre Dışı', th: 'ปิดการใช้งาน', fr: 'Désactiver', it: 'Disabilita', id: 'Matikan', cz: 'Vypnout', gr: 'Απερνογοποιήση', ar: 'تعطيل', fa: 'غیرفعال', sr: 'Onemogući', ja: '無効', pl: 'Wyłączenie', fi: 'Deaktivoi', vi: 'Tắt', nl: 'Uitschakelen', }, converting: { en: 'Converting...', zh: '转换中······', zh_tw: '轉換中······', ua: 'Конвертація...', ru: 'Преобразование...', de: 'Konvertierung...', pt_br: 'Convertendo...', sp: 'Convirtiendo...', sp_la: 'Generando...', tr: 'Dönüştürülüyor...', th: 'กำลังแปลง...', fr: 'Conversion...', it: 'Conversione in corso...', id: 'Mengkonversi...', cz: 'Probíhá konverze...', gr: 'Μετατροπή...', ar: 'التحويل...', fa: 'در حال تبدیل...', sr: 'Konvertovanje...', ja: '変換中...', pl: 'Konwertowanie...', fi: 'Muunnetaan...', vi: 'Chuyển đổi...', nl: 'Omzetten', }, clearOutput: { en: 'Clear Output', zh: '清除输出f', zh_tw: '清除輸出', ua: 'Очистка Виводу', ru: 'Отчистить Вывод', de: 'Ausgabe löschen', pt_br: 'Limpar Saída', sp: 'Limpiar Salida', sp_la: 'Limpiar Salida', tr: 'Çıktıyı Temizle', th: 'Clear Output', fr: 'Effacer la sortie', it: 'Cancella output', id: 'Clear Output', cz: 'Smazat výstup', gr: 'Καθαρισμός Εξόδου', ar: 'مسح المخرجات', fa: 'پاکسازی خروجی', sr: 'Očisti izlaz', ja: '出力のクリア', pl: 'Wyczyść wyjście', fi: 'Tyhjennä ulostulo', vi: 'Xóa đầu ra', nl: 'Wis Uitkomst', }, }, modal: { configModalTitle: { en: 'Override current configuration?', zh: '覆盖当前配置?', zh_tw: '覆蓋當前配置?', ua: 'Перезапис активних налаштувань', ru: 'Перезаписать текущие настройки?', de: 'Aktuelle Konfiguration überschreiben?', pt_br: 'Substituir configuração atual?', sp: 'Sustituir configuración actual?', sp_la: '¿Sustituir configuración actual?', tr: 'Geçerli yapılandırma geçersiz kılınsın mı?', th: 'เขียนทับการกำหนดค่าปัจจุบัน?', fr: 'Remplacer la configuration actuelle ?', it: 'Sovrascrivi la confugurazione corrente?', id: 'Timpa konfigurasi saat ini?', cz: 'Přepsat aktuální konfiguraci?', gr: 'Εγγραφή ρυθμίσεων πάνω στις υπάρχουσες ρυθμίσεις;', ar: 'هل تريد تجاوز التكوين الحالي؟', fa: 'تنظیمات فعلی را جایگزین کنید؟', sr: 'Zameniti trenutnu konfiguraciju?', ja: '現在の構成を上書きしてもよろしいですか?', pl: 'Zastąpić aktualną konfigurację?', fi: 'Korvaa nykyinen konfiguraatio?', vi: 'Ghi đè lên cấu hình hiện tại?', nl: 'Overschrijf huidige configuratie?', }, configModalDescription: { en: 'All previously inserted values will be erased.', zh: '所有先前插入的值将被删除。', zh_tw: '所有先前插入的值將被刪除。', ua: 'Всі попередні налаштування будуть видалені.', ru: 'Все ранее текущие значения будут удалены.', de: 'Alle zuvor eingegebenen Werte werden gelöscht.', pt_br: 'Todos os valores inseridos anteriormente serão apagados.', sp: 'Todos los valores insertados previamente serán borrados', sp_la: 'Todos los valores insertados previamente serán borrados', tr: 'Önceden girilen tüm değerler silinecek.', th: 'ค่าที่ใส่ไว้ก่อนหน้านี้จะถูกลบ', fr: 'Toutes les valeurs précédemment insérées seront effacées.', it: 'Tutti i valori inseriti sarranno cancellati.', id: 'Semua nilai yang sebelumnya dimasukkan akan dihapus.', cz: 'Všechny předchozí hodnoty budou smazány.', gr: 'Όλες οι προηγούμενες τιμές θα σβηστούν.', ar: 'سيتم مسح جميع القيم المدرجة مسبقًا.', fa: 'تمامی مقادیر درج شده، حذف خواهند شد.', sr: 'Sve prethodne vrednosti će biti izbrisane.', ja: '挿入されている値は全て削除されます。', pl: 'Wszystkie wcześniej wprowadzone wartości zostaną wymazane.', fi: 'Kaikki aikaisemmin syötetyt arvot nollataan.', vi: 'Tất cả các giá trị trước đó sẽ bị xóa.', nl: 'Alle voorgaande ingegeven waarden worden gewist.', }, configModalConfirmButton: { en: 'Confirm', zh: '确认', zh_tw: '確認', ua: 'Підтвердити', ru: 'Подтвердить', de: 'Bestätigen', pt_br: 'Confirmar', sp: 'Confirmar', sp_la: 'Confirmar', tr: 'Onayla', th: 'ยืนยัน', fr: 'confimer', it: 'Conferma', id: 'Konfirmasi', cz: 'Potvrdit', gr: 'Επιβεβαίωση', ar: 'أكد', fa: 'تایید', sr: 'Potvrdi', ja: '確認', pl: 'Potwierdź', fi: 'Vahvista', vi: 'Xác nhận', nl: 'Bevestig', }, configModalCancelButton: { en: 'Cancel', zh: '取消', zh_tw: '取消', ua: 'Відміна', ru: 'Отмена', de: 'Abbrechen', pt_br: 'Cancelar', sp: 'Cancelar', sp_la: 'Cancelar', tr: 'İptal', th: 'ยกเลิก', fr: 'Annuler', it: 'Annulla', id: 'Batal', cz: 'Zrušit', gr: 'Ακύρωση', ar: 'إلغاء', fa: 'لغو', sr: 'Otkaži', ja: 'キャンセル', pl: 'Anuluj', fi: 'Peruuta', vi: 'Hủy bỏ', nl: 'Annuleer', } } }, // Things like alerts nonDom: { alert: { noScriptsLocationProvided: { en: 'You have not provided your scripts location.\nPlease enter this at the top of the page.', zh: '您尚未提供脚本位置。\n请在页面顶部输入。', zh_tw: '您尚未提供腳本位置。\n請在頁面頂部輸入。', ua: 'Ви не вказали місцезнаходження скрипта.\nВкажіть його на початку сторінки.', ru: 'Вы не указали расположение скрипта.\nУкажите его в самом верху страницы', de: 'Kein Pfad zum Skript angegeben.\nBitte den Pfad zum Skript oben in der Seite eingeben.', pt_br: 'Você não informou a localização dos seus scripts.\nPor favor, insira isso no topo da página.', sp: 'No ha facilitado la ubicación de sus guiones. \nPor favor, introdúzcala en la parte superior de la página.', sp_la: 'No ha facilitado la ubicación de sus guiones. \nPor favor, introdúzcala en la parte superior de la página.', tr: 'Komut dosyanızın konumunu belirtmediniz.\nLütfen bunu sayfanın en üstüne girin.', th: 'คุณยังไม่ได้ระบุตำแหน่งสคริปต์ของคุณ\nโปรดป้อนข้อมูลนี้ที่ด้านบนของหน้า', fr: 'Vous n\'avez pas fourni l\'emplacement de vos scripts.\nVeuillez le saisir en haut de la page.', it: 'Non hai provvisto la posizione dei tuoi script.\nPerfavore inserisci questo all\'inizio della pagina', id: 'Anda belum menyediakan lokasi skrip Anda.\nSilakan masukkan di atas halaman.', cz: 'Chybí místo skriptu.\nProsím přidejte místo nahoře.', gr: 'Δεν έχετε δώσει την τοποθεσία των αρχείων.\nΠαρακαλώ δώστε την τοποθεσία στην αρχή της σελίδας.', ar: 'لم تقم بتوفير موقع البرامج النصية الخاصة بك. \ n الرجاء إدخال هذا في أعلى الصفحة.', fa: 'شما مکان اسکریپت های خود را ارائه نکرده اید.\nلطفاً مکان را در قسمت بالای صفحه وارد کنید.', sr: 'Nisi naveo lokaciju tvoje skripte.\nNavedi lokaciju na vrhu stranice', ja: 'スクリプトの位置が入力されていません。\nページ上部に入力してください。', pl: 'Nie podałeś swojej lokalizacji skryptów.\nProszę wpisać ją na górze strony.', fi: 'Et ole antanut skriptien sijaintia.\nSyötä se sivun yläpäässä.', vi: 'Thiếu không gian tập lệnh.\nVui lòng thêm không gian ở trên.', nl: 'Je hebt de locatie van je script niet opgegeven.\n Voeg deze in bovenaan de pagina.', }, overwritePreviousOutput: { en: 'This action will overwrite a previous output in the output folder.\nContinue?', zh: '此操作将覆盖输出文件夹中以前的输出。\n是否继续?', zh_tw: '此操作將覆蓋輸出檔案夾中以前的輸出。\n是否繼續?', ua: 'Ця дія перезапише поперденій вивід у кінцевій директорії.\nПродовжуємо?', ru: 'Это действие перезапишет предыдущий вывод в папке вывода.\nПродолжить?', de: 'Diese Aktion wird vorige Ausgaben im Ausgabeverzeichnis überschreiben.\nFortsetzen?', pt_br: 'Essa ação irá sobrescrever uma saída anterior na pasta de saída.\nContinuar?', sp: 'Esta acción sobrescribirá una salida anterior en la carpeta de salida.\n¿Continuar?', sp_la: 'Esta acción sobrescribirá una salida anterior en la carpeta de salida.\n¿Desea continuar?', tr: 'Bu eylem, çıktı klasöründeki önceki bir çıktının üzerine yazacak.\nDevam edilsin mi?', th: 'การดำเนินการนี้จะเขียนทับเอาต์พุตก่อนหน้าในโฟลเดอร์เอาต์พุต\nทำต่อหรือไม่', fr: 'Cette action écrasera une sortie précédente dans le dossier de sortie.\nContinuer ?', it: 'Questa azione sovrascriverà un output precedente nella cartella di output.\nContinuare?', id: 'Tindakan ini akan menimpa sebuah output sebelumnya di folder output.\nLanjutkan?', cz: 'Toto přepíše předchozí výstup.\nPokračovat?', gr: 'Αυτή η ενέργεια θα διαγράψει τιην προηγούμενη έξοδο αρχείου στον φάκελο εξόδου.\nΝα συνεχίσω;', ar: 'سيؤدي هذا الإجراء إلى الكتابة فوق الإخراج السابق في مجلد الإخراج. \nهل تريد المتابعة؟', fa: 'این کار فایل خروجی قبلی را در فایل خروجی بازنویسی می کند\nادامه میدهید؟', sr: 'Ovo će zameniti prethodni izlaz u izlaznom direktorijumu.\nNastavi?', ja: 'この操作により、出力フォルダー内の以前の出力が上書きされます。\n続けてもよろしいですか?', pl: 'Ta akcja spowoduje nadpisanie poprzedniego katalogu wyjściowego na nowy katalog wyjściowy.\nKontynować?', fi: 'Tämä toiminto korvaa aikaisemman ulostulon ulostulokansiosta.\nOletko varma?', vi: 'Điều này sẽ ghi đè lên đầu ra trước đó.\nTiếp tục?', nl: 'Deze actie overschrijft de vorige uitkomst in de uitvoer map.\n Doorgaan?', } }, } }; const translate = (language) => { if (language === undefined) { language = currentLanguage; } // Check that the language is supported language = _checkLanguageIsSupportedOrDefault(language); currentLanguage = language; // Update the language selector incase this call didn't come from the dropdown const languageSelectNode = document.getElementById('language-selection'); languageSelectNode.value = currentLanguage; // Update text inside elements const elementsToTranslate = document.querySelectorAll("[data-i18n]"); elementsToTranslate.forEach(element => { const keys = element.dataset.i18n.split("."); const translationBlock = keys.reduce((obj, i) => obj[i], translationMap); // If there is a translation, translate otherwise use the default language if (translationBlock !== undefined && translationBlock[language] !== undefined) { element.innerHTML = translationBlock[language]; } else { element.innerHTML = translationBlock[_defaultLanguage]; } }); // Update placeholders const placeholdersToTranslate = document.querySelectorAll("[data-i18n_placeholder]"); placeholdersToTranslate.forEach(element => { const keys = element.dataset.i18n_placeholder.split("."); const translationBlock = keys.reduce((obj, i) => obj[i], translationMap); if (translationBlock !== undefined && translationBlock[language] !== undefined) { element.placeholder = translationBlock[language]; } else { element.placeholder = translationBlock[_defaultLanguage]; } }); // Update titles const titleToTranslate = document.querySelectorAll("[data-i18n_title]"); titleToTranslate.forEach(element => { const keys = element.dataset.i18n_title.split("."); const translationBlock = keys.reduce((obj, i) => obj[i], translationMap); if (translationBlock !== undefined && translationBlock[language] !== undefined) { element.title = translationBlock[language]; } else { element.title = translationBlock[_defaultLanguage]; } }); }; const _getLanguage = () => { const language = navigator.languages && navigator.languages[0] || // Chrome / Firefox navigator.language || // All browsers navigator.userLanguage; // IE <= 10 let shortLang = language; if (shortLang.indexOf('-') !== -1) { shortLang = shortLang.split('-')[0]; } if (shortLang.indexOf('_') !== -1) { shortLang = shortLang.split('_')[0]; } return shortLang; }; const _checkLanguageIsSupportedOrDefault = (language) => { if (supportedLanguages.map(x => x.code).indexOf(language) !== -1) { return language; } else { return _defaultLanguage; } }; const getTranslation = (path) => { const keys = path.split("."); const translationBlock = keys.reduce((obj, i) => obj[i], translationMap); if (translationBlock !== undefined && translationBlock[currentLanguage] !== undefined) { return translationBlock[currentLanguage]; } else { return translationBlock[_defaultLanguage]; } }; const _defaultLanguage = 'en'; const supportedLanguages = [ { name: 'Arabic (العربية)', code: 'ar' }, { name: 'Brazilian Portuguese (Português Brasileiro)', code: 'pt_br' }, { name: 'Chinese Simplified (简体中文)', code: 'zh', }, { name: 'Chinese Traditional (繁體中文)', code: 'zh_tw', }, { name: 'Czech (Čeština)', code: 'cz', }, { name: 'English', code: 'en', }, { name: 'Finnish (Suomen kieli)', code: 'fi', }, { name: 'French (Français)', code: 'fr', }, { name: 'German (Deutsch)', code: 'de', }, { name: 'Greek (Ελληνικά)', code: 'gr', }, { name: 'Indonesian (Bahasa Indonesia)', code: 'id', }, { name: 'Italian (Italiano)', code: 'it', }, { name: 'Japanese (日本語)', code: 'ja', }, { name: 'Persian (فارسی)', code: 'fa' }, { name: 'Polish (Polski)', code: 'pl', }, { name: 'Russian (Русский)', code: 'ru', }, { name: 'Serbian (Srpski)', code: 'sr', }, { name: 'Spanish (Español)', code: 'sp', }, { name: 'Spanish Latam (Español Latam)', code: 'sp_la', }, { name: 'Thai (ภาษาไทย)', code: 'th', }, { name: 'Turkish (Türkçe)', code: 'tr', }, { name: 'Ukrainian (Українська)', code: 'ua', }, { name: 'Vietnamese (Tiếng Việt)', code: 'vi', }, { name: 'Nederlands', code: 'nl' }, ]; let currentLanguage = _checkLanguageIsSupportedOrDefault(_getLanguage()); // Keeps track of the current language