Skip to main content

适用于各框架的区域设置回退链

大多数 i18n 框架会完全跳过父级区域设置。pt-BR 用户缺少某个键时会看到英语,而不是完全可用的 pt-PT 翻译。locale-chain 库通过可配置的深度合并回退链解决此问题。

问题:框架跳过父级区域设置

您发布的 pt-PT 翻译包含 2,000 个键,pt-BR 文件则有 200 个地区覆盖项。剩余 1,800 个相同键会怎样?大多数框架会显示回退区域设置(通常为英语),而不是父级区域设置。巴西用户会看到葡萄牙语和英语混杂的内容,体验不完整。

这并非边界情况。每个具有地区变体(zh-Hans/zh-Hant、es/es-419、en-US/en-GB、fr/fr-CA)的应用都会遇到此问题。几乎所有 i18n 框架的默认行为都不适合地区区域设置。

深度合并回退的工作原理

用户选择 pt-BR 时,该库会从回退链中的每个区域设置加载消息,并按优先级顺序深度合并。地区键覆盖父级键,父级键填补缺口。结果是一套完整消息,不会缺少任何翻译。

示例:pt-BR 将 'cart.checkout' 定义为 'Finalizar compra'。pt-PT 将 'cart.checkout' 定义为 'Concluir compra',将 'cart.empty' 定义为 'Carrinho vazio'。pt-BR 的合并结果会采用 pt-BR 的结账文本,并对空购物车消息回退到 pt-PT,而不是显示英语。

立即试用 i18n Agent

将翻译文件拖放到此处

JSON, YAML, PO, XML, CSV, Markdown, Properties

或点击选择文件

目标语言

无需注册即时估价

区域设置回退常见问题