本文是原始日语文章的中文译本。
我将一个仅支持日语的 Expo 应用迁移为支持日语、英语和简体中文。我没有选择一次性翻译所有内容,而是将工作分为三个阶段:基础建设、核心流程以及剩余页面。
更困难的部分并非收集译文,而是确定设备语言与手动设置之间的优先级、日期格式化处理,以及如何处理未翻译的页面。
首先明确语言设置的责任归属
我使用了 i18next 和 react-i18next。对于设备语言检测,我使用了 Hermes 引擎中的 Intl 对象。
export const SUPPORTED_LANGUAGES = ["ja", "en", "zh-Hans"] as const;
export type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number];
export type LanguagePreference = SupportedLanguage | "system";
export function detectDeviceLanguage(): SupportedLanguage {
const locale = Intl.DateTimeFormat().resolvedOptions().locale ?? "";
const lang = locale.toLowerCase().split(/[-_]/)[0];
if (lang === "zh") return "zh-Hans";
return lang === "ja" || lang === "en" ? lang : "ja";
}
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。