Files
powerfun-setting/src/i18n/index.ts
T
yecong 8dd0edd2ce 20260603-① 适配桨频器,做了连接和设置页面,已经内测ok。
② 适配T5骑行台,做了相关页面。内测还不够充分,产品也不着急上市,所以此版更新中,应该需要隐藏掉。
③ 修复了之前 盘爪设备信息 读取时,有概率出现乱码的情况。读取时做了排序和延迟,修复了此问题。
④ 多语言我们这边做更新时,拉取的是仅有中英文的版本,当时你们那好像有更新更多语言?所以需要适配一下。
⑤ 蓝牙名搜索时,适配最新的固件名称:
盘爪为:PF-PM5-前缀,桨频器为PF-STK-前缀,骑行台为PF-T5-前缀。同时允许前缀POWERFUN-也能显示并连接。
2026-06-03 14:35:08 +08:00

72 lines
1.4 KiB
TypeScript

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import AsyncStorage from '@react-native-async-storage/async-storage';
import zh from './locales/zh.json';
import en from './locales/en.json';
const LANGUAGE_KEY = '@app_language';
// 语言配置类型
export interface LanguageOption {
key: string;
label: string;
value: string;
}
// 语言选项
export const LANGUAGES: LanguageOption[] = [
{
key: 'zh',
label: '中文',
value: 'zh',
},
{
key: 'en',
label: 'English',
value: 'en',
},
];
// 获取存储的语言
export const getStoredLanguage = async (): Promise<string> => {
try {
const language = await AsyncStorage.getItem(LANGUAGE_KEY);
return language || 'zh';
} catch (error) {
return 'zh';
}
};
// 保存语言选择
export const saveLanguage = async (language: string): Promise<void> => {
try {
await AsyncStorage.setItem(LANGUAGE_KEY, language);
} catch (error) {
console.error('保存语言失败:', error);
}
};
// 初始化 i18n
i18n
.use(initReactI18next)
.init({
compatibilityJSON: 'v4',
resources: {
zh: { translation: zh },
en: { translation: en },
},
lng: 'zh',
fallbackLng: 'zh',
interpolation: {
escapeValue: false,
},
});
// 从存储中加载语言设置
getStoredLanguage().then((language) => {
i18n.changeLanguage(language);
});
export default i18n;