一种语言的多种翻译或参数化翻译的 Django 方式

Django way for multiple translations for one language or parametrize translations

我有一个 django 应用程序,它是 javascript 用于多个电视设备的应用程序的后端。每个设备都有不同的前端,但我认为创建多个 .po 文件不是实现此目标的好主意,因为大多数翻译对这些设备来说都是重复的。

是否可以为翻译添加额外的参数,例如在我的例子中,一些带有参数 "device" 的函数会非常有用?如果没有,用Django方式怎么办?

我假设您正在使用 Django 创建一个 API,并且您使用 API 和 javascript。您可以检查 header 中的 user-agent 字符串并根据请求进行适当的重定向。

因此您需要翻译所有版本。至少所有的钥匙。如果你想将不同的键映射到相同的值,你可以做某事。像这样。

#: core/models.py:160
msgid "previous"
msgstr "Previous"

#: core/models.py:161 core/models.py:169
msgid "Back"
msgstr "Previous"

您可能会使用上下文标记:https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#contextual-markers 和 pgettext(),但您可能必须手动将它们添加到生成的 .pot 文件中,因为标准提取物不会选择可用选项,如果它们已参数化。