首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Weblate添加支持多个的json文件

向Weblate添加支持多个的json文件
EN

Stack Overflow用户
提问于 2015-03-27 06:09:25
回答 2查看 546关注 0票数 1

我知道Weblate支持将字符串转换为所有复数形式,我找到了如何在.po文件中定义键的示例。但是如何定义json格式的字符串的复数形式呢?

我尝试了多种变体,以英语为例:

代码语言:javascript
复制
{
  "key" : "A single key"
  "key_plural" : "%d keys"
}

但我最终得到了两个不同的字符串,而不是我在Weblate演示中看到的一个字符串的两个变体。

那么,对于英语和其他具有更多复数形式的语言(one,plural,more,…),我应该如何正确地做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2015-03-27 20:48:13

你不能以这种方式可靠地支持复数。许多语言都有不同数量的复数,因此与英语没有一对一的对应关系。为了正确支持复数,你需要使用能够理解复数的翻译格式,例如Gettext (这只是一个例子,实际上大多数翻译格式都支持这一点)。您可以在他们的文档中找到关于复数的更多信息:http://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/Plural-forms.html

票数 2
EN

Stack Overflow用户

发布于 2016-10-26 04:00:46

只需添加一个不同的示例来说明如何在JavaScript中做到这一点,messageformat库支持复数形式,支持在各种语言中可能发生的不同情况。

对于英语复数形式,你可以这样使用它:

代码语言:javascript
复制
var pluralMessage = mf.compile("There {NUM_RESULTS, plural, one{is} other{are}} {NUM_RESULTS} {NUM_RESULTS, plural, one{result} other{results}}")

console.log(pluralMessage({ NUM_RESULTS: 1 });
// There is 1 result

console.log(pluralMessage({ NUM_RESULTS: 5 });
// There are 5 result

oneother是复数类别。哪些复数类别是可用的,取决于目标语言的复数规则。例如,在日语中,在语法上没有单数和复数之分的情况下,只会使用other{...},而对于捷克语,有四种不同的情况:

  • zero{...}
  • few{...}
  • many{...}
  • other{...}

另请参阅Language Plural Rules上的documentation for PluralFormat和此概述

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29289819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档