912 lines
41 KiB
JavaScript
912 lines
41 KiB
JavaScript
#!/usr/bin/env node
|
||
/**
|
||
* Generates scaffold locale files for all languages listed in config/i18n.json
|
||
* that don't yet have a corresponding file in bin/cli/locales/.
|
||
*
|
||
* For top-tier languages, a translated `common` + `program` section is included.
|
||
* All other keys fall back to `en` via i18n.mjs's existing fallback mechanism.
|
||
*
|
||
* Run: node bin/cli/scripts/generate-locales.mjs [--force]
|
||
*/
|
||
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
|
||
import { join, dirname } from "node:path";
|
||
import { fileURLToPath } from "node:url";
|
||
|
||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||
const ROOT = join(__dirname, "..", "..", "..");
|
||
const LOCALES_DIR = join(__dirname, "..", "locales");
|
||
const I18N_CFG = join(ROOT, "config", "i18n.json");
|
||
const FORCE = process.argv.includes("--force");
|
||
|
||
const { locales } = JSON.parse(readFileSync(I18N_CFG, "utf8"));
|
||
|
||
// common + program translations for each language code.
|
||
// Keys that are absent fall back to en automatically.
|
||
const TRANSLATIONS = {
|
||
ar: {
|
||
common: {
|
||
error: "خطأ: {message}",
|
||
serverOffline: "خادم OmniRoute غير متصل. ابدأ بالأمر: omniroute serve",
|
||
authRequired: "المصادقة مطلوبة. عيّن OMNIROUTE_API_KEY أو شغّل: omniroute setup",
|
||
rateLimited: "تم تجاوز حد الطلبات. أعد المحاولة بعد {seconds} ثانية.",
|
||
timeout: "انتهت مهلة الطلب بعد {ms}ms.",
|
||
success: "تم.",
|
||
yes: "نعم",
|
||
no: "لا",
|
||
confirm: "هل أنت متأكد؟ (نعم/لا)",
|
||
dryRun: "[محاكاة] سيتم: {action}",
|
||
cancelled: "تم الإلغاء.",
|
||
jsonOpt: "إخراج بتنسيق JSON",
|
||
yesOpt: "تخطي رسالة التأكيد",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — جهاز توجيه الذكاء الاصطناعي مع التبديل التلقائي",
|
||
version: "عرض الإصدار والخروج",
|
||
output: "تنسيق الإخراج (table, json, jsonl, csv)",
|
||
quiet: "إخفاء المخرجات غير الأساسية",
|
||
no_color: "تعطيل الإخراج الملوّن",
|
||
timeout: "مهلة طلب HTTP بالميلي ثانية",
|
||
api_key: "مفتاح API لخادم OmniRoute",
|
||
base_url: "عنوان URL الأساسي لخادم OmniRoute",
|
||
context: "سياق/ملف تعريف الخادم المستخدم في هذا الأمر",
|
||
lang: "تعيين لغة عرض CLI (يتجاوز OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
az: {
|
||
common: {
|
||
error: "Xəta: {message}",
|
||
serverOffline: "OmniRoute serveri oflayndır. Başladın: omniroute serve",
|
||
authRequired:
|
||
"Autentifikasiya tələb olunur. OMNIROUTE_API_KEY təyin edin və ya işə salın: omniroute setup",
|
||
rateLimited: "Sorğu limiti aşıldı. {seconds} saniyə sonra yenidən cəhd edin.",
|
||
timeout: "Sorğunun vaxtı {ms}ms sonra bitdi.",
|
||
success: "Tamamlandı.",
|
||
yes: "bəli",
|
||
no: "xeyr",
|
||
confirm: "Əminsiniz? (bəli/xeyr)",
|
||
dryRun: "[simulyasiya] ediləcəkdi: {action}",
|
||
cancelled: "Ləğv edildi.",
|
||
jsonOpt: "JSON formatında çıxış",
|
||
yesOpt: "Təsdiq sorğusunu keç",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Avtomatik Fallback ilə Ağıllı AI Marşrutlaşdırıcısı",
|
||
version: "Versiyasını çap et və çıx",
|
||
output: "Çıxış formatı (table, json, jsonl, csv)",
|
||
quiet: "Vacib olmayan çıxışı gizlət",
|
||
no_color: "Rəngli çıxışı deaktiv et",
|
||
timeout: "HTTP sorğusu üçün zaman aşımı (millisaniyə)",
|
||
api_key: "OmniRoute serveri üçün API açarı",
|
||
base_url: "OmniRoute server baza URL-i",
|
||
context: "Bu əmr üçün server konteksti/profili",
|
||
lang: "CLI ekran dilini təyin edin (OMNIROUTE_LANG-ı keçir)",
|
||
},
|
||
},
|
||
bg: {
|
||
common: {
|
||
error: "Грешка: {message}",
|
||
serverOffline: "Сървърът OmniRoute е офлайн. Стартирайте с: omniroute serve",
|
||
authRequired:
|
||
"Необходима е автентикация. Задайте OMNIROUTE_API_KEY или изпълнете: omniroute setup",
|
||
rateLimited: "Превишен лимит на заявки. Опитайте след {seconds}с.",
|
||
timeout: "Заявката изтече след {ms}ms.",
|
||
success: "Готово.",
|
||
yes: "да",
|
||
no: "не",
|
||
confirm: "Сигурни ли сте? (да/не)",
|
||
dryRun: "[симулация] ще извърши: {action}",
|
||
cancelled: "Отменено.",
|
||
jsonOpt: "Изход като JSON",
|
||
yesOpt: "Пропускане на потвърждение",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Интелигентен AI рутер с автоматично превключване",
|
||
version: "Покажи версията и излез",
|
||
output: "Формат на изхода (table, json, jsonl, csv)",
|
||
quiet: "Потисни несъществена информация",
|
||
no_color: "Деактивирай цветния изход",
|
||
timeout: "Таймаут за HTTP заявки в милисекунди",
|
||
api_key: "API ключ за сървъра OmniRoute",
|
||
base_url: "Базов URL на сървъра OmniRoute",
|
||
context: "Контекст/профил на сървъра за тази команда",
|
||
lang: "Задай език на CLI (замества OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
cs: {
|
||
common: {
|
||
error: "Chyba: {message}",
|
||
serverOffline: "Server OmniRoute je offline. Spusťte: omniroute serve",
|
||
authRequired: "Vyžaduje se ověření. Nastavte OMNIROUTE_API_KEY nebo spusťte: omniroute setup",
|
||
rateLimited: "Překročen limit požadavků. Zkuste za {seconds}s.",
|
||
timeout: "Požadavek vypršel po {ms}ms.",
|
||
success: "Hotovo.",
|
||
yes: "ano",
|
||
no: "ne",
|
||
confirm: "Jste si jisti? (ano/ne)",
|
||
dryRun: "[simulace] by provedlo: {action}",
|
||
cancelled: "Zrušeno.",
|
||
jsonOpt: "Výstup jako JSON",
|
||
yesOpt: "Přeskočit potvrzení",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Chytrý AI router s automatickým přepínáním",
|
||
version: "Vypsat verzi a skončit",
|
||
output: "Formát výstupu (table, json, jsonl, csv)",
|
||
quiet: "Potlačit nepodstatný výstup",
|
||
no_color: "Zakázat barevný výstup",
|
||
timeout: "Časový limit HTTP požadavků v milisekundách",
|
||
api_key: "API klíč pro server OmniRoute",
|
||
base_url: "Základní URL serveru OmniRoute",
|
||
context: "Kontext/profil serveru pro tento příkaz",
|
||
lang: "Nastavit jazyk CLI (přepisuje OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
da: {
|
||
common: {
|
||
error: "Fejl: {message}",
|
||
serverOffline: "OmniRoute-serveren er offline. Start med: omniroute serve",
|
||
authRequired: "Godkendelse kræves. Sæt OMNIROUTE_API_KEY eller kør: omniroute setup",
|
||
rateLimited: "Anmodningsgrænse overskredet. Prøv igen om {seconds}s.",
|
||
timeout: "Anmodningen timed ud efter {ms}ms.",
|
||
success: "Færdig.",
|
||
yes: "ja",
|
||
no: "nej",
|
||
confirm: "Er du sikker? (ja/nej)",
|
||
dryRun: "[simulering] ville: {action}",
|
||
cancelled: "Annulleret.",
|
||
jsonOpt: "Output som JSON",
|
||
yesOpt: "Spring bekræftelse over",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Smart AI-router med automatisk fallback",
|
||
version: "Vis version og afslut",
|
||
output: "Outputformat (table, json, jsonl, csv)",
|
||
quiet: "Undertryk ikke-essentielt output",
|
||
no_color: "Deaktiver farvet output",
|
||
timeout: "HTTP-anmodnings timeout i millisekunder",
|
||
api_key: "API-nøgle til OmniRoute-serveren",
|
||
base_url: "OmniRoute-serverens basis-URL",
|
||
context: "Server-kontekst/profil til denne kommando",
|
||
lang: "Angiv CLI-visningssprog (tilsidesætter OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
de: {
|
||
common: {
|
||
error: "Fehler: {message}",
|
||
serverOffline: "OmniRoute-Server ist offline. Starten mit: omniroute serve",
|
||
authRequired:
|
||
"Authentifizierung erforderlich. OMNIROUTE_API_KEY setzen oder ausführen: omniroute setup",
|
||
rateLimited: "Anfragelimit überschritten. Erneut versuchen in {seconds}s.",
|
||
timeout: "Anfrage-Timeout nach {ms}ms.",
|
||
success: "Fertig.",
|
||
yes: "ja",
|
||
no: "nein",
|
||
confirm: "Sind Sie sicher? (ja/nein)",
|
||
dryRun: "[Simulation] würde: {action}",
|
||
cancelled: "Abgebrochen.",
|
||
jsonOpt: "Ausgabe als JSON",
|
||
yesOpt: "Bestätigung überspringen",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Intelligenter AI-Router mit automatischem Fallback",
|
||
version: "Version ausgeben und beenden",
|
||
output: "Ausgabeformat (table, json, jsonl, csv)",
|
||
quiet: "Unwesentliche Ausgabe unterdrücken",
|
||
no_color: "Farbige Ausgabe deaktivieren",
|
||
timeout: "HTTP-Anfrage-Timeout in Millisekunden",
|
||
api_key: "API-Schlüssel für den OmniRoute-Server",
|
||
base_url: "OmniRoute-Server-Basis-URL",
|
||
context: "Server-Kontext/Profil für diesen Befehl",
|
||
lang: "CLI-Anzeigesprache festlegen (überschreibt OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
es: {
|
||
common: {
|
||
error: "Error: {message}",
|
||
serverOffline: "El servidor OmniRoute está offline. Inícielo con: omniroute serve",
|
||
authRequired:
|
||
"Autenticación requerida. Configure OMNIROUTE_API_KEY o ejecute: omniroute setup",
|
||
rateLimited: "Límite de solicitudes excedido. Reintente en {seconds}s.",
|
||
timeout: "Solicitud expiró después de {ms}ms.",
|
||
success: "Listo.",
|
||
yes: "sí",
|
||
no: "no",
|
||
confirm: "¿Está seguro? (sí/no)",
|
||
dryRun: "[simulación] haría: {action}",
|
||
cancelled: "Cancelado.",
|
||
jsonOpt: "Salida como JSON",
|
||
yesOpt: "Omitir confirmación",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Router de IA inteligente con fallback automático",
|
||
version: "Mostrar versión y salir",
|
||
output: "Formato de salida (table, json, jsonl, csv)",
|
||
quiet: "Suprimir salida no esencial",
|
||
no_color: "Deshabilitar salida en color",
|
||
timeout: "Tiempo de espera de solicitudes HTTP en milisegundos",
|
||
api_key: "Clave de API para el servidor OmniRoute",
|
||
base_url: "URL base del servidor OmniRoute",
|
||
context: "Contexto/perfil del servidor para este comando",
|
||
lang: "Establecer idioma del CLI (reemplaza OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
fa: {
|
||
common: {
|
||
error: "خطا: {message}",
|
||
serverOffline: "سرور OmniRoute آفلاین است. با این دستور راهاندازی کنید: omniroute serve",
|
||
authRequired:
|
||
"احراز هویت لازم است. OMNIROUTE_API_KEY را تنظیم کنید یا اجرا کنید: omniroute setup",
|
||
rateLimited: "محدودیت درخواست رسیده است. پس از {seconds} ثانیه دوباره تلاش کنید.",
|
||
timeout: "درخواست پس از {ms}ms منقضی شد.",
|
||
success: "انجام شد.",
|
||
yes: "بله",
|
||
no: "خیر",
|
||
confirm: "مطمئنید؟ (بله/خیر)",
|
||
dryRun: "[شبیهسازی] اقدام میشد: {action}",
|
||
cancelled: "لغو شد.",
|
||
jsonOpt: "خروجی به صورت JSON",
|
||
yesOpt: "رد کردن تأیید",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — روتر هوشمند هوش مصنوعی با fallback خودکار",
|
||
version: "نمایش نسخه و خروج",
|
||
output: "فرمت خروجی (table, json, jsonl, csv)",
|
||
quiet: "حذف خروجی غیر ضروری",
|
||
no_color: "غیرفعال کردن خروجی رنگی",
|
||
timeout: "تایماوت درخواست HTTP به میلیثانیه",
|
||
api_key: "کلید API برای سرور OmniRoute",
|
||
base_url: "URL پایه سرور OmniRoute",
|
||
context: "زمینه/پروفایل سرور برای این دستور",
|
||
lang: "تنظیم زبان نمایش CLI (OMNIROUTE_LANG را نادیده میگیرد)",
|
||
},
|
||
},
|
||
fi: {
|
||
common: {
|
||
error: "Virhe: {message}",
|
||
serverOffline: "OmniRoute-palvelin on offline. Käynnistä komennolla: omniroute serve",
|
||
authRequired: "Todennus vaaditaan. Aseta OMNIROUTE_API_KEY tai suorita: omniroute setup",
|
||
rateLimited: "Pyyntöraja ylitetty. Yritä uudelleen {seconds}s kuluttua.",
|
||
timeout: "Pyyntö aikakatkaistiin {ms}ms jälkeen.",
|
||
success: "Valmis.",
|
||
yes: "kyllä",
|
||
no: "ei",
|
||
confirm: "Oletko varma? (kyllä/ei)",
|
||
dryRun: "[simulointi] tekisi: {action}",
|
||
cancelled: "Peruutettu.",
|
||
jsonOpt: "Tulosta JSON-muodossa",
|
||
yesOpt: "Ohita vahvistuspyyntö",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Älykäs AI-reititin automaattisella fallbackilla",
|
||
version: "Tulosta versio ja poistu",
|
||
output: "Tulostusmuoto (table, json, jsonl, csv)",
|
||
quiet: "Piilota epäolennaiset tulosteet",
|
||
no_color: "Poista väritulostus käytöstä",
|
||
timeout: "HTTP-pyyntöjen aikakatkaisu millisekunteina",
|
||
api_key: "API-avain OmniRoute-palvelimelle",
|
||
base_url: "OmniRoute-palvelimen perus-URL",
|
||
context: "Palvelimen konteksti/profiili tälle komennolle",
|
||
lang: "Aseta CLI-näyttökieli (ohittaa OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
fr: {
|
||
common: {
|
||
error: "Erreur : {message}",
|
||
serverOffline: "Le serveur OmniRoute est hors ligne. Démarrez avec : omniroute serve",
|
||
authRequired:
|
||
"Authentification requise. Définissez OMNIROUTE_API_KEY ou exécutez : omniroute setup",
|
||
rateLimited: "Limite de requêtes atteinte. Réessayez dans {seconds}s.",
|
||
timeout: "La requête a expiré après {ms}ms.",
|
||
success: "Terminé.",
|
||
yes: "oui",
|
||
no: "non",
|
||
confirm: "Êtes-vous sûr ? (oui/non)",
|
||
dryRun: "[simulation] ferait : {action}",
|
||
cancelled: "Annulé.",
|
||
jsonOpt: "Sortie au format JSON",
|
||
yesOpt: "Ignorer la confirmation",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Routeur IA intelligent avec basculement automatique",
|
||
version: "Afficher la version et quitter",
|
||
output: "Format de sortie (table, json, jsonl, csv)",
|
||
quiet: "Supprimer les sorties non essentielles",
|
||
no_color: "Désactiver la sortie en couleur",
|
||
timeout: "Délai d'expiration des requêtes HTTP en millisecondes",
|
||
api_key: "Clé API pour le serveur OmniRoute",
|
||
base_url: "URL de base du serveur OmniRoute",
|
||
context: "Contexte/profil du serveur pour cette commande",
|
||
lang: "Définir la langue d'affichage du CLI (remplace OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
hi: {
|
||
common: {
|
||
error: "त्रुटि: {message}",
|
||
serverOffline: "OmniRoute सर्वर ऑफलाइन है। शुरू करें: omniroute serve",
|
||
authRequired: "प्रमाणीकरण आवश्यक है। OMNIROUTE_API_KEY सेट करें या चलाएं: omniroute setup",
|
||
rateLimited: "अनुरोध सीमा पार हो गई। {seconds}s बाद पुनः प्रयास करें।",
|
||
timeout: "{ms}ms के बाद अनुरोध समय समाप्त हुआ।",
|
||
success: "पूर्ण।",
|
||
yes: "हाँ",
|
||
no: "नहीं",
|
||
confirm: "क्या आप सुनिश्चित हैं? (हाँ/नहीं)",
|
||
dryRun: "[अनुकरण] करेगा: {action}",
|
||
cancelled: "रद्द किया गया।",
|
||
jsonOpt: "JSON के रूप में आउटपुट",
|
||
yesOpt: "पुष्टि छोड़ें",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — ऑटो फॉलबैक के साथ स्मार्ट AI राउटर",
|
||
version: "संस्करण प्रिंट करें और बाहर निकलें",
|
||
output: "आउटपुट प्रारूप (table, json, jsonl, csv)",
|
||
quiet: "गैर-आवश्यक आउटपुट दबाएं",
|
||
no_color: "रंगीन आउटपुट अक्षम करें",
|
||
timeout: "HTTP अनुरोध टाइमआउट मिलीसेकंड में",
|
||
api_key: "OmniRoute सर्वर के लिए API कुंजी",
|
||
base_url: "OmniRoute सर्वर का बेस URL",
|
||
context: "इस कमांड के लिए सर्वर संदर्भ/प्रोफ़ाइल",
|
||
lang: "CLI प्रदर्शन भाषा सेट करें (OMNIROUTE_LANG को ओवरराइड करता है)",
|
||
},
|
||
},
|
||
hu: {
|
||
common: {
|
||
error: "Hiba: {message}",
|
||
serverOffline: "Az OmniRoute szerver offline. Indítsa el: omniroute serve",
|
||
authRequired:
|
||
"Hitelesítés szükséges. Állítsa be az OMNIROUTE_API_KEY-t vagy futtassa: omniroute setup",
|
||
rateLimited: "Kérési korlát túllépve. Próbálja újra {seconds}s múlva.",
|
||
timeout: "A kérés {ms}ms után lejárt.",
|
||
success: "Kész.",
|
||
yes: "igen",
|
||
no: "nem",
|
||
confirm: "Biztos benne? (igen/nem)",
|
||
dryRun: "[szimuláció] végrehajtaná: {action}",
|
||
cancelled: "Törölve.",
|
||
jsonOpt: "JSON formátumú kimenet",
|
||
yesOpt: "Megerősítés kihagyása",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Intelligens AI útválasztó automatikus fallbackkel",
|
||
version: "Verzió kiírása és kilépés",
|
||
output: "Kimeneti formátum (table, json, jsonl, csv)",
|
||
quiet: "Nem lényeges kimenet elnyomása",
|
||
no_color: "Színes kimenet letiltása",
|
||
timeout: "HTTP kérés időtúllépése ezredmásodpercben",
|
||
api_key: "API kulcs az OmniRoute szerverhez",
|
||
base_url: "Az OmniRoute szerver alap URL-je",
|
||
context: "Szerverkontextus/profil ehhez a parancshoz",
|
||
lang: "CLI megjelenítési nyelv beállítása (felülírja az OMNIROUTE_LANG-ot)",
|
||
},
|
||
},
|
||
id: {
|
||
common: {
|
||
error: "Kesalahan: {message}",
|
||
serverOffline: "Server OmniRoute sedang offline. Mulai dengan: omniroute serve",
|
||
authRequired:
|
||
"Autentikasi diperlukan. Setel OMNIROUTE_API_KEY atau jalankan: omniroute setup",
|
||
rateLimited: "Batas permintaan terlampaui. Coba lagi dalam {seconds}d.",
|
||
timeout: "Permintaan habis waktu setelah {ms}ms.",
|
||
success: "Selesai.",
|
||
yes: "ya",
|
||
no: "tidak",
|
||
confirm: "Apakah Anda yakin? (ya/tidak)",
|
||
dryRun: "[simulasi] akan: {action}",
|
||
cancelled: "Dibatalkan.",
|
||
jsonOpt: "Keluaran sebagai JSON",
|
||
yesOpt: "Lewati konfirmasi",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Router AI Cerdas dengan Fallback Otomatis",
|
||
version: "Cetak versi dan keluar",
|
||
output: "Format keluaran (table, json, jsonl, csv)",
|
||
quiet: "Sembunyikan output yang tidak penting",
|
||
no_color: "Nonaktifkan output berwarna",
|
||
timeout: "Batas waktu permintaan HTTP dalam milidetik",
|
||
api_key: "Kunci API untuk server OmniRoute",
|
||
base_url: "URL dasar server OmniRoute",
|
||
context: "Konteks/profil server untuk perintah ini",
|
||
lang: "Atur bahasa tampilan CLI (menggantikan OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
it: {
|
||
common: {
|
||
error: "Errore: {message}",
|
||
serverOffline: "Il server OmniRoute è offline. Avviarlo con: omniroute serve",
|
||
authRequired:
|
||
"Autenticazione richiesta. Impostare OMNIROUTE_API_KEY o eseguire: omniroute setup",
|
||
rateLimited: "Limite di richieste superato. Riprovare tra {seconds}s.",
|
||
timeout: "La richiesta è scaduta dopo {ms}ms.",
|
||
success: "Completato.",
|
||
yes: "sì",
|
||
no: "no",
|
||
confirm: "Sei sicuro? (sì/no)",
|
||
dryRun: "[simulazione] eseguirebbe: {action}",
|
||
cancelled: "Annullato.",
|
||
jsonOpt: "Output come JSON",
|
||
yesOpt: "Salta la conferma",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Router AI intelligente con fallback automatico",
|
||
version: "Stampa la versione ed esci",
|
||
output: "Formato di output (table, json, jsonl, csv)",
|
||
quiet: "Sopprimi l'output non essenziale",
|
||
no_color: "Disabilita l'output colorato",
|
||
timeout: "Timeout delle richieste HTTP in millisecondi",
|
||
api_key: "Chiave API per il server OmniRoute",
|
||
base_url: "URL base del server OmniRoute",
|
||
context: "Contesto/profilo del server per questo comando",
|
||
lang: "Imposta la lingua di visualizzazione della CLI (sovrascrive OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
ja: {
|
||
common: {
|
||
error: "エラー: {message}",
|
||
serverOffline: "OmniRouteサーバーはオフラインです。起動: omniroute serve",
|
||
authRequired:
|
||
"認証が必要です。OMNIROUTE_API_KEYを設定するか実行してください: omniroute setup",
|
||
rateLimited: "リクエスト制限を超えました。{seconds}秒後に再試行してください。",
|
||
timeout: "{ms}ms後にリクエストがタイムアウトしました。",
|
||
success: "完了。",
|
||
yes: "はい",
|
||
no: "いいえ",
|
||
confirm: "よろしいですか?(はい/いいえ)",
|
||
dryRun: "[シミュレーション] 実行予定: {action}",
|
||
cancelled: "キャンセルしました。",
|
||
jsonOpt: "JSON形式で出力",
|
||
yesOpt: "確認をスキップ",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — 自動フォールバック付きスマートAIルーター",
|
||
version: "バージョンを表示して終了",
|
||
output: "出力形式 (table, json, jsonl, csv)",
|
||
quiet: "重要でない出力を抑制",
|
||
no_color: "カラー出力を無効化",
|
||
timeout: "HTTPリクエストタイムアウト(ミリ秒)",
|
||
api_key: "OmniRouteサーバーのAPIキー",
|
||
base_url: "OmniRouteサーバーのベースURL",
|
||
context: "このコマンドで使用するサーバーコンテキスト/プロファイル",
|
||
lang: "CLI表示言語を設定(OMNIROUTE_LANGを上書き)",
|
||
},
|
||
},
|
||
ko: {
|
||
common: {
|
||
error: "오류: {message}",
|
||
serverOffline: "OmniRoute 서버가 오프라인입니다. 시작: omniroute serve",
|
||
authRequired: "인증이 필요합니다. OMNIROUTE_API_KEY를 설정하거나 실행하세요: omniroute setup",
|
||
rateLimited: "요청 제한 초과. {seconds}초 후 다시 시도하세요.",
|
||
timeout: "{ms}ms 후 요청 시간 초과.",
|
||
success: "완료.",
|
||
yes: "예",
|
||
no: "아니오",
|
||
confirm: "확실합니까? (예/아니오)",
|
||
dryRun: "[시뮬레이션] 실행 예정: {action}",
|
||
cancelled: "취소되었습니다.",
|
||
jsonOpt: "JSON으로 출력",
|
||
yesOpt: "확인 건너뛰기",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — 자동 폴백 기능을 갖춘 스마트 AI 라우터",
|
||
version: "버전 출력 후 종료",
|
||
output: "출력 형식 (table, json, jsonl, csv)",
|
||
quiet: "불필요한 출력 억제",
|
||
no_color: "색상 출력 비활성화",
|
||
timeout: "HTTP 요청 타임아웃(밀리초)",
|
||
api_key: "OmniRoute 서버의 API 키",
|
||
base_url: "OmniRoute 서버 기본 URL",
|
||
context: "이 명령에 사용할 서버 컨텍스트/프로필",
|
||
lang: "CLI 표시 언어 설정 (OMNIROUTE_LANG 재정의)",
|
||
},
|
||
},
|
||
nl: {
|
||
common: {
|
||
error: "Fout: {message}",
|
||
serverOffline: "OmniRoute-server is offline. Start met: omniroute serve",
|
||
authRequired: "Authenticatie vereist. Stel OMNIROUTE_API_KEY in of voer uit: omniroute setup",
|
||
rateLimited: "Verzoeklimiet overschreden. Probeer opnieuw na {seconds}s.",
|
||
timeout: "Verzoek verlopen na {ms}ms.",
|
||
success: "Klaar.",
|
||
yes: "ja",
|
||
no: "nee",
|
||
confirm: "Weet u het zeker? (ja/nee)",
|
||
dryRun: "[simulatie] zou: {action}",
|
||
cancelled: "Geannuleerd.",
|
||
jsonOpt: "Uitvoer als JSON",
|
||
yesOpt: "Bevestiging overslaan",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Slimme AI-router met automatische fallback",
|
||
version: "Versie afdrukken en afsluiten",
|
||
output: "Uitvoerformaat (table, json, jsonl, csv)",
|
||
quiet: "Niet-essentiële uitvoer onderdrukken",
|
||
no_color: "Gekleurde uitvoer uitschakelen",
|
||
timeout: "HTTP-verzoek timeout in milliseconden",
|
||
api_key: "API-sleutel voor de OmniRoute-server",
|
||
base_url: "Basis-URL van de OmniRoute-server",
|
||
context: "Servercontext/profiel voor dit commando",
|
||
lang: "CLI-weergavetaal instellen (overschrijft OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
no: {
|
||
common: {
|
||
error: "Feil: {message}",
|
||
serverOffline: "OmniRoute-serveren er offline. Start med: omniroute serve",
|
||
authRequired: "Autentisering kreves. Angi OMNIROUTE_API_KEY eller kjør: omniroute setup",
|
||
rateLimited: "Forespørselgrense overskredet. Prøv igjen om {seconds}s.",
|
||
timeout: "Forespørselen tidsavbrutt etter {ms}ms.",
|
||
success: "Ferdig.",
|
||
yes: "ja",
|
||
no: "nei",
|
||
confirm: "Er du sikker? (ja/nei)",
|
||
dryRun: "[simulering] ville: {action}",
|
||
cancelled: "Avbrutt.",
|
||
jsonOpt: "Utdata som JSON",
|
||
yesOpt: "Hopp over bekreftelse",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Smart AI-ruter med automatisk fallback",
|
||
version: "Skriv ut versjon og avslutt",
|
||
output: "Utdataformat (table, json, jsonl, csv)",
|
||
quiet: "Undertrykk ikke-essensiell utdata",
|
||
no_color: "Deaktiver farget utdata",
|
||
timeout: "HTTP-forespørsel timeout i millisekunder",
|
||
api_key: "API-nøkkel for OmniRoute-serveren",
|
||
base_url: "OmniRoute-serverens basis-URL",
|
||
context: "Serverkontekst/profil for denne kommandoen",
|
||
lang: "Angi CLI-visningsspråk (overstyrer OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
pl: {
|
||
common: {
|
||
error: "Błąd: {message}",
|
||
serverOffline: "Serwer OmniRoute jest offline. Uruchom: omniroute serve",
|
||
authRequired:
|
||
"Wymagane uwierzytelnienie. Ustaw OMNIROUTE_API_KEY lub uruchom: omniroute setup",
|
||
rateLimited: "Przekroczono limit żądań. Spróbuj ponownie za {seconds}s.",
|
||
timeout: "Żądanie przekroczyło czas po {ms}ms.",
|
||
success: "Gotowe.",
|
||
yes: "tak",
|
||
no: "nie",
|
||
confirm: "Czy jesteś pewien? (tak/nie)",
|
||
dryRun: "[symulacja] wykonałoby: {action}",
|
||
cancelled: "Anulowano.",
|
||
jsonOpt: "Wyjście jako JSON",
|
||
yesOpt: "Pomiń potwierdzenie",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Inteligentny router AI z automatycznym fallbackiem",
|
||
version: "Wydrukuj wersję i wyjdź",
|
||
output: "Format wyjścia (table, json, jsonl, csv)",
|
||
quiet: "Pomiń nieistotne wyjście",
|
||
no_color: "Wyłącz kolorowe wyjście",
|
||
timeout: "Limit czasu żądania HTTP w milisekundach",
|
||
api_key: "Klucz API dla serwera OmniRoute",
|
||
base_url: "Bazowy URL serwera OmniRoute",
|
||
context: "Kontekst/profil serwera dla tego polecenia",
|
||
lang: "Ustaw język wyświetlania CLI (nadpisuje OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
pt: {
|
||
common: {
|
||
error: "Erro: {message}",
|
||
serverOffline: "O servidor OmniRoute está offline. Inicie com: omniroute serve",
|
||
authRequired: "Autenticação necessária. Defina OMNIROUTE_API_KEY ou execute: omniroute setup",
|
||
rateLimited: "Limite de pedidos atingido. Tente novamente em {seconds}s.",
|
||
timeout: "O pedido expirou após {ms}ms.",
|
||
success: "Concluído.",
|
||
yes: "sim",
|
||
no: "não",
|
||
confirm: "Tem a certeza? (sim/não)",
|
||
dryRun: "[simulação] faria: {action}",
|
||
cancelled: "Cancelado.",
|
||
jsonOpt: "Saída em JSON",
|
||
yesOpt: "Ignorar confirmação",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Router de IA inteligente com fallback automático",
|
||
version: "Mostrar versão e sair",
|
||
output: "Formato de saída (table, json, jsonl, csv)",
|
||
quiet: "Suprimir saída não essencial",
|
||
no_color: "Desativar saída colorida",
|
||
timeout: "Timeout de pedidos HTTP em milissegundos",
|
||
api_key: "Chave de API para o servidor OmniRoute",
|
||
base_url: "URL base do servidor OmniRoute",
|
||
context: "Contexto/perfil do servidor para este comando",
|
||
lang: "Definir idioma de apresentação do CLI (substitui OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
ro: {
|
||
common: {
|
||
error: "Eroare: {message}",
|
||
serverOffline: "Serverul OmniRoute este offline. Porniți cu: omniroute serve",
|
||
authRequired: "Autentificare necesară. Setați OMNIROUTE_API_KEY sau rulați: omniroute setup",
|
||
rateLimited: "Limita de cereri depășită. Încercați din nou după {seconds}s.",
|
||
timeout: "Cererea a expirat după {ms}ms.",
|
||
success: "Gata.",
|
||
yes: "da",
|
||
no: "nu",
|
||
confirm: "Sigur? (da/nu)",
|
||
dryRun: "[simulare] ar face: {action}",
|
||
cancelled: "Anulat.",
|
||
jsonOpt: "Ieșire ca JSON",
|
||
yesOpt: "Omite confirmarea",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Router AI inteligent cu fallback automat",
|
||
version: "Afișează versiunea și ieși",
|
||
output: "Format de ieșire (table, json, jsonl, csv)",
|
||
quiet: "Suprimă ieșirile neesențiale",
|
||
no_color: "Dezactivează ieșirea colorată",
|
||
timeout: "Timeout cereri HTTP în milisecunde",
|
||
api_key: "Cheie API pentru serverul OmniRoute",
|
||
base_url: "URL de bază al serverului OmniRoute",
|
||
context: "Contextul/profilul serverului pentru această comandă",
|
||
lang: "Setează limba de afișare CLI (suprascrie OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
ru: {
|
||
common: {
|
||
error: "Ошибка: {message}",
|
||
serverOffline: "Сервер OmniRoute отключён. Запустите: omniroute serve",
|
||
authRequired:
|
||
"Требуется аутентификация. Установите OMNIROUTE_API_KEY или выполните: omniroute setup",
|
||
rateLimited: "Превышен лимит запросов. Повторите через {seconds}с.",
|
||
timeout: "Запрос истёк через {ms}мс.",
|
||
success: "Готово.",
|
||
yes: "да",
|
||
no: "нет",
|
||
confirm: "Вы уверены? (да/нет)",
|
||
dryRun: "[симуляция] выполнит: {action}",
|
||
cancelled: "Отменено.",
|
||
jsonOpt: "Вывод в формате JSON",
|
||
yesOpt: "Пропустить подтверждение",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Умный AI-маршрутизатор с автоматическим переключением",
|
||
version: "Вывести версию и выйти",
|
||
output: "Формат вывода (table, json, jsonl, csv)",
|
||
quiet: "Подавить несущественный вывод",
|
||
no_color: "Отключить цветной вывод",
|
||
timeout: "Таймаут HTTP-запросов в миллисекундах",
|
||
api_key: "API-ключ для сервера OmniRoute",
|
||
base_url: "Базовый URL сервера OmniRoute",
|
||
context: "Контекст/профиль сервера для этой команды",
|
||
lang: "Установить язык отображения CLI (переопределяет OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
sk: {
|
||
common: {
|
||
error: "Chyba: {message}",
|
||
serverOffline: "Server OmniRoute je offline. Spustite: omniroute serve",
|
||
authRequired:
|
||
"Vyžaduje sa overenie. Nastavte OMNIROUTE_API_KEY alebo spustite: omniroute setup",
|
||
rateLimited: "Prekročený limit požiadaviek. Skúste za {seconds}s.",
|
||
timeout: "Požiadavka vypršala po {ms}ms.",
|
||
success: "Hotovo.",
|
||
yes: "áno",
|
||
no: "nie",
|
||
confirm: "Ste si istí? (áno/nie)",
|
||
dryRun: "[simulácia] by vykonalo: {action}",
|
||
cancelled: "Zrušené.",
|
||
jsonOpt: "Výstup ako JSON",
|
||
yesOpt: "Preskočiť potvrdenie",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Inteligentný AI router s automatickým prepínaním",
|
||
version: "Vypísať verziu a skončiť",
|
||
output: "Formát výstupu (table, json, jsonl, csv)",
|
||
quiet: "Potlačiť nepodstatný výstup",
|
||
no_color: "Zakázať farebný výstup",
|
||
timeout: "Časový limit HTTP požiadaviek v milisekundách",
|
||
api_key: "API kľúč pre server OmniRoute",
|
||
base_url: "Základná URL servera OmniRoute",
|
||
context: "Kontext/profil servera pre tento príkaz",
|
||
lang: "Nastaviť jazyk zobrazenia CLI (prepíše OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
sv: {
|
||
common: {
|
||
error: "Fel: {message}",
|
||
serverOffline: "OmniRoute-servern är offline. Starta med: omniroute serve",
|
||
authRequired: "Autentisering krävs. Ange OMNIROUTE_API_KEY eller kör: omniroute setup",
|
||
rateLimited: "Begäransgräns nådd. Försök igen om {seconds}s.",
|
||
timeout: "Begäran tog slut efter {ms}ms.",
|
||
success: "Klar.",
|
||
yes: "ja",
|
||
no: "nej",
|
||
confirm: "Är du säker? (ja/nej)",
|
||
dryRun: "[simulering] skulle: {action}",
|
||
cancelled: "Avbruten.",
|
||
jsonOpt: "Utdata som JSON",
|
||
yesOpt: "Hoppa över bekräftelse",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Smart AI-router med automatisk fallback",
|
||
version: "Skriv ut version och avsluta",
|
||
output: "Utdataformat (table, json, jsonl, csv)",
|
||
quiet: "Undertryck icke-väsentlig utdata",
|
||
no_color: "Inaktivera färgad utdata",
|
||
timeout: "HTTP-begärans timeout i millisekunder",
|
||
api_key: "API-nyckel för OmniRoute-servern",
|
||
base_url: "OmniRoute-serverns bas-URL",
|
||
context: "Serverkontext/profil för det här kommandot",
|
||
lang: "Ange CLI-visningsspråk (åsidosätter OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
th: {
|
||
common: {
|
||
error: "ข้อผิดพลาด: {message}",
|
||
serverOffline: "เซิร์ฟเวอร์ OmniRoute ออฟไลน์ เริ่มด้วย: omniroute serve",
|
||
authRequired: "ต้องการการยืนยันตัวตน ตั้งค่า OMNIROUTE_API_KEY หรือรัน: omniroute setup",
|
||
rateLimited: "เกินขีดจำกัดคำขอ ลองใหม่หลังจาก {seconds}วินาที",
|
||
timeout: "คำขอหมดเวลาหลังจาก {ms}ms",
|
||
success: "เสร็จสิ้น",
|
||
yes: "ใช่",
|
||
no: "ไม่",
|
||
confirm: "คุณแน่ใจหรือไม่? (ใช่/ไม่)",
|
||
dryRun: "[จำลอง] จะทำ: {action}",
|
||
cancelled: "ยกเลิกแล้ว",
|
||
jsonOpt: "ส่งออกเป็น JSON",
|
||
yesOpt: "ข้ามการยืนยัน",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — AI Router อัจฉริยะพร้อม Auto Fallback",
|
||
version: "แสดงเวอร์ชันและออก",
|
||
output: "รูปแบบเอาต์พุต (table, json, jsonl, csv)",
|
||
quiet: "ซ่อนเอาต์พุตที่ไม่จำเป็น",
|
||
no_color: "ปิดใช้งานเอาต์พุตสี",
|
||
timeout: "หมดเวลา HTTP request ในมิลลิวินาที",
|
||
api_key: "API Key สำหรับ OmniRoute server",
|
||
base_url: "Base URL ของ OmniRoute server",
|
||
context: "บริบท/โปรไฟล์ของเซิร์ฟเวอร์สำหรับคำสั่งนี้",
|
||
lang: "ตั้งค่าภาษาแสดงผล CLI (แทนที่ OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
tr: {
|
||
common: {
|
||
error: "Hata: {message}",
|
||
serverOffline: "OmniRoute sunucusu çevrimdışı. Başlatın: omniroute serve",
|
||
authRequired:
|
||
"Kimlik doğrulama gerekli. OMNIROUTE_API_KEY ayarlayın veya çalıştırın: omniroute setup",
|
||
rateLimited: "İstek limiti aşıldı. {seconds}s sonra tekrar deneyin.",
|
||
timeout: "İstek {ms}ms sonra zaman aşımına uğradı.",
|
||
success: "Tamamlandı.",
|
||
yes: "evet",
|
||
no: "hayır",
|
||
confirm: "Emin misiniz? (evet/hayır)",
|
||
dryRun: "[simülasyon] yapılacaktı: {action}",
|
||
cancelled: "İptal edildi.",
|
||
jsonOpt: "JSON olarak çıktı",
|
||
yesOpt: "Onayı atla",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Otomatik Fallback ile Akıllı AI Yönlendirici",
|
||
version: "Sürümü yazdır ve çık",
|
||
output: "Çıktı formatı (table, json, jsonl, csv)",
|
||
quiet: "Önemsiz çıktıyı gizle",
|
||
no_color: "Renkli çıktıyı devre dışı bırak",
|
||
timeout: "HTTP istek zaman aşımı (milisaniye)",
|
||
api_key: "OmniRoute sunucusu için API anahtarı",
|
||
base_url: "OmniRoute sunucusu temel URL'si",
|
||
context: "Bu komut için sunucu bağlamı/profili",
|
||
lang: "CLI görüntüleme dilini ayarla (OMNIROUTE_LANG'ı geçersiz kılar)",
|
||
},
|
||
},
|
||
"uk-UA": {
|
||
common: {
|
||
error: "Помилка: {message}",
|
||
serverOffline: "Сервер OmniRoute відключено. Запустіть: omniroute serve",
|
||
authRequired:
|
||
"Потрібна автентифікація. Встановіть OMNIROUTE_API_KEY або виконайте: omniroute setup",
|
||
rateLimited: "Перевищено ліміт запитів. Повторіть через {seconds}с.",
|
||
timeout: "Запит завершився через {ms}мс.",
|
||
success: "Готово.",
|
||
yes: "так",
|
||
no: "ні",
|
||
confirm: "Ви впевнені? (так/ні)",
|
||
dryRun: "[симуляція] виконає: {action}",
|
||
cancelled: "Скасовано.",
|
||
jsonOpt: "Вивести у форматі JSON",
|
||
yesOpt: "Пропустити підтвердження",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Розумний AI-маршрутизатор з автоматичним перемиканням",
|
||
version: "Вивести версію та вийти",
|
||
output: "Формат виведення (table, json, jsonl, csv)",
|
||
quiet: "Приховати несуттєвий вивід",
|
||
no_color: "Вимкнути кольоровий вивід",
|
||
timeout: "Тайм-аут HTTP-запитів у мілісекундах",
|
||
api_key: "API-ключ для сервера OmniRoute",
|
||
base_url: "Базовий URL сервера OmniRoute",
|
||
context: "Контекст/профіль сервера для цієї команди",
|
||
lang: "Встановити мову відображення CLI (замінює OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
vi: {
|
||
common: {
|
||
error: "Lỗi: {message}",
|
||
serverOffline: "Máy chủ OmniRoute đang offline. Khởi động với: omniroute serve",
|
||
authRequired: "Cần xác thực. Đặt OMNIROUTE_API_KEY hoặc chạy: omniroute setup",
|
||
rateLimited: "Đã vượt giới hạn yêu cầu. Thử lại sau {seconds}s.",
|
||
timeout: "Yêu cầu hết thời gian sau {ms}ms.",
|
||
success: "Xong.",
|
||
yes: "có",
|
||
no: "không",
|
||
confirm: "Bạn có chắc không? (có/không)",
|
||
dryRun: "[mô phỏng] sẽ: {action}",
|
||
cancelled: "Đã hủy.",
|
||
jsonOpt: "Xuất dưới dạng JSON",
|
||
yesOpt: "Bỏ qua xác nhận",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — Bộ định tuyến AI thông minh với tự động chuyển đổi dự phòng",
|
||
version: "In phiên bản và thoát",
|
||
output: "Định dạng đầu ra (table, json, jsonl, csv)",
|
||
quiet: "Ẩn đầu ra không cần thiết",
|
||
no_color: "Tắt đầu ra màu sắc",
|
||
timeout: "Thời gian chờ yêu cầu HTTP tính bằng mili giây",
|
||
api_key: "Khóa API cho máy chủ OmniRoute",
|
||
base_url: "URL cơ sở của máy chủ OmniRoute",
|
||
context: "Bối cảnh/hồ sơ máy chủ cho lệnh này",
|
||
lang: "Đặt ngôn ngữ hiển thị CLI (ghi đè OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
"zh-CN": {
|
||
common: {
|
||
error: "错误:{message}",
|
||
serverOffline: "OmniRoute 服务器已离线。请启动:omniroute serve",
|
||
authRequired: "需要认证。请设置 OMNIROUTE_API_KEY 或运行:omniroute setup",
|
||
rateLimited: "请求超出限制。请在 {seconds}s 后重试。",
|
||
timeout: "请求在 {ms}ms 后超时。",
|
||
success: "完成。",
|
||
yes: "是",
|
||
no: "否",
|
||
confirm: "确定吗?(是/否)",
|
||
dryRun: "【模拟】将执行:{action}",
|
||
cancelled: "已取消。",
|
||
jsonOpt: "以 JSON 格式输出",
|
||
yesOpt: "跳过确认",
|
||
},
|
||
program: {
|
||
description: "OmniRoute — 具有自动故障转移的智能 AI 路由器",
|
||
version: "打印版本并退出",
|
||
output: "输出格式(table, json, jsonl, csv)",
|
||
quiet: "禁止非必要输出",
|
||
no_color: "禁用彩色输出",
|
||
timeout: "HTTP 请求超时(毫秒)",
|
||
api_key: "OmniRoute 服务器的 API 密钥",
|
||
base_url: "OmniRoute 服务器的基础 URL",
|
||
context: "此命令使用的服务器上下文/配置文件",
|
||
lang: "设置 CLI 显示语言(覆盖 OMNIROUTE_LANG)",
|
||
},
|
||
},
|
||
};
|
||
|
||
// Languages with no translation in this script — will be created as empty objects
|
||
// All keys fall back to `en` via i18n.mjs's fallback mechanism.
|
||
const SCAFFOLD_ONLY = ["bn", "gu", "he", "in", "mr", "ms", "phi", "sw", "ta", "te", "ur"];
|
||
|
||
let created = 0;
|
||
let skipped = 0;
|
||
|
||
for (const locale of locales) {
|
||
const { code } = locale;
|
||
if (code === "en" || code === "pt-BR") {
|
||
skipped++;
|
||
continue;
|
||
}
|
||
|
||
const filePath = join(LOCALES_DIR, `${code}.json`);
|
||
if (existsSync(filePath) && !FORCE) {
|
||
skipped++;
|
||
continue;
|
||
}
|
||
|
||
const translations = TRANSLATIONS[code] || {};
|
||
const content = Object.keys(translations).length > 0 ? translations : {};
|
||
writeFileSync(filePath, JSON.stringify(content, null, 2) + "\n", "utf8");
|
||
console.log(` ✓ ${code.padEnd(8)} ${locale.english}`);
|
||
created++;
|
||
}
|
||
|
||
console.log(`\nGenerated: ${created} | Skipped (already exist): ${skipped}`);
|