gpt4 book ai didi

angular - 如何将 angular 9 $localize 与复数一起使用?

转载 作者:行者123 更新时间:2023-12-03 14:40:34 24 4
gpt4 key购买 nike

从 Angular 9 开始,我们可以使用

$localize`Hello ${name}:name:`

对于 typescript 代码中的 i18n。这仍然有一些限制,如 ng xi18n命令不会检测字符串,但如果将这些文本手动添加到翻译文件中,它会起作用。
$localize函数在 JSDoc in the source 中有很好的记录,但是它没有解释如何使用复数。我的意思是这样的(伪代码):

$localize`Hello {${count}, plural, =1 {reader} other {readers}}`

这可以通过 $localize 实现吗? ?如果是:如何?如果不是:Angular 如何将此类表达式从 HTML 编译为 TypeScript?

最佳答案

目前,无法通过 $localize 使用 ICU ,如本 github issue 中所述.从最后的评论来看,如果它保持轻量级,看起来 angular 团队正在考虑它。

同时,建议的解决方法是创建您自己的辅助方法,该方法根据计数参数返回正确的翻译。

    title = $localize `Hi ${this.name}! You have ${
plural(this.users.length. {
0: $localize `no users`,
1: $localize `one user`,
other: $localize`${this.users.length} users`,
}.`

function plural(value, options) {
// Handle 0, 1, ... cases
const directResult = options[value];
if (directResult !== undefined) { return directResult; }
// handle zero, one, two, few, many
// ...
return options.other;
}

关于angular - 如何将 angular 9 $localize 与复数一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60597235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com