与英语相比,有两个不同的"版本",你可以用德语与他人交谈.您可以使用正式的,更客观的"Sie"或非正式的,更个性化的"du".
所以,虽然你只是说"你能帮助我吗?" 用英语,你可以说
在德国.
我现在的问题是,对于我的Django应用程序,我想使用第二个版本("du"),因为它更适合我的Web应用程序.事实是,Django(我所知道的?)只支持正式版本,现在我在Web应用程序中存在不一致之处.有时候,你可以阅读"du"和有时"Sie"(来自默认的Django翻译).
当然,我可以用"du"删除我手动添加的句子,但我不喜欢它,因为网页将适用于彼此了解的人.
我的两个问题:
Django 的翻译系统只是gettext,因此您可以使用 的功能gettext。
因此,您可以使用“正式”或“非正式”上下文标记来标记要翻译的字符串,这将允许您提供字符串的多个翻译(每个不同的上下文标记一个)。
因此,例如,如果您的模板代码包含两者
[% trans "Can you help me?" context "formal" %}
Run Code Online (Sandbox Code Playgroud)
和
{% trans "Can you help me?" context "informal" %}
Run Code Online (Sandbox Code Playgroud)
那么你的.po文件将以该字符串两次结束,你可以提供正式和非正式的翻译,Django 将为你请求的上下文提取正确的翻译。