我有一个django应用程序,它是为多个电视设备设计的javascript应用程序的后端。每个设备都有不同的前端,但我认为为此目标创建多个.po文件并不是一个好主意,因为大部分翻译对这些设备来说都是重复的。
是否可以为翻译添加其他参数,例如在我的情况下,带有参数“device”的函数将非常有用?如果不行,那么如何以Django的方式实现?
是否可以为翻译添加其他参数,例如在我的情况下,带有参数“device”的函数将非常有用?如果不行,那么如何以Django的方式实现?
你可以尝试使用上下文标记:https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#contextual-markers 和 pgettext(),但是你可能需要手动将它们添加到生成的 .pot 文件中,因为标准提取工具无法捕获参数化的可用选项。
#: core/models.py:160
msgid "previous"
msgstr "Previous"
#: core/models.py:161 core/models.py:169
msgid "Back"
msgstr "Previous"
我假设你正在使用Django创建API,并使用javascript消耗API。您可以从头部检查用户代理字符串,并根据请求进行适当的重定向。
ugettextByParam(msgID, deviceID)
这样的方法的原因。 - Cyprian Gepfert