1
我們正在構建一個項目,我們需要將通知翻譯成不同的語言。Django翻譯:挑選變量
問題是,不像標準"Hello, %(first_name)s"
,我們需要有"Halo, Herr %(last_name)s"
取決於語言。
換句話說,我們想要在翻譯塊中使用的變量取決於語言。
實施它的最佳方式是什麼?我真的很想避免爲每種語言實施不同的模板。
謝謝!
我們正在構建一個項目,我們需要將通知翻譯成不同的語言。Django翻譯:挑選變量
問題是,不像標準"Hello, %(first_name)s"
,我們需要有"Halo, Herr %(last_name)s"
取決於語言。
換句話說,我們想要在翻譯塊中使用的變量取決於語言。
實施它的最佳方式是什麼?我真的很想避免爲每種語言實施不同的模板。
謝謝!
有:
user_data = {
'first_name': 'Charlie',
'last_name': 'Brown',
}
1.
編譯_('Hello, %(first_name)s') % user_data
,而在a format specification for argument 'first_name' doesn't exist in 'msgstr'
錯誤提供翻譯Halo, Herr %(last_name)s
結果,但是的 MO文件被創建,和翻譯作品OK! (使用在windows下運行的gettext 0.18.1進行測試)。
2.
您可以使用Python新的字符串格式化:_('Hello, {first_name}').format(**user_data)
,並轉化爲Halo, Her, {last_name}
3. 的hackish:
_("Hello %s") % (user_data[_('hello_name_field')])
#or uglier but safe:
_("Hello %s") % (user_data.get(_('hello_name_field'), user_data['first_name'])