其他
应用需要适配多语言/多地区时:用 l10n…
适用于 Web 或移动应用在 i18n 基础上做 localization(l10n),覆盖多 locale 的文本、格式、文化、布局、区域功能、测试与按需分发。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
应用需要适配多语言/多地区时:用 l10通用
解决思路
- 在 internationalization(i18n)基础上实施 localization(l10n)。
- 确保所有面向用户文本都支持本地化。
- 按文化适当性适配内容。
- 遵守区域日期、数字和货币约定。
- 为不同 locale 之间差异显著的内容做设计。
- Web 应用使用 i18next 和 react-i18next。
- 实现基于 namespace 的翻译组织。
- Next.js 应用使用 react-intl 或 next-i18next 等库。
- 使用 formatjs 支持 ICU message format。
- React Native 应用使用 expo-localization。
- 使用 react-native-i18n 或 expo-localization 进行 internationalization 和 localization。
- 支持多语言并实现 fallback 机制。
- 自动处理设备 locale 检测。
- 按 locales/<locale>/<namespace>.json 组织翻译文件,例如 locales/en-US/common.json、legal.json、marketing.json,以及 en-GB、es-ES、es-MX 对应文件。
- 支持区域语言变体(如 en-US vs en-GB、es-ES vs es-MX)。
- 实现 fallback 链(如 es-MX -> es -> en)。
- 处理拼写差异(如 color vs colour)。
- 按区域偏好适配术语。
- 使用 Intl.DateTimeFormat(locale, { year: 'numeric', month: 'long', day: 'numeric' }).format(date) 按 locale 格式化日期;例如 US: January 23, 2026、UK: 23 January 2026、Germany: 23. Januar 2026。
- 使用 Intl.NumberFormat(locale).format(num) 按 locale 格式化数字;例如 US: 1,234,567.89、Germany: 1.234.567,89、France: 1 234 567,89。
- 使用 Intl.NumberFormat(locale, { style: 'currency', currency: currency }).format(amount) 按 locale 格式化货币;例如 US/USD: $1,234.56、Germany/EUR: 1.234,56 EUR、Japan/JPY: JPY 1,235。
- 按文化适当性适配图像。
- 本地化营销内容,而不只是翻译。
- 在颜色选择中考虑文化敏感性。
- 按本地相关性适配示例和引用。
- 本地化隐私政策和服务条款。
- 按区域法律要求适配(GDPR、CCPA)。
- 展示适当的监管信息。
- 处理区域特定免责声明。
- 按从英文扩展 30-50% 设计文本。
- 使用能容纳更长文本的灵活布局。
- 用德语(通常最长)和中文(通常最短)测试。
- 避免对文本使用固定宽度容器。
- 为阿拉伯语、希伯来语等实现完整 RTL(right-to-left)支持。
- 使用 CSS logical properties 处理方向布局。
- 适当镜像 UI 元素。
- 处理双向文本(混合 LTR/RTL)。
- 使用逻辑属性,例如 .card { margin-inline-start: 1rem; padding-inline-end: 0.5rem; text-align: start; }。
- 使用支持所需字符集的字体。
- 考虑 CJK(Chinese, Japanese, Korean)排版需求。
- 支持阿拉伯语和其他文字系统特定要求。
- 为不同语言实现正确的换行。
- 按区域格式适配地址表单。
- 支持国际电话号码格式。
- 按国家处理 postal/ZIP code 验证。
- 实现国家特定表单验证。
- 支持公制和英制单位。
- 根据 locale 显示适当单位。
- 允许用户偏好覆盖。
- 准确转换值。
- 支持不同日历系统(Gregorian、Hijri 等)。
- 处理时区显示偏好。
- 支持不同周起始日(Sunday vs Monday)。
- 显示适当日期格式。
- 对每个 locale 由母语者测试。
- 用实际翻译内容验证布局。
- 测试所有日期、数字和货币格式。
- 验证 RTL 布局正常工作。
- 实现缺失翻译检测。
- 检查代码中的硬编码字符串。
- 验证翻译文件格式和完整性。
- 监控翻译质量问题。
- 在开发期间使用 pseudolocalization。
- 尽早检测硬编码字符串。
- 验证 UI 能处理文本扩展。
- 测试字符编码支持。
- 从浏览器/设备设置检测用户语言。
- 支持基于 URL 的 locale 切换(/en/、/es/、/fr/)。
- 持久化用户语言偏好。
- 实现优雅的 fallback 机制。
- 按 namespace 懒加载翻译文件。
- 适当缓存翻译。
- 对静态翻译文件使用 CDN。
- 最小化初始翻译 bundle 大小。
- 在用户设置中存储 locale 偏好。
- 登录时跨设备同步偏好。
- 处理 locale 变化而无需整页刷新。
- 在 locale 切换时更新所有组件。
- 在 API 请求中传递 locale。
- 适当时从后端返回本地化内容。
- 处理服务器端 locale 协商。
- 支持 content negotiation headers。
适用边界 · 注意事项
- 只面向单一语言和地区、无多语言或区域合规需求的应用,不必引入完整 l10n 体系。
- 字符串尚未从代码中抽取、i18n 基础设施尚未就绪时,不应直接进入 l10n,否则成本高且易返工。
- 没有 RTL、CJK、区域法律或区域变体需求时,不必优先实现相应复杂能力。