相关疑难解决方法(0)

Gettext:消息ID是英文文本是一个好主意吗?

我们正准备将我们的PHP网站翻译成各种语言,PHP中的gettext支持看起来就像是要走的路.

我看到的所有教程都建议使用英文文本作为消息ID,即

gettext("你好!")

但这真的是个好主意吗?假设市场营销人员希望将文本更改为"你好,你们!".那么你不必更新所有语言文件,因为该字符串 - 实际上是消息ID - 已经改变了吗?

拥有某种通用ID(例如"hello.message")和英文翻译文件会更好吗?

php gettext internationalization

39
推荐指数
6
解决办法
6520
查看次数

如何在对大文本值进行小编辑时有效地使用gettext PO文件

寻找有关如何在对大型msgid值进行小编辑时有效使用gettext PO文件的提示和/或工具.

示例:我们有许多存储在PO消息目录文件中的多句/多段消息.如果我们对一条消息做了一个非常小的改动,也许编辑一个句子甚至纠正标点符号,我们在运行msgmerge实用程序时会丢失原始翻译.

我们的译员不是从头开始重新翻译长消息(已经通过编辑审批流程),而是返回其PO文件的备份副本,并手动搜索最后一个msgid/msgstr翻译对的文本当前的msgid值以查看已更改的内容,然后复制并粘贴最后一个转换,然后编辑它们以反映更新的msgid值.

这是很多工作!当然必须有更好的方法来处理这种类型的工作流程?

有没有一种最佳实践的方式归档和发现以前的翻译不再在PO文件?我想到的一个想法是存储唯一的MSG ID在我们的信息的文本或在我们之前的消息,并使用这个ID来检索审查以前MSGID/msgstr翻译对的意见.或者是否有PO编辑或在线服务使这一过程更有效率?

谢谢你,马尔科姆

diff gettext internationalization

8
推荐指数
2
解决办法
1964
查看次数

使用gettext和.po文件时组合键和全文

我正在查看gettext.po创建多语言应用程序的文件.我的理解是.po文件msgid中的来源msgstr是翻译.因此,我看到两种定义方式msgid:

使用全文(例如"My name is %s.\n")具有以下优点:

  • 在打电话时gettext你可以清楚地看到即将翻译的内容
  • 翻译.po文件更容易,因为它们包含要翻译的实际内容

使用my-name %s具有以下优点的密钥(例如):

  • 当源文本很长时(例如关于公司的段落),gettext调用更简洁,使您的视图更清晰
  • 更容易维护多个.po文件和视图,因为密钥不太可能更改(例如,密钥的company-description变化远不如实际的公司描述)

因此我的问题:
有没有一种方法可以使用gettext.po文件,它们可以结合两种方法的优点,即: -
用于gettext调用的密钥用于
翻译者查看需要翻译的全文?

localization gettext internationalization po

8
推荐指数
2
解决办法
1995
查看次数

我可以自动更新gettext的.po文件中的msgids以进行琐碎的文本更改吗?

使用gettext,消息的原始(通常是英语)文本用作翻译的消息密钥("msgid").这意味着每次原始文本更改时,必须在所有.po文件中更新msgid.

对于文本的真实更改,这显然是不可避免的,因为翻译者必须更新翻译.

但是,如果原件的更改没有改变其含义,则重新翻译是超级的(例如,标点变化,空白变化或拼写错误的纠正).

有没有办法在这种情况下自动更新.po文件?

我试图使用xgettext和msgmerge(打开模糊匹配),但模糊匹配有时会失败,加上这会产生许多丑陋的"#,模糊"标志.

注意:有一个类似的问题: 如何在对大文本值进行小编辑时有效地使用gettext PO文件 但是,这是关于大字符串,因此是一个更具体的问题.

translation gettext internationalization

6
推荐指数
1
解决办法
2160
查看次数