常见的陷阱

模糊翻译

有时 makemessages 可能会认为它为翻译找到​​的字符串与已有的翻译有些相似。它会在 .po 文件中用特殊的 fuzzy 注释标记它,如下所示:

#: templates/randa/map.html:91
#, fuzzy
msgid "Country"
msgstr "Länderinfo"

即使翻译是正确的,或者你将其更新为正确的翻译,除非你删除 fuzzy 评论行,否则它将不会用于翻译你的项目。

多行字符串

makemessages 以各种格式解析文件,从纯文本到 python 代码,并不是为了遵循这些格式的多行字符串的每个可能规则而设计的。大多数情况下单行字符串可以正常工作,但如果你有这样的结构:

translation = _("firstline"
"secondline"
"thirdline")

它只会拿起 firstline 进行翻译。解决方案是尽可能避免使用多行字符串。