You need to enable JavaScript to run this app.
导航

复数

最近更新时间2021.12.13 11:20:06

首次发布时间2021.07.05 14:57:36

文案书写中,很多语言都有自己的复数形式。例如,如中文“%d个视频”,英文需要翻译为“%d video”(单数)/“%d videos”(复数);有些语言的单复数种类更多,如阿语的单复数多达6种。

本文将介绍在国际化翻译平台使用单复数文案的详细操作。

添加单复数文案

方法1:平台添加

  1. 设置 > Key 规范 > 显示单复数

image

  1. 翻译任务/空间 > 新增文案 > 打开复数开关 > 填写 key 、源文案、翻译文案
image
  1. 把文案中包含的数字标签添加进设置 > 标签校验,目的是确保翻译文案中包含等量标签,避免代码编译报错

image.png

方法2:Excel 文件导入复数文案

需用 ICU 格式在 excel 文件的 source、目标语言列填充复数文案, 标准 ICU 语法书写格式为{variable, plural, one {} other {}},具体文案需放入 {} 中。

举例

1. 语言为中文时,ICU 格式参考:
{num, plural, other {此处为源文案}}
{number, plural, other {此处为源文案}}

2. 源语言为英文时,ICU 格式参考:
{num, plural, one {此处为单数形式源文案} other {此处为复数形式源文案}}
{number, plural, one {此处为单数形式源文案} other {此处为复数形式源文案}}

正确和错误示例

  • ✅{num, plural, one {day} other {days}}
  • ✅{num, plural, other {天}}
  • ✅{num, plural, one {{num} day} other {{num} days}}
  • ✅ {num, plural, one {I have # apple,but it's too small} other {I have # apples,but they're too small}} 正确,与上面的一段解析是一致,仅仅是 I have 写在了里面
  • ✅{num, plural, one {# day} other {# days}} 正确,one {# day} 和other {# days}中的#为占位符,会被实际的传入的 num 变量进行替换
  • ❌{num, plural, one {{{number}} day} other {days}} 错误原因:one {} 中不允许有双括号
  • ❌{num, plural, one {day}, other {days}} 错误原因:one {day} 后多余逗号

具体可以参考在线icu 语法编辑器进行尝试,如下图
image.png

方法3:代码文件导入单复数文案

(暂只支持.xml和.stringsdict)

书写规范详见导入文件格式说明

⚠️ ICU 的插值处理说明

通过平台手动添加或 Open API 添加的复数文案,ICU 格式默认以 num 作为 variable;通过 excel 文件添加的复数文案,可以自定义 variable 内容。

通过 excel 文件导入或 Open API 修改已有复数文案的翻译文案时,如 variable 有变化,将以变化后的 variable 为准。

通过文件导入或 Open API 添加的复数文案,后续在平台手动修改翻译文案时,将不会修改已有的 variable。