如何在 weblate 翻译文件中添加复数形式?

Posted

技术标签:

【中文标题】如何在 weblate 翻译文件中添加复数形式?【英文标题】:How to add pluralization to weblate translations files? 【发布时间】:2021-01-04 08:15:21 【问题描述】:

我正在尝试使用 weblate 自托管包(MaxOs Docker,进行测试)来管理我的 iosandroid 应用程序的翻译。我看到多元化是可能的,但我还没有找到将这些添加到项目中的方法。

点击开始新翻译时,我没有看到将翻译更改为复数形式的选项。那么如何添加翻译并可以选择更改呢?

将翻译导出为 android xml 文件时,我正在寻找类似的内容。

<resources>
    <plurals name="plural_name">
        <item quantity="zero">zero plural</item>
        <item quantity="other">other plural</item>
    </plurals>
</resources>

顺便说一句,我还在寻找一种方法来设置一个键集以在 android 和 iOS 组件之间共享。似乎我必须两次定义所有键和翻译。我以为我阅读了可以合并的文档,但不清楚如何执行此操作。

【问题讨论】:

【参考方案1】:

目前,无法在 Weblate 中添加复数,但它可以编辑文件中存在的任何复数。通常的工作流程是开发人员在向英文文件创建功能时添加初始字符串,然后在 Weblate 中对其进行翻译或校对。

无论如何,iOS 字符串格式不支持复数形式(参见https://docs.weblate.org/en/latest/formats.html#translation-types-capabilities),Weblate 还不支持字符串字典(参见https://github.com/WeblateOrg/weblate/issues/623)。

PS:对于即将发布的 Weblate,可以添加新的复数字符串,但可能只使用 API。我今天在https://github.com/WeblateOrg/weblate/commit/94669ab8a3a3c2f86e01055ea6150407929a2435 实现了它。

【讨论】:

谢谢你的回答,但是当我导入上面的android strings xml example weblate时无法加载文件,那么如何添加复数呢? 无法加载文件时发生了什么?你有什么错误吗? 我用的是weblate 4.2.2先上传了一个strings.xml,但是需要是zip文件。所以我把strings.xml 放到一个zipfile 中。仍然无法导入它一直说 不支持的文件格式。 这是 xml 文件:&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;resources&gt; &lt;string name="app_name"&gt;AndroidPluralString&lt;/string&gt; &lt;plurals name="numberOfItems"&gt; &lt;item quantity="one"&gt;%d item&lt;/item&gt; &lt;item quantity="other"&gt;%d items&lt;/item&gt; &lt;/plurals&gt; &lt;/resources&gt; 好像你做错了什么,见docs.weblate.org/en/latest/admin/…

以上是关于如何在 weblate 翻译文件中添加复数形式?的主要内容,如果未能解决你的问题,请参考以下文章

如何添加 Weblate REST 翻译文件上传所需的权限?

第一次提交在 Weblate 中为 iOS 添加翻译字符串失败

为啥 weblate 不能识别我的 pot 文件?

在 Weblate 中手动删除项目

weblate在线翻译平台搭建

将复杂的 Sphinx 翻译导入 Weblate