Python Django:有没有一种方法可以非正式地用;杜;?
与英语不同的是,德语有两种不同的“版本”。你可以用正式的,更非个人的“Sie”或非正式的,更个人化的“du” 所以,当你用英语说“你能帮我吗?”时,你可以说Python Django:有没有一种方法可以非正式地用;杜;?,python,django,Python,Django,与英语不同的是,德语有两种不同的“版本”。你可以用正式的,更非个人的“Sie”或非正式的,更个人化的“du” 所以,当你用英语说“你能帮我吗?”时,你可以说 科恩你米尔·赫尔芬?(正式,当你并不真正了解对方时) 卡恩斯特dumir helfen?(非正式,当您已经认识此人时) 德语 我现在的问题是,对于Django应用程序,我希望使用第二个版本(“du”),因为它更适合我的web应用程序。问题是Django(我知道什么?)只支持正式版本,现在我在web应用程序中遇到了不一致的情况。有时,您可
- 科恩你米尔·赫尔芬?(正式,当你并不真正了解对方时)
- 卡恩斯特dumir helfen?(非正式,当您已经认识此人时)
Django的翻译系统只是
gettext
,因此您可以使用gettext
的功能
你可能想要的是。德扬戈
因此,您可以使用“正式”或“非正式”上下文标记来标记要翻译的字符串,这将允许您提供字符串的多个翻译(每个不同的上下文标记对应一个)
例如,如果模板代码包含
[% trans "Can you help me?" context "formal" %}
及
然后,您的
.po
文件将以该字符串结束两次,您可以提供正式和非正式的翻译,Django将根据您请求的上下文提取正确的翻译。但我希望对每个翻译使用非正式翻译,并且仅对Django的默认消息使用非正式翻译。因为我的web应用程序是德语的,所以只有我手动添加的消息是硬编码的。然后提供您自己的翻译文件。通过复制/粘贴,您甚至可以领先一步。Django将使用它在您的应用程序中找到的任何翻译文件,然后再返回到它自己的内置文件。我解决这个问题的想法是添加一种额外的新语言,如下所述()。例如,de语言是正式语言,您可以在中创建一个de作为非正式语言。
{% trans "Can you help me?" context "informal" %}