diff --git a/install/i18n/ar.sh b/install/i18n/ar.sh new file mode 100644 index 0000000..c11b692 --- /dev/null +++ b/install/i18n/ar.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/ar.sh — العربية. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="معالج الإعداد الأولي (5 خطوات)" +STR_PICK_LANGUAGE="اختر لغة الواجهة:" +STR_PICK_TRANSPORT="اختر طريقة الاتصال:" +STR_PICK_PROVIDER="اختر المزود ضمن المجموعة" +STR_PICK_MODEL="النموذج الافتراضي:" + +STR_TR_DIRECT_API="واجهة برمجية مباشرة للمزود (مفتاح)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/دور)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+مفتاح)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="محلي (Ollama/MLX/LMStudio)" +STR_TR_PROXY="وكيل (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="اشتراك OAuth (ChatGPT)" + +STR_AUTH_INTRO="المصادقة لـ" +STR_AUTH_PROMPT="أدخل القيم (Enter — اتركها فارغة، املأها لاحقًا)." +STR_AUTH_CURRENT_HINT="(الحالي: <مخفي>)" + +STR_DONE_TITLE="اكتمل الإعداد الأولي" +STR_DONE_CONFIG="التكوين:" +STR_DONE_SECRETS="الأسرار:" + +STR_MENU_TITLE="مثبّت KeiSeiKit" +STR_MENU_SUBSTRATE="القاعدة الأساسية (دائمًا مثبتة):" +STR_MENU_PROFILE_PROMPT="اختر ملف التثبيت:" +STR_MENU_CONFIRM="تأكيد الاختيار؟" + +STR_PREFLIGHT_FAILED="فشل Preflight — قد لا يعمل المزود." +STR_PREFLIGHT_CONTINUE="هل تريد المتابعة على أي حال؟ [y/N]" diff --git a/install/i18n/de.sh b/install/i18n/de.sh new file mode 100644 index 0000000..e656640 --- /dev/null +++ b/install/i18n/de.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/de.sh — Deutsch. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="Einrichtungsassistent (5 Schritte)" +STR_PICK_LANGUAGE="Oberflächensprache wählen:" +STR_PICK_TRANSPORT="Verbindungsart wählen:" +STR_PICK_PROVIDER="Anbieter in der Gruppe wählen" +STR_PICK_MODEL="Standardmodell:" + +STR_TR_DIRECT_API="Direkte API des Anbieters (Schlüssel)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/Rolle)" +STR_TR_AZURE_OPENAI="Azure OpenAI (Deployment+Schlüssel)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Lokal (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Proxy (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="OAuth-Abo (ChatGPT)" + +STR_AUTH_INTRO="Authentifizierung für" +STR_AUTH_PROMPT="Werte eingeben (Enter — leer lassen, später ausfüllen)." +STR_AUTH_CURRENT_HINT="(aktuell: )" + +STR_DONE_TITLE="Einrichtung abgeschlossen" +STR_DONE_CONFIG="Konfig:" +STR_DONE_SECRETS="Geheimnisse:" + +STR_MENU_TITLE="KeiSeiKit Installer" +STR_MENU_SUBSTRATE="Substrat-Basis (immer installiert):" +STR_MENU_PROFILE_PROMPT="Installationsprofil wählen:" +STR_MENU_CONFIRM="Auswahl bestätigen?" + +STR_PREFLIGHT_FAILED="Preflight fehlgeschlagen — Anbieter funktioniert evtl. nicht." +STR_PREFLIGHT_CONTINUE="Trotzdem fortfahren? [j/N]" diff --git a/install/i18n/es.sh b/install/i18n/es.sh new file mode 100644 index 0000000..e56e91d --- /dev/null +++ b/install/i18n/es.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/es.sh — Español. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="Asistente de configuración inicial (5 pasos)" +STR_PICK_LANGUAGE="Elige el idioma de la interfaz:" +STR_PICK_TRANSPORT="Elige el método de conexión:" +STR_PICK_PROVIDER="Elige el proveedor dentro de" +STR_PICK_MODEL="Modelo por defecto:" + +STR_TR_DIRECT_API="API directa del proveedor (clave)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/rol)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+clave)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Local (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Proxy (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="Suscripción OAuth (ChatGPT)" + +STR_AUTH_INTRO="Autenticación para" +STR_AUTH_PROMPT="Introduce los valores (Enter — dejar vacío, completar luego)." +STR_AUTH_CURRENT_HINT="(actual: )" + +STR_DONE_TITLE="Configuración inicial completada" +STR_DONE_CONFIG="config:" +STR_DONE_SECRETS="secretos:" + +STR_MENU_TITLE="Instalador de KeiSeiKit" +STR_MENU_SUBSTRATE="Base del sustrato (siempre instalada):" +STR_MENU_PROFILE_PROMPT="Elige el perfil de instalación:" +STR_MENU_CONFIRM="¿Confirmar selección?" + +STR_PREFLIGHT_FAILED="Preflight falló — el proveedor puede no funcionar." +STR_PREFLIGHT_CONTINUE="¿Continuar de todos modos? [s/N]" diff --git a/install/i18n/fr.sh b/install/i18n/fr.sh new file mode 100644 index 0000000..6fe09ee --- /dev/null +++ b/install/i18n/fr.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/fr.sh — Français. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="Assistant de configuration initiale (5 étapes)" +STR_PICK_LANGUAGE="Choisir la langue de l'interface :" +STR_PICK_TRANSPORT="Choisir le mode de connexion :" +STR_PICK_PROVIDER="Choisir le fournisseur dans le groupe" +STR_PICK_MODEL="Modèle par défaut :" + +STR_TR_DIRECT_API="API directe du fournisseur (clé)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/rôle)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+clé)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Local (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Proxy (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="Abonnement OAuth (ChatGPT)" + +STR_AUTH_INTRO="Authentification pour" +STR_AUTH_PROMPT="Saisir les valeurs (Entrée — laisser vide, remplir plus tard)." +STR_AUTH_CURRENT_HINT="(actuel : )" + +STR_DONE_TITLE="Configuration initiale terminée" +STR_DONE_CONFIG="config :" +STR_DONE_SECRETS="secrets :" + +STR_MENU_TITLE="Installateur KeiSeiKit" +STR_MENU_SUBSTRATE="Base du substrat (toujours installée) :" +STR_MENU_PROFILE_PROMPT="Choisir le profil d'installation :" +STR_MENU_CONFIRM="Confirmer la sélection ?" + +STR_PREFLIGHT_FAILED="Preflight échoué — le fournisseur peut ne pas fonctionner." +STR_PREFLIGHT_CONTINUE="Continuer quand même ? [o/N]" diff --git a/install/i18n/hi.sh b/install/i18n/hi.sh new file mode 100644 index 0000000..7e28f22 --- /dev/null +++ b/install/i18n/hi.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/hi.sh — हिन्दी. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="प्रारंभिक सेटअप विज़ार्ड (5 चरण)" +STR_PICK_LANGUAGE="इंटरफ़ेस भाषा चुनें:" +STR_PICK_TRANSPORT="कनेक्शन विधि चुनें:" +STR_PICK_PROVIDER="समूह में प्रदाता चुनें" +STR_PICK_MODEL="डिफ़ॉल्ट मॉडल:" + +STR_TR_DIRECT_API="प्रदाता डायरेक्ट API (कुंजी)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/रोल)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+कुंजी)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="लोकल (Ollama/MLX/LMStudio)" +STR_TR_PROXY="प्रॉक्सी (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="OAuth सब्सक्रिप्शन (ChatGPT)" + +STR_AUTH_INTRO="के लिए प्रमाणीकरण" +STR_AUTH_PROMPT="मान दर्ज करें (Enter — खाली छोड़ें, बाद में भरें)।" +STR_AUTH_CURRENT_HINT="(वर्तमान: <छिपा हुआ>)" + +STR_DONE_TITLE="प्रारंभिक सेटअप पूरा हुआ" +STR_DONE_CONFIG="कॉन्फ़िग:" +STR_DONE_SECRETS="सीक्रेट्स:" + +STR_MENU_TITLE="KeiSeiKit इंस्टॉलर" +STR_MENU_SUBSTRATE="सब्सट्रेट बेस (हमेशा स्थापित):" +STR_MENU_PROFILE_PROMPT="इंस्टॉल प्रोफ़ाइल चुनें:" +STR_MENU_CONFIRM="चयन की पुष्टि करें?" + +STR_PREFLIGHT_FAILED="Preflight विफल — प्रदाता काम नहीं कर सकता।" +STR_PREFLIGHT_CONTINUE="फिर भी जारी रखें? [y/N]" diff --git a/install/i18n/id.sh b/install/i18n/id.sh new file mode 100644 index 0000000..38ba59e --- /dev/null +++ b/install/i18n/id.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/id.sh — Bahasa Indonesia. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="Wizard pengaturan awal (5 langkah)" +STR_PICK_LANGUAGE="Pilih bahasa antarmuka:" +STR_PICK_TRANSPORT="Pilih metode koneksi:" +STR_PICK_PROVIDER="Pilih penyedia dalam grup" +STR_PICK_MODEL="Model default:" + +STR_TR_DIRECT_API="API langsung penyedia (kunci)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/role)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+kunci)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Lokal (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Proxy (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="Langganan OAuth (ChatGPT)" + +STR_AUTH_INTRO="Autentikasi untuk" +STR_AUTH_PROMPT="Masukkan nilai (Enter — kosongkan, isi nanti)." +STR_AUTH_CURRENT_HINT="(saat ini: )" + +STR_DONE_TITLE="Pengaturan awal selesai" +STR_DONE_CONFIG="konfig:" +STR_DONE_SECRETS="rahasia:" + +STR_MENU_TITLE="Installer KeiSeiKit" +STR_MENU_SUBSTRATE="Basis substrat (selalu terpasang):" +STR_MENU_PROFILE_PROMPT="Pilih profil instalasi:" +STR_MENU_CONFIRM="Konfirmasi pilihan?" + +STR_PREFLIGHT_FAILED="Preflight gagal — penyedia mungkin tidak berfungsi." +STR_PREFLIGHT_CONTINUE="Lanjutkan saja? [y/N]" diff --git a/install/i18n/it.sh b/install/i18n/it.sh new file mode 100644 index 0000000..6884986 --- /dev/null +++ b/install/i18n/it.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/it.sh — Italiano. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="Procedura guidata di configurazione iniziale (5 passi)" +STR_PICK_LANGUAGE="Scegli la lingua dell'interfaccia:" +STR_PICK_TRANSPORT="Scegli il metodo di connessione:" +STR_PICK_PROVIDER="Scegli il provider nel gruppo" +STR_PICK_MODEL="Modello predefinito:" + +STR_TR_DIRECT_API="API diretta del provider (chiave)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/ruolo)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+chiave)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Locale (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Proxy (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="Abbonamento OAuth (ChatGPT)" + +STR_AUTH_INTRO="Autenticazione per" +STR_AUTH_PROMPT="Inserisci i valori (Invio — lascia vuoto, compila dopo)." +STR_AUTH_CURRENT_HINT="(attuale: )" + +STR_DONE_TITLE="Configurazione iniziale completata" +STR_DONE_CONFIG="config:" +STR_DONE_SECRETS="segreti:" + +STR_MENU_TITLE="Installatore KeiSeiKit" +STR_MENU_SUBSTRATE="Base del substrato (sempre installata):" +STR_MENU_PROFILE_PROMPT="Scegli il profilo di installazione:" +STR_MENU_CONFIRM="Confermare la selezione?" + +STR_PREFLIGHT_FAILED="Preflight fallito — il provider potrebbe non funzionare." +STR_PREFLIGHT_CONTINUE="Continuare comunque? [s/N]" diff --git a/install/i18n/ja.sh b/install/i18n/ja.sh new file mode 100644 index 0000000..9d5bceb --- /dev/null +++ b/install/i18n/ja.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/ja.sh — 日本語. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="初期設定ウィザード (5 ステップ)" +STR_PICK_LANGUAGE="インターフェース言語を選択:" +STR_PICK_TRANSPORT="接続方法を選択:" +STR_PICK_PROVIDER="グループ内のプロバイダを選択" +STR_PICK_MODEL="デフォルトモデル:" + +STR_TR_DIRECT_API="プロバイダ直接 API (キー)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/ロール)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+キー)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="ローカル (Ollama/MLX/LMStudio)" +STR_TR_PROXY="プロキシ (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="OAuth サブスクリプション (ChatGPT)" + +STR_AUTH_INTRO="認証 —" +STR_AUTH_PROMPT="値を入力 (Enter — 空のまま、後で記入)。" +STR_AUTH_CURRENT_HINT="(現在: <非表示>)" + +STR_DONE_TITLE="初期設定が完了しました" +STR_DONE_CONFIG="設定:" +STR_DONE_SECRETS="シークレット:" + +STR_MENU_TITLE="KeiSeiKit インストーラ" +STR_MENU_SUBSTRATE="サブストレートのベース (常にインストール):" +STR_MENU_PROFILE_PROMPT="インストールプロファイルを選択:" +STR_MENU_CONFIRM="選択を確認しますか?" + +STR_PREFLIGHT_FAILED="Preflight 失敗 — プロバイダが動作しない可能性があります。" +STR_PREFLIGHT_CONTINUE="それでも続行しますか? [y/N]" diff --git a/install/i18n/ko.sh b/install/i18n/ko.sh new file mode 100644 index 0000000..7c20972 --- /dev/null +++ b/install/i18n/ko.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/ko.sh — 한국어. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="초기 설정 마법사 (5 단계)" +STR_PICK_LANGUAGE="인터페이스 언어 선택:" +STR_PICK_TRANSPORT="연결 방법 선택:" +STR_PICK_PROVIDER="그룹 내 제공자 선택" +STR_PICK_MODEL="기본 모델:" + +STR_TR_DIRECT_API="제공자 직접 API (키)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/역할)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+키)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="로컬 (Ollama/MLX/LMStudio)" +STR_TR_PROXY="프록시 (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="OAuth 구독 (ChatGPT)" + +STR_AUTH_INTRO="인증 —" +STR_AUTH_PROMPT="값을 입력하세요 (Enter — 비워두고 나중에 작성)." +STR_AUTH_CURRENT_HINT="(현재: <숨김>)" + +STR_DONE_TITLE="초기 설정 완료" +STR_DONE_CONFIG="설정:" +STR_DONE_SECRETS="시크릿:" + +STR_MENU_TITLE="KeiSeiKit 설치 프로그램" +STR_MENU_SUBSTRATE="기본 서브스트레이트 (항상 설치):" +STR_MENU_PROFILE_PROMPT="설치 프로필 선택:" +STR_MENU_CONFIRM="선택을 확인하시겠습니까?" + +STR_PREFLIGHT_FAILED="Preflight 실패 — 제공자가 작동하지 않을 수 있습니다." +STR_PREFLIGHT_CONTINUE="계속 진행하시겠습니까? [y/N]" diff --git a/install/i18n/pt.sh b/install/i18n/pt.sh new file mode 100644 index 0000000..fb4bcf0 --- /dev/null +++ b/install/i18n/pt.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/pt.sh — Português. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="Assistente de configuração inicial (5 passos)" +STR_PICK_LANGUAGE="Escolha o idioma da interface:" +STR_PICK_TRANSPORT="Escolha o método de conexão:" +STR_PICK_PROVIDER="Escolha o provedor dentro do grupo" +STR_PICK_MODEL="Modelo padrão:" + +STR_TR_DIRECT_API="API direta do provedor (chave)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/função)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+chave)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Local (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Proxy (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="Assinatura OAuth (ChatGPT)" + +STR_AUTH_INTRO="Autenticação para" +STR_AUTH_PROMPT="Insira valores (Enter — deixar vazio, preencher depois)." +STR_AUTH_CURRENT_HINT="(atual: )" + +STR_DONE_TITLE="Configuração inicial concluída" +STR_DONE_CONFIG="config:" +STR_DONE_SECRETS="segredos:" + +STR_MENU_TITLE="Instalador KeiSeiKit" +STR_MENU_SUBSTRATE="Base do substrato (sempre instalada):" +STR_MENU_PROFILE_PROMPT="Escolha o perfil de instalação:" +STR_MENU_CONFIRM="Confirmar seleção?" + +STR_PREFLIGHT_FAILED="Preflight falhou — o provedor pode não funcionar." +STR_PREFLIGHT_CONTINUE="Continuar mesmo assim? [s/N]" diff --git a/install/i18n/tr.sh b/install/i18n/tr.sh new file mode 100644 index 0000000..2bff611 --- /dev/null +++ b/install/i18n/tr.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/tr.sh — Türkçe. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="İlk kurulum sihirbazı (5 adım)" +STR_PICK_LANGUAGE="Arayüz dilini seçin:" +STR_PICK_TRANSPORT="Bağlantı yöntemini seçin:" +STR_PICK_PROVIDER="Gruptaki sağlayıcıyı seçin" +STR_PICK_MODEL="Varsayılan model:" + +STR_TR_DIRECT_API="Sağlayıcının doğrudan API'si (anahtar)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/rol)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+anahtar)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Yerel (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Proxy (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="OAuth aboneliği (ChatGPT)" + +STR_AUTH_INTRO="Kimlik doğrulama —" +STR_AUTH_PROMPT="Değerleri girin (Enter — boş bırak, sonra doldur)." +STR_AUTH_CURRENT_HINT="(geçerli: )" + +STR_DONE_TITLE="İlk kurulum tamamlandı" +STR_DONE_CONFIG="yapılandırma:" +STR_DONE_SECRETS="gizli anahtarlar:" + +STR_MENU_TITLE="KeiSeiKit Kurulum Aracı" +STR_MENU_SUBSTRATE="Substrate tabanı (her zaman kurulu):" +STR_MENU_PROFILE_PROMPT="Kurulum profilini seçin:" +STR_MENU_CONFIRM="Seçimi onayla?" + +STR_PREFLIGHT_FAILED="Preflight başarısız — sağlayıcı çalışmayabilir." +STR_PREFLIGHT_CONTINUE="Yine de devam edilsin mi? [e/H]" diff --git a/install/i18n/uk.sh b/install/i18n/uk.sh new file mode 100644 index 0000000..e594243 --- /dev/null +++ b/install/i18n/uk.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/uk.sh — Українська. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="Майстер первинного налаштування (5 кроків)" +STR_PICK_LANGUAGE="Виберіть мову інтерфейсу:" +STR_PICK_TRANSPORT="Виберіть спосіб підключення:" +STR_PICK_PROVIDER="Виберіть провайдера у групі" +STR_PICK_MODEL="Модель за замовчуванням:" + +STR_TR_DIRECT_API="Прямий API провайдера (ключ)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/роль)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+ключ)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Локально (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Проксі (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="OAuth-підписка (ChatGPT)" + +STR_AUTH_INTRO="Автентифікація для" +STR_AUTH_PROMPT="Введіть значення (Enter — залишити порожнім, заповнити пізніше)." +STR_AUTH_CURRENT_HINT="(поточне: <приховано>)" + +STR_DONE_TITLE="Первинне налаштування завершено" +STR_DONE_CONFIG="конфіг:" +STR_DONE_SECRETS="секрети:" + +STR_MENU_TITLE="Інсталятор KeiSeiKit" +STR_MENU_SUBSTRATE="База підкладки (завжди встановлюється):" +STR_MENU_PROFILE_PROMPT="Виберіть профіль встановлення:" +STR_MENU_CONFIRM="Підтвердити вибір?" + +STR_PREFLIGHT_FAILED="Preflight упав — провайдер може не працювати." +STR_PREFLIGHT_CONTINUE="Продовжити все одно? [y/N]" diff --git a/install/i18n/vi.sh b/install/i18n/vi.sh new file mode 100644 index 0000000..89005b3 --- /dev/null +++ b/install/i18n/vi.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/vi.sh — Tiếng Việt. + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="Trình hướng dẫn thiết lập ban đầu (5 bước)" +STR_PICK_LANGUAGE="Chọn ngôn ngữ giao diện:" +STR_PICK_TRANSPORT="Chọn phương thức kết nối:" +STR_PICK_PROVIDER="Chọn nhà cung cấp trong nhóm" +STR_PICK_MODEL="Mô hình mặc định:" + +STR_TR_DIRECT_API="API trực tiếp của nhà cung cấp (khóa)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/vai trò)" +STR_TR_AZURE_OPENAI="Azure OpenAI (deployment+khóa)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="Cục bộ (Ollama/MLX/LMStudio)" +STR_TR_PROXY="Proxy (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="Đăng ký OAuth (ChatGPT)" + +STR_AUTH_INTRO="Xác thực cho" +STR_AUTH_PROMPT="Nhập giá trị (Enter — để trống, điền sau)." +STR_AUTH_CURRENT_HINT="(hiện tại: <đã ẩn>)" + +STR_DONE_TITLE="Thiết lập ban đầu hoàn tất" +STR_DONE_CONFIG="cấu hình:" +STR_DONE_SECRETS="bí mật:" + +STR_MENU_TITLE="Trình cài đặt KeiSeiKit" +STR_MENU_SUBSTRATE="Nền tảng substrate (luôn cài đặt):" +STR_MENU_PROFILE_PROMPT="Chọn hồ sơ cài đặt:" +STR_MENU_CONFIRM="Xác nhận lựa chọn?" + +STR_PREFLIGHT_FAILED="Preflight thất bại — nhà cung cấp có thể không hoạt động." +STR_PREFLIGHT_CONTINUE="Vẫn tiếp tục? [y/N]" diff --git a/install/i18n/zh.sh b/install/i18n/zh.sh new file mode 100644 index 0000000..303dee0 --- /dev/null +++ b/install/i18n/zh.sh @@ -0,0 +1,35 @@ +# shellcheck shell=bash +# i18n/zh.sh — 简体中文 (Simplified Chinese). + +STR_WELCOME_TITLE="KeiSeiKit · Exobrain installer" +STR_WELCOME_TAGLINE="Portable Rust agent substrate for AI coding tools" + +STR_ONBOARDING_INTRO="初始化向导 (5 步)" +STR_PICK_LANGUAGE="选择界面语言:" +STR_PICK_TRANSPORT="选择连接方式:" +STR_PICK_PROVIDER="选择此分组中的提供者" +STR_PICK_MODEL="默认模型:" + +STR_TR_DIRECT_API="提供者直连 API (密钥)" +STR_TR_AWS_BEDROCK="AWS Bedrock (IAM/角色)" +STR_TR_AZURE_OPENAI="Azure OpenAI (部署 + 密钥)" +STR_TR_GOOGLE_VERTEX="Google Vertex AI (GCP)" +STR_TR_LOCAL="本地 (Ollama/MLX/LMStudio)" +STR_TR_PROXY="代理 (LiteLLM/OpenRouter)" +STR_TR_SUBSCRIPTION="OAuth 订阅 (ChatGPT)" + +STR_AUTH_INTRO="认证" +STR_AUTH_PROMPT="输入值 (回车 — 保留为空,稍后填写)。" +STR_AUTH_CURRENT_HINT="(当前: <已隐藏>)" + +STR_DONE_TITLE="初始化完成" +STR_DONE_CONFIG="配置:" +STR_DONE_SECRETS="密钥:" + +STR_MENU_TITLE="KeiSeiKit 安装器" +STR_MENU_SUBSTRATE="基础组件 (始终安装):" +STR_MENU_PROFILE_PROMPT="选择安装配置:" +STR_MENU_CONFIRM="确认选择?" + +STR_PREFLIGHT_FAILED="Preflight 失败 — 提供者可能无法工作。" +STR_PREFLIGHT_CONTINUE="仍然继续? [y/N]" diff --git a/install/lib-i18n.sh b/install/lib-i18n.sh index 3ce29fe..ad6c96e 100644 --- a/install/lib-i18n.sh +++ b/install/lib-i18n.sh @@ -21,19 +21,37 @@ i18n_load_default() { i18n_load_lang() { local lang="$1" - case "$lang" in - en) - i18n_load_default - ;; - ru) - i18n_load_default # base (fallback values) - # shellcheck source=install/i18n/ru.sh - [ -f "$I18N_DIR/ru.sh" ] && source "$I18N_DIR/ru.sh" - ;; - *) - i18n_load_default - ;; - esac + # Сначала всегда грузим английский — это база fallback. + i18n_load_default + # Если выбран не-английский — поверх кладём словарь языка. + # Любой STR_*, отсутствующий в файле, остаётся с английским значением. + if [ "$lang" != "en" ] && [ -f "$I18N_DIR/${lang}.sh" ]; then + # shellcheck disable=SC1090 + source "$I18N_DIR/${lang}.sh" + fi +} + +# Список доступных языков — для onboarding_pick_language. +# Формат: \t +i18n_available_languages() { + cat <<'EOF' +en English +ru Русский +uk Українська +de Deutsch +fr Français +es Español +pt Português +it Italiano +tr Türkçe +ar العربية +hi हिन्दी +zh 简体中文 +ja 日本語 +ko 한국어 +id Bahasa Indonesia +vi Tiếng Việt +EOF } # Welcome banner. Всегда EN. Запускается из install.sh до мастера. diff --git a/install/lib-onboarding.sh b/install/lib-onboarding.sh index e724860..e92be51 100644 --- a/install/lib-onboarding.sh +++ b/install/lib-onboarding.sh @@ -108,23 +108,42 @@ onboarding_models_for_provider() { # UI: язык # ─────────────────────────────────────────────────────────────────────── onboarding_pick_language() { - # На этом шаге язык ещё не выбран — экран на двух языках одновременно. + # Список языков читается из lib-i18n.sh::i18n_available_languages. + # На этом шаге язык ещё не выбран — заголовок двуязычный. + local langs + langs="$(i18n_available_languages 2>/dev/null)" + if [ -z "$langs" ]; then + # Fallback если lib-i18n не подключён. + langs="$(printf 'en\tEnglish\nru\tРусский\n')" + fi + if command -v whiptail >/dev/null 2>&1; then - ONBOARDING_LANG=$(whiptail --title "KeiSei · Language / Язык" --radiolist \ - "Choose interface language / Выберите язык:" 12 60 2 \ - "en" "English" ON \ - "ru" "Русский" OFF \ - 3>&1 1>&2 2>&3) || ONBOARDING_LANG="en" + local args=() first=1 + while IFS=$'\t' read -r code name; do + [ -z "$code" ] && continue + if [ "$first" = "1" ]; then + args+=("$code" "$name" "ON"); first=0 + else + args+=("$code" "$name" "OFF") + fi + done <<< "$langs" + ONBOARDING_LANG=$(whiptail --title "KeiSei · Language / Язык / 语言 / 言語 / ..." --radiolist \ + "Choose interface language / Выберите язык:" 22 70 16 \ + "${args[@]}" 3>&1 1>&2 2>&3) || ONBOARDING_LANG="en" else echo "" >&2 - echo "Choose language / Выберите язык:" >&2 - echo " 1) en — English (default)" >&2 - echo " 2) ru — Русский" >&2 - read -r -p "[1-2, default 1]: " ans - case "$ans" in - 2) ONBOARDING_LANG="ru" ;; - *) ONBOARDING_LANG="en" ;; - esac + echo "Choose language / Выберите язык / 选择语言 / 言語選択:" >&2 + declare -a codes=() + local i=1 + while IFS=$'\t' read -r code name; do + [ -z "$code" ] && continue + codes+=("$code") + printf " %2d) %s — %s\n" "$i" "$code" "$name" >&2 + i=$((i+1)) + done <<< "$langs" + read -r -p "[1-${#codes[@]}, default 1=en]: " ans + ans="${ans:-1}" + ONBOARDING_LANG="${codes[$((ans-1))]:-en}" fi # Перегружаем словарь — все последующие строки на выбранном языке. if command -v i18n_load_lang >/dev/null 2>&1; then