编译 GNU gettext 的好处和主要原因是什么 .po
(可移植对象)文件到 .mo
(机器对象)?
我看到很多程序在读取/解析 .po
直接地。
我没有使用 wordpress,但在他们的文档上说:
https://codex.wordpress.org/I18n_for_WordPress_Developers
PO files are compiled to binary MO files, which give faster access to the strings at run-time
更快的访问是真的吗? PO 只能读取一次并缓存在某个哈希表中,MO 可能也是如此
最佳答案
有几个原因:
msgfmt --check
编译 PO 文件它对 PO 文件执行多项重要检查,而不仅仅是语法检查。例如,如果您使用 printf 格式字符串,它将检查翻译中的 %-expansions 是否与原始字符串匹配。如果不这样做,可能会导致运行时崩溃。根据(编程)语言,还有更多检查。 /usr/share/locale/LOCALE/LC_MESSAGES/TEXTDOMAIN.mo
下并且它们应该是 MO 格式,而不是 PO 格式。当然,这不适用于仅实现 gettext API 子集的无数库。 关于gettext - po文件编译成mo的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53743208/