Ein*_*ius 5 translation pluralize angularjs angular-translate
您好我需要根据值进行复数翻译,但无法找到如何做到这一点.
例如,我有变量peopleCount.
peopleCount = 1翻译应该是:英语:{{ peopleCount }} person likes this立陶宛语:{{ peopleCount }} zmogus tai megstapeopleCount超过1英文翻译将是:{{ peopleCount }} people like this.但对于立陶宛语翻译:
peopleCount是2到9之间或任何以这些数字结尾的数字,除了以第4个规则提供的数字结尾的数字(例如:225,249,210 <---这些是正确的数字.并且不正确的数字:215,250 ... ).这将是{{ peopleCount }} zmones tai megsta{{ peopleCount }} zmoniu tai megsta我该如何做到这一点?
Ily*_*iev 12
Angular-translate具有MessageFormat功能的服务,它非常强大,并且还具有立陶宛语的内置语言环境.关于MessageFormat和angular-translate的文章.
安装
您可以通过bower安装此软件包:
$ bower install angular-translate-interpolation-messageformat
Run Code Online (Sandbox Code Playgroud)
之后,按顺序包含MessageFormat和angular-translate-interpolation-messageformat的必要脚本:
<script src="path/to/messageformat.js"></script>
<script src="path/to/angular-translate-interpolation-messageformat.js"></script>
Run Code Online (Sandbox Code Playgroud)
最后在你的config函数中调用$ translateProvider中的useMessageFormatInterpolation函数:
$translateProvider.useMessageFormatInterpolation();
Run Code Online (Sandbox Code Playgroud)
用法
安装angular-translate-interpolation-messageformat到您的应用程序后,您可以使用它.
例如,您可以为代码"PEOPLE"创建英语本地化,如下所示:
{
"PEOPLE" : "{peopleCount, plural, one {There is one man (in lithuanian)} few {# zmones tai megsta} other {# zmoniu tai megsta}}"
}
Run Code Online (Sandbox Code Playgroud)
而不是像你这样在你的HTML中使用它:
<span translate="PEOPLE" translate-values="{peopleCount: 12}" translate-interpolation="messageformat"></span>
Run Code Online (Sandbox Code Playgroud)
输出将是:"12 zmones tai megsta".
| 归档时间: |
|
| 查看次数: |
10330 次 |
| 最近记录: |