fix(i18n): Complete missing translations and clean up legacy keys in app-debug across all locales (#23062) (#23065)

This commit is contained in:
lyzno1
2025-07-28 19:46:27 +08:00
committed by GitHub
parent 537c04745d
commit 572a2bbe53
20 changed files with 595 additions and 14 deletions

View File

@@ -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)
}
})
})
})

View File

@@ -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: { resetConfig: {
title: 'Zurücksetzen bestätigen?', title: 'Zurücksetzen bestätigen?',

View File

@@ -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: { automatic: {
title: 'Orquestación automatizada de aplicaciones', title: 'Orquestación automatizada de aplicaciones',
@@ -282,7 +309,6 @@ const translation = {
'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',

View File

@@ -317,7 +317,6 @@ const translation = {
'required': 'مورد نیاز', 'required': 'مورد نیاز',
'hide': 'مخفی کردن', 'hide': 'مخفی کردن',
'errorMsg': { 'errorMsg': {
varNameRequired: 'نام متغیر مورد نیاز است',
labelNameRequired: 'نام برچسب مورد نیاز است', labelNameRequired: 'نام برچسب مورد نیاز است',
varNameCanBeRepeat: 'نام متغیر نمی‌تواند تکراری باشد', varNameCanBeRepeat: 'نام متغیر نمی‌تواند تکراری باشد',
atLeastOneOption: 'حداقل یک گزینه مورد نیاز است', atLeastOneOption: 'حداقل یک گزینه مورد نیاز است',
@@ -451,6 +450,33 @@ const translation = {
enabled: 'فعال', enabled: 'فعال',
}, },
}, },
fileUpload: {
title: 'آپلود فایل',
description: 'جعبه ورودی چت امکان آپلود تصاویر، اسناد و سایر فایل‌ها را فراهم می‌کند.',
supportedTypes: 'انواع فایل‌های پشتیبانی شده',
numberLimit: 'حداکثر آپلود',
modalTitle: 'تنظیمات آپلود فایل',
},
imageUpload: {
title: 'آپلود تصویر',
description: 'امکان آپلود تصاویر را فراهم می‌کند.',
supportedTypes: 'انواع فایل‌های پشتیبانی شده',
numberLimit: 'حداکثر آپلود',
modalTitle: 'تنظیمات آپلود تصویر',
},
bar: {
empty: 'فعال‌سازی ویژگی برای بهبود تجربه کاربری اپلیکیشن وب',
enableText: 'ویژگی‌های فعال',
manage: 'مدیریت',
},
documentUpload: {
title: 'سند',
description: 'فعال‌سازی سند به مدل اجازه می‌دهد اسناد را دریافت کرده و درباره آن‌ها پاسخ دهد.',
},
audioUpload: {
title: 'صوتی',
description: 'فعال‌سازی صوت به مدل اجازه می‌دهد فایل‌های صوتی را برای رونویسی و تجزیه و تحلیل پردازش کند.',
},
}, },
} }

View File

@@ -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: { resetConfig: {
title: 'Confirmer la réinitialisation ?', title: 'Confirmer la réinitialisation ?',
@@ -270,7 +297,6 @@ const translation = {
'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',

View File

@@ -314,7 +314,6 @@ const translation = {
'required': 'आवश्यक', 'required': 'आवश्यक',
'hide': 'छुपाएँ', 'hide': 'छुपाएँ',
'errorMsg': { 'errorMsg': {
varNameRequired: 'वेरिएबल नाम आवश्यक है',
labelNameRequired: 'लेबल नाम आवश्यक है', labelNameRequired: 'लेबल नाम आवश्यक है',
varNameCanBeRepeat: 'वेरिएबल नाम दोहराया नहीं जा सकता', varNameCanBeRepeat: 'वेरिएबल नाम दोहराया नहीं जा सकता',
atLeastOneOption: 'कम से कम एक विकल्प आवश्यक है', atLeastOneOption: 'कम से कम एक विकल्प आवश्यक है',
@@ -468,6 +467,33 @@ const translation = {
'उपकरणों का उपयोग करके एलएलएम की क्षमताओं का विस्तार किया जा सकता है, जैसे इंटरनेट पर खोज करना या वैज्ञानिक गणनाएँ करना', 'उपकरणों का उपयोग करके एलएलएम की क्षमताओं का विस्तार किया जा सकता है, जैसे इंटरनेट पर खोज करना या वैज्ञानिक गणनाएँ करना',
enabled: 'सक्षम', enabled: 'सक्षम',
}, },
fileUpload: {
title: 'फ़ाइल अपलोड',
description: 'चैट इनपुट बॉक्स छवियों, दस्तावेज़ों और अन्य फ़ाइलों को अपलोड करने की अनुमति देता है।',
supportedTypes: 'समर्थित फ़ाइल प्रकार',
numberLimit: 'अधिकतम अपलोड',
modalTitle: 'फ़ाइल अपलोड सेटिंग',
},
imageUpload: {
title: 'छवि अपलोड',
description: 'छवियों को अपलोड करने की अनुमति दें।',
supportedTypes: 'समर्थित फ़ाइल प्रकार',
numberLimit: 'अधिकतम अपलोड',
modalTitle: 'छवि अपलोड सेटिंग',
},
bar: {
empty: 'वेब ऐप उपयोगकर्ता अनुभव को बेहतर बनाने के लिए फीचर सक्षम करें',
enableText: 'फीचर सक्षम',
manage: 'प्रबंधित करें',
},
documentUpload: {
title: 'दस्तावेज़',
description: 'दस्तावेज़ सक्षम करने से मॉडल दस्तावेज़ों को स्वीकार कर सकेगा और उनके बारे में प्रश्नों का उत्तर दे सकेगा।',
},
audioUpload: {
title: 'ऑडियो',
description: 'ऑडियो सक्षम करने से मॉडल ट्रांसक्रिप्शन और विश्लेषण के लिए ऑडियो फ़ाइलों को प्रोसेस कर सकेगा।',
},
}, },
} }

View File

@@ -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: { automatic: {
title: 'Orchestrazione automatizzata delle applicazioni', title: 'Orchestrazione automatizzata delle applicazioni',
@@ -316,7 +343,6 @@ const translation = {
'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',

View File

@@ -222,6 +222,10 @@ const translation = {
title: 'ドキュメント', title: 'ドキュメント',
description: 'ドキュメント機能を有効にすると、AI モデルがファイルを処理し、その内容に基づいて質問に回答できるようになります。', description: 'ドキュメント機能を有効にすると、AI モデルがファイルを処理し、その内容に基づいて質問に回答できるようになります。',
}, },
audioUpload: {
title: '音声',
description: '音声機能を有効にすると、モデルが音声ファイルの転写と分析を処理できるようになります。',
},
}, },
codegen: { codegen: {
title: 'コードジェネレーター', title: 'コードジェネレーター',
@@ -307,6 +311,9 @@ const translation = {
waitForImgUpload: '画像のアップロードが完了するまでお待ちください', waitForImgUpload: '画像のアップロードが完了するまでお待ちください',
waitForFileUpload: 'ファイルのアップロードが完了するまでお待ちください', waitForFileUpload: 'ファイルのアップロードが完了するまでお待ちください',
}, },
warningMessage: {
timeoutExceeded: 'タイムアウトのため結果が表示されません。完全な結果を取得するにはログを参照してください。',
},
chatSubTitle: 'プロンプト', chatSubTitle: 'プロンプト',
completionSubTitle: '接頭辞プロンプト', completionSubTitle: '接頭辞プロンプト',
promptTip: 'プロンプトは、AI の応答を指示と制約で誘導します。 {{input}} のような変数を挿入します。このプロンプトはユーザーには表示されません。', promptTip: 'プロンプトは、AI の応答を指示と制約で誘導します。 {{input}} のような変数を挿入します。このプロンプトはユーザーには表示されません。',
@@ -386,7 +393,6 @@ const translation = {
'maxNumberOfUploads': 'アップロードの最大数', 'maxNumberOfUploads': 'アップロードの最大数',
'maxNumberTip': 'ドキュメント < {{docLimit}}, 画像 < {{imgLimit}}, 音声 < {{audioLimit}}, 映像 < {{videoLimit}}', 'maxNumberTip': 'ドキュメント < {{docLimit}}, 画像 < {{imgLimit}}, 音声 < {{audioLimit}}, 映像 < {{videoLimit}}',
'errorMsg': { 'errorMsg': {
varNameRequired: '変数名は必須です',
labelNameRequired: 'ラベル名は必須です', labelNameRequired: 'ラベル名は必須です',
varNameCanBeRepeat: '変数名は繰り返すことができません', varNameCanBeRepeat: '変数名は繰り返すことができません',
atLeastOneOption: '少なくとも 1 つのオプションが必要です', atLeastOneOption: '少なくとも 1 つのオプションが必要です',

View File

@@ -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: { automatic: {
title: '자동 어플리케이션 오케스트레이션', title: '자동 어플리케이션 오케스트레이션',
@@ -281,7 +308,6 @@ const translation = {
'required': '필수', 'required': '필수',
'hide': '숨기기', 'hide': '숨기기',
'errorMsg': { 'errorMsg': {
varNameRequired: '변수명은 필수입니다',
labelNameRequired: '레이블명은 필수입니다', labelNameRequired: '레이블명은 필수입니다',
varNameCanBeRepeat: '변수명은 중복될 수 없습니다', varNameCanBeRepeat: '변수명은 중복될 수 없습니다',
atLeastOneOption: '적어도 하나의 옵션이 필요합니다', atLeastOneOption: '적어도 하나의 옵션이 필요합니다',

View File

@@ -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: { automatic: {
title: 'Zautomatyzowana orkiestracja aplikacji', title: 'Zautomatyzowana orkiestracja aplikacji',
@@ -311,7 +338,6 @@ const translation = {
'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',

View File

@@ -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: { automatic: {
title: 'Orquestração Automatizada de Aplicativos', title: 'Orquestração Automatizada de Aplicativos',
@@ -287,7 +314,6 @@ const translation = {
'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',

View File

@@ -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: { automatic: {
title: 'Orchestrarea automată a aplicațiilor', title: 'Orchestrarea automată a aplicațiilor',
@@ -287,7 +314,6 @@ const translation = {
'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',

View File

@@ -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: { generate: {
title: 'Генератор промпта', title: 'Генератор промпта',

View File

@@ -236,6 +236,33 @@ const translation = {
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.',
},
}, },
} }

View File

@@ -1,4 +1,33 @@
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

View File

@@ -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: { generate: {
title: 'Prompt Oluşturucu', title: 'Prompt Oluşturucu',
@@ -323,7 +350,6 @@ const translation = {
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',

View File

@@ -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: { automatic: {
title: 'Автоматизована оркестрація застосунків', title: 'Автоматизована оркестрація застосунків',
@@ -281,7 +308,6 @@ const translation = {
'required': 'Обов\'язково', 'required': 'Обов\'язково',
'hide': 'Приховати', 'hide': 'Приховати',
'errorMsg': { 'errorMsg': {
varNameRequired: 'Потрібно вказати назву змінної',
labelNameRequired: 'Потрібно вказати назву мітки', labelNameRequired: 'Потрібно вказати назву мітки',
varNameCanBeRepeat: 'Назва змінної не може повторюватися', varNameCanBeRepeat: 'Назва змінної не може повторюватися',
atLeastOneOption: 'Потрібно щонайменше одну опцію', atLeastOneOption: 'Потрібно щонайменше одну опцію',

View File

@@ -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: { automatic: {
title: 'Tự động hóa triển khai ứng dụng', title: 'Tự động hóa triển khai ứng dụng',
@@ -281,7 +308,6 @@ const translation = {
'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',

View File

@@ -222,6 +222,10 @@ const translation = {
title: '文档', title: '文档',
description: '启用文档后,模型可以接收文档并回答关于它们的问题。', description: '启用文档后,模型可以接收文档并回答关于它们的问题。',
}, },
audioUpload: {
title: '音频',
description: '启用音频后,模型可以处理音频文件进行转录和分析。',
},
}, },
codegen: { codegen: {
title: '代码生成器', title: '代码生成器',
@@ -307,6 +311,9 @@ const translation = {
waitForImgUpload: '请等待图片上传完成', waitForImgUpload: '请等待图片上传完成',
waitForFileUpload: '请等待文件上传完成', waitForFileUpload: '请等待文件上传完成',
}, },
warningMessage: {
timeoutExceeded: '由于超时,结果未显示。请参考日志获取完整结果。',
},
chatSubTitle: '提示词', chatSubTitle: '提示词',
completionSubTitle: '前缀提示词', completionSubTitle: '前缀提示词',
promptTip: promptTip:

View File

@@ -25,7 +25,7 @@ const translation = {
debugConfig: '除錯', debugConfig: '除錯',
addFeature: '新增功能', addFeature: '新增功能',
automatic: '產生', automatic: '產生',
stopResponding: '停止應', stopResponding: '停止應',
agree: '贊同', agree: '贊同',
disagree: '反對', disagree: '反對',
cancelAgree: '取消贊同', 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: { resetConfig: {
title: '確認重置?', title: '確認重置?',