i18n: 新增自动i18n脚本。新增阿拉伯文,希腊文,西班牙文,法文,葡萄牙文翻译 (#3792)

* added auto i18n script. added arab, greek, spanish, france, portuguese translation

* remove arabian
This commit is contained in:
z-zeechung
2025-03-22 22:20:09 +08:00
committed by GitHub
parent d56774fd59
commit 13747a585a
9 changed files with 4999 additions and 39 deletions
+10 -3
View File
@@ -1,18 +1,25 @@
import i18n from 'i18next'
import { initReactI18next } from 'react-i18next'
import elGR from './locales/el-gr.json'
import enUS from './locales/en-us.json'
import esES from './locales/es-es.json'
import frFR from './locales/fr-fr.json'
import jaJP from './locales/ja-jp.json'
import ptPT from './locales/pt-pt.json'
import ruRU from './locales/ru-ru.json'
import zhCN from './locales/zh-cn.json'
import zhTW from './locales/zh-tw.json'
const resources = {
'el-GR': elGR,
'en-US': enUS,
'es-ES': esES,
'fr-FR': frFR,
'ja-JP': jaJP,
'pt-PT': ptPT,
'ru-RU': ruRU,
'zh-CN': zhCN,
'zh-TW': zhTW,
'ja-JP': jaJP,
'ru-RU': ruRU
}
export const getLanguage = () => {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,250 +1,390 @@
export type GroupTranslations = {
[key: string]: {
'el-GR': string
'en-US': string
'es-ES': string
'fr-FR': string
'zh-CN': string
'zh-TW': string
'ru-RU': string
'ja-JP': string
'pt-PT': string
}
}
export const groupTranslations: GroupTranslations = {
: {
'el-GR': 'Τα δικά μου',
'en-US': 'My Agents',
'es-ES': 'Mis agentes',
'fr-FR': 'Mes agents',
'zh-CN': '我的',
'zh-TW': '我的',
'ru-RU': 'Мои агенты',
'ja-JP': '私のエージェント'
'ja-JP': '私のエージェント',
'pt-PT': 'Meus Agentes'
},
: {
'el-GR': 'Επαγγελμα',
'en-US': 'Career',
'es-ES': 'Profesional',
'fr-FR': 'Professionnel',
'zh-CN': '职业',
'zh-TW': '職業',
'ru-RU': 'Карьера',
'ja-JP': 'キャリア'
'ja-JP': 'キャリア',
'pt-PT': 'Profissional'
},
: {
'el-GR': 'Εμπορικός',
'en-US': 'Business',
'es-ES': 'Negocio',
'fr-FR': 'Commercial',
'zh-CN': '商业',
'zh-TW': '商業',
'ru-RU': 'Бизнес',
'ja-JP': 'ビジネス'
'ja-JP': 'ビジネス',
'pt-PT': 'Negócio'
},
: {
'el-GR': 'Εργαλεία',
'en-US': 'Tools',
'es-ES': 'Herramientas',
'fr-FR': 'Outils',
'zh-CN': '工具',
'zh-TW': '工具',
'ru-RU': 'Инструменты',
'ja-JP': 'ツール'
'ja-JP': 'ツール',
'pt-PT': 'Ferramentas'
},
: {
'el-GR': 'Γλώσσα',
'en-US': 'Language',
'es-ES': 'Idioma',
'fr-FR': 'Langue',
'zh-CN': '语言',
'zh-TW': '語言',
'ru-RU': 'Язык',
'ja-JP': '言語'
'ja-JP': '言語',
'pt-PT': 'Idioma'
},
: {
'el-GR': 'Γραφείο',
'en-US': 'Office',
'es-ES': 'Oficina',
'fr-FR': 'Bureau',
'zh-CN': '办公',
'zh-TW': '辦公',
'ru-RU': 'Офис',
'ja-JP': 'オフィス'
'ja-JP': 'オフィス',
'pt-PT': 'Escritório'
},
: {
'el-GR': 'Γενικά',
'en-US': 'General',
'es-ES': 'General',
'fr-FR': 'Général',
'zh-CN': '通用',
'zh-TW': '通用',
'ru-RU': 'Общее',
'ja-JP': '一般'
'ja-JP': '一般',
'pt-PT': 'Geral'
},
: {
'el-GR': 'Γράφημα',
'en-US': 'Writing',
'es-ES': 'Escritura',
'fr-FR': 'Écriture',
'zh-CN': '写作',
'zh-TW': '寫作',
'ru-RU': 'Письмо',
'ja-JP': '書き込み'
'ja-JP': '書き込み',
'pt-PT': 'Escrita'
},
: {
'el-GR': 'Επιλεγμένο',
'en-US': 'Featured',
'es-ES': 'Destacado',
'fr-FR': 'Sélection',
'zh-CN': '精选',
'zh-TW': '精選',
'ru-RU': 'Избранное',
'ja-JP': '特集'
'ja-JP': '特集',
'pt-PT': 'Destaque'
},
: {
'el-GR': 'Προγραμματισμός',
'en-US': 'Programming',
'es-ES': 'Programación',
'fr-FR': 'Programmation',
'zh-CN': '编程',
'zh-TW': '編程',
'ru-RU': 'Программирование',
'ja-JP': 'プログラミング'
'ja-JP': 'プログラミング',
'pt-PT': 'Programação'
},
: {
'el-GR': 'Αίσθημα',
'en-US': 'Emotion',
'es-ES': 'Emoción',
'fr-FR': 'Émotion',
'zh-CN': '情感',
'zh-TW': '情感',
'ru-RU': 'Эмоции',
'ja-JP': '感情'
'ja-JP': '感情',
'pt-PT': 'Emoção'
},
: {
'el-GR': 'Εκπαίδευση',
'en-US': 'Education',
'es-ES': 'Educación',
'fr-FR': 'Éducation',
'zh-CN': '教育',
'zh-TW': '教育',
'ru-RU': 'Образование',
'ja-JP': '教育'
'ja-JP': '教育',
'pt-PT': 'Educação'
},
: {
'el-GR': 'Κreativiteit',
'en-US': 'Creative',
'es-ES': 'Creativo',
'fr-FR': 'Créatif',
'zh-CN': '创意',
'zh-TW': '創意',
'ru-RU': 'Креатив',
'ja-JP': 'クリエイティブ'
'ja-JP': 'クリエイティブ',
'pt-PT': 'Criativo'
},
: {
'el-GR': 'Ακαδημικός',
'en-US': 'Academic',
'es-ES': 'Académico',
'fr-FR': 'Académique',
'zh-CN': '学术',
'zh-TW': '學術',
'ru-RU': 'Академический',
'ja-JP': 'アカデミック'
'ja-JP': 'アカデミック',
'pt-PT': 'Académico'
},
: {
'el-GR': 'Δημιουργικό',
'en-US': 'Design',
'es-ES': 'Diseño',
'fr-FR': 'Design',
'zh-CN': '设计',
'zh-TW': '設計',
'ru-RU': 'Дизайн',
'ja-JP': 'デザイン'
'ja-JP': 'デザイン',
'pt-PT': 'Design'
},
: {
'el-GR': 'Τέχνη',
'en-US': 'Art',
'es-ES': 'Arte',
'fr-FR': 'Art',
'zh-CN': '艺术',
'zh-TW': '藝術',
'ru-RU': 'Искусство',
'ja-JP': 'アート'
'ja-JP': 'アート',
'pt-PT': 'Arte'
},
: {
'el-GR': 'Αναψυχή',
'en-US': 'Entertainment',
'es-ES': 'Entretenimiento',
'fr-FR': 'Divertissement',
'zh-CN': '娱乐',
'zh-TW': '娛樂',
'ru-RU': 'Развлечения',
'ja-JP': 'エンターテイメント'
'ja-JP': 'エンターテイメント',
'pt-PT': 'Entretenimento'
},
: {
'el-GR': 'Ζωή',
'en-US': 'Life',
'es-ES': 'Vida',
'fr-FR': 'Vie',
'zh-CN': '生活',
'zh-TW': '生活',
'ru-RU': 'Жизнь',
'ja-JP': '生活'
'ja-JP': '生活',
'pt-PT': 'Vida'
},
: {
'el-GR': 'Υγεία',
'en-US': 'Medical',
'es-ES': 'Médico',
'fr-FR': 'Médical',
'zh-CN': '医疗',
'zh-TW': '醫療',
'ru-RU': 'Медицина',
'ja-JP': '医療'
'ja-JP': '医療',
'pt-PT': 'Saúde'
},
: {
'el-GR': 'Παιχνίδια',
'en-US': 'Games',
'es-ES': 'Juegos',
'fr-FR': 'Jeux',
'zh-CN': '游戏',
'zh-TW': '遊戲',
'ru-RU': 'Игры',
'ja-JP': 'ゲーム'
'ja-JP': 'ゲーム',
'pt-PT': 'Jogos'
},
: {
'el-GR': 'Γραφήματα',
'en-US': 'Translation',
'es-ES': 'Traducción',
'fr-FR': 'Traduction',
'zh-CN': '翻译',
'zh-TW': '翻譯',
'ru-RU': 'Перевод',
'ja-JP': '翻訳'
'ja-JP': '翻訳',
'pt-PT': 'Tradução'
},
: {
'el-GR': 'Μουσική',
'en-US': 'Music',
'es-ES': 'Música',
'fr-FR': 'Musique',
'zh-CN': '音乐',
'zh-TW': '音樂',
'ru-RU': 'Музыка',
'ja-JP': '音楽'
'ja-JP': '音楽',
'pt-PT': 'Música'
},
: {
'el-GR': 'Αξιολόγηση',
'en-US': 'Review',
'es-ES': 'Revisión',
'fr-FR': 'Avis',
'zh-CN': '点评',
'zh-TW': '點評',
'ru-RU': 'Обзор',
'ja-JP': 'レビュー'
'ja-JP': 'レビュー',
'pt-PT': 'Revisão'
},
: {
'el-GR': 'Γραφήματα',
'en-US': 'Copywriting',
'es-ES': 'Redacción',
'fr-FR': 'Rédaction',
'zh-CN': '文案',
'zh-TW': '文案',
'ru-RU': 'Копирайтинг',
'ja-JP': 'コピーライティング'
'ja-JP': 'コピーライティング',
'pt-PT': 'Escrita'
},
: {
'el-GR': 'Εγκυκλοπαίδεια',
'en-US': 'Encyclopedia',
'es-ES': 'Enciclopedia',
'fr-FR': 'Encyclopédie',
'zh-CN': '百科',
'zh-TW': '百科',
'ru-RU': 'Энциклопедия',
'ja-JP': '百科事典'
'ja-JP': '百科事典',
'pt-PT': 'Enciclopédia'
},
: {
'el-GR': 'Υγεία',
'en-US': 'Health',
'es-ES': 'Salud',
'fr-FR': 'Santé',
'zh-CN': '健康',
'zh-TW': '健康',
'ru-RU': 'Здоровье',
'ja-JP': '健康'
'ja-JP': '健康',
'pt-PT': 'Saúde'
},
: {
'el-GR': 'Μάρκετινγκ',
'en-US': 'Marketing',
'es-ES': 'Marketing',
'fr-FR': 'Marketing',
'zh-CN': '营销',
'zh-TW': '營銷',
'ru-RU': 'Маркетинг',
'ja-JP': 'マーケティング'
'ja-JP': 'マーケティング',
'pt-PT': 'Marketing'
},
: {
'el-GR': 'Επιστήμη',
'en-US': 'Science',
'es-ES': 'Ciencia',
'fr-FR': 'Science',
'zh-CN': '科学',
'zh-TW': '科學',
'ru-RU': 'Наука',
'ja-JP': '科学'
'ja-JP': '科学',
'pt-PT': 'Ciência'
},
: {
'el-GR': 'Ανάλυση',
'en-US': 'Analysis',
'es-ES': 'Análisis',
'fr-FR': 'Analyse',
'zh-CN': '分析',
'zh-TW': '分析',
'ru-RU': 'Анализ',
'ja-JP': '分析'
'ja-JP': '分析',
'pt-PT': 'Análise'
},
: {
'el-GR': 'Νόμος',
'en-US': 'Legal',
'es-ES': 'Legal',
'fr-FR': 'Légal',
'zh-CN': '法律',
'zh-TW': '法律',
'ru-RU': 'Право',
'ja-JP': '法律'
'ja-JP': '法律',
'pt-PT': 'Legal'
},
: {
'el-GR': 'Συμβουλή',
'en-US': 'Consulting',
'es-ES': 'Consultoría',
'fr-FR': 'Consultation',
'zh-CN': '咨询',
'zh-TW': '諮詢',
'ru-RU': 'Консалтинг',
'ja-JP': 'コンサルティング'
'ja-JP': 'コンサルティング',
'pt-PT': 'Consultoria'
},
: {
'el-GR': 'Φορολογία',
'en-US': 'Finance',
'es-ES': 'Finanzas',
'fr-FR': 'Finance',
'zh-CN': '金融',
'zh-TW': '金融',
'ru-RU': 'Финансы',
'ja-JP': '金融'
'ja-JP': '金融',
'pt-PT': 'Finanças'
},
: {
'el-GR': 'Τουρισμός',
'en-US': 'Travel',
'es-ES': 'Viajes',
'fr-FR': 'Voyages',
'zh-CN': '旅游',
'zh-TW': '旅遊',
'ru-RU': 'Путешествия',
'ja-JP': '旅行'
'ja-JP': '旅行',
'pt-PT': 'Viagens'
},
: {
'el-GR': 'Διοίκηση',
'en-US': 'Management',
'es-ES': 'Gestión',
'fr-FR': 'Gestion',
'zh-CN': '管理',
'zh-TW': '管理',
'ru-RU': 'Управление',
'ja-JP': '管理'
'ja-JP': '管理',
'pt-PT': 'Gestão'
}
}
@@ -96,8 +96,12 @@ const GeneralSettings: FC = () => {
const languagesOptions: { value: LanguageVarious; label: string; flag: string }[] = [
{ value: 'zh-CN', label: '中文', flag: '🇨🇳' },
{ value: 'zh-TW', label: '中文(繁体)', flag: '🇭🇰' },
{ value: 'el-GR', label: 'Ελληνικά', flag: '🇬🇷' },
{ value: 'en-US', label: 'English', flag: '🇺🇸' },
{ value: 'es-ES', label: 'Español', flag: '🇪🇸' },
{ value: 'fr-FR', label: 'Français', flag: '🇫🇷' },
{ value: 'ja-JP', label: '日本語', flag: '🇯🇵' },
{ value: 'pt-PT', label: 'Português', flag: '🇵🇹' },
{ value: 'ru-RU', label: 'Русский', flag: '🇷🇺' }
]
+2 -2
View File
@@ -199,9 +199,9 @@ export enum ThemeMode {
auto = 'auto'
}
export type LanguageVarious = 'zh-CN' | 'zh-TW' | 'en-US' | 'ru-RU' | 'ja-JP'
export type LanguageVarious = 'zh-CN' | 'zh-TW' | 'el-GR' | 'en-US' | 'es-ES' | 'fr-FR' | 'ja-JP' | 'pt-PT' | 'ru-RU'
export type TranslateLanguageVarious = 'chinese' | 'chinese-traditional' | 'english' | 'japanese' | 'russian'
export type TranslateLanguageVarious = 'chinese' | 'chinese-traditional' | 'greek' | 'english' | 'spanish' | 'french' | 'japanese' | 'portuguese' | 'russian'
export type CodeStyleVarious = BuiltinTheme | 'auto'