You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Transloco能否在复数翻译规则中引用其他独立配置的翻译项?

Transloco 复数规则的低译员门槛适配方案

你设想的拆分独立翻译键的思路完全可以落地,是兼顾译员友好度、自动化流程效率的最优解法,只需要补一段极轻量的预处理逻辑,就能完全实现你想要的效果。

核心逻辑说明

Transloco 底层基于标准 ICU MessageFormat 完成翻译内容解析,原生语法本身不支持在消息块内直接引用其他翻译键,但我们完全可以通过前置的资源加载预处理,实现你设计的配置形式,且不会对运行时性能、解析稳定性造成额外影响。

具体实现路径

  • 第一步:统一占位符规范
    直接沿用你设计的@键名标记独立翻译片段,复数规则块按照你预期的结构编写即可:
    "myPluralRule": "{myCount, plural, =0 {@no_results} one {@one_result} other {@#_results}}",
    "@no_results": "No results",
    "@one_result": "1 result",
    "@#_results": "# results"
    
  • 第二步:增加递归替换的预处理中间层
    在翻译资源加载完成、提交给Transloco解析之前,遍历所有翻译字符串做简单替换:
    识别文本中大括号包裹的独立@开头占位符,自动读取对应@键名下的翻译值完成替换。
    经过预处理后,myPluralRule会被自动还原为Transloco可直接解析的标准ICU格式:
    "myPluralRule": "{myCount, plural, =0 {No results} one {1 result} other {# results}}"
    
  • 第三步:打通全自动化流程
    拆分后的每个@键值都是独立短文本,彻底消除译员的理解门槛:
    译员不需要掌握ICU复数语法、不需要理解plural、=0、one这类分类规则的含义,只需要针对每个短条目翻译自然语言内容即可;你的翻译管理工具也可以直接基于这些独立条目做翻译记忆匹配、格式校验,不需要额外开发复杂的嵌套语法解析能力。

关键避坑点

  • 给替换逻辑加严格的边界判断:只有当占位符是被大括号完全包裹、且键名符合统一命名规则(纯小写字母+下划线组合)时才触发替换,避免误处理译员翻译文本中正常出现的@符号内容
  • 多语言适配不需要固定复数分类数量:不同语言的CLDR复数分类差异极大(比如日语只有1种分类,威尔士语有6种),你可以允许译员根据目标语言的语法要求补充、调整每个分类对应的@键值,只要最终生成的ICU块符合CLDR标准,Transloco就能正常解析
  • 预处理环节加缺失校验:如果发现复数块里引用的@键在当前语言资源中不存在,直接抛出明确告警,避免线上渲染时出现占位符裸露的问题

内容的提问来源于stack exchange,提问作者Andrew Bateman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 07:54:05