【发布时间】:2011-11-11 20:52:12
【问题描述】:
我已经为我的 wordpress 主题编写了一个 .po 文件。字符集是 unicode,因为我无法将其定义为“utf-8”,否则它不会在 Poedit(我目前用于对字符串进行编目的程序)中打开。不幸的是,Peoedit(因此它是 .mo 编译)或 __() 和 _e() 的 gettext 处理都不会正确呈现包含重音符号的字符串(法语字符串,因为我的基本语言是法语)。我网站的 .php 文件目前是 utf-8,用于处理法语口音。
.mo 和 web 文件之间的字符集不匹配可能是这里的罪魁祸首吗?如果是这样,我如何在 utf-8 字符集下渲染我的 .po 和 .mo 文件并让它工作?这是我的 .po 文件的标头(包括不起作用的 utf-8 编码):
msgid ""
msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Patrick <shock_x_trooper@hotmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
【问题讨论】:
-
您尝试过更新版本的 Poedit 吗?它会拒绝有效的 UTF-8 并不常见。如果您的 .po 文件不在该字符集中,您还指定了什么? (显示 gettext 初始化代码。)
-
是的,我运行的是最新版本 1.4.6。也许问题是我无法使用 utf-8 编码运行 Poedit,从而阻止我重新编译 .mo 文件(因为我无法打开它)。有没有一个程序可以单独从 .po 文件编译 .mo 文件?
-
我发现使用字符集 iso-8859-1 可以与 Poeditor 一起使用,不幸的是,仍然无法使用法语口音。
-
其他程序:
msgfmt- 如果不显示代码,您将无法获得太多帮助。这太模糊了,而且是一个非常本地化的问题。 -
我不确定你想看什么代码。我认为这更像是我的文件的配置问题而不是实际代码。
标签: php internationalization gettext po mo