当设备未连接时,各页面默认显示英文语言的文本,并在标题追加 (Disconnect)

This commit is contained in:
eafonyang
2026-07-01 11:23:06 +08:00
parent 8283ffcf14
commit ac7b5da0f0
20 changed files with 113 additions and 440 deletions
+7 -5
View File
@@ -15,8 +15,9 @@ import { FeatureGate } from "@/components/FeatureGate";
import { navigateToSelect } from "./SelectPage";
import { cn } from "@/lib/utils";
import localeZh from "@/locales/data-zh.json";
import localeZhHK from "@/locales/data-zh-HK.json";
import localeEn from "@/locales/data-en.json";
import { resolveLocalePack } from "@/locales/resolveLocale";
import { usePageTitleWithConnection } from "@/hooks/usePageTitleWithConnection";
type EffectLocale = NonNullable<(typeof localeZh)["effect"]>;
@@ -96,11 +97,12 @@ export default function EffectsPage() {
const { deviceState, updateSetting } = useDevice();
const effectText = useMemo((): EffectLocale => {
const lang = deviceState?.language;
const pack = lang === 0 ? localeEn : lang === 1 ? localeZhHK : localeZh;
return (pack.effect ?? localeZh.effect) as EffectLocale;
const pack = resolveLocalePack(deviceState?.language);
return (pack.effect ?? localeEn.effect) as EffectLocale;
}, [deviceState?.language]);
const pageTitle = usePageTitleWithConnection(effectText.pageTitle ?? "Effects");
const sceneLabels = useMemo(() => {
const opts = effectText.style?.options ?? [];
return [...opts].sort((a, b) => a.index - b.index).map((o) => o.label);
@@ -180,7 +182,7 @@ export default function EffectsPage() {
<button onClick={() => setLocation("/")} className="mr-4 text-white/60 active:text-white transition-colors">
<ChevronLeft size={24} />
</button>
<h1 className="flex-1 text-center text-[17px] font-semibold text-white">{effectText.pageTitle}</h1>
<h1 className="flex-1 text-center text-[17px] font-semibold text-white">{pageTitle}</h1>
<IOSToggle
checked={effectOn}
onChange={(v) => {