mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-07-23 22:20:13 +08:00
- 新增共享六语言词典、前端 i18n 运行时与语言设置入口 - 推进连接、驱动、数据网格、查询、AI、Redis、表设计等模块文案本地化 - 补充 raw 边界、SQL/驱动/更新场景测试与 i18n 扫描工具
40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
import React from "react";
|
|
import { Segmented } from "antd";
|
|
import { useI18n } from "../i18n/provider";
|
|
import type { LanguagePreference } from "../i18n/types";
|
|
|
|
const LanguageSettingsPanel: React.FC = () => {
|
|
const { preference, setPreference, t } = useI18n();
|
|
|
|
const options: { label: string; value: LanguagePreference }[] = [
|
|
{ label: t("settings.language.follow_system"), value: "system" },
|
|
{ label: t("settings.language.simplified_chinese"), value: "zh-CN" },
|
|
{ label: t("settings.language.traditional_chinese"), value: "zh-TW" },
|
|
{ label: t("settings.language.english"), value: "en-US" },
|
|
{ label: t("settings.language.japanese"), value: "ja-JP" },
|
|
{ label: t("settings.language.german"), value: "de-DE" },
|
|
{ label: t("settings.language.russian"), value: "ru-RU" },
|
|
];
|
|
|
|
return (
|
|
<div style={{ display: "grid", gap: 12 }}>
|
|
<div style={{ display: "grid", gap: 4 }}>
|
|
<div style={{ fontSize: 14, fontWeight: 600 }}>{t("settings.language.title")}</div>
|
|
<div style={{ fontSize: 12, opacity: 0.72 }}>{t("settings.language.description")}</div>
|
|
</div>
|
|
<Segmented
|
|
aria-label={t("settings.language.title")}
|
|
block
|
|
options={options}
|
|
value={preference}
|
|
onChange={(value) => setPreference(value as LanguagePreference)}
|
|
/>
|
|
<div style={{ fontSize: 12, opacity: 0.64 }}>
|
|
{t("settings.language.restart_hint")}
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default LanguageSettingsPanel;
|