| /** | |||||
| * 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) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }) |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | resetConfig: { | ||||
| title: 'Zurücksetzen bestätigen?', | title: 'Zurücksetzen bestätigen?', |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | automatic: { | ||||
| title: 'Orquestación automatizada de aplicaciones', | title: 'Orquestación automatizada de aplicaciones', | ||||
| 'required': 'Requerido', | 'required': 'Requerido', | ||||
| 'hide': 'Ocultar', | 'hide': 'Ocultar', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'Nombre de la variable es requerido', | |||||
| labelNameRequired: 'Nombre de la etiqueta es requerido', | labelNameRequired: 'Nombre de la etiqueta es requerido', | ||||
| varNameCanBeRepeat: 'El nombre de la variable no puede repetirse', | varNameCanBeRepeat: 'El nombre de la variable no puede repetirse', | ||||
| atLeastOneOption: 'Se requiere al menos una opción', | atLeastOneOption: 'Se requiere al menos una opción', |
| 'required': 'مورد نیاز', | 'required': 'مورد نیاز', | ||||
| 'hide': 'مخفی کردن', | 'hide': 'مخفی کردن', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'نام متغیر مورد نیاز است', | |||||
| labelNameRequired: 'نام برچسب مورد نیاز است', | labelNameRequired: 'نام برچسب مورد نیاز است', | ||||
| varNameCanBeRepeat: 'نام متغیر نمیتواند تکراری باشد', | varNameCanBeRepeat: 'نام متغیر نمیتواند تکراری باشد', | ||||
| atLeastOneOption: 'حداقل یک گزینه مورد نیاز است', | atLeastOneOption: 'حداقل یک گزینه مورد نیاز است', | ||||
| enabled: 'فعال', | enabled: 'فعال', | ||||
| }, | }, | ||||
| }, | }, | ||||
| fileUpload: { | |||||
| title: 'آپلود فایل', | |||||
| description: 'جعبه ورودی چت امکان آپلود تصاویر، اسناد و سایر فایلها را فراهم میکند.', | |||||
| supportedTypes: 'انواع فایلهای پشتیبانی شده', | |||||
| numberLimit: 'حداکثر آپلود', | |||||
| modalTitle: 'تنظیمات آپلود فایل', | |||||
| }, | |||||
| imageUpload: { | |||||
| title: 'آپلود تصویر', | |||||
| description: 'امکان آپلود تصاویر را فراهم میکند.', | |||||
| supportedTypes: 'انواع فایلهای پشتیبانی شده', | |||||
| numberLimit: 'حداکثر آپلود', | |||||
| modalTitle: 'تنظیمات آپلود تصویر', | |||||
| }, | |||||
| bar: { | |||||
| empty: 'فعالسازی ویژگی برای بهبود تجربه کاربری اپلیکیشن وب', | |||||
| enableText: 'ویژگیهای فعال', | |||||
| manage: 'مدیریت', | |||||
| }, | |||||
| documentUpload: { | |||||
| title: 'سند', | |||||
| description: 'فعالسازی سند به مدل اجازه میدهد اسناد را دریافت کرده و درباره آنها پاسخ دهد.', | |||||
| }, | |||||
| audioUpload: { | |||||
| title: 'صوتی', | |||||
| description: 'فعالسازی صوت به مدل اجازه میدهد فایلهای صوتی را برای رونویسی و تجزیه و تحلیل پردازش کند.', | |||||
| }, | |||||
| }, | }, | ||||
| } | } | ||||
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | resetConfig: { | ||||
| title: 'Confirmer la réinitialisation ?', | title: 'Confirmer la réinitialisation ?', | ||||
| 'required': 'Required', | 'required': 'Required', | ||||
| 'hide': 'Caché', | 'hide': 'Caché', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'Variable name is required', | |||||
| labelNameRequired: 'Label name is required', | labelNameRequired: 'Label name is required', | ||||
| varNameCanBeRepeat: 'Variable name can not be repeated', | varNameCanBeRepeat: 'Variable name can not be repeated', | ||||
| atLeastOneOption: 'At least one option is required', | atLeastOneOption: 'At least one option is required', |
| 'required': 'आवश्यक', | 'required': 'आवश्यक', | ||||
| 'hide': 'छुपाएँ', | 'hide': 'छुपाएँ', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'वेरिएबल नाम आवश्यक है', | |||||
| labelNameRequired: 'लेबल नाम आवश्यक है', | labelNameRequired: 'लेबल नाम आवश्यक है', | ||||
| varNameCanBeRepeat: 'वेरिएबल नाम दोहराया नहीं जा सकता', | varNameCanBeRepeat: 'वेरिएबल नाम दोहराया नहीं जा सकता', | ||||
| atLeastOneOption: 'कम से कम एक विकल्प आवश्यक है', | atLeastOneOption: 'कम से कम एक विकल्प आवश्यक है', | ||||
| 'उपकरणों का उपयोग करके एलएलएम की क्षमताओं का विस्तार किया जा सकता है, जैसे इंटरनेट पर खोज करना या वैज्ञानिक गणनाएँ करना', | 'उपकरणों का उपयोग करके एलएलएम की क्षमताओं का विस्तार किया जा सकता है, जैसे इंटरनेट पर खोज करना या वैज्ञानिक गणनाएँ करना', | ||||
| enabled: 'सक्षम', | enabled: 'सक्षम', | ||||
| }, | }, | ||||
| fileUpload: { | |||||
| title: 'फ़ाइल अपलोड', | |||||
| description: 'चैट इनपुट बॉक्स छवियों, दस्तावेज़ों और अन्य फ़ाइलों को अपलोड करने की अनुमति देता है।', | |||||
| supportedTypes: 'समर्थित फ़ाइल प्रकार', | |||||
| numberLimit: 'अधिकतम अपलोड', | |||||
| modalTitle: 'फ़ाइल अपलोड सेटिंग', | |||||
| }, | |||||
| imageUpload: { | |||||
| title: 'छवि अपलोड', | |||||
| description: 'छवियों को अपलोड करने की अनुमति दें।', | |||||
| supportedTypes: 'समर्थित फ़ाइल प्रकार', | |||||
| numberLimit: 'अधिकतम अपलोड', | |||||
| modalTitle: 'छवि अपलोड सेटिंग', | |||||
| }, | |||||
| bar: { | |||||
| empty: 'वेब ऐप उपयोगकर्ता अनुभव को बेहतर बनाने के लिए फीचर सक्षम करें', | |||||
| enableText: 'फीचर सक्षम', | |||||
| manage: 'प्रबंधित करें', | |||||
| }, | |||||
| documentUpload: { | |||||
| title: 'दस्तावेज़', | |||||
| description: 'दस्तावेज़ सक्षम करने से मॉडल दस्तावेज़ों को स्वीकार कर सकेगा और उनके बारे में प्रश्नों का उत्तर दे सकेगा।', | |||||
| }, | |||||
| audioUpload: { | |||||
| title: 'ऑडियो', | |||||
| description: 'ऑडियो सक्षम करने से मॉडल ट्रांसक्रिप्शन और विश्लेषण के लिए ऑडियो फ़ाइलों को प्रोसेस कर सकेगा।', | |||||
| }, | |||||
| }, | }, | ||||
| } | } | ||||
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | automatic: { | ||||
| title: 'Orchestrazione automatizzata delle applicazioni', | title: 'Orchestrazione automatizzata delle applicazioni', | ||||
| 'required': 'Richiesto', | 'required': 'Richiesto', | ||||
| 'hide': 'Nascondi', | 'hide': 'Nascondi', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'Il nome della variabile è richiesto', | |||||
| labelNameRequired: 'Il nome dell\'etichetta è richiesto', | labelNameRequired: 'Il nome dell\'etichetta è richiesto', | ||||
| varNameCanBeRepeat: 'Il nome della variabile non può essere ripetuto', | varNameCanBeRepeat: 'Il nome della variabile non può essere ripetuto', | ||||
| atLeastOneOption: 'È richiesta almeno un\'opzione', | atLeastOneOption: 'È richiesta almeno un\'opzione', |
| title: 'ドキュメント', | title: 'ドキュメント', | ||||
| description: 'ドキュメント機能を有効にすると、AI モデルがファイルを処理し、その内容に基づいて質問に回答できるようになります。', | description: 'ドキュメント機能を有効にすると、AI モデルがファイルを処理し、その内容に基づいて質問に回答できるようになります。', | ||||
| }, | }, | ||||
| audioUpload: { | |||||
| title: '音声', | |||||
| description: '音声機能を有効にすると、モデルが音声ファイルの転写と分析を処理できるようになります。', | |||||
| }, | |||||
| }, | }, | ||||
| codegen: { | codegen: { | ||||
| title: 'コードジェネレーター', | title: 'コードジェネレーター', | ||||
| waitForImgUpload: '画像のアップロードが完了するまでお待ちください', | waitForImgUpload: '画像のアップロードが完了するまでお待ちください', | ||||
| waitForFileUpload: 'ファイルのアップロードが完了するまでお待ちください', | waitForFileUpload: 'ファイルのアップロードが完了するまでお待ちください', | ||||
| }, | }, | ||||
| warningMessage: { | |||||
| timeoutExceeded: 'タイムアウトのため結果が表示されません。完全な結果を取得するにはログを参照してください。', | |||||
| }, | |||||
| chatSubTitle: 'プロンプト', | chatSubTitle: 'プロンプト', | ||||
| completionSubTitle: '接頭辞プロンプト', | completionSubTitle: '接頭辞プロンプト', | ||||
| promptTip: 'プロンプトは、AI の応答を指示と制約で誘導します。 {{input}} のような変数を挿入します。このプロンプトはユーザーには表示されません。', | promptTip: 'プロンプトは、AI の応答を指示と制約で誘導します。 {{input}} のような変数を挿入します。このプロンプトはユーザーには表示されません。', | ||||
| 'maxNumberOfUploads': 'アップロードの最大数', | 'maxNumberOfUploads': 'アップロードの最大数', | ||||
| 'maxNumberTip': 'ドキュメント < {{docLimit}}, 画像 < {{imgLimit}}, 音声 < {{audioLimit}}, 映像 < {{videoLimit}}', | 'maxNumberTip': 'ドキュメント < {{docLimit}}, 画像 < {{imgLimit}}, 音声 < {{audioLimit}}, 映像 < {{videoLimit}}', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: '変数名は必須です', | |||||
| labelNameRequired: 'ラベル名は必須です', | labelNameRequired: 'ラベル名は必須です', | ||||
| varNameCanBeRepeat: '変数名は繰り返すことができません', | varNameCanBeRepeat: '変数名は繰り返すことができません', | ||||
| atLeastOneOption: '少なくとも 1 つのオプションが必要です', | atLeastOneOption: '少なくとも 1 つのオプションが必要です', |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| fileUpload: { | |||||
| title: '파일 업로드', | |||||
| description: '채팅 입력 상자에서 이미지, 문서 및 기타 파일 업로드를 지원합니다.', | |||||
| supportedTypes: '지원 파일 유형', | |||||
| numberLimit: '최대 업로드 수', | |||||
| modalTitle: '파일 업로드 설정', | |||||
| }, | |||||
| imageUpload: { | |||||
| title: '이미지 업로드', | |||||
| description: '이미지 업로드를 지원합니다.', | |||||
| supportedTypes: '지원 파일 유형', | |||||
| numberLimit: '최대 업로드 수', | |||||
| modalTitle: '이미지 업로드 설정', | |||||
| }, | |||||
| bar: { | |||||
| empty: '웹 앱 사용자 경험을 향상시키는 기능 활성화', | |||||
| enableText: '기능 활성화됨', | |||||
| manage: '관리', | |||||
| }, | |||||
| documentUpload: { | |||||
| title: '문서', | |||||
| description: '문서를 활성화하면 모델이 문서를 받아들이고 문서에 대한 질문에 답할 수 있습니다.', | |||||
| }, | |||||
| audioUpload: { | |||||
| title: '오디오', | |||||
| description: '오디오를 활성화하면 모델이 전사 및 분석을 위해 오디오 파일을 처리할 수 있습니다.', | |||||
| }, | |||||
| }, | }, | ||||
| automatic: { | automatic: { | ||||
| title: '자동 어플리케이션 오케스트레이션', | title: '자동 어플리케이션 오케스트레이션', | ||||
| 'required': '필수', | 'required': '필수', | ||||
| 'hide': '숨기기', | 'hide': '숨기기', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: '변수명은 필수입니다', | |||||
| labelNameRequired: '레이블명은 필수입니다', | labelNameRequired: '레이블명은 필수입니다', | ||||
| varNameCanBeRepeat: '변수명은 중복될 수 없습니다', | varNameCanBeRepeat: '변수명은 중복될 수 없습니다', | ||||
| atLeastOneOption: '적어도 하나의 옵션이 필요합니다', | atLeastOneOption: '적어도 하나의 옵션이 필요합니다', |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | automatic: { | ||||
| title: 'Zautomatyzowana orkiestracja aplikacji', | title: 'Zautomatyzowana orkiestracja aplikacji', | ||||
| 'required': 'Wymagane', | 'required': 'Wymagane', | ||||
| 'hide': 'Ukryj', | 'hide': 'Ukryj', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'Wymagana nazwa zmiennej', | |||||
| labelNameRequired: 'Wymagana nazwa etykiety', | labelNameRequired: 'Wymagana nazwa etykiety', | ||||
| varNameCanBeRepeat: 'Nazwa zmiennej nie może się powtarzać', | varNameCanBeRepeat: 'Nazwa zmiennej nie może się powtarzać', | ||||
| atLeastOneOption: 'Wymagana jest co najmniej jedna opcja', | atLeastOneOption: 'Wymagana jest co najmniej jedna opcja', |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | automatic: { | ||||
| title: 'Orquestração Automatizada de Aplicativos', | title: 'Orquestração Automatizada de Aplicativos', | ||||
| 'required': 'Obrigatório', | 'required': 'Obrigatório', | ||||
| 'hide': 'Ocultar', | 'hide': 'Ocultar', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'O nome da variável é obrigatório', | |||||
| labelNameRequired: 'O nome do rótulo é obrigatório', | labelNameRequired: 'O nome do rótulo é obrigatório', | ||||
| varNameCanBeRepeat: 'O nome da variável não pode ser repetido', | varNameCanBeRepeat: 'O nome da variável não pode ser repetido', | ||||
| atLeastOneOption: 'Pelo menos uma opção é obrigatória', | atLeastOneOption: 'Pelo menos uma opção é obrigatória', |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | automatic: { | ||||
| title: 'Orchestrarea automată a aplicațiilor', | title: 'Orchestrarea automată a aplicațiilor', | ||||
| 'required': 'Obligatoriu', | 'required': 'Obligatoriu', | ||||
| 'hide': 'Ascundeți', | 'hide': 'Ascundeți', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'Numele variabilei este obligatoriu', | |||||
| labelNameRequired: 'Numele etichetei este obligatoriu', | labelNameRequired: 'Numele etichetei este obligatoriu', | ||||
| varNameCanBeRepeat: 'Numele variabilei nu poate fi repetat', | varNameCanBeRepeat: 'Numele variabilei nu poate fi repetat', | ||||
| atLeastOneOption: 'Este necesară cel puțin o opțiune', | atLeastOneOption: 'Este necesară cel puțin o opțiune', |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| fileUpload: { | |||||
| title: 'Загрузка файлов', | |||||
| description: 'Поле ввода чата позволяет загружать изображения, документы и другие файлы.', | |||||
| supportedTypes: 'Поддерживаемые типы файлов', | |||||
| numberLimit: 'Максимум загрузок', | |||||
| modalTitle: 'Настройка загрузки файлов', | |||||
| }, | |||||
| imageUpload: { | |||||
| title: 'Загрузка изображений', | |||||
| description: 'Позволяет загружать изображения.', | |||||
| supportedTypes: 'Поддерживаемые типы файлов', | |||||
| numberLimit: 'Максимум загрузок', | |||||
| modalTitle: 'Настройка загрузки изображений', | |||||
| }, | |||||
| bar: { | |||||
| empty: 'Включить функции для улучшения пользовательского опыта веб-приложения', | |||||
| enableText: 'Функции включены', | |||||
| manage: 'Управлять', | |||||
| }, | |||||
| documentUpload: { | |||||
| title: 'Документ', | |||||
| description: 'Включение Документа позволит модели принимать документы и отвечать на вопросы о них.', | |||||
| }, | |||||
| audioUpload: { | |||||
| title: 'Аудио', | |||||
| description: 'Включение Аудио позволит модели обрабатывать аудиофайлы для транскрипции и анализа.', | |||||
| }, | |||||
| }, | }, | ||||
| generate: { | generate: { | ||||
| title: 'Генератор промпта', | title: 'Генератор промпта', |
| ok: 'V redu', | 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.', | |||||
| }, | |||||
| }, | }, | ||||
| } | } | ||||
| const translation = { | 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 | export default 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: { | generate: { | ||||
| title: 'Prompt Oluşturucu', | title: 'Prompt Oluşturucu', | ||||
| content: 'İçerik', | content: 'İçerik', | ||||
| required: 'Gerekli', | required: 'Gerekli', | ||||
| errorMsg: { | errorMsg: { | ||||
| varNameRequired: 'Değişken adı gereklidir', | |||||
| labelNameRequired: 'Etiket adı gereklidir', | labelNameRequired: 'Etiket adı gereklidir', | ||||
| varNameCanBeRepeat: 'Değişken adı tekrar edemez', | varNameCanBeRepeat: 'Değişken adı tekrar edemez', | ||||
| atLeastOneOption: 'En az bir seçenek gereklidir', | atLeastOneOption: 'En az bir seçenek gereklidir', |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| fileUpload: { | |||||
| title: 'Завантаження файлу', | |||||
| description: 'Поле вводу чату дозволяє завантажувати зображення, документи та інші файли.', | |||||
| supportedTypes: 'Підтримувані типи файлів', | |||||
| numberLimit: 'Максимальна кількість завантажень', | |||||
| modalTitle: 'Налаштування завантаження файлів', | |||||
| }, | |||||
| imageUpload: { | |||||
| title: 'Завантаження зображення', | |||||
| description: 'Дозволити завантаження зображень.', | |||||
| supportedTypes: 'Підтримувані типи файлів', | |||||
| numberLimit: 'Максимальна кількість завантажень', | |||||
| modalTitle: 'Налаштування завантаження зображень', | |||||
| }, | |||||
| bar: { | |||||
| empty: 'Увімкніть функції для покращення користувацького досвіду веб-додатка', | |||||
| enableText: 'Функції увімкнено', | |||||
| manage: 'Керувати', | |||||
| }, | |||||
| documentUpload: { | |||||
| title: 'Документ', | |||||
| description: 'Увімкнення документа дозволить моделі приймати документи та відповідати на запитання про них.', | |||||
| }, | |||||
| audioUpload: { | |||||
| title: 'Аудіо', | |||||
| description: 'Увімкнення аудіо дозволить моделі обробляти аудіофайли для транскрипції та аналізу.', | |||||
| }, | |||||
| }, | }, | ||||
| automatic: { | automatic: { | ||||
| title: 'Автоматизована оркестрація застосунків', | title: 'Автоматизована оркестрація застосунків', | ||||
| 'required': 'Обов\'язково', | 'required': 'Обов\'язково', | ||||
| 'hide': 'Приховати', | 'hide': 'Приховати', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'Потрібно вказати назву змінної', | |||||
| labelNameRequired: 'Потрібно вказати назву мітки', | labelNameRequired: 'Потрібно вказати назву мітки', | ||||
| varNameCanBeRepeat: 'Назва змінної не може повторюватися', | varNameCanBeRepeat: 'Назва змінної не може повторюватися', | ||||
| atLeastOneOption: 'Потрібно щонайменше одну опцію', | atLeastOneOption: 'Потрібно щонайменше одну опцію', |
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | automatic: { | ||||
| title: 'Tự động hóa triển khai ứng dụng', | title: 'Tự động hóa triển khai ứng dụng', | ||||
| 'required': 'Bắt buộc', | 'required': 'Bắt buộc', | ||||
| 'hide': 'Ẩn', | 'hide': 'Ẩn', | ||||
| 'errorMsg': { | 'errorMsg': { | ||||
| varNameRequired: 'Tên biến là bắt buộc', | |||||
| labelNameRequired: 'Tên nhã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', | varNameCanBeRepeat: 'Tên biến không được trùng lặp', | ||||
| atLeastOneOption: 'Cần ít nhất một tùy chọn', | atLeastOneOption: 'Cần ít nhất một tùy chọn', |
| title: '文档', | title: '文档', | ||||
| description: '启用文档后,模型可以接收文档并回答关于它们的问题。', | description: '启用文档后,模型可以接收文档并回答关于它们的问题。', | ||||
| }, | }, | ||||
| audioUpload: { | |||||
| title: '音频', | |||||
| description: '启用音频后,模型可以处理音频文件进行转录和分析。', | |||||
| }, | |||||
| }, | }, | ||||
| codegen: { | codegen: { | ||||
| title: '代码生成器', | title: '代码生成器', | ||||
| waitForImgUpload: '请等待图片上传完成', | waitForImgUpload: '请等待图片上传完成', | ||||
| waitForFileUpload: '请等待文件上传完成', | waitForFileUpload: '请等待文件上传完成', | ||||
| }, | }, | ||||
| warningMessage: { | |||||
| timeoutExceeded: '由于超时,结果未显示。请参考日志获取完整结果。', | |||||
| }, | |||||
| chatSubTitle: '提示词', | chatSubTitle: '提示词', | ||||
| completionSubTitle: '前缀提示词', | completionSubTitle: '前缀提示词', | ||||
| promptTip: | promptTip: |
| debugConfig: '除錯', | debugConfig: '除錯', | ||||
| addFeature: '新增功能', | addFeature: '新增功能', | ||||
| automatic: '產生', | automatic: '產生', | ||||
| stopResponding: '停止響應', | |||||
| stopResponding: '停止回應', | |||||
| agree: '贊同', | agree: '贊同', | ||||
| disagree: '反對', | disagree: '反對', | ||||
| cancelAgree: '取消贊同', | cancelAgree: '取消贊同', | ||||
| }, | }, | ||||
| }, | }, | ||||
| }, | }, | ||||
| 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: { | resetConfig: { | ||||
| title: '確認重置?', | title: '確認重置?', |