.po 文件中没有出现撇号

Apostrophes not coming through in .po file

我正在用 poedit 翻译。然而,poedit 似乎忽略了撇号。例如 shouldn't 会变成 shouldnt。我在 utf-8 中编码。有谁知道为什么会这样,是否有解决方案?

您需要使用 html 实体:’

来源:http://geektnt.com/tag/poedit

部分文本字符需要转换为html个实体,否则将无法正确显示。一个非常常见的例子是包含撇号或单引号 (‘) 的单词需要替换为 ’——例如,Chloe O’Brian 应该写成 Chloe O’Brian。如需 html 个实体的完整列表,请访问 W3School。

我向您保证,Poedit 并没有以某种方式忽略或吃掉撇号——那是荒谬的。它只是一个编辑器,可以将您编写的内容完全按照您编写的内容(是的,包括 ' 或任何 Unicode 字符)放入您的 PO 和 MO 文件中。

您的问题是 在您的 PHP 代码 中,您在打印之前错误地转义了(已翻译的)字符串 — 不幸的是,您是如何以及在什么情况下这样做的你没有分享。

但这就是为什么WordPress 具有像 esc_attr_e 这样的功能,可以进行任何必要的转义并正确执行,这样您就不必做任何荒谬的事情(而且工作起来很痛苦!),比如用 [=12= 替换 ' ] 在你所有的翻译中(在使用未翻译的文本时甚至不起作用......)。