diff --git a/web/__tests__/i18n-upload-features.test.ts b/web/__tests__/i18n-upload-features.test.ts new file mode 100644 index 000000000..37aefcbef --- /dev/null +++ b/web/__tests__/i18n-upload-features.test.ts @@ -0,0 +1,119 @@ +/** + * Test suite for verifying upload feature translations across all locales + * Specifically tests for issue #23062: Missing Upload feature translations (esp. audioUpload) across most locales + */ + +import fs from 'node:fs' +import path from 'node:path' + +// Get all supported locales from the i18n directory +const I18N_DIR = path.join(__dirname, '../i18n') +const getSupportedLocales = (): string[] => { + return fs.readdirSync(I18N_DIR) + .filter(item => fs.statSync(path.join(I18N_DIR, item)).isDirectory()) + .sort() +} + +// Helper function to load translation file content +const loadTranslationContent = (locale: string): string => { + const filePath = path.join(I18N_DIR, locale, 'app-debug.ts') + + if (!fs.existsSync(filePath)) + throw new Error(`Translation file not found: ${filePath}`) + + return fs.readFileSync(filePath, 'utf-8') +} + +// Helper function to check if upload features exist +const hasUploadFeatures = (content: string): { [key: string]: boolean } => { + return { + fileUpload: /fileUpload\s*:\s*{/.test(content), + imageUpload: /imageUpload\s*:\s*{/.test(content), + documentUpload: /documentUpload\s*:\s*{/.test(content), + audioUpload: /audioUpload\s*:\s*{/.test(content), + featureBar: /bar\s*:\s*{/.test(content), + } +} + +describe('Upload Features i18n Translations - Issue #23062', () => { + let supportedLocales: string[] + + beforeAll(() => { + supportedLocales = getSupportedLocales() + console.log(`Testing ${supportedLocales.length} locales for upload features`) + }) + + test('all locales should have translation files', () => { + supportedLocales.forEach((locale) => { + const filePath = path.join(I18N_DIR, locale, 'app-debug.ts') + expect(fs.existsSync(filePath)).toBe(true) + }) + }) + + test('all locales should have required upload features', () => { + const results: { [locale: string]: { [feature: string]: boolean } } = {} + + supportedLocales.forEach((locale) => { + const content = loadTranslationContent(locale) + const features = hasUploadFeatures(content) + results[locale] = features + + // Check that all upload features exist + expect(features.fileUpload).toBe(true) + expect(features.imageUpload).toBe(true) + expect(features.documentUpload).toBe(true) + expect(features.audioUpload).toBe(true) + expect(features.featureBar).toBe(true) + }) + + console.log('✅ All locales have complete upload features') + }) + + test('previously missing locales should now have audioUpload - Issue #23062', () => { + // These locales were specifically missing audioUpload + const previouslyMissingLocales = ['fa-IR', 'hi-IN', 'ro-RO', 'sl-SI', 'th-TH', 'uk-UA', 'vi-VN'] + + previouslyMissingLocales.forEach((locale) => { + const content = loadTranslationContent(locale) + + // Verify audioUpload exists + expect(/audioUpload\s*:\s*{/.test(content)).toBe(true) + + // Verify it has title and description + expect(/audioUpload[^}]*title\s*:/.test(content)).toBe(true) + expect(/audioUpload[^}]*description\s*:/.test(content)).toBe(true) + + console.log(`✅ ${locale} - Issue #23062 resolved: audioUpload feature present`) + }) + }) + + test('upload features should have required properties', () => { + supportedLocales.forEach((locale) => { + const content = loadTranslationContent(locale) + + // Check fileUpload has required properties + if (/fileUpload\s*:\s*{/.test(content)) { + expect(/fileUpload[^}]*title\s*:/.test(content)).toBe(true) + expect(/fileUpload[^}]*description\s*:/.test(content)).toBe(true) + } + + // Check imageUpload has required properties + if (/imageUpload\s*:\s*{/.test(content)) { + expect(/imageUpload[^}]*title\s*:/.test(content)).toBe(true) + expect(/imageUpload[^}]*description\s*:/.test(content)).toBe(true) + } + + // Check documentUpload has required properties + if (/documentUpload\s*:\s*{/.test(content)) { + expect(/documentUpload[^}]*title\s*:/.test(content)).toBe(true) + expect(/documentUpload[^}]*description\s*:/.test(content)).toBe(true) + } + + // Check audioUpload has required properties + if (/audioUpload\s*:\s*{/.test(content)) { + expect(/audioUpload[^}]*title\s*:/.test(content)).toBe(true) + expect(/audioUpload[^}]*description\s*:/.test(content)).toBe(true) + } + }) + }) +}) diff --git a/web/i18n/de-DE/app-debug.ts b/web/i18n/de-DE/app-debug.ts index 5e752d00a..1d7ebc385 100644 --- a/web/i18n/de-DE/app-debug.ts +++ b/web/i18n/de-DE/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Datei-Upload', + description: 'Das Chat-Eingabefeld unterstützt das Hochladen von Bildern, Dokumenten und anderen Dateien.', + supportedTypes: 'Unterstützte Dateitypen', + numberLimit: 'Max. Uploads', + modalTitle: 'Datei-Upload-Einstellung', + }, + imageUpload: { + title: 'Bild-Upload', + description: 'Ermöglicht das Hochladen von Bildern.', + supportedTypes: 'Unterstützte Dateitypen', + numberLimit: 'Max. Uploads', + modalTitle: 'Bild-Upload-Einstellung', + }, + bar: { + empty: 'Funktionen aktivieren, um die Web-App-Benutzererfahrung zu verbessern', + enableText: 'Funktionen aktiviert', + manage: 'Verwalten', + }, + documentUpload: { + title: 'Dokument', + description: 'Das Aktivieren von Dokumenten ermöglicht es dem Modell, Dokumente aufzunehmen und Fragen zu ihnen zu beantworten.', + }, + audioUpload: { + title: 'Audio', + description: 'Das Aktivieren von Audio ermöglicht es dem Modell, Audiodateien für Transkription und Analyse zu verarbeiten.', + }, }, resetConfig: { title: 'Zurücksetzen bestätigen?', diff --git a/web/i18n/es-ES/app-debug.ts b/web/i18n/es-ES/app-debug.ts index 0447ea5d9..78b332940 100644 --- a/web/i18n/es-ES/app-debug.ts +++ b/web/i18n/es-ES/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Subida de archivos', + description: 'La caja de entrada del chat permite subir imágenes, documentos y otros archivos.', + supportedTypes: 'Tipos de archivo soportados', + numberLimit: 'Máximo de subidas', + modalTitle: 'Configuración de subida de archivos', + }, + imageUpload: { + title: 'Subida de imágenes', + description: 'Permite subir imágenes.', + supportedTypes: 'Tipos de archivo soportados', + numberLimit: 'Máximo de subidas', + modalTitle: 'Configuración de subida de imágenes', + }, + bar: { + empty: 'Habilitar funciones para mejorar la experiencia del usuario de la aplicación web', + enableText: 'Funciones habilitadas', + manage: 'Gestionar', + }, + documentUpload: { + title: 'Documento', + description: 'Habilitar Documento permitirá al modelo aceptar documentos y responder preguntas sobre ellos.', + }, + audioUpload: { + title: 'Audio', + description: 'Habilitar Audio permitirá al modelo procesar archivos de audio para transcripción y análisis.', + }, }, automatic: { title: 'Orquestación automatizada de aplicaciones', @@ -282,7 +309,6 @@ const translation = { 'required': 'Requerido', 'hide': 'Ocultar', 'errorMsg': { - varNameRequired: 'Nombre de la variable es requerido', labelNameRequired: 'Nombre de la etiqueta es requerido', varNameCanBeRepeat: 'El nombre de la variable no puede repetirse', atLeastOneOption: 'Se requiere al menos una opción', diff --git a/web/i18n/fa-IR/app-debug.ts b/web/i18n/fa-IR/app-debug.ts index 75085ef30..5efbb9421 100644 --- a/web/i18n/fa-IR/app-debug.ts +++ b/web/i18n/fa-IR/app-debug.ts @@ -317,7 +317,6 @@ const translation = { 'required': 'مورد نیاز', 'hide': 'مخفی کردن', 'errorMsg': { - varNameRequired: 'نام متغیر مورد نیاز است', labelNameRequired: 'نام برچسب مورد نیاز است', varNameCanBeRepeat: 'نام متغیر نمی‌تواند تکراری باشد', atLeastOneOption: 'حداقل یک گزینه مورد نیاز است', @@ -451,6 +450,33 @@ const translation = { enabled: 'فعال', }, }, + fileUpload: { + title: 'آپلود فایل', + description: 'جعبه ورودی چت امکان آپلود تصاویر، اسناد و سایر فایل‌ها را فراهم می‌کند.', + supportedTypes: 'انواع فایل‌های پشتیبانی شده', + numberLimit: 'حداکثر آپلود', + modalTitle: 'تنظیمات آپلود فایل', + }, + imageUpload: { + title: 'آپلود تصویر', + description: 'امکان آپلود تصاویر را فراهم می‌کند.', + supportedTypes: 'انواع فایل‌های پشتیبانی شده', + numberLimit: 'حداکثر آپلود', + modalTitle: 'تنظیمات آپلود تصویر', + }, + bar: { + empty: 'فعال‌سازی ویژگی برای بهبود تجربه کاربری اپلیکیشن وب', + enableText: 'ویژگی‌های فعال', + manage: 'مدیریت', + }, + documentUpload: { + title: 'سند', + description: 'فعال‌سازی سند به مدل اجازه می‌دهد اسناد را دریافت کرده و درباره آن‌ها پاسخ دهد.', + }, + audioUpload: { + title: 'صوتی', + description: 'فعال‌سازی صوت به مدل اجازه می‌دهد فایل‌های صوتی را برای رونویسی و تجزیه و تحلیل پردازش کند.', + }, }, } diff --git a/web/i18n/fr-FR/app-debug.ts b/web/i18n/fr-FR/app-debug.ts index f71abb685..78294fbd8 100644 --- a/web/i18n/fr-FR/app-debug.ts +++ b/web/i18n/fr-FR/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Téléchargement de fichier', + description: 'La boîte de saisie de chat permet de télécharger des images, des documents et d\'autres fichiers.', + supportedTypes: 'Types de fichiers supportés', + numberLimit: 'Nombre max de téléchargements', + modalTitle: 'Paramètres de téléchargement de fichier', + }, + imageUpload: { + title: 'Téléchargement d\'image', + description: 'Permet de télécharger des images.', + supportedTypes: 'Types de fichiers supportés', + numberLimit: 'Nombre max de téléchargements', + modalTitle: 'Paramètres de téléchargement d\'image', + }, + bar: { + empty: 'Activer la fonctionnalité pour améliorer l\'expérience utilisateur de l\'application web', + enableText: 'Fonctionnalités activées', + manage: 'Gérer', + }, + documentUpload: { + title: 'Document', + description: 'Activer Document permettra au modèle de prendre des documents et de répondre aux questions à leur sujet.', + }, + audioUpload: { + title: 'Audio', + description: 'Activer Audio permettra au modèle de traiter les fichiers audio pour la transcription et l\'analyse.', + }, }, resetConfig: { title: 'Confirmer la réinitialisation ?', @@ -270,7 +297,6 @@ const translation = { 'required': 'Required', 'hide': 'Caché', 'errorMsg': { - varNameRequired: 'Variable name is required', labelNameRequired: 'Label name is required', varNameCanBeRepeat: 'Variable name can not be repeated', atLeastOneOption: 'At least one option is required', diff --git a/web/i18n/hi-IN/app-debug.ts b/web/i18n/hi-IN/app-debug.ts index 69a40c28c..ea9b20c50 100644 --- a/web/i18n/hi-IN/app-debug.ts +++ b/web/i18n/hi-IN/app-debug.ts @@ -314,7 +314,6 @@ const translation = { 'required': 'आवश्यक', 'hide': 'छुपाएँ', 'errorMsg': { - varNameRequired: 'वेरिएबल नाम आवश्यक है', labelNameRequired: 'लेबल नाम आवश्यक है', varNameCanBeRepeat: 'वेरिएबल नाम दोहराया नहीं जा सकता', atLeastOneOption: 'कम से कम एक विकल्प आवश्यक है', @@ -468,6 +467,33 @@ const translation = { 'उपकरणों का उपयोग करके एलएलएम की क्षमताओं का विस्तार किया जा सकता है, जैसे इंटरनेट पर खोज करना या वैज्ञानिक गणनाएँ करना', enabled: 'सक्षम', }, + fileUpload: { + title: 'फ़ाइल अपलोड', + description: 'चैट इनपुट बॉक्स छवियों, दस्तावेज़ों और अन्य फ़ाइलों को अपलोड करने की अनुमति देता है।', + supportedTypes: 'समर्थित फ़ाइल प्रकार', + numberLimit: 'अधिकतम अपलोड', + modalTitle: 'फ़ाइल अपलोड सेटिंग', + }, + imageUpload: { + title: 'छवि अपलोड', + description: 'छवियों को अपलोड करने की अनुमति दें।', + supportedTypes: 'समर्थित फ़ाइल प्रकार', + numberLimit: 'अधिकतम अपलोड', + modalTitle: 'छवि अपलोड सेटिंग', + }, + bar: { + empty: 'वेब ऐप उपयोगकर्ता अनुभव को बेहतर बनाने के लिए फीचर सक्षम करें', + enableText: 'फीचर सक्षम', + manage: 'प्रबंधित करें', + }, + documentUpload: { + title: 'दस्तावेज़', + description: 'दस्तावेज़ सक्षम करने से मॉडल दस्तावेज़ों को स्वीकार कर सकेगा और उनके बारे में प्रश्नों का उत्तर दे सकेगा।', + }, + audioUpload: { + title: 'ऑडियो', + description: 'ऑडियो सक्षम करने से मॉडल ट्रांसक्रिप्शन और विश्लेषण के लिए ऑडियो फ़ाइलों को प्रोसेस कर सकेगा।', + }, }, } diff --git a/web/i18n/it-IT/app-debug.ts b/web/i18n/it-IT/app-debug.ts index 74f41e163..f79cccf6e 100644 --- a/web/i18n/it-IT/app-debug.ts +++ b/web/i18n/it-IT/app-debug.ts @@ -216,6 +216,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Caricamento File', + description: 'La casella di input della chat consente di caricare immagini, documenti e altri file.', + supportedTypes: 'Tipi di File Supportati', + numberLimit: 'Caricamenti massimi', + modalTitle: 'Impostazione Caricamento File', + }, + imageUpload: { + title: 'Caricamento Immagine', + description: 'Consente di caricare immagini.', + supportedTypes: 'Tipi di File Supportati', + numberLimit: 'Caricamenti massimi', + modalTitle: 'Impostazione Caricamento Immagine', + }, + bar: { + empty: 'Abilita funzionalità per migliorare l\'esperienza utente dell\'app web', + enableText: 'Funzionalità Abilitate', + manage: 'Gestisci', + }, + documentUpload: { + title: 'Documento', + description: 'Abilitare Documento consentirà al modello di accettare documenti e rispondere a domande su di essi.', + }, + audioUpload: { + title: 'Audio', + description: 'Abilitare Audio consentirà al modello di elaborare file audio per trascrizione e analisi.', + }, }, automatic: { title: 'Orchestrazione automatizzata delle applicazioni', @@ -316,7 +343,6 @@ const translation = { 'required': 'Richiesto', 'hide': 'Nascondi', 'errorMsg': { - varNameRequired: 'Il nome della variabile è richiesto', labelNameRequired: 'Il nome dell\'etichetta è richiesto', varNameCanBeRepeat: 'Il nome della variabile non può essere ripetuto', atLeastOneOption: 'È richiesta almeno un\'opzione', diff --git a/web/i18n/ja-JP/app-debug.ts b/web/i18n/ja-JP/app-debug.ts index 411da76f7..d13a64213 100644 --- a/web/i18n/ja-JP/app-debug.ts +++ b/web/i18n/ja-JP/app-debug.ts @@ -222,6 +222,10 @@ const translation = { title: 'ドキュメント', description: 'ドキュメント機能を有効にすると、AI モデルがファイルを処理し、その内容に基づいて質問に回答できるようになります。', }, + audioUpload: { + title: '音声', + description: '音声機能を有効にすると、モデルが音声ファイルの転写と分析を処理できるようになります。', + }, }, codegen: { title: 'コードジェネレーター', @@ -307,6 +311,9 @@ const translation = { waitForImgUpload: '画像のアップロードが完了するまでお待ちください', waitForFileUpload: 'ファイルのアップロードが完了するまでお待ちください', }, + warningMessage: { + timeoutExceeded: 'タイムアウトのため結果が表示されません。完全な結果を取得するにはログを参照してください。', + }, chatSubTitle: 'プロンプト', completionSubTitle: '接頭辞プロンプト', promptTip: 'プロンプトは、AI の応答を指示と制約で誘導します。 {{input}} のような変数を挿入します。このプロンプトはユーザーには表示されません。', @@ -386,7 +393,6 @@ const translation = { 'maxNumberOfUploads': 'アップロードの最大数', 'maxNumberTip': 'ドキュメント < {{docLimit}}, 画像 < {{imgLimit}}, 音声 < {{audioLimit}}, 映像 < {{videoLimit}}', 'errorMsg': { - varNameRequired: '変数名は必須です', labelNameRequired: 'ラベル名は必須です', varNameCanBeRepeat: '変数名は繰り返すことができません', atLeastOneOption: '少なくとも 1 つのオプションが必要です', diff --git a/web/i18n/ko-KR/app-debug.ts b/web/i18n/ko-KR/app-debug.ts index 2d28d85e9..f9bc9978d 100644 --- a/web/i18n/ko-KR/app-debug.ts +++ b/web/i18n/ko-KR/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: '파일 업로드', + description: '채팅 입력 상자에서 이미지, 문서 및 기타 파일 업로드를 지원합니다.', + supportedTypes: '지원 파일 유형', + numberLimit: '최대 업로드 수', + modalTitle: '파일 업로드 설정', + }, + imageUpload: { + title: '이미지 업로드', + description: '이미지 업로드를 지원합니다.', + supportedTypes: '지원 파일 유형', + numberLimit: '최대 업로드 수', + modalTitle: '이미지 업로드 설정', + }, + bar: { + empty: '웹 앱 사용자 경험을 향상시키는 기능 활성화', + enableText: '기능 활성화됨', + manage: '관리', + }, + documentUpload: { + title: '문서', + description: '문서를 활성화하면 모델이 문서를 받아들이고 문서에 대한 질문에 답할 수 있습니다.', + }, + audioUpload: { + title: '오디오', + description: '오디오를 활성화하면 모델이 전사 및 분석을 위해 오디오 파일을 처리할 수 있습니다.', + }, }, automatic: { title: '자동 어플리케이션 오케스트레이션', @@ -281,7 +308,6 @@ const translation = { 'required': '필수', 'hide': '숨기기', 'errorMsg': { - varNameRequired: '변수명은 필수입니다', labelNameRequired: '레이블명은 필수입니다', varNameCanBeRepeat: '변수명은 중복될 수 없습니다', atLeastOneOption: '적어도 하나의 옵션이 필요합니다', diff --git a/web/i18n/pl-PL/app-debug.ts b/web/i18n/pl-PL/app-debug.ts index d6b7acd67..06e271fbb 100644 --- a/web/i18n/pl-PL/app-debug.ts +++ b/web/i18n/pl-PL/app-debug.ts @@ -214,6 +214,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Przesyłanie plików', + description: 'Pole wprowadzania czatu umożliwia przesyłanie obrazów, dokumentów i innych plików.', + supportedTypes: 'Obsługiwane typy plików', + numberLimit: 'Maksymalna liczba przesłanych plików', + modalTitle: 'Ustawienia przesyłania plików', + }, + imageUpload: { + title: 'Przesyłanie obrazów', + description: 'Umożliwia przesyłanie obrazów.', + supportedTypes: 'Obsługiwane typy plików', + numberLimit: 'Maksymalna liczba przesłanych plików', + modalTitle: 'Ustawienia przesyłania obrazów', + }, + bar: { + empty: 'Włącz funkcje aby poprawić doświadczenie użytkownika aplikacji webowej', + enableText: 'Funkcje włączone', + manage: 'Zarządzaj', + }, + documentUpload: { + title: 'Dokument', + description: 'Włączenie Dokumentu pozwoli modelowi na przyjmowanie dokumentów i odpowiadanie na pytania o nich.', + }, + audioUpload: { + title: 'Dźwięk', + description: 'Włączenie Dźwięku pozwoli modelowi na przetwarzanie plików audio do transkrypcji i analizy.', + }, }, automatic: { title: 'Zautomatyzowana orkiestracja aplikacji', @@ -311,7 +338,6 @@ const translation = { 'required': 'Wymagane', 'hide': 'Ukryj', 'errorMsg': { - varNameRequired: 'Wymagana nazwa zmiennej', labelNameRequired: 'Wymagana nazwa etykiety', varNameCanBeRepeat: 'Nazwa zmiennej nie może się powtarzać', atLeastOneOption: 'Wymagana jest co najmniej jedna opcja', diff --git a/web/i18n/pt-BR/app-debug.ts b/web/i18n/pt-BR/app-debug.ts index 0b031361a..5f8aabec6 100644 --- a/web/i18n/pt-BR/app-debug.ts +++ b/web/i18n/pt-BR/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Upload de Arquivo', + description: 'A caixa de entrada do chat permite fazer upload de imagens, documentos e outros arquivos.', + supportedTypes: 'Tipos de Arquivo Suportados', + numberLimit: 'Máximo de uploads', + modalTitle: 'Configuração de Upload de Arquivo', + }, + imageUpload: { + title: 'Upload de Imagem', + description: 'Permite fazer upload de imagens.', + supportedTypes: 'Tipos de Arquivo Suportados', + numberLimit: 'Máximo de uploads', + modalTitle: 'Configuração de Upload de Imagem', + }, + bar: { + empty: 'Habilitar recursos para melhorar a experiência do usuário do aplicativo web', + enableText: 'Recursos Habilitados', + manage: 'Gerenciar', + }, + documentUpload: { + title: 'Documento', + description: 'Habilitar Documento permitirá que o modelo aceite documentos e responda perguntas sobre eles.', + }, + audioUpload: { + title: 'Áudio', + description: 'Habilitar Áudio permitirá que o modelo processe arquivos de áudio para transcrição e análise.', + }, }, automatic: { title: 'Orquestração Automatizada de Aplicativos', @@ -287,7 +314,6 @@ const translation = { 'required': 'Obrigatório', 'hide': 'Ocultar', 'errorMsg': { - varNameRequired: 'O nome da variável é obrigatório', labelNameRequired: 'O nome do rótulo é obrigatório', varNameCanBeRepeat: 'O nome da variável não pode ser repetido', atLeastOneOption: 'Pelo menos uma opção é obrigatória', diff --git a/web/i18n/ro-RO/app-debug.ts b/web/i18n/ro-RO/app-debug.ts index ad5975496..f6a10df1d 100644 --- a/web/i18n/ro-RO/app-debug.ts +++ b/web/i18n/ro-RO/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Încărcare fișier', + description: 'Caseta de intrare chat permite încărcarea de imagini, documente și alte fișiere.', + supportedTypes: 'Tipuri de fișiere suportate', + numberLimit: 'Numărul maxim de încărcări', + modalTitle: 'Setări încărcare fișier', + }, + imageUpload: { + title: 'Încărcare imagine', + description: 'Permite încărcarea imaginilor.', + supportedTypes: 'Tipuri de fișiere suportate', + numberLimit: 'Numărul maxim de încărcări', + modalTitle: 'Setări încărcare imagine', + }, + bar: { + empty: 'Activează funcții pentru a îmbunătăți experiența utilizatorilor aplicației web', + enableText: 'Funcții activate', + manage: 'Gestionează', + }, + documentUpload: { + title: 'Document', + description: 'Activarea Documentului va permite modelului să primească documente și să răspundă la întrebări despre ele.', + }, + audioUpload: { + title: 'Audio', + description: 'Activarea Audio va permite modelului să proceseze fișiere audio pentru transcriere și analiză.', + }, }, automatic: { title: 'Orchestrarea automată a aplicațiilor', @@ -287,7 +314,6 @@ const translation = { 'required': 'Obligatoriu', 'hide': 'Ascundeți', 'errorMsg': { - varNameRequired: 'Numele variabilei este obligatoriu', labelNameRequired: 'Numele etichetei este obligatoriu', varNameCanBeRepeat: 'Numele variabilei nu poate fi repetat', atLeastOneOption: 'Este necesară cel puțin o opțiune', diff --git a/web/i18n/ru-RU/app-debug.ts b/web/i18n/ru-RU/app-debug.ts index cf0683994..1d45c90a4 100644 --- a/web/i18n/ru-RU/app-debug.ts +++ b/web/i18n/ru-RU/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Загрузка файлов', + description: 'Поле ввода чата позволяет загружать изображения, документы и другие файлы.', + supportedTypes: 'Поддерживаемые типы файлов', + numberLimit: 'Максимум загрузок', + modalTitle: 'Настройка загрузки файлов', + }, + imageUpload: { + title: 'Загрузка изображений', + description: 'Позволяет загружать изображения.', + supportedTypes: 'Поддерживаемые типы файлов', + numberLimit: 'Максимум загрузок', + modalTitle: 'Настройка загрузки изображений', + }, + bar: { + empty: 'Включить функции для улучшения пользовательского опыта веб-приложения', + enableText: 'Функции включены', + manage: 'Управлять', + }, + documentUpload: { + title: 'Документ', + description: 'Включение Документа позволит модели принимать документы и отвечать на вопросы о них.', + }, + audioUpload: { + title: 'Аудио', + description: 'Включение Аудио позволит модели обрабатывать аудиофайлы для транскрипции и анализа.', + }, }, generate: { title: 'Генератор промпта', diff --git a/web/i18n/sl-SI/app-debug.ts b/web/i18n/sl-SI/app-debug.ts index 7e5c7dd6b..597a8afa0 100644 --- a/web/i18n/sl-SI/app-debug.ts +++ b/web/i18n/sl-SI/app-debug.ts @@ -236,6 +236,33 @@ const translation = { ok: 'V redu', }, }, + fileUpload: { + title: 'Nalaganje datoteke', + description: 'Pogovorno polje omogoča nalaganje slik, dokumentov in drugih datotek.', + supportedTypes: 'Podprte vrste datotek', + numberLimit: 'Največje število nalaganj', + modalTitle: 'Nastavitve nalaganja datoteke', + }, + imageUpload: { + title: 'Nalaganje slike', + description: 'Omogoči nalaganje slik.', + supportedTypes: 'Podprte vrste datotek', + numberLimit: 'Največje število nalaganj', + modalTitle: 'Nastavitve nalaganja slike', + }, + bar: { + empty: 'Omogoči funkcije za izboljšanje uporabniške izkušnje spletne aplikacije', + enableText: 'Funkcije omogočene', + manage: 'Upravljaj', + }, + documentUpload: { + title: 'Dokument', + description: 'Omogočitev dokumenta bo omogočila modelu, da sprejme dokumente in odgovori na vprašanja o njih.', + }, + audioUpload: { + title: 'Zvok', + description: 'Omogočitev zvoka bo omogočila modelu, da obdela zvočne datoteke za prepisovanje in analizo.', + }, }, } diff --git a/web/i18n/th-TH/app-debug.ts b/web/i18n/th-TH/app-debug.ts index 928649474..a2e939b5f 100644 --- a/web/i18n/th-TH/app-debug.ts +++ b/web/i18n/th-TH/app-debug.ts @@ -1,4 +1,33 @@ const translation = { + feature: { + fileUpload: { + title: 'การอัปโหลดไฟล์', + description: 'กล่องข้อความแชทช่วยให้สามารถอัปโหลดรูปภาพ เอกสาร และไฟล์อื่นๆ ได้', + supportedTypes: 'ประเภทไฟล์ที่รองรับ', + numberLimit: 'จำนวนสูงสุดที่อัปโหลดได้', + modalTitle: 'การตั้งค่าการอัปโหลดไฟล์', + }, + imageUpload: { + title: 'การอัปโหลดรูปภาพ', + description: 'อนุญาตให้อัปโหลดรูปภาพได้', + supportedTypes: 'ประเภทไฟล์ที่รองรับ', + numberLimit: 'จำนวนสูงสุดที่อัปโหลดได้', + modalTitle: 'การตั้งค่าการอัปโหลดรูปภาพ', + }, + bar: { + empty: 'เปิดใช้งานคุณสมบัติเพื่อเพิ่มประสบการณ์ผู้ใช้ของเว็บแอป', + enableText: 'เปิดใช้งานคุณสมบัติแล้ว', + manage: 'จัดการ', + }, + documentUpload: { + title: 'เอกสาร', + description: 'การเปิดใช้งานเอกสารจะทำให้โมเดลสามารถรับเอกสารและตอบคำถามเกี่ยวกับเอกสารเหล่านั้นได้', + }, + audioUpload: { + title: 'เสียง', + description: 'การเปิดใช้งานเสียงจะทำให้โมเดลสามารถประมวลผลไฟล์เสียงเพื่อการถอดข้อความและการวิเคราะห์ได้', + }, + }, } export default translation diff --git a/web/i18n/tr-TR/app-debug.ts b/web/i18n/tr-TR/app-debug.ts index 239bcffea..631974edb 100644 --- a/web/i18n/tr-TR/app-debug.ts +++ b/web/i18n/tr-TR/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Dosya Yükleme', + description: 'Sohbet giriş kutusu görüntü, belge ve diğer dosyaların yüklenmesine izin verir.', + supportedTypes: 'Desteklenen Dosya Türleri', + numberLimit: 'Maksimum yükleme sayısı', + modalTitle: 'Dosya Yükleme Ayarları', + }, + imageUpload: { + title: 'Görüntü Yükleme', + description: 'Görüntü yüklemeye izin verir.', + supportedTypes: 'Desteklenen Dosya Türleri', + numberLimit: 'Maksimum yükleme sayısı', + modalTitle: 'Görüntü Yükleme Ayarları', + }, + bar: { + empty: 'Web uygulaması kullanıcı deneyimini geliştirmek için özellikleri etkinleştirin', + enableText: 'Özellikler Etkinleştirildi', + manage: 'Yönet', + }, + documentUpload: { + title: 'Belge', + description: 'Belgeyi etkinleştirmek modelin belgeleri almasına ve bunlar hakkında sorulara cevap vermesine izin verir.', + }, + audioUpload: { + title: 'Ses', + description: 'Sesi etkinleştirmek modelin transkripsiyon ve analiz için ses dosyalarını işlemesine izin verir.', + }, }, generate: { title: 'Prompt Oluşturucu', @@ -323,7 +350,6 @@ const translation = { content: 'İçerik', required: 'Gerekli', errorMsg: { - varNameRequired: 'Değişken adı gereklidir', labelNameRequired: 'Etiket adı gereklidir', varNameCanBeRepeat: 'Değişken adı tekrar edemez', atLeastOneOption: 'En az bir seçenek gereklidir', diff --git a/web/i18n/uk-UA/app-debug.ts b/web/i18n/uk-UA/app-debug.ts index f9614507b..fe6fefa80 100644 --- a/web/i18n/uk-UA/app-debug.ts +++ b/web/i18n/uk-UA/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Завантаження файлу', + description: 'Поле вводу чату дозволяє завантажувати зображення, документи та інші файли.', + supportedTypes: 'Підтримувані типи файлів', + numberLimit: 'Максимальна кількість завантажень', + modalTitle: 'Налаштування завантаження файлів', + }, + imageUpload: { + title: 'Завантаження зображення', + description: 'Дозволити завантаження зображень.', + supportedTypes: 'Підтримувані типи файлів', + numberLimit: 'Максимальна кількість завантажень', + modalTitle: 'Налаштування завантаження зображень', + }, + bar: { + empty: 'Увімкніть функції для покращення користувацького досвіду веб-додатка', + enableText: 'Функції увімкнено', + manage: 'Керувати', + }, + documentUpload: { + title: 'Документ', + description: 'Увімкнення документа дозволить моделі приймати документи та відповідати на запитання про них.', + }, + audioUpload: { + title: 'Аудіо', + description: 'Увімкнення аудіо дозволить моделі обробляти аудіофайли для транскрипції та аналізу.', + }, }, automatic: { title: 'Автоматизована оркестрація застосунків', @@ -281,7 +308,6 @@ const translation = { 'required': 'Обов\'язково', 'hide': 'Приховати', 'errorMsg': { - varNameRequired: 'Потрібно вказати назву змінної', labelNameRequired: 'Потрібно вказати назву мітки', varNameCanBeRepeat: 'Назва змінної не може повторюватися', atLeastOneOption: 'Потрібно щонайменше одну опцію', diff --git a/web/i18n/vi-VN/app-debug.ts b/web/i18n/vi-VN/app-debug.ts index a63fcb183..381b76630 100644 --- a/web/i18n/vi-VN/app-debug.ts +++ b/web/i18n/vi-VN/app-debug.ts @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: 'Tải lên tệp', + description: 'Hộp nhập chat cho phép tải lên hình ảnh, tài liệu và các tệp khác.', + supportedTypes: 'Các loại tệp được hỗ trợ', + numberLimit: 'Số lượng tối đa có thể tải lên', + modalTitle: 'Cài đặt tải lên tệp', + }, + imageUpload: { + title: 'Tải lên hình ảnh', + description: 'Cho phép tải lên hình ảnh.', + supportedTypes: 'Các loại tệp được hỗ trợ', + numberLimit: 'Số lượng tối đa có thể tải lên', + modalTitle: 'Cài đặt tải lên hình ảnh', + }, + bar: { + empty: 'Bật tính năng để cải thiện trải nghiệm người dùng ứng dụng web', + enableText: 'Tính năng đã được bật', + manage: 'Quản lý', + }, + documentUpload: { + title: 'Tài liệu', + description: 'Bật tài liệu sẽ cho phép mô hình nhận tài liệu và trả lời các câu hỏi về chúng.', + }, + audioUpload: { + title: 'Âm thanh', + description: 'Bật âm thanh sẽ cho phép mô hình xử lý các tệp âm thanh để phiên âm và phân tích.', + }, }, automatic: { title: 'Tự động hóa triển khai ứng dụng', @@ -281,7 +308,6 @@ const translation = { 'required': 'Bắt buộc', 'hide': 'Ẩn', 'errorMsg': { - varNameRequired: 'Tên biến là bắt buộc', labelNameRequired: 'Tên nhãn là bắt buộc', varNameCanBeRepeat: 'Tên biến không được trùng lặp', atLeastOneOption: 'Cần ít nhất một tùy chọn', diff --git a/web/i18n/zh-Hans/app-debug.ts b/web/i18n/zh-Hans/app-debug.ts index 816915661..8bdb56ac6 100644 --- a/web/i18n/zh-Hans/app-debug.ts +++ b/web/i18n/zh-Hans/app-debug.ts @@ -222,6 +222,10 @@ const translation = { title: '文档', description: '启用文档后,模型可以接收文档并回答关于它们的问题。', }, + audioUpload: { + title: '音频', + description: '启用音频后,模型可以处理音频文件进行转录和分析。', + }, }, codegen: { title: '代码生成器', @@ -307,6 +311,9 @@ const translation = { waitForImgUpload: '请等待图片上传完成', waitForFileUpload: '请等待文件上传完成', }, + warningMessage: { + timeoutExceeded: '由于超时,结果未显示。请参考日志获取完整结果。', + }, chatSubTitle: '提示词', completionSubTitle: '前缀提示词', promptTip: diff --git a/web/i18n/zh-Hant/app-debug.ts b/web/i18n/zh-Hant/app-debug.ts index ccee536d5..434bc830a 100644 --- a/web/i18n/zh-Hant/app-debug.ts +++ b/web/i18n/zh-Hant/app-debug.ts @@ -25,7 +25,7 @@ const translation = { debugConfig: '除錯', addFeature: '新增功能', automatic: '產生', - stopResponding: '停止響應', + stopResponding: '停止回應', agree: '贊同', disagree: '反對', cancelAgree: '取消贊同', @@ -198,6 +198,33 @@ const translation = { }, }, }, + fileUpload: { + title: '檔案上傳', + description: '聊天輸入框支援上傳檔案。類型包括圖片、文件以及其它類型', + supportedTypes: '支援的檔案類型', + numberLimit: '最大上傳數', + modalTitle: '檔案上傳設定', + }, + imageUpload: { + title: '圖片上傳', + description: '支援上傳圖片', + supportedTypes: '支援的檔案類型', + numberLimit: '最大上傳數', + modalTitle: '圖片上傳設定', + }, + bar: { + empty: '開啟功能增強 web app 使用者體驗', + enableText: '功能已開啟', + manage: '管理', + }, + documentUpload: { + title: '文件', + description: '啟用文件後,模型可以接收文件並回答關於它們的問題。', + }, + audioUpload: { + title: '音訊', + description: '啟用音訊後,模型可以處理音訊檔案進行轉錄和分析。', + }, }, resetConfig: { title: '確認重置?',