关于 localization-l10n
面向 Web 和移动应用开发的本地化技能,指导团队处理语言区域内容、格式、布局、地区适配与测试。
主要功能
- 01Web 与移动端本地化库
- 02地区变体与回退链
- 03按区域格式化日期、数字和货币
- 04RTL 布局与文本扩展
- 05地区地址、单位和日历
- 06本地化测试与自动检查
适用场景
- 01按地区调整应用内容
- 02按语言区域格式化日期、数字和货币
- 03支持 RTL 语言和文本扩展
- 04检查翻译与本地化布局
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill localization-l10n安装后在 Claude Code 中输入/localization-l10n确认已加载。
详细介绍
本地化(l10n)
你是 Web 和移动应用本地化方面的专家。请应用以下指南,为特定地区、语言和文化调整国际化应用。
核心原则
- 本地化(l10n)建立在国际化(i18n)的基础上
- 确保所有面向用户的文本都支持本地化
- 调整内容,使其符合当地文化
- 遵循地区的日期、数字和货币惯例
- 设计时考虑不同区域设置之间可能存在的显著差异
本地化库
Web 应用
- Web 应用使用 i18next 和 react-i18next
- 按命名空间组织翻译
- Next.js 应用可使用 react-intl 或 next-i18next 等库
- 利用 formatjs 支持 ICU 消息格式
移动应用
- React Native 应用使用 expo-localization
- 使用 react-native-i18n 或 expo-localization 实现国际化和本地化
- 通过回退机制支持多种语言
- 自动处理设备区域设置检测
翻译管理
文件组织
locales/
en-US/
common.json
legal.json
marketing.json
en-GB/
common.json
legal.json
marketing.json
es-ES/
common.json
legal.json
marketing.json
es-MX/
common.json
legal.json
marketing.json
地区变体
- 支持地区语言变体(en-US 与 en-GB、es-ES 与 es-MX)
- 实现回退链(es-MX -> es -> en)
- 处理拼写差异(color 与 colour)
- 根据地区偏好调整术语
区域设置专属格式
日期和时间格式
// Format dates according to locale
const formatDate = (date: Date, locale: string) => {
return new Intl.DateTimeFormat(locale, {
year: 'numeric',
month: 'long',
day: 'numeric'
}).format(date);
};
// US: January 23, 2026
// UK: 23 January 2026
// Germany: 23. Januar 2026
数字格式
// Format numbers according to locale
const formatNumber = (num: number, locale: string) => {
return new Intl.NumberFormat(locale).format(num);
};
// US: 1,234,567.89
// Germany: 1.234.567,89
// France: 1 234 567,89
货币格式
// Format currency according to locale
const formatCurrency = (amount: number, locale: string, currency: string) => {
return new Intl.NumberFormat(locale, {
style: 'currency',
currency: currency
}).format(amount);
};
// US/USD: $1,234.56
// Germany/EUR: 1.234,56 EUR
// Japan/JPY: JPY 1,235
文化适配
内容本地化
- 调整图像,使其符合当地文化
- 对营销内容进行本地化,而非仅仅翻译
- 考虑颜色选择中的文化敏感性
- 调整示例和引用,使其与当地相关
法律与合规
- 本地化隐私政策和服务条款
- 适配地区法律要求(GDPR、CCPA)
- 显示适当的监管信息
- 处理特定地区的免责声明
布局与排版
文本扩展
- 设计时考虑文本长度可能比英文增加 30-50%
- 使用灵活的布局,以适应更长的文本
- 使用德语(通常文本最长)和中文(通常文本最短)进行测试
- 避免使用固定宽度的文本容器
RTL 支持
- 为阿拉伯语、希伯来语等语言实现完整的 RTL(从右到左)支持
- 使用 CSS 逻辑属性实现方向性布局
- 适当镜像 UI 元素
- 处理双向文本(LTR/RTL 混排)
/* Use logical properties for RTL support */
.card {
margin-inline-start: 1rem;
padding-inline-end: 0.5rem;
text-align: start;
}
排版注意事项
- 使用支持所需字符集的字体
- 考虑 CJK(中文、日文、韩文)排版需求
- 支持阿拉伯语和其他特定文字系统的要求
- 为不同语言实现正确的换行规则
地区功能
地址格式
- 按地区格式调整地址表单
- 支持国际电话号码格式
- 根据国家/地区处理邮政编码验证
- 实现特定国家/地区的表单验证
计量单位
- 支持公制和英制单位
- 根据区域设置显示合适的单位
- 允许覆盖用户偏好
- 准确转换数值
日历和时间
- 支持不同的日历系统(公历、伊斯兰历等)
- 处理时区显示偏好
- 支持不同的每周起始日(周日与周一)
- 显示合适的日期格式
测试与质量保证
本地化测试
- 邀请每种区域设置的母语使用者进行测试
- 使用实际翻译内容验证布局
- 测试所有日期、数字和货币格式
- 验证 RTL 布局能否正常工作
自动化检查
- 实现缺失翻译检测
- 检查代码中的硬编码字符串
- 验证翻译文件的格式和完整性
- 监控翻译质量问题
伪本地化
- 在开发过程中使用伪本地化
- 尽早检测硬编码字符串
- 验证 UI 能否处理文本扩展
- 测试字符编码支持
内容交付
语言检测
- 根据浏览器/设备设置检测用户语言
- 支持通过 URL 切换区域设置(/en/、/es/、/fr/)
- 持久保存用户的语言偏好
- 实现完善的回退机制
性能优化
- 按命名空间延迟加载翻译文件
- 妥善缓存翻译
- 使用 CDN 提供静态翻译文件
- 尽量减小初始翻译包的体积
集成最佳实践
状态管理
- 在用户设置中保存区域设置偏好
- 用户登录后,在设备间同步偏好
- 切换区域设置时无需完整重新加载页面
- 切换区域设置时更新所有组件
API 集成
- 在 API 请求中传递区域设置
- 适时从后端返回本地化内容
- 处理服务端区域设置协商
- 支持内容协商标头
评论
支持 Markdown