gpt4 book ai didi

internationalization - 结合使用 Gettext 和 ICU MessageFormat 是个好主意吗?

转载 作者:行者123 更新时间:2023-12-04 08:20:39 25 4
gpt4 key购买 nike

当我读到 GettextICU MessageFormat ,两者总是被描述为对立的本地化方法。

但我认为,将两者结合起来会是一个有趣的想法:使用 MessageFormat 进行格式化,使用 Gettext 根据语言选择正确的模板。沿着以下路线:

setlocale(LC_ALL, lang)
output = MessageFormat(lang, gettext("There is {number 1} Foo in bar."), [1])

这种方法有明显(或不那么明显)的缺点吗?我是否缺少 MessageFormat 的核心部分,否则如何选择已翻译的模板?

最佳答案

您的方法的明显问题是如何处理复数形式。尽管 ICU 内置了对 CLDR's plural rules 的支持,它不像 gettext 使用的那样容易和灵活。
基本上,在 gettext 中,翻译人员可以根据需要添加任意数量的复数形式,这由 .po 文件头中的选择规则控制。它比使用 CLDR 规则(根据 CLDR 版本可能不正确)更灵活、更正确。

关于internationalization - 结合使用 Gettext 和 ICU MessageFormat 是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734622/

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