补全翻译
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-01-05 18:35:12 +08:00
parent be3eb17490
commit 66d17df59d
9 changed files with 23 additions and 13 deletions

View File

@@ -42,6 +42,7 @@
"text2": "Text 2", "text2": "Text 2",
"language1": "Sprache 1", "language1": "Sprache 1",
"language2": "Sprache 2", "language2": "Sprache 2",
"enterLanguageName": "Bitte geben Sie den Sprachennamen ein",
"edit": "Bearbeiten", "edit": "Bearbeiten",
"delete": "Löschen" "delete": "Löschen"
}, },

View File

@@ -42,6 +42,7 @@
"text2": "Text 2", "text2": "Text 2",
"language1": "Locale 1", "language1": "Locale 1",
"language2": "Locale 2", "language2": "Locale 2",
"enterLanguageName": "Please enter language name",
"edit": "Edit", "edit": "Edit",
"delete": "Delete" "delete": "Delete"
}, },

View File

@@ -42,6 +42,7 @@
"text2": "Texte 2", "text2": "Texte 2",
"language1": "Langue 1", "language1": "Langue 1",
"language2": "Langue 2", "language2": "Langue 2",
"enterLanguageName": "Veuillez entrer le nom de la langue",
"edit": "Modifier", "edit": "Modifier",
"delete": "Supprimer" "delete": "Supprimer"
}, },

View File

@@ -42,6 +42,7 @@
"text2": "Testo 2", "text2": "Testo 2",
"language1": "Lingua 1", "language1": "Lingua 1",
"language2": "Lingua 2", "language2": "Lingua 2",
"enterLanguageName": "Inserisci il nome della lingua",
"edit": "Modifica", "edit": "Modifica",
"delete": "Elimina" "delete": "Elimina"
}, },

View File

@@ -42,6 +42,7 @@
"text2": "テキスト2", "text2": "テキスト2",
"language1": "言語1", "language1": "言語1",
"language2": "言語2", "language2": "言語2",
"enterLanguageName": "言語名を入力してください",
"edit": "編集", "edit": "編集",
"delete": "削除" "delete": "削除"
}, },

View File

@@ -42,6 +42,7 @@
"text2": "텍스트 2", "text2": "텍스트 2",
"language1": "언어 1", "language1": "언어 1",
"language2": "언어 2", "language2": "언어 2",
"enterLanguageName": "언어 이름을 입력하세요",
"edit": "편집", "edit": "편집",
"delete": "삭제" "delete": "삭제"
}, },

View File

@@ -42,6 +42,7 @@
"text2": "تېكىست 2", "text2": "تېكىست 2",
"language1": "تىل 1", "language1": "تىل 1",
"language2": "تىل 2", "language2": "تىل 2",
"enterLanguageName": "تىل نامىنى كىرگۈزۈڭ",
"edit": "تەھرىرلەش", "edit": "تەھرىرلەش",
"delete": "ئۆچۈرۈش" "delete": "ئۆچۈرۈش"
}, },

View File

@@ -42,6 +42,7 @@
"text2": "文本2", "text2": "文本2",
"language1": "语言1", "language1": "语言1",
"language2": "语言2", "language2": "语言2",
"enterLanguageName": "请输入语言名称",
"edit": "编辑", "edit": "编辑",
"delete": "删除" "delete": "删除"
}, },

View File

@@ -1,17 +1,18 @@
import { useTranslations } from "next-intl";
import { useState } from "react"; import { useState } from "react";
const COMMON_LANGUAGES = [ const COMMON_LANGUAGES = [
{ label: "中文", value: "chinese" }, { label: "chinese", value: "chinese" },
{ label: "英文", value: "english" }, { label: "english", value: "english" },
{ label: "意大利语", value: "italian" }, { label: "italian", value: "italian" },
{ label: "日语", value: "japanese" }, { label: "japanese", value: "japanese" },
{ label: "韩语", value: "korean" }, { label: "korean", value: "korean" },
{ label: "法语", value: "french" }, { label: "french", value: "french" },
{ label: "德语", value: "german" }, { label: "german", value: "german" },
{ label: "西班牙语", value: "spanish" }, { label: "spanish", value: "spanish" },
{ label: "葡萄牙语", value: "portuguese" }, { label: "portuguese", value: "portuguese" },
{ label: "俄语", value: "russian" }, { label: "russian", value: "russian" },
{ label: "其他", value: "other" }, { label: "other", value: "other" },
]; ];
interface LocaleSelectorProps { interface LocaleSelectorProps {
@@ -20,6 +21,7 @@ interface LocaleSelectorProps {
} }
export function LocaleSelector({ value, onChange }: LocaleSelectorProps) { export function LocaleSelector({ value, onChange }: LocaleSelectorProps) {
const t = useTranslations();
const [customInput, setCustomInput] = useState(""); const [customInput, setCustomInput] = useState("");
const isCommonLanguage = COMMON_LANGUAGES.some((l) => l.value === value && l.value !== "other"); const isCommonLanguage = COMMON_LANGUAGES.some((l) => l.value === value && l.value !== "other");
const showCustomInput = value === "other" || !isCommonLanguage; const showCustomInput = value === "other" || !isCommonLanguage;
@@ -52,7 +54,7 @@ export function LocaleSelector({ value, onChange }: LocaleSelectorProps) {
> >
{COMMON_LANGUAGES.map((lang) => ( {COMMON_LANGUAGES.map((lang) => (
<option key={lang.value} value={lang.value}> <option key={lang.value} value={lang.value}>
{lang.label} {t(`translator.${lang.label}`)}
</option> </option>
))} ))}
</select> </select>
@@ -61,7 +63,7 @@ export function LocaleSelector({ value, onChange }: LocaleSelectorProps) {
type="text" type="text"
value={inputValue} value={inputValue}
onChange={(e) => handleCustomInputChange(e.target.value)} onChange={(e) => handleCustomInputChange(e.target.value)}
placeholder="请输入语言名称" placeholder={t("folder_id.enterLanguageName")}
className="w-full px-3 py-2 border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-[#35786f] mt-2" className="w-full px-3 py-2 border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-[#35786f] mt-2"
/> />
)} )}