当我读到Gettext和ICU MessageFormat时,它们总是被描述为对立的本地化方法。
但我认为,将两者结合起来会是一个有趣的想法:使用 MessageFormat 进行格式化,使用 Gettext 根据语言选择正确的模板。沿着:
setlocale(LC_ALL, lang)
output = MessageFormat(lang, gettext("There is {number 1} Foo in bar."), [1])
这种方法有明显(或不那么明显)的缺点吗?我是否错过了 MessageFormat 关于如何选择翻译模板的核心部分?