关于Django本地化的一些问题

时间:2010-06-20 18:00:14

标签: python django localization

我打算本地化我的Django应用程序,并开始阅读Django网站上的本地化。这提出了一些问题:

  1. 当您运行'django-admin.py makemessages'命令时,它会扫描文件中的嵌入字符串并生成包含翻译的消息文件。这些转换将映射到文件中的字符串。例如,如果我在HTML中有一个字符串,其中显示“请输入收件人名称”,Django会将其视为邮件ID。如果我在字符串中更改了某些内容会发生什么。假设我将缺失的撇号添加到“收件人”这个词中。这会破坏翻译吗?

  2. 关于上述情况,在源中使用完整的句子(可能会改变)是否更好?或者我最好使用像“RECIPIENT_NAME”这样的词,这样更容易改变和更容易映射到?

  3. “django-admin.py makemessages”命令是否也扫描Python源代码?

  4. 感谢。

1 个答案:

答案 0 :(得分:2)

  1. 在某些情况下,很可能会检测到“类似”的字符串,并且您的翻译将标记为模糊。但这取决于字符串的类型,我不知道添加撇号会做什么。有关此内容的详细信息,请阅读GNU gettext docs。 但是,对于您的问题,一个简单的解决方案是:不要修复原文中的拼写错误,而是将英语翻译成英语,其中翻译的字符串是正确的:)。我个人不会推荐这种方法,但是如果你害怕破解数十个翻译文件,可以考虑一下。

  2. 不,不是,它抛弃了所有的背景感。对于只需要少量翻译字符串的网站而言,它可能看起来更清晰,并且您可以深入了解确切的上下文。但是只要你在翻译文件中有100个字符串,这样的短名称就什么都不会,你总是要查找确切的上下文。更糟糕的是,对于实际上必须以不同方式进行翻译的内容,可能会使用相同的“短名称”,最终会为您提供更奇怪的短名称来处理这两种情况。最后,如果您使用一种普通语言作为默认语言,则无需再明确翻译此语言。

  3. 是的,有多个函数在python中标记字符串以进行翻译,可以找到概述here