Wordpress .po文件无法识别法语口音

时间:2011-11-11 20:52:12

标签: php internationalization gettext po mo

我为我的wordpress主题编写了一个.po文件。 charset是unicode,因为我无法将其定义为'utf-8',或者它不会在Poedit中打开(我正在使用的程序来编目我的字符串)。不幸的是,包含重音符号(法语字符串,作为我的基本语言是法语)的字符串将无法通过Peoedit(以及它的.mo编译)或__()和_e()的gettext处理来正确呈现。我的网站的.php文件目前是utf-8,用于处理法语口音。

.mo和网络文件之间的字符集不匹配可能是罪魁祸首吗?如果是这样,我如何在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"

2 个答案:

答案 0 :(得分:0)

代替实际.po或.mo文件的任何初始化代码详细信息或hexdump,唯一可能值得研究的是bind_textdomain_codeset。 (另请setlocale或在LANG=LC_ALL=中添加字符集。)

msgfmtphp2po(通过Pootle)是Poedit的替代品,如果你无法设法使UTF-8工作。 (这是你需要做的。)

答案 1 :(得分:0)

你需要定义“Content-Type:text / plain; charset = utf-8 \ n”,如你所说, 但您还需要将文件转换为UTF-8(无BOM)(记事本++会这样做)。

当您在poedit中重新打开它时,重音符应该显示OK。 保存并上传到WP主题文件夹。