0

我为我的 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"
4

2 回答 2

0

代替任何初始化代码详细信息或实际 .po 或 .mo 文件的十六进制转储,唯一可能值得研究的是bind_textdomain_codeset. (也或在orsetlocale中添加字符集。)LANG=LC_ALL=

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

于 2011-11-12T21:49:27.493 回答
0

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

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

于 2011-12-01T11:19:43.973 回答