SuperAPI AI 工具集

i18n-localization

前端与建站

查看项目

更新于 10-16 06:43

技能介绍

用途:该技能整理国际化(i18n)与本地化(L10n)的实践规范,帮助应用从一开始就具备可翻译性,并系统管理翻译内容、locale 文件与从右到左(RTL)语言布局。

主要能力:区分 i18n、L10n、Locale(语言+地区,如 en-US、tr-TR)与 RTL(阿拉伯语、希伯来语)等核心概念;给出项目是否需要 i18n 的判断参考,如公开 Web 应用与 SaaS 产品通常需要,单区域应用可考虑未来需求,个人项目为可选项。

实现模式:文中列出 React(react-i18next)用 useTranslation 与 t('welcome.title')、Next.js(next-intl)用 useTranslations 与 t('title')、Python(gettext)用 gettext as _ 并调用 _("Welcome to our app") 的示例。

文件组织:建议按语言目录(如 locales/en、locales/tr、locales/ar)组织,并按功能拆分 common.json、auth.json、errors.json 等命名空间。

最佳实践:使用翻译键而非原始文本;按功能划分命名空间;支持复数;按 locale 处理日期与数字格式;提前规划 RTL;复杂字符串使用 ICU 消息格式。避免在组件中硬编码字符串、拼接已翻译文本、假设文本长度(如德语约长 30%)、忽略 RTL 布局或在同一文件混用语言。

常见问题处理:缺失翻译回退到默认语言;硬编码字符串用 linter/检查脚本发现;日期用 Intl.DateTimeFormat,数字用 Intl.NumberFormat,复数使用 ICU 消息格式。RTL 部分建议使用 CSS 逻辑属性(如 margin-inline-start 替代 margin-left)并对图标做方向翻转。

检查脚本:提供 scripts/i18n_checker.py,用于检测硬编码字符串与缺失翻译,命令为 python scripts/i18n_checker.py <project_path>。

限制与适用场景:以上为实践模式与检查清单,未提供具体价格、平台支持范围或效果承诺;实际采用需结合项目技术栈与所支持的 locale 自行评估。