我在 Django 中添加自定义语言时遇到问题。这是settings.py的配置:
LANGUAGES = [
('en', 'English'),
('ru', 'Russian'),
('uz', 'Uzbek'),
]
EXTRA_LANG_INFO = {
'uz': {
'bidi': False,
'code': 'uz',
'name': 'Uzbek',
'name_local': "O'zbek",
},
}
import django.conf.locale
LANG_INFO = dict(django.conf.locale.LANG_INFO.items() + EXTRA_LANG_INFO.items())
django.conf.locale.LANG_INFO = LANG_INFO
global_settings.LANGUAGES = global_settings.LANGUAGES + [("uz", 'Uzbek')]
但我遇到以下错误:
unsupported operand type(s) for +: 'dict_items' and 'dict_items'
我在 ubuntu 18.04 上使用 django 2.1 版和 pycharm 作为 IDE。实际上按照说明应该可以工作。
最佳答案
基本上,您不必先将 LANG_INFO
字典转换为键值对列表,然后将它们添加在一起。您可以做的只是使用新旧键值对字典创建一个新字典。我还建议用 LANGUAGES
装饰 name
以便将来翻译。我正在下面的修改版本中编写您的代码:
from django.utils.translation import gettext_noop
LANGUAGES = [
('en', gettext_noop('English')),
('ru', gettext_noop('Russian')),
('uz', gettext_noop('Uzbek')),
]
EXTRA_LANG_INFO = {
'uz': {
'bidi': False, # right-to-left
'code': 'uz',
'name': 'Uzbek',
'name_local': "O'zbek",
},
}
# Add custom languages not provided by Django
import django.conf.locale
LANG_INFO = dict(django.conf.locale.LANG_INFO, **EXTRA_LANG_INFO)
django.conf.locale.LANG_INFO = LANG_INFO
还有一件事,您不必覆盖 Django global_settings
中的 LANGUAGES
属性,因为您已经在项目设置中覆盖了它。所以这一行可以被忽略:
global_settings.LANGUAGES = global_settings.LANGUAGES + [("uz", 'Uzbek')]
关于python - 我将自定义语言添加到我的语言列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52606576/