From 4c64aa0a40ae93b0af02a2e6251036ec99d1d800 Mon Sep 17 00:00:00 2001 From: goddonebianu Date: Mon, 5 Jan 2026 11:40:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BF=BB=E8=AF=91=E8=AF=AD?= =?UTF-8?q?=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- messages/de-DE.json | 193 ++++++++++++++++++++++++++++ messages/en-US.json | 4 + messages/fr-FR.json | 193 ++++++++++++++++++++++++++++ messages/it-IT.json | 193 ++++++++++++++++++++++++++++ messages/ja-JP.json | 193 ++++++++++++++++++++++++++++ messages/ko-KR.json | 193 ++++++++++++++++++++++++++++ messages/ug-CN.json | 193 ++++++++++++++++++++++++++++ messages/zh-CN.json | 4 + src/components/LanguageSettings.tsx | 36 ++++++ src/config/i18n.ts | 11 +- 10 files changed, 1212 insertions(+), 1 deletion(-) create mode 100644 messages/de-DE.json create mode 100644 messages/fr-FR.json create mode 100644 messages/it-IT.json create mode 100644 messages/ja-JP.json create mode 100644 messages/ko-KR.json create mode 100644 messages/ug-CN.json diff --git a/messages/de-DE.json b/messages/de-DE.json new file mode 100644 index 0000000..84b24b2 --- /dev/null +++ b/messages/de-DE.json @@ -0,0 +1,193 @@ +{ + "alphabet": { + "chooseCharacters": "Bitte wählen Sie die Zeichen aus, die Sie lernen möchten", + "japanese": "Japanische Kana", + "english": "Englisches Alphabet", + "uyghur": "Uigurisches Alphabet", + "esperanto": "Esperanto-Alphabet", + "loading": "Laden...", + "loadFailed": "Laden fehlgeschlagen, bitte versuchen Sie es erneut", + "hideLetter": "Zeichen ausblenden", + "showLetter": "Zeichen anzeigen", + "hideIPA": "IPA ausblenden", + "showIPA": "IPA anzeigen", + "roman": "Romanisierung", + "letter": "Zeichen", + "random": "Zufälliger Modus", + "randomNext": "Zufällig weiter" + }, + "folders": { + "title": "Ordner", + "subtitle": "Verwalten Sie Ihre Sammlungen", + "newFolder": "Neuer Ordner", + "creating": "Erstellen...", + "noFoldersYet": "Noch keine Ordner", + "folderInfo": "ID: {id} • {totalPairs} Paare", + "enterFolderName": "Ordnernamen eingeben:", + "confirmDelete": "Geben Sie \"{name}\" ein, um zu löschen:" + }, + "folder_id": { + "unauthorized": "Sie sind nicht der Eigentümer dieses Ordners", + "back": "Zurück", + "textPairs": "Textpaare", + "itemsCount": "{count} Elemente", + "memorize": "Einprägen", + "loadingTextPairs": "Textpaare werden geladen...", + "noTextPairs": "Keine Textpaare in diesem Ordner", + "addNewTextPair": "Neues Textpaar hinzufügen", + "add": "Hinzufügen", + "updateTextPair": "Textpaar aktualisieren", + "update": "Aktualisieren", + "text1": "Text 1", + "text2": "Text 2", + "locale1": "Sprache 1", + "locale2": "Sprache 2", + "edit": "Bearbeiten", + "delete": "Löschen" + }, + "home": { + "title": "Sprachen lernen", + "description": "Hier ist eine sehr nützliche Website, die Ihnen hilft, fast jede Sprache der Welt zu lernen, einschließlich konstruierter Sprachen.", + "explore": "Erkunden", + "fortune": { + "quote": "Bleib hungrig, bleiv dumm.", + "author": "— Steve Jobs" + }, + "translator": { + "name": "Übersetzer", + "description": "In jede Sprache übersetzen und mit Internationalem Phonetischem Alphabet (IPA) annotieren" + }, + "textSpeaker": { + "name": "Text-Sprecher", + "description": "Text erkennen und vorlesen, unterstützt Schleifenwiedergabe und Geschwindigkeitsanpassung" + }, + "srtPlayer": { + "name": "SRT-Videoplayer", + "description": "Videos basierend auf SRT-Untertiteldateien satzweise abspielen, um die Aussprache von Muttersprachlern zu imitieren" + }, + "alphabet": { + "name": "Alphabet", + "description": "Beginnen Sie mit dem Erlernen einer neuen Sprache mit dem Alphabet" + }, + "memorize": { + "name": "Einprägen", + "description": "Sprache A zu Sprache B, Sprache B zu Sprache A, unterstützt Diktat" + }, + "dictionary": { + "name": "Wörterbuch", + "description": "Wörter und Redewendungen nachschlagen mit detaillierten Definitionen und Beispielen" + }, + "moreFeatures": { + "name": "Weitere Funktionen", + "description": "In Entwicklung, bleiben Sie dran" + } + }, + "auth": { + "title": "Authentifizierung", + "signIn": "Anmelden", + "signUp": "Registrieren", + "email": "E-Mail", + "password": "Passwort", + "confirmPassword": "Passwort bestätigen", + "name": "Name", + "signInButton": "Anmelden", + "signUpButton": "Registrieren", + "noAccount": "Haben Sie kein Konto?", + "hasAccount": "Haben Sie bereits ein Konto?", + "signInWithGitHub": "Mit GitHub anmelden", + "signUpWithGitHub": "Mit GitHub registrieren", + "invalidEmail": "Bitte geben Sie eine gültige E-Mail-Adresse ein", + "passwordTooShort": "Das Passwort muss mindestens 8 Zeichen lang sein", + "passwordsNotMatch": "Passwörter stimmen nicht überein", + "nameRequired": "Bitte geben Sie Ihren Namen ein", + "emailRequired": "Bitte geben Sie Ihre E-Mail ein", + "passwordRequired": "Bitte geben Sie Ihr Passwort ein", + "confirmPasswordRequired": "Bitte bestätigen Sie Ihr Passwort", + "loading": "Laden..." + }, + "memorize": { + "folder_selector": { + "selectFolder": "Wählen Sie einen Ordner aus", + "noFolders": "Keine Ordner gefunden", + "folderInfo": "{id}. {name} ({count})" + }, + "memorize": { + "answer": "Antwort", + "next": "Weiter", + "reverse": "Umkehren", + "dictation": "Diktat", + "noTextPairs": "Keine Textpaare verfügbar", + "disorder": "Mischen", + "previous": "Zurück" + }, + "page": { + "unauthorized": "Sie sind nicht berechtigt, auf diesen Ordner zuzugreifen" + } + }, + "navbar": { + "title": "learn-languages", + "sourceCode": "GitHub", + "sign_in": "Anmelden", + "profile": "Profil", + "folders": "Ordner" + }, + "profile": { + "myProfile": "Mein Profil", + "email": "E-Mail: {email}", + "logout": "Abmelden" + }, + "srt_player": { + "uploadVideo": "Video hochladen", + "uploadSubtitle": "Untertitel hochladen", + "pause": "Pause", + "play": "Abspielen", + "previous": "Zurück", + "next": "Weiter", + "restart": "Neustart", + "autoPause": "Auto-Pause ({enabled})", + "uploadVideoAndSubtitle": "Bitte laden Sie Video- und Untertiteldateien hoch", + "uploadVideoFile": "Bitte laden Sie eine Videodatei hoch", + "uploadSubtitleFile": "Bitte laden Sie eine Untertiteldatei hoch", + "processingSubtitle": "Untertiteldatei wird verarbeitet...", + "needBothFiles": "Sowohl Video- als auch Untertiteldateien sind erforderlich, um mit dem Lernen zu beginnen", + "videoFile": "Videodatei", + "subtitleFile": "Untertiteldatei", + "uploaded": "Hochgeladen", + "notUploaded": "Nicht hochgeladen", + "upload": "Hochladen", + "autoPauseStatus": "Auto-Pause: {enabled}", + "on": "Ein", + "off": "Aus", + "videoUploadFailed": "Video-Upload fehlgeschlagen", + "subtitleUploadFailed": "Untertitel-Upload fehlgeschlagen" + }, + "text_speaker": { + "generateIPA": "IPA generieren", + "viewSavedItems": "Gespeicherte Elemente anzeigen", + "confirmDeleteAll": "Sind Sie sicher, dass Sie alles löschen möchten? (J/N)" + }, + "translator": { + "detectLanguage": "Sprache erkennen", + "generateIPA": "IPA generieren", + "translateInto": "Übersetzen in", + "chinese": "Chinesisch", + "english": "Englisch", + "italian": "Italienisch", + "other": "Andere", + "translating": "Übersetzung läuft...", + "translate": "Übersetzen", + "inputLanguage": "Geben Sie eine Sprache ein.", + "history": "Verlauf", + "enterLanguage": "Sprache eingeben", + "add_to_folder": { + "notAuthenticated": "Sie sind nicht authentifiziert", + "chooseFolder": "Wählen Sie einen Ordner zum Hinzufügen aus", + "noFolders": "Keine Ordner gefunden", + "folderInfo": "{id}. {name}", + "close": "Schließen", + "success": "Textpaar zum Ordner hinzugefügt", + "error": "Textpaar konnte nicht zum Ordner hinzugefügt werden" + }, + "autoSave": "Automatisch speichern" + } +} diff --git a/messages/en-US.json b/messages/en-US.json index 9818338..1ac60c9 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -73,6 +73,10 @@ "name": "Memorize", "description": "Language A to Language B, Language B to Language A, supports dictation" }, + "dictionary": { + "name": "Dictionary", + "description": "Look up words and phrases with detailed definitions and examples" + }, "moreFeatures": { "name": "More Features", "description": "Under development, stay tuned" diff --git a/messages/fr-FR.json b/messages/fr-FR.json new file mode 100644 index 0000000..965b195 --- /dev/null +++ b/messages/fr-FR.json @@ -0,0 +1,193 @@ +{ + "alphabet": { + "chooseCharacters": "Veuillez sélectionner les caractères que vous souhaitez apprendre", + "japanese": "Kana japonais", + "english": "Alphabet anglais", + "uyghur": "Alphabet ouïghour", + "esperanto": "Alphabet espéranto", + "loading": "Chargement...", + "loadFailed": "Échec du chargement, veuillez réessayer", + "hideLetter": "Masquer la lettre", + "showLetter": "Afficher la lettre", + "hideIPA": "Masquer l'API", + "showIPA": "Afficher l'API", + "roman": "Romanisation", + "letter": "Lettre", + "random": "Mode aléatoire", + "randomNext": "Suivant aléatoire" + }, + "folders": { + "title": "Dossiers", + "subtitle": "Gérez vos collections", + "newFolder": "Nouveau dossier", + "creating": "Création...", + "noFoldersYet": "Aucun dossier pour le moment", + "folderInfo": "ID: {id} • {totalPairs} paires", + "enterFolderName": "Entrez le nom du dossier:", + "confirmDelete": "Tapez \"{name}\" pour supprimer:" + }, + "folder_id": { + "unauthorized": "Vous n'êtes pas le propriétaire de ce dossier", + "back": "Retour", + "textPairs": "Paires de textes", + "itemsCount": "{count} éléments", + "memorize": "Mémoriser", + "loadingTextPairs": "Chargement des paires de textes...", + "noTextPairs": "Aucune paire de textes dans ce dossier", + "addNewTextPair": "Ajouter une nouvelle paire de textes", + "add": "Ajouter", + "updateTextPair": "Mettre à jour la paire de textes", + "update": "Mettre à jour", + "text1": "Texte 1", + "text2": "Texte 2", + "locale1": "Langue 1", + "locale2": "Langue 2", + "edit": "Modifier", + "delete": "Supprimer" + }, + "home": { + "title": "Apprendre les langues", + "description": "Voici un site web très utile pour vous aider à apprendre presque toutes les langues du monde, y compris les langues construites.", + "explore": "Explorer", + "fortune": { + "quote": "Stay hungry, stay foolish.", + "author": "— Steve Jobs" + }, + "translator": { + "name": "Traducteur", + "description": "Traduire dans n'importe quelle langue et annoter avec l'alphabet phonétique international (API)" + }, + "textSpeaker": { + "name": "Lecteur de texte", + "description": "Reconnaître et lire le texte à haute voix, prend en charge la lecture en boucle et le réglage de la vitesse" + }, + "srtPlayer": { + "name": "Lecteur vidéo SRT", + "description": "Lire des vidéos phrase par phrase basées sur des fichiers de sous-titres SRT pour imiter la prononciation des locuteurs natifs" + }, + "alphabet": { + "name": "Alphabet", + "description": "Commencer à apprendre une nouvelle langue par l'alphabet" + }, + "memorize": { + "name": "Mémoriser", + "description": "Langue A vers langue B, langue B vers langue A, prend en charge la dictée" + }, + "dictionary": { + "name": "Dictionnaire", + "description": "Rechercher des mots et des phrases avec des définitions détaillées et des exemples" + }, + "moreFeatures": { + "name": "Plus de fonctionnalités", + "description": "En développement, restez à l'écoute" + } + }, + "auth": { + "title": "Authentification", + "signIn": "Se connecter", + "signUp": "S'inscrire", + "email": "E-mail", + "password": "Mot de passe", + "confirmPassword": "Confirmer le mot de passe", + "name": "Nom", + "signInButton": "Se connecter", + "signUpButton": "S'inscrire", + "noAccount": "Vous n'avez pas de compte?", + "hasAccount": "Vous avez déjà un compte?", + "signInWithGitHub": "Se connecter avec GitHub", + "signUpWithGitHub": "S'inscrire avec GitHub", + "invalidEmail": "Veuillez entrer une adresse e-mail valide", + "passwordTooShort": "Le mot de passe doit contenir au moins 8 caractères", + "passwordsNotMatch": "Les mots de passe ne correspondent pas", + "nameRequired": "Veuillez entrer votre nom", + "emailRequired": "Veuillez entrer votre e-mail", + "passwordRequired": "Veuillez entrer votre mot de passe", + "confirmPasswordRequired": "Veuillez confirmer votre mot de passe", + "loading": "Chargement..." + }, + "memorize": { + "folder_selector": { + "selectFolder": "Sélectionner un dossier", + "noFolders": "Aucun dossier trouvé", + "folderInfo": "{id}. {name} ({count})" + }, + "memorize": { + "answer": "Réponse", + "next": "Suivant", + "reverse": "Inverser", + "dictation": "Dictée", + "noTextPairs": "Aucune paire de textes disponible", + "disorder": "Désordre", + "previous": "Précédent" + }, + "page": { + "unauthorized": "Vous n'êtes pas autorisé à accéder à ce dossier" + } + }, + "navbar": { + "title": "learn-languages", + "sourceCode": "GitHub", + "sign_in": "Se connecter", + "profile": "Profil", + "folders": "Dossiers" + }, + "profile": { + "myProfile": "Mon profil", + "email": "E-mail: {email}", + "logout": "Se déconnecter" + }, + "srt_player": { + "uploadVideo": "Télécharger une vidéo", + "uploadSubtitle": "Télécharger des sous-titres", + "pause": "Pause", + "play": "Lire", + "previous": "Précédent", + "next": "Suivant", + "restart": "Redémarrer", + "autoPause": "Pause automatique ({enabled})", + "uploadVideoAndSubtitle": "Veuillez télécharger des fichiers vidéo et de sous-titres", + "uploadVideoFile": "Veuillez télécharger un fichier vidéo", + "uploadSubtitleFile": "Veuillez télécharger un fichier de sous-titres", + "processingSubtitle": "Traitement du fichier de sous-titres...", + "needBothFiles": "Les fichiers vidéo et de sous-titres sont requis pour commencer l'apprentissage", + "videoFile": "Fichier vidéo", + "subtitleFile": "Fichier de sous-titres", + "uploaded": "Téléchargé", + "notUploaded": "Non téléchargé", + "upload": "Télécharger", + "autoPauseStatus": "Pause automatique: {enabled}", + "on": "Activé", + "off": "Désactivé", + "videoUploadFailed": "Échec du téléchargement de la vidéo", + "subtitleUploadFailed": "Échec du téléchargement des sous-titres" + }, + "text_speaker": { + "generateIPA": "Générer l'API", + "viewSavedItems": "Voir les éléments enregistrés", + "confirmDeleteAll": "Êtes-vous sûr de vouloir tout supprimer? (O/N)" + }, + "translator": { + "detectLanguage": "détecter la langue", + "generateIPA": "générer l'api", + "translateInto": "traduire en", + "chinese": "Chinois", + "english": "Anglais", + "italian": "Italien", + "other": "Autre", + "translating": "traduction...", + "translate": "traduire", + "inputLanguage": "Entrez une langue.", + "history": "Historique", + "enterLanguage": "Entrer la langue", + "add_to_folder": { + "notAuthenticated": "Vous n'êtes pas authentifié", + "chooseFolder": "Choisir un dossier à ajouter", + "noFolders": "Aucun dossier trouvé", + "folderInfo": "{id}. {name}", + "close": "Fermer", + "success": "Paire de textes ajoutée au dossier", + "error": "Échec de l'ajout de la paire de textes au dossier" + }, + "autoSave": "Sauvegarde automatique" + } +} diff --git a/messages/it-IT.json b/messages/it-IT.json new file mode 100644 index 0000000..8a9dd6a --- /dev/null +++ b/messages/it-IT.json @@ -0,0 +1,193 @@ +{ + "alphabet": { + "chooseCharacters": "Seleziona i caratteri che desideri imparare", + "japanese": "Kana giapponese", + "english": "Alfabeto inglese", + "uyghur": "Alfabeto uiguro", + "esperanto": "Alfabeto esperanto", + "loading": "Caricamento...", + "loadFailed": "Caricamento fallito, riprova", + "hideLetter": "Nascondi lettera", + "showLetter": "Mostra lettera", + "hideIPA": "Nascondi IPA", + "showIPA": "Mostra IPA", + "roman": "Romanizzazione", + "letter": "Lettera", + "random": "Modalità casuale", + "randomNext": "Successivo casuale" + }, + "folders": { + "title": "Cartelle", + "subtitle": "Gestisci le tue collezioni", + "newFolder": "Nuova cartella", + "creating": "Creazione...", + "noFoldersYet": "Nessuna cartella ancora", + "folderInfo": "ID: {id} • {totalPairs} coppie", + "enterFolderName": "Inserisci nome cartella:", + "confirmDelete": "Digita \"{name}\" per eliminare:" + }, + "folder_id": { + "unauthorized": "Non sei il proprietario di questa cartella", + "back": "Indietro", + "textPairs": "Coppie di testi", + "itemsCount": "{count} elementi", + "memorize": "Memorizza", + "loadingTextPairs": "Caricamento coppie di testi...", + "noTextPairs": "Nessuna coppia di testi in questa cartella", + "addNewTextPair": "Aggiungi nuova coppia di testi", + "add": "Aggiungi", + "updateTextPair": "Aggiorna coppia di testi", + "update": "Aggiorna", + "text1": "Testo 1", + "text2": "Testo 2", + "locale1": "Lingua 1", + "locale2": "Lingua 2", + "edit": "Modifica", + "delete": "Elimina" + }, + "home": { + "title": "Impara le lingue", + "description": "Questo è un sito web molto utile che ti aiuta a imparare quasi tutte le lingue del mondo, incluse quelle costruite.", + "explore": "Esplora", + "fortune": { + "quote": "Stay hungry, stay foolish.", + "author": "— Steve Jobs" + }, + "translator": { + "name": "Traduttore", + "description": "Traduci in qualsiasi lingua e annota con l'alfabeto fonetico internazionale (IPA)" + }, + "textSpeaker": { + "name": "Lettore di testo", + "description": "Riconosce e legge il testo ad alta voce, supporta la riproduzione in loop e la regolazione della velocità" + }, + "srtPlayer": { + "name": "Lettore video SRT", + "description": "Riproduci video frase per frase basandoti su file di sottotitoli SRT per imitare la pronuncia dei madrelingua" + }, + "alphabet": { + "name": "Alfabeto", + "description": "Inizia a imparare una nuova lingua dall'alfabeto" + }, + "memorize": { + "name": "Memorizza", + "description": "Lingua A verso lingua B, lingua B verso lingua A, supporta dettatura" + }, + "dictionary": { + "name": "Dizionario", + "description": "Cerca parole e frasi con definizioni dettagliate ed esempi" + }, + "moreFeatures": { + "name": "Altre funzionalità", + "description": "In sviluppo, rimani sintonizzato" + } + }, + "auth": { + "title": "Autenticazione", + "signIn": "Accedi", + "signUp": "Registrati", + "email": "Email", + "password": "Password", + "confirmPassword": "Conferma password", + "name": "Nome", + "signInButton": "Accedi", + "signUpButton": "Registrati", + "noAccount": "Non hai un account?", + "hasAccount": "Hai già un account?", + "signInWithGitHub": "Accedi con GitHub", + "signUpWithGitHub": "Registrati con GitHub", + "invalidEmail": "Inserisci un indirizzo email valido", + "passwordTooShort": "La password deve essere di almeno 8 caratteri", + "passwordsNotMatch": "Le password non corrispondono", + "nameRequired": "Inserisci il tuo nome", + "emailRequired": "Inserisci la tua email", + "passwordRequired": "Inserisci la tua password", + "confirmPasswordRequired": "Conferma la tua password", + "loading": "Caricamento..." + }, + "memorize": { + "folder_selector": { + "selectFolder": "Seleziona una cartella", + "noFolders": "Nessuna cartella trovata", + "folderInfo": "{id}. {name} ({count})" + }, + "memorize": { + "answer": "Risposta", + "next": "Successivo", + "reverse": "Inverti", + "dictation": "Dettatura", + "noTextPairs": "Nessuna coppia di testi disponibile", + "disorder": "Disordine", + "previous": "Precedente" + }, + "page": { + "unauthorized": "Non sei autorizzato ad accedere a questa cartella" + } + }, + "navbar": { + "title": "learn-languages", + "sourceCode": "GitHub", + "sign_in": "Accedi", + "profile": "Profilo", + "folders": "Cartelle" + }, + "profile": { + "myProfile": "Il mio profilo", + "email": "Email: {email}", + "logout": "Esci" + }, + "srt_player": { + "uploadVideo": "Carica video", + "uploadSubtitle": "Carica sottotitoli", + "pause": "Pausa", + "play": "Riproduci", + "previous": "Precedente", + "next": "Successivo", + "restart": "Riavvia", + "autoPause": "Pausa automatica ({enabled})", + "uploadVideoAndSubtitle": "Carica i file video e sottotitoli", + "uploadVideoFile": "Carica un file video", + "uploadSubtitleFile": "Carica un file di sottotitoli", + "processingSubtitle": "Elaborazione file sottotitoli...", + "needBothFiles": "Sono richiesti sia i file video che i sottotitoli per iniziare l'apprendimento", + "videoFile": "File video", + "subtitleFile": "File sottotitoli", + "uploaded": "Caricato", + "notUploaded": "Non caricato", + "upload": "Carica", + "autoPauseStatus": "Pausa automatica: {enabled}", + "on": "Attivo", + "off": "Disattivo", + "videoUploadFailed": "Caricamento video fallito", + "subtitleUploadFailed": "Caricamento sottotitoli fallito" + }, + "text_speaker": { + "generateIPA": "Genera IPA", + "viewSavedItems": "Visualizza elementi salvati", + "confirmDeleteAll": "Sei sicuro di voler eliminare tutto? (S/N)" + }, + "translator": { + "detectLanguage": "rileva lingua", + "generateIPA": "genera ipa", + "translateInto": "traduci in", + "chinese": "Cinese", + "english": "Inglese", + "italian": "Italiano", + "other": "Altro", + "translating": "traduzione...", + "translate": "traduci", + "inputLanguage": "Inserisci una lingua.", + "history": "Cronologia", + "enterLanguage": "Inserisci lingua", + "add_to_folder": { + "notAuthenticated": "Non sei autenticato", + "chooseFolder": "Scegli una cartella a cui aggiungere", + "noFolders": "Nessuna cartella trovata", + "folderInfo": "{id}. {name}", + "close": "Chiudi", + "success": "Coppia di testi aggiunta alla cartella", + "error": "Impossibile aggiungere la coppia di testi alla cartella" + }, + "autoSave": "Salvataggio automatico" + } +} diff --git a/messages/ja-JP.json b/messages/ja-JP.json new file mode 100644 index 0000000..174d3a7 --- /dev/null +++ b/messages/ja-JP.json @@ -0,0 +1,193 @@ +{ + "alphabet": { + "chooseCharacters": "学習したい文字を選択してください", + "japanese": "日本語仮名", + "english": "英語アルファベット", + "uyghur": "ウイグル文字", + "esperanto": "エスペラント文字", + "loading": "読み込み中...", + "loadFailed": "読み込みに失敗しました。もう一度お試しください", + "hideLetter": "文字を非表示", + "showLetter": "文字を表示", + "hideIPA": "IPAを非表示", + "showIPA": "IPAを表示", + "roman": "ローマ字", + "letter": "文字", + "random": "ランダムモード", + "randomNext": "ランダムで次へ" + }, + "folders": { + "title": "フォルダー", + "subtitle": "コレクションを管理", + "newFolder": "新規フォルダー", + "creating": "作成中...", + "noFoldersYet": "フォルダーがありません", + "folderInfo": "ID: {id} • {totalPairs}組", + "enterFolderName": "フォルダー名を入力:", + "confirmDelete": "削除するには「{name}」と入力してください:" + }, + "folder_id": { + "unauthorized": "あなたはこのフォルダーの所有者ではありません", + "back": "戻る", + "textPairs": "テキストペア", + "itemsCount": "{count}項目", + "memorize": "暗記", + "loadingTextPairs": "テキストペアを読み込み中...", + "noTextPairs": "このフォルダーにはテキストペアがありません", + "addNewTextPair": "新しいテキストペアを追加", + "add": "追加", + "updateTextPair": "テキストペアを更新", + "update": "更新", + "text1": "テキスト1", + "text2": "テキスト2", + "locale1": "言語1", + "locale2": "言語2", + "edit": "編集", + "delete": "削除" + }, + "home": { + "title": "言語を学ぶ", + "description": "これは、人工言語を含む世界中のほぼすべての言語を学ぶのに役立つ非常に便利なウェブサイトです。", + "explore": "探索", + "fortune": { + "quote": "Stay hungry, stay foolish.", + "author": "— スティーブ・ジョブズ" + }, + "translator": { + "name": "翻訳", + "description": "任意の言語に翻訳し、国際音声記号(IPA)で注釈を付けます" + }, + "textSpeaker": { + "name": "テキストスピーカー", + "description": "テキストを認識して音読します。ループ再生と速度調整をサポート" + }, + "srtPlayer": { + "name": "SRTビデオプレーヤー", + "description": "SRT字幕ファイルに基づいてビデオを文ごとに再生し、ネイティブスピーカーの発音を模倣します" + }, + "alphabet": { + "name": "アルファベット", + "description": "アルファベットから新しい言語の学習を始めましょう" + }, + "memorize": { + "name": "暗記", + "description": "言語Aから言語B、言語Bから言語A、ディクテーションをサポート" + }, + "dictionary": { + "name": "辞書", + "description": "単語やフレーズを調べ、詳細な定義と例を表示" + }, + "moreFeatures": { + "name": "その他の機能", + "description": "開発中です。お楽しみに" + } + }, + "auth": { + "title": "認証", + "signIn": "ログイン", + "signUp": "新規登録", + "email": "メールアドレス", + "password": "パスワード", + "confirmPassword": "パスワード(確認)", + "name": "名前", + "signInButton": "ログイン", + "signUpButton": "新規登録", + "noAccount": "アカウントをお持ちでないですか?", + "hasAccount": "すでにアカウントをお持ちですか?", + "signInWithGitHub": "GitHubでログイン", + "signUpWithGitHub": "GitHubで新規登録", + "invalidEmail": "有効なメールアドレスを入力してください", + "passwordTooShort": "パスワードは8文字以上である必要があります", + "passwordsNotMatch": "パスワードが一致しません", + "nameRequired": "名前を入力してください", + "emailRequired": "メールアドレスを入力してください", + "passwordRequired": "パスワードを入力してください", + "confirmPasswordRequired": "パスワード(確認)を入力してください", + "loading": "読み込み中..." + }, + "memorize": { + "folder_selector": { + "selectFolder": "フォルダーを選択", + "noFolders": "フォルダーが見つかりません", + "folderInfo": "{id}. {name} ({count})" + }, + "memorize": { + "answer": "回答", + "next": "次へ", + "reverse": "逆順", + "dictation": "ディクテーション", + "noTextPairs": "利用可能なテキストペアがありません", + "disorder": "ランダム", + "previous": "前へ" + }, + "page": { + "unauthorized": "このフォルダーにアクセスする権限がありません" + } + }, + "navbar": { + "title": "learn-languages", + "sourceCode": "GitHub", + "sign_in": "ログイン", + "profile": "プロフィール", + "folders": "フォルダー" + }, + "profile": { + "myProfile": "マイプロフィール", + "email": "メールアドレス: {email}", + "logout": "ログアウト" + }, + "srt_player": { + "uploadVideo": "ビデオをアップロード", + "uploadSubtitle": "字幕をアップロード", + "pause": "一時停止", + "play": "再生", + "previous": "前へ", + "next": "次へ", + "restart": "最初から", + "autoPause": "自動一時停止 ({enabled})", + "uploadVideoAndSubtitle": "ビデオと字幕ファイルをアップロードしてください", + "uploadVideoFile": "ビデオファイルをアップロードしてください", + "uploadSubtitleFile": "字幕ファイルをアップロードしてください", + "processingSubtitle": "字幕ファイルを処理中...", + "needBothFiles": "学習を開始するにはビデオと字幕ファイルの両方が必要です", + "videoFile": "ビデオファイル", + "subtitleFile": "字幕ファイル", + "uploaded": "アップロード済み", + "notUploaded": "未アップロード", + "upload": "アップロード", + "autoPauseStatus": "自動一時停止: {enabled}", + "on": "オン", + "off": "オフ", + "videoUploadFailed": "ビデオのアップロードに失敗しました", + "subtitleUploadFailed": "字幕のアップロードに失敗しました" + }, + "text_speaker": { + "generateIPA": "IPAを生成", + "viewSavedItems": "保存済みアイテムを表示", + "confirmDeleteAll": "本当にすべて削除しますか? (Y/N)" + }, + "translator": { + "detectLanguage": "言語を検出", + "generateIPA": "IPAを生成", + "translateInto": "翻訳", + "chinese": "中国語", + "english": "英語", + "italian": "イタリア語", + "other": "その他", + "translating": "翻訳中...", + "translate": "翻訳", + "inputLanguage": "言語を入力してください。", + "history": "履歴", + "enterLanguage": "言語を入力", + "add_to_folder": { + "notAuthenticated": "認証されていません", + "chooseFolder": "追加するフォルダーを選択", + "noFolders": "フォルダーが見つかりません", + "folderInfo": "{id}. {name}", + "close": "閉じる", + "success": "テキストペアをフォルダーに追加しました", + "error": "テキストペアの追加に失敗しました" + }, + "autoSave": "自動保存" + } +} diff --git a/messages/ko-KR.json b/messages/ko-KR.json new file mode 100644 index 0000000..67b0b62 --- /dev/null +++ b/messages/ko-KR.json @@ -0,0 +1,193 @@ +{ + "alphabet": { + "chooseCharacters": "학습할 문자를 선택하세요", + "japanese": "일본어 가나", + "english": "영문 알파벳", + "uyghur": "위구르 문자", + "esperanto": "에스페란토 문자", + "loading": "로딩 중...", + "loadFailed": "로딩 실패, 다시 시도해 주세요", + "hideLetter": "문자 숨기기", + "showLetter": "문자 표시", + "hideIPA": "IPA 숨기기", + "showIPA": "IPA 표시", + "roman": "로마자 표기", + "letter": "문자", + "random": "무작위 모드", + "randomNext": "무작위 다음" + }, + "folders": { + "title": "폴더", + "subtitle": "컬렉션 관리", + "newFolder": "새 폴더", + "creating": "생성 중...", + "noFoldersYet": "폴더가 없습니다", + "folderInfo": "ID: {id} • {totalPairs}쌍", + "enterFolderName": "폴더 이름 입력:", + "confirmDelete": "삭제하려면 \"{name}\"을(를) 입력하세요:" + }, + "folder_id": { + "unauthorized": "이 폴더의 소유자가 아닙니다", + "back": "뒤로", + "textPairs": "텍스트 쌍", + "itemsCount": "{count}개 항목", + "memorize": "암기", + "loadingTextPairs": "텍스트 쌍 로딩 중...", + "noTextPairs": "이 폴더에 텍스트 쌍이 없습니다", + "addNewTextPair": "새 텍스트 쌍 추가", + "add": "추가", + "updateTextPair": "텍스트 쌍 업데이트", + "update": "업데이트", + "text1": "텍스트 1", + "text2": "텍스트 2", + "locale1": "언어 1", + "locale2": "언어 2", + "edit": "편집", + "delete": "삭제" + }, + "home": { + "title": "언어 학습", + "description": "인공 언어를 포함하여 세상의 거의 모든 언어를 배우는 데 도움이 되는 매우 유용한 웹사이트입니다.", + "explore": "탐색", + "fortune": { + "quote": "Stay hungry, stay foolish.", + "author": "— 스티브 잡스" + }, + "translator": { + "name": "번역기", + "description": "모든 언어로 번역하고 국제 음성 기호(IPA)로 주석 추가" + }, + "textSpeaker": { + "name": "텍스트 스피커", + "description": "텍스트를 인식하고 읽어줍니다. 반복 재생 및 속도 조정 지원" + }, + "srtPlayer": { + "name": "SRT 비디오 플레이어", + "description": "SRT 자막 파일을 기반으로 문장별로 비디오를 재생하여 원어민 발음 모방" + }, + "alphabet": { + "name": "알파벳", + "description": "알파벳부터 새로운 언어 학습 시작" + }, + "memorize": { + "name": "암기", + "description": "언어 A에서 언어 B로, 언어 B에서 언어 A로, 받아쓰기 지원" + }, + "dictionary": { + "name": "사전", + "description": "단어와 구문을 조회하고 자세한 정의와 예제 제공" + }, + "moreFeatures": { + "name": "더 많은 기능", + "description": "개발 중, 기대해 주세요" + } + }, + "auth": { + "title": "인증", + "signIn": "로그인", + "signUp": "회원가입", + "email": "이메일", + "password": "비밀번호", + "confirmPassword": "비밀번호 확인", + "name": "이름", + "signInButton": "로그인", + "signUpButton": "회원가입", + "noAccount": "계정이 없으신가요?", + "hasAccount": "이미 계정이 있으신가요?", + "signInWithGitHub": "GitHub로 로그인", + "signUpWithGitHub": "GitHub로 회원가입", + "invalidEmail": "유효한 이메일 주소를 입력하세요", + "passwordTooShort": "비밀번호는 최소 8자 이상이어야 합니다", + "passwordsNotMatch": "비밀번호가 일치하지 않습니다", + "nameRequired": "이름을 입력하세요", + "emailRequired": "이메일을 입력하세요", + "passwordRequired": "비밀번호를 입력하세요", + "confirmPasswordRequired": "비밀번호 확인을 입력하세요", + "loading": "로딩 중..." + }, + "memorize": { + "folder_selector": { + "selectFolder": "폴더 선택", + "noFolders": "폴더를 찾을 수 없습니다", + "folderInfo": "{id}. {name} ({count})" + }, + "memorize": { + "answer": "정답", + "next": "다음", + "reverse": "반대", + "dictation": "받아쓰기", + "noTextPairs": "사용 가능한 텍스트 쌍이 없습니다", + "disorder": "무작위", + "previous": "이전" + }, + "page": { + "unauthorized": "이 폴더에 액세스할 권한이 없습니다" + } + }, + "navbar": { + "title": "learn-languages", + "sourceCode": "GitHub", + "sign_in": "로그인", + "profile": "프로필", + "folders": "폴더" + }, + "profile": { + "myProfile": "내 프로필", + "email": "이메일: {email}", + "logout": "로그아웃" + }, + "srt_player": { + "uploadVideo": "비디오 업로드", + "uploadSubtitle": "자막 업로드", + "pause": "일시정지", + "play": "재생", + "previous": "이전", + "next": "다음", + "restart": "처음부터", + "autoPause": "자동 일시정지 ({enabled})", + "uploadVideoAndSubtitle": "비디오와 자막 파일을 업로드하세요", + "uploadVideoFile": "비디오 파일을 업로드하세요", + "uploadSubtitleFile": "자막 파일을 업로드하세요", + "processingSubtitle": "자막 파일 처리 중...", + "needBothFiles": "학습을 시작하려면 비디오와 자막 파일이 모두 필요합니다", + "videoFile": "비디오 파일", + "subtitleFile": "자막 파일", + "uploaded": "업로드됨", + "notUploaded": "업로드되지 않음", + "upload": "업로드", + "autoPauseStatus": "자동 일시정지: {enabled}", + "on": "켜기", + "off": "끄기", + "videoUploadFailed": "비디오 업로드 실패", + "subtitleUploadFailed": "자막 업로드 실패" + }, + "text_speaker": { + "generateIPA": "IPA 생성", + "viewSavedItems": "저장된 항목 보기", + "confirmDeleteAll": "정말 모두 삭제하시겠습니까? (Y/N)" + }, + "translator": { + "detectLanguage": "언어 감지", + "generateIPA": "IPA 생성", + "translateInto": "번역", + "chinese": "중국어", + "english": "영어", + "italian": "이탈리아어", + "other": "기타", + "translating": "번역 중...", + "translate": "번역", + "inputLanguage": "언어를 입력하세요.", + "history": "기록", + "enterLanguage": "언어 입력", + "add_to_folder": { + "notAuthenticated": "인증되지 않았습니다", + "chooseFolder": "추가할 폴더 선택", + "noFolders": "폴더를 찾을 수 없습니다", + "folderInfo": "{id}. {name}", + "close": "닫기", + "success": "텍스트 쌍을 폴더에 추가했습니다", + "error": "텍스트 쌍 추가 실패" + }, + "autoSave": "자동 저장" + } +} diff --git a/messages/ug-CN.json b/messages/ug-CN.json new file mode 100644 index 0000000..184470f --- /dev/null +++ b/messages/ug-CN.json @@ -0,0 +1,193 @@ +{ + "alphabet": { + "chooseCharacters": "ئۆگىنەرلىك ھەرپلەرنى تاللاڭ", + "japanese": "ياپونىيە كانا", + "english": "ئىنگلىز ئېلىپبې", + "uyghur": "ئۇيغۇر ئېلىپبېسى", + "esperanto": "ئېسپېرانتو ئېلىپبېسى", + "loading": "چىقىرىۋېتىلىۋاتىدۇ...", + "loadFailed": "چىقىرىش مەغلۇب بولدى، قايتا سىناڭ", + "hideLetter": "ھەرپنى يوشۇرۇش", + "showLetter": "ھەرپنى كۆرسىتىش", + "hideIPA": "IPA نى يوشۇرۇش", + "showIPA": "IPA نى كۆرسىتىش", + "roman": "روماللاشتۇرۇش", + "letter": "ھەرپ", + "random": "ئىختىيارىي ھالەت", + "randomNext": "ئىختىيارىي كېيىنكى" + }, + "folders": { + "title": "قىسقۇچلار", + "subtitle": "توپلىمىڭىزنى باشقۇرۇڭ", + "newFolder": "يېڭى قىسقۇچ", + "creating": "قۇرۇۋاتىدۇ...", + "noFoldersYet": "قىسقۇچ يوق", + "folderInfo": "كود: {id} • {totalPairs} جۈپ", + "enterFolderName": "قىسقۇچ نامىنى كىرگۈزۈڭ:", + "confirmDelete": "ئۆچۈرۈش ئۈچۈن «{name}» نى كىرگۈزۈڭ:" + }, + "folder_id": { + "unauthorized": "سىز بۇ قىسقۇچنىڭ ئىگىسى ئەمەس", + "back": "كەينىگە", + "textPairs": "تېكىست جۈپلىرى", + "itemsCount": "{count} تۈر", + "memorize": "ئەستە ساقلاش", + "loadingTextPairs": "تېكىست جۈپلىرى چىقىرىۋېتىلىۋاتىدۇ...", + "noTextPairs": "بۇ قىسقۇچتا تېكىست جۈپى يوق", + "addNewTextPair": "يېڭى تېكىست جۈپى قوشۇڭ", + "add": "قوشۇش", + "updateTextPair": "تېكىست جۈپىنى يېڭىلاڭ", + "update": "يېڭىلاش", + "text1": "تېكىست 1", + "text2": "تېكىست 2", + "locale1": "تىل 1", + "locale2": "تىل 2", + "edit": "تەھرىرلەش", + "delete": "ئۆچۈرۈش" + }, + "home": { + "title": "تىل ئۆگىنىڭ", + "description": "بۇ سىزنى دۇنيادىكى ھەممە تىلنى، جۈملىدىن سۈنئىي تىللارنىمۇ ئۆگىنىشىڭىزغا ياردەم بېرىدىغان ناھايىتى پايدىلىق تور بېكەت.", + "explore": "ئىزدىنىش", + "fortune": { + "quote": "Stay hungry, stay foolish.", + "author": "— ستىۋ جوۋبس" + }, + "translator": { + "name": "تەرجىمە", + "description": "خالىغان تىلغا تەرجىمە قىلىپ خەلقئارالىق فونېتىك ئېلىپبې (IPA) بىلەن ئىزاھاتلاش" + }, + "textSpeaker": { + "name": "تېكىست ئوقۇغۇچى", + "description": "تېكىستنى پەرقلەندۈرۈپ ئوقىيدۇ، دەۋرىي ئوقۇش ۋە سۈرئەت تەڭشەشنى قوللايدۇ" + }, + "srtPlayer": { + "name": "SRT سىن ئوپىراتورى", + "description": "SRT خەت ئاستى فايلى ئاساسىدا سىننى جۈملە-جۈملە قويۇپ، يەرلىك ئىخچام ئاۋازنى ئىمتىلايدۇ" + }, + "alphabet": { + "name": "ئېلىپبې", + "description": "ئېلىپبېدىن يېڭى تىل ئۆگىنىشنى باشلاڭ" + }, + "memorize": { + "name": "ئەستە ساقلاش", + "description": "تىل A دىن تىل غا، تىل B دىن تىل A غا، دىكتات قوللايدۇ" + }, + "dictionary": { + "name": "لۇغەت", + "description": "سۆز ۋە سۆزنى ئىزدەپ، تەپسىلىي ئىزاھات ۋە مىساللار بىلەن تەمىنلەيدۇ" + }, + "moreFeatures": { + "name": "تېخىمۇ كۆپ ئىقتىدار", + "description": "ئىشلەۋاتىدۇ، كۈتكۈن بولۇڭ" + } + }, + "auth": { + "title": "دەلىللەش", + "signIn": "كىرىش", + "signUp": "تىزىملىتىش", + "email": "ئېلخەت", + "password": "ئىم", + "confirmPassword": "ئىمنى جەزملەش", + "name": "نام", + "signInButton": "كىرىش", + "signUpButton": "تىزىملىتىش", + "noAccount": "ھېساباتىڭىز يوقمۇ؟", + "hasAccount": "ھېساباتىڭىز بارمۇ؟", + "signInWithGitHub": "GitHub بىلەن كىرىڭ", + "signUpWithGitHub": "GitHub بىلەن تىزىملىتىڭ", + "invalidEmail": "ئىناۋەتلىك ئېلخەت ئادرېسى كىرگۈزۈڭ", + "passwordTooShort": "ئىم كەم دېگەندە 8 ھەرپتىن تۇرۇشى كېرەك", + "passwordsNotMatch": "ئىم ماس كەلمەيدۇ", + "nameRequired": "نامىڭىزنى كىرگۈزۈڭ", + "emailRequired": "ئېلخىتىڭىزنى كىرگۈزۈڭ", + "passwordRequired": "ئىمىڭىزنى كىرگۈزۈڭ", + "confirmPasswordRequired": "ئىمىڭىزنى جەزملەڭ", + "loading": "چىقىرىۋېتىلىۋاتىدۇ..." + }, + "memorize": { + "folder_selector": { + "selectFolder": "قىسقۇچ تاللاڭ", + "noFolders": "قىسقۇچ تېپىلمىدى", + "folderInfo": "{id}. {name} ({count})" + }, + "memorize": { + "answer": "جاۋاب", + "next": "كېيىنكى", + "reverse": "تەتۈر", + "dictation": "دىكتات", + "noTextPairs": "ئىشلەتكىلى بولىدىغان تېكىست جۈپى يوق", + "disorder": "بەت ئارلاش", + "previous": "ئىلگىرىكى" + }, + "page": { + "unauthorized": "بۇ قىسقۇچنى زىيارەت قىلىشقا ھوقۇقىڭىز يوق" + } + }, + "navbar": { + "title": "تىل ئۆگىنىش", + "sourceCode": "GitHub", + "sign_in": "كىرىش", + "profile": "پروفىل", + "folders": "قىسقۇچلار" + }, + "profile": { + "myProfile": "مېنىڭ پروفىلىم", + "email": "ئېلخەت: {email}", + "logout": "چىقىش" + }, + "srt_player": { + "uploadVideo": "سىن يۈكلەڭ", + "uploadSubtitle": "خەت ئاستى يۈكلەڭ", + "pause": "ۋاقىتلىق توختىتىش", + "play": "قويۇش", + "previous": "ئىلگىرىكى", + "next": "كېيىنكى", + "restart": "قايتا باشلاش", + "autoPause": "ئاپتوماتىك توختىتىش ({enabled})", + "uploadVideoAndSubtitle": "سىن ھەم خەت ئاستى فايلىنى يۈكلەڭ", + "uploadVideoFile": "سىن فايلى يۈكلەڭ", + "uploadSubtitleFile": "خەت ئاستى فايلى يۈكلەڭ", + "processingSubtitle": "خەت ئاستى فايلى بىر تەرەپ قىلىۋاتىدۇ...", + "needBothFiles": "ئۆگىنىشنى باشلاش ئۈچۈن سىن ھەم خەت ئاستى فايلىنىڭ ھەممىسى لازىم", + "videoFile": "سىن فايلى", + "subtitleFile": "خەت ئاستى فايلى", + "uploaded": "يۈكلەندى", + "notUploaded": "يۈكلەنمىدى", + "upload": "يۈكلەش", + "autoPauseStatus": "ئاپتوماتىك توختىتىش: {enabled}", + "on": "ئوچۇق", + "off": "تاقاق", + "videoUploadFailed": "سىن يۈكلەش مەغلۇب بولدى", + "subtitleUploadFailed": "خەت ئاستى يۈكلەش مەغلۇب بولدى" + }, + "text_speaker": { + "generateIPA": "IPA ھاسىل قىلىش", + "viewSavedItems": "ساقلانغان تۈرلەرنى كۆرۈش", + "confirmDeleteAll": "ھەممىنى ئۆچۈرەمسىز؟ (H/Y)" + }, + "translator": { + "detectLanguage": "تىل پەرقلەندۈرۈش", + "generateIPA": "IPA ھاسىل قىلىش", + "translateInto": "تەرجىمە قىلىش", + "chinese": "خەنزۇچە", + "english": "ئىنگلىزچە", + "italian": "ئىتاليانچە", + "other": "باشقا", + "translating": "تەرجىمە قىلىۋاتىدۇ...", + "translate": "تەرجىمە قىلىش", + "inputLanguage": "بىر تىل كىرگۈزۈڭ.", + "history": "تارىخ", + "enterLanguage": "تىل كىرگۈزۈڭ", + "add_to_folder": { + "notAuthenticated": "دەلىتلەنمىدىڭىز", + "chooseFolder": "قوشۇلىدىغان قىسقۇچنى تاللاڭ", + "noFolders": "قىسقۇچ تېپىلمىدى", + "folderInfo": "{id}. {name}", + "close": "تاقاش", + "success": "تېكىست جۈپى قىسقۇچقا قوشۇلدى", + "error": "تېكىست جۈپىنى قىسقۇچقا قوشۇش مەغلۇب بولدى" + }, + "autoSave": "ئاپتوماتىك ساقلاش" + } +} diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 1489ea3..3f48cf3 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -73,6 +73,10 @@ "name": "记忆", "description": "语言A到语言B,语言B到语言A,支持听写" }, + "dictionary": { + "name": "词典", + "description": "查询单词和短语,提供详细的释义和例句" + }, "moreFeatures": { "name": "更多功能", "description": "开发中,敬请期待" diff --git a/src/components/LanguageSettings.tsx b/src/components/LanguageSettings.tsx index 0d4c259..cf9beab 100644 --- a/src/components/LanguageSettings.tsx +++ b/src/components/LanguageSettings.tsx @@ -38,6 +38,42 @@ export default function LanguageSettings() { > 中文 + setLocale("ja-JP")} + > + 日本語 + + setLocale("ko-KR")} + > + 한국어 + + setLocale("de-DE")} + > + Deutsch + + setLocale("fr-FR")} + > + Français + + setLocale("it-IT")} + > + Italiano + + setLocale("ug-CN")} + > + ئۇيغۇرچە + )} diff --git a/src/config/i18n.ts b/src/config/i18n.ts index a690025..69fb304 100644 --- a/src/config/i18n.ts +++ b/src/config/i18n.ts @@ -1,2 +1,11 @@ -export const SUPPORTED_LOCALES = ["en-US", "zh-CN"]; +export const SUPPORTED_LOCALES = [ + "en-US", + "zh-CN", + "ja-JP", + "ko-KR", + "de-DE", + "fr-FR", + "it-IT", + "ug-CN", +]; export const DEFAULT_LOCALE = "en-US"; \ No newline at end of file