Django翻译:选择变量
我们正在建设一个项目,我们需要将通知翻译成不同的语言 问题在于,不同于标准的Django翻译:选择变量,django,localization,internationalization,translation,Django,Localization,Internationalization,Translation,我们正在建设一个项目,我们需要将通知翻译成不同的语言 问题在于,不同于标准的“Hello,%(first_name)s”,我们需要有“Halo,Herr%(last_name)s”,具体取决于语言 换句话说,我们希望在翻译的块中使用的变量取决于语言 实施它的最佳方式是什么?我真的不想为每种语言实现不同的模板 谢谢 具有: user_data = { 'first_name': 'Charlie', 'last_name': 'Brown', } 一, 编译('Hello,%(
“Hello,%(first_name)s”
,我们需要有“Halo,Herr%(last_name)s”
,具体取决于语言
换句话说,我们希望在翻译的块中使用的变量取决于语言
实施它的最佳方式是什么?我真的不想为每种语言实现不同的模板
谢谢 具有:
user_data = {
'first_name': 'Charlie',
'last_name': 'Brown',
}
一,
编译('Hello,%(first\u name)s')%user\u数据
,在提供翻译Halo时,Herr%(last\u name)s
会导致参数“first\u name”的格式规范在“msgstr”中不存在
错误,但是创建了mo文件,翻译工作正常!(使用在windows下运行的gettext 0.18.1进行测试)
二,
您可以使用python较新的字符串格式:('Hello,{first\u name}')。format(**user\u data)
,并将其翻译为Halo,Her,{last\u name}
三,。
粗俗的:
_("Hello %s") % (user_data[_('hello_name_field')])
#or uglier but safe:
_("Hello %s") % (user_data.get(_('hello_name_field'), user_data['first_name'])