我为我的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"
答案 0 :(得分:0)
代替实际.po或.mo文件的任何初始化代码详细信息或hexdump,唯一可能值得研究的是bind_textdomain_codeset
。 (另请setlocale
或在LANG=
或LC_ALL=
中添加字符集。)
msgfmt
和php2po
(通过Pootle)是Poedit的替代品,如果你无法设法使UTF-8工作。 (这是你需要做的。)
答案 1 :(得分:0)
你需要定义“Content-Type:text / plain; charset = utf-8 \ n”,如你所说, 但您还需要将文件转换为UTF-8(无BOM)(记事本++会这样做)。
当您在poedit中重新打开它时,重音符应该显示OK。 保存并上传到WP主题文件夹。