是否可以使两个或多个 msgids 匹配一个 msgstr?
例如, ('list.empty') 和 ('list.null') 都返回 "There is no any objects yet."
如果我在 po 文件中这样写:
msgid "list.empty"
msgid "list.null"
msgstr "There is no any objects yet."
它只是“缺少‘msgstr’”错误:
然而,
msgid "list.empty"
msgstr "There is no any objects yet."
msgid "list.null"
msgstr "There is no any objects yet."
看起来和工作正常但很愚蠢,因为一旦我更改了一个 msgstr 而没有另一个,它们会返回不同的结果。
有没有人有更好的黑客?
最佳答案
您以错误的方式接近 gettext
,这是它的工作原理:
每个条目都需要
msgid
msgctxt
是可选的,用于区分具有相同内容但可能有不同翻译的两个 msgid
记录。 (msgid, msgctxt)
是字典的唯一键,如果缺少 msgctxt
可以考虑使用 null
。 您应该在实现之前阅读 gettext documentation,因为它并不总是那么简单。
在您的情况下,这就是您应该如何实现它:
msgctxt "list.empty"
msgid "There is no any objects yet."
msgctxt "list.null"
msgid "There is no any objects yet."
关于gettext - gettext 中 "msgid"的多个 "msgstr",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5895205/