From 58fd74df143ea631addda06b003cb5946c56a722 Mon Sep 17 00:00:00 2001 From: hamster1963 <1410514192@qq.com> Date: Mon, 14 Sep 2026 11:38:48 +0800 Subject: [PATCH] feat(translations): add support for French, Galician, Indonesian, Japanese, Brazilian Portuguese, Romanian, and Ukrainian languages --- src/components/LanguageSwitcher.tsx | 7 +++++++ src/i18n.js | 28 ++++++++++++++++++++++++++++ src/locales/en/translation.json | 9 ++++++++- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/components/LanguageSwitcher.tsx b/src/components/LanguageSwitcher.tsx index 1d7cd2f..1319ea0 100644 --- a/src/components/LanguageSwitcher.tsx +++ b/src/components/LanguageSwitcher.tsx @@ -34,6 +34,13 @@ export function LanguageSwitcher() { { name: t("language.es-ES"), code: "es-ES" }, { name: t("language.de-DE"), code: "de-DE" }, { name: t("language.ta-IN"), code: "ta-IN" }, + { name: t("language.fr"), code: "fr" }, + { name: t("language.gl"), code: "gl" }, + { name: t("language.id"), code: "id" }, + { name: t("language.ja"), code: "ja" }, + { name: t("language.pt_BR"), code: "pt_BR" }, + { name: t("language.ro"), code: "ro" }, + { name: t("language.uk"), code: "uk" }, ]; return ( diff --git a/src/i18n.js b/src/i18n.js index 052053f..c9c2d9f 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -4,8 +4,15 @@ import { initReactI18next } from "react-i18next"; import deTranslation from "./locales/de/translation.json"; import enTranslation from "./locales/en/translation.json"; import esTranslation from "./locales/es/translation.json"; +import frTranslation from "./locales/fr/translation.json"; +import glTranslation from "./locales/gl/translation.json"; +import idTranslation from "./locales/id/translation.json"; +import jaTranslation from "./locales/ja/translation.json"; +import ptBRTranslation from "./locales/pt_BR/translation.json"; +import roTranslation from "./locales/ro/translation.json"; import ruTranslation from "./locales/ru/translation.json"; import taTranslation from "./locales/ta/translation.json"; +import ukTranslation from "./locales/uk/translation.json"; import zhCNTranslation from "./locales/zh-CN/translation.json"; import zhTWTranslation from "./locales/zh-TW/translation.json"; @@ -25,12 +32,33 @@ const resources = { "es-ES": { translation: esTranslation, }, + fr: { + translation: frTranslation, + }, + gl: { + translation: glTranslation, + }, + id: { + translation: idTranslation, + }, + ja: { + translation: jaTranslation, + }, + pt_BR: { + translation: ptBRTranslation, + }, + ro: { + translation: roTranslation, + }, "ru-RU": { translation: ruTranslation, }, "ta-IN": { translation: taTranslation, }, + uk: { + translation: ukTranslation, + }, }; const getStoredLanguage = () => { diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index fa6c67f..6cdbd61 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -97,7 +97,14 @@ "de-DE": "Deutsch", "es-ES": "Español", "ru-RU": "Русский", - "ta-IN": "தமிழ்" + "ta-IN": "தமிழ்", + "fr": "Français", + "gl": "Galego", + "id": "Bahasa Indonesia", + "ja": "日本語", + "pt_BR": "Português (Brasil)", + "ro": "Română", + "uk": "Українська" }, "theme": { "light": "Light",