python - 我将自定义语言添加到我的语言列表中
问题描述
我在 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
字典转换为键值对列表,然后将它们添加在一起。您可以做的只是用新旧键值对字典创建一个新字典。我还建议为将来的翻译进行装饰name
。LANGUAGES
我正在以下修改版本中编写您的代码:
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
还有一件事您不必覆盖DjangoLANGUAGES
中的属性,因为您已经在项目设置中覆盖了它。所以这一行可以忽略: global_settings
global_settings.LANGUAGES = global_settings.LANGUAGES + [("uz", 'Uzbek')]
推荐阅读
- javascript - 是否可以检测到 chrome 远程调试器或启用自动化
- android - BottomSheet 内的 RecyclerView onRestoreInstanceState 不起作用
- amazon-web-services - 如何定义 AWS MetricFilter FilterPattern 以匹配 CloudWatch 中 JSON 格式的日志事件?
- sql-server - 将 Foxpro 转换为 T-SQL
- javascript - 如何使用onclick播放多个animejs动画
- python - 是否有一种最佳方法可以在没有 iterrows 的情况下迭代数据帧的每个单元格?
- python - 标准化 Python 中的点,以便与原点的 RMS 距离为 sqrt2
- python - 使用python更改计算机的屏幕分辨率
- c# - ASP.NET Core Razor Pages 多选输入和分页
- python-3.x - 在另一个类中使用来自一个类的组合框中的数据