Django中实现一种语言的多重翻译或为翻译参数化的方法

3
我有一个django应用程序,它是为多个电视设备设计的javascript应用程序的后端。每个设备都有不同的前端,但我认为为此目标创建多个.po文件并不是一个好主意,因为大部分翻译对这些设备来说都是重复的。
是否可以为翻译添加其他参数,例如在我的情况下,带有参数“device”的函数将非常有用?如果不行,那么如何以Django的方式实现?

翻译取决于您发送的请求,例如当您从浏览器发送请求时,它会发送标题“Accept-Language:en-US,en;q=0.8,ms;q=0.6,ja;q=0.4”,这将决定服务器返回哪种语言的输出。 - Nilesh
3个回答

2

1
所以您需要翻译所有版本。至少翻译所有键。如果您想将不同的键映射到相同的值,则可以这样做。
#: core/models.py:160
msgid "previous"
msgstr "Previous"

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

-1

我假设你正在使用Django创建API,并使用javascript消耗API。您可以从头部检查用户代理字符串,并根据请求进行适当的重定向。


是的,Django是我的API,但我需要为一种语言存储两个不同版本的翻译。例如,在一个设备上,“返回”按钮称为“back”,在另一个设备上则称为“previous”。我希望将所有翻译存储在.po文件中,而不是在js客户端内部。这就是为什么我正在寻找像ugettextByParam(msgID, deviceID)这样的方法的原因。 - Cyprian Gepfert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接