fix: add missing translations and fix namespace usage

- Fix srt-player to use srtT namespace for error messages
- Add deck_id.enterLanguageName and language labels (english, chinese, japanese, korean)
- Add memorize.review.nextCard translation
- Update all 8 locales with consistent translations
This commit is contained in:
2026-03-18 08:34:04 +08:00
parent 1ef337801d
commit bc7608e049
10 changed files with 51 additions and 3 deletions

View File

@@ -231,6 +231,7 @@
"ease": "Schwierigkeit", "ease": "Schwierigkeit",
"lapses": "Fehler", "lapses": "Fehler",
"showAnswer": "Antwort zeigen", "showAnswer": "Antwort zeigen",
"nextCard": "Weiter",
"again": "Nochmal", "again": "Nochmal",
"hard": "Schwer", "hard": "Schwer",
"good": "Gut", "good": "Gut",
@@ -626,6 +627,11 @@
"sentencePlaceholder": "Satz eingeben", "sentencePlaceholder": "Satz eingeben",
"wordPlaceholder": "Wort eingeben", "wordPlaceholder": "Wort eingeben",
"queryLang": "Abfragesprache", "queryLang": "Abfragesprache",
"enterLanguageName": "Bitte Sprachnamen eingeben",
"english": "Englisch",
"chinese": "Chinesisch",
"japanese": "Japanisch",
"korean": "Koreanisch",
"meanings": "Bedeutungen", "meanings": "Bedeutungen",
"addMeaning": "Bedeutung hinzufügen", "addMeaning": "Bedeutung hinzufügen",
"partOfSpeech": "Wortart", "partOfSpeech": "Wortart",

View File

@@ -107,6 +107,11 @@
"sentencePlaceholder": "Enter a sentence", "sentencePlaceholder": "Enter a sentence",
"wordPlaceholder": "Enter a word", "wordPlaceholder": "Enter a word",
"queryLang": "Language", "queryLang": "Language",
"enterLanguageName": "Please enter language name",
"english": "English",
"chinese": "Chinese",
"japanese": "Japanese",
"korean": "Korean",
"meanings": "Meanings", "meanings": "Meanings",
"addMeaning": "Add Meaning", "addMeaning": "Add Meaning",
"partOfSpeech": "Part of Speech", "partOfSpeech": "Part of Speech",
@@ -268,6 +273,7 @@
"ease": "Ease", "ease": "Ease",
"lapses": "Lapses", "lapses": "Lapses",
"showAnswer": "Show Answer", "showAnswer": "Show Answer",
"nextCard": "Next",
"again": "Again", "again": "Again",
"hard": "Hard", "hard": "Hard",
"good": "Good", "good": "Good",

View File

@@ -165,6 +165,11 @@
"sentencePlaceholder": "Entrer phrase", "sentencePlaceholder": "Entrer phrase",
"wordPlaceholder": "Entrer mot", "wordPlaceholder": "Entrer mot",
"queryLang": "Langue de requête", "queryLang": "Langue de requête",
"enterLanguageName": "Veuillez entrer le nom de la langue",
"english": "Anglais",
"chinese": "Chinois",
"japanese": "Japonais",
"korean": "Coréen",
"meanings": "Significations", "meanings": "Significations",
"addMeaning": "Ajouter signification", "addMeaning": "Ajouter signification",
"partOfSpeech": "Partie du discours", "partOfSpeech": "Partie du discours",
@@ -297,6 +302,7 @@
"ease": "Facilité", "ease": "Facilité",
"lapses": "Erreurs", "lapses": "Erreurs",
"showAnswer": "Montrer réponse", "showAnswer": "Montrer réponse",
"nextCard": "Suivant",
"again": "Encore", "again": "Encore",
"hard": "Difficile", "hard": "Difficile",
"good": "Bien", "good": "Bien",

View File

@@ -165,6 +165,11 @@
"sentencePlaceholder": "Inserisci frase", "sentencePlaceholder": "Inserisci frase",
"wordPlaceholder": "Inserisci parola", "wordPlaceholder": "Inserisci parola",
"queryLang": "Lingua di query", "queryLang": "Lingua di query",
"enterLanguageName": "Inserisci il nome della lingua",
"english": "Inglese",
"chinese": "Cinese",
"japanese": "Giapponese",
"korean": "Coreano",
"meanings": "Significati", "meanings": "Significati",
"addMeaning": "Aggiungi significato", "addMeaning": "Aggiungi significato",
"partOfSpeech": "Parte del discorso", "partOfSpeech": "Parte del discorso",
@@ -297,6 +302,7 @@
"ease": "Difficoltà", "ease": "Difficoltà",
"lapses": "Errori", "lapses": "Errori",
"showAnswer": "Mostra risposta", "showAnswer": "Mostra risposta",
"nextCard": "Prossima",
"again": "Ancora", "again": "Ancora",
"hard": "Difficile", "hard": "Difficile",
"good": "Buono", "good": "Buono",

View File

@@ -133,6 +133,11 @@
"sentencePlaceholder": "文章を入力", "sentencePlaceholder": "文章を入力",
"wordPlaceholder": "単語を入力", "wordPlaceholder": "単語を入力",
"queryLang": "検索言語", "queryLang": "検索言語",
"enterLanguageName": "言語名を入力してください",
"english": "英語",
"chinese": "中国語",
"japanese": "日本語",
"korean": "韓国語",
"meanings": "意味", "meanings": "意味",
"addMeaning": "意味を追加", "addMeaning": "意味を追加",
"partOfSpeech": "品詞", "partOfSpeech": "品詞",
@@ -265,6 +270,7 @@
"ease": "易しさ", "ease": "易しさ",
"lapses": "忘回数", "lapses": "忘回数",
"showAnswer": "答えを表示", "showAnswer": "答えを表示",
"nextCard": "次へ",
"again": "もう一度", "again": "もう一度",
"hard": "難しい", "hard": "難しい",
"good": "普通", "good": "普通",

View File

@@ -165,6 +165,11 @@
"sentencePlaceholder": "문장 입력", "sentencePlaceholder": "문장 입력",
"wordPlaceholder": "단어 입력", "wordPlaceholder": "단어 입력",
"queryLang": "검색 언어", "queryLang": "검색 언어",
"enterLanguageName": "언어 이름을 입력하세요",
"english": "영어",
"chinese": "중국어",
"japanese": "일본어",
"korean": "한국어",
"meanings": "의미", "meanings": "의미",
"addMeaning": "의미 추가", "addMeaning": "의미 추가",
"partOfSpeech": "품사", "partOfSpeech": "품사",
@@ -297,6 +302,7 @@
"ease": "난이도", "ease": "난이도",
"lapses": "실패 횟수", "lapses": "실패 횟수",
"showAnswer": "정답 보기", "showAnswer": "정답 보기",
"nextCard": "다음",
"again": "다시", "again": "다시",
"hard": "어려움", "hard": "어려움",
"good": "좋음", "good": "좋음",

View File

@@ -165,6 +165,11 @@
"sentencePlaceholder": "جۈملە كىرگۈزۈڭ", "sentencePlaceholder": "جۈملە كىرگۈزۈڭ",
"wordPlaceholder": "سۆز كىرگۈزۈڭ", "wordPlaceholder": "سۆز كىرگۈزۈڭ",
"queryLang": "سۈرۈشتۈرۈش تىلى", "queryLang": "سۈرۈشتۈرۈش تىلى",
"enterLanguageName": "تىل ئاتىنى كىرگۈزۈڭ",
"english": "ئىنگىلىزچە",
"chinese": "خەنزۇچە",
"japanese": "ياپونچە",
"korean": "كورىيەچە",
"meanings": "مەنىلىرى", "meanings": "مەنىلىرى",
"addMeaning": "مەنا قوشۇش", "addMeaning": "مەنا قوشۇش",
"partOfSpeech": "سۆز بۆلىكى", "partOfSpeech": "سۆز بۆلىكى",
@@ -297,6 +302,7 @@
"ease": "قىيىنلىق", "ease": "قىيىنلىق",
"lapses": "خاتالىق", "lapses": "خاتالىق",
"showAnswer": "جاۋابنى كۆرسەت", "showAnswer": "جاۋابنى كۆرسەت",
"nextCard": "كېيىنكى",
"again": "يەنە", "again": "يەنە",
"hard": "قىيىن", "hard": "قىيىن",
"good": "ياخشى", "good": "ياخشى",

View File

@@ -133,6 +133,11 @@
"sentencePlaceholder": "输入句子", "sentencePlaceholder": "输入句子",
"wordPlaceholder": "输入单词", "wordPlaceholder": "输入单词",
"queryLang": "查询语言", "queryLang": "查询语言",
"enterLanguageName": "请输入语言名称",
"english": "英语",
"chinese": "中文",
"japanese": "日语",
"korean": "韩语",
"meanings": "释义", "meanings": "释义",
"addMeaning": "添加释义", "addMeaning": "添加释义",
"partOfSpeech": "词性", "partOfSpeech": "词性",
@@ -265,6 +270,7 @@
"ease": "难度系数", "ease": "难度系数",
"lapses": "遗忘次数", "lapses": "遗忘次数",
"showAnswer": "显示答案", "showAnswer": "显示答案",
"nextCard": "下一张",
"again": "重来", "again": "重来",
"hard": "困难", "hard": "困难",
"good": "良好", "good": "良好",

View File

@@ -70,7 +70,7 @@ export default function SrtPlayerPage() {
uploadVideo((url) => { uploadVideo((url) => {
setVideoUrl(url); setVideoUrl(url);
}, (error) => { }, (error) => {
toast.error(t('videoUploadFailed') + ': ' + error.message); toast.error(srtT('videoUploadFailed') + ': ' + error.message);
}); });
}; };
@@ -78,7 +78,7 @@ export default function SrtPlayerPage() {
uploadSubtitle((url) => { uploadSubtitle((url) => {
setSubtitleUrl(url); setSubtitleUrl(url);
}, (error) => { }, (error) => {
toast.error(t('subtitleUploadFailed') + ': ' + error.message); toast.error(srtT('subtitleUploadFailed') + ': ' + error.message);
}); });
}; };

View File

@@ -357,7 +357,7 @@ const Memorize: React.FC<MemorizeProps> = ({ deckId, deckName }) => {
<ChevronLeft className="w-5 h-5" /> <ChevronLeft className="w-5 h-5" />
</LightButton> </LightButton>
<span className="text-gray-500 text-sm"> <span className="text-gray-500 text-sm">
{t("nextCard", { default: "Next" })} {t("nextCard")}
<span className="ml-2 text-xs opacity-60">Space</span> <span className="ml-2 text-xs opacity-60">Space</span>
</span> </span>
<LightButton <LightButton