【问题标题】:How does gettext deal with a/an or d'/de?gettext 如何处理 a/an 或 d'/de?
【发布时间】:2011-09-12 05:11:18
【问题描述】:

想象一下这个要翻译的字符串:

“你的路径被 %s 挡住了”。

如果变量是“anaconda”怎么办。现在应该是“你的路径被 %s 挡住了”。

gettext 如何处理这个问题,或者客户端程序员应该如何处理这个问题,或者其他系统如何处理这个问题?

想象一下这个字符串:

“%s 的页面”。

我们想传入“Brian”或“Jim”或“Lucinda”。一切顺利。

但在法语翻译中是这样的:

“第 %s 页”。

对于 Jean-Paul 或 Claudette 这很好,但可怜的 Anais 呢?她需要的是“Page d'Anais”,而不是“Page de Anais”。

gettext 能解决这个问题吗?标准做法是什么?

【问题讨论】:

  • 你试过这些案例吗?
  • "%s 的页面"。也不总是用英语工作。如果名称以硬 s 结尾,那么通常只需添加一个撇号。例如琼斯的
  • 我认为可以公平地说 gettext 不处理这个问题。

标签: localization internationalization gettext


【解决方案1】:

如您所料,gettext 并不能帮助您构建语法正确的字符串。即使您在英语方面没有问题,以编程方式构建显示文本也是一个很大的本地化禁忌,因为可能会出现特定于语言的问题。如果可以管理,您可能应该为每种情况使用单独的字符串,例如“您的路径被恐龙挡住了”、“您的路径被兔子挡住了”、“您的路径被蟒蛇挡住了”等。这意味着很多重复,但翻译系统通过使用翻译记忆库甚至在更复杂的情况下自动翻译(翻译人员只需要在需要时进行校对和修改)来帮助自动化流程。

您的“Page d'Anais”/“Page de Claudette”就是一个很好的例子。在这种情况下,唯一的解决方案是将格式字符串存储在可本地化的字符串表中(听起来您已经在这样做了),以便本地化人员可以提出可行的解决方案。 (例如“Page de : Anais”虽然在每种情况下都不是很漂亮,所以他们会将“%s's Page”本地化为“Page de: %s”)。但是本地化人员确实需要了解这些格式字符串的去向以及它是如何构造的,因此您需要明确这一点。

最广泛误译的字符串之一是“%n of %n”(用于打印页面,如页面“1 of 4”),如果没有上下文,它通常会被完全错误地翻译。例如。在法语中,直译是“1 de 4”,在这种情况下没有意义,应该是“1 sur 4”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-18
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    相关资源
    最近更新 更多