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: {
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: {
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',

View File

@@ -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: 'فعال‌سازی صوت به مدل اجازه می‌دهد فایل‌های صوتی را برای رونویسی و تجزیه و تحلیل پردازش کند.',
},
},
}

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: {
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',

View File

@@ -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: 'ऑडियो सक्षम करने से मॉडल ट्रांसक्रिप्शन और विश्लेषण के लिए ऑडियो फ़ाइलों को प्रोसेस कर सकेगा।',
},
},
}

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: {
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',

View File

@@ -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 つのオプションが必要です',

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

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: {
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',

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: {
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',

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

View File

@@ -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.',
},
},
}

View File

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

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: {
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',

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

View File

@@ -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:

View File

@@ -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: '確認重置?',