撇号未在 .po 文件中通过


Apostrophes not coming through in .po file

我正在用poedit翻译。然而,poedit似乎忽略了撇号。例如,不应该通过不应该。我用 utf-8 编码。有谁知道为什么会这样,是否有解决方案?

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

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

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

你需要使用 html 实体: ’

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

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