在Django app中添加自定义语言进行本地化

时间:2016-07-21 18:35:55

标签: python django web-applications localization internationalization

adding a custom language to django

我检查了这个问题并完成了接受的答案中提到的所有步骤。完成所有操作后,当我转到/kjv/时,它会重定向到/en/kjv/

项目结构:

MyProject ---------locale -------------kjv -----------------LC_MESSAGES --------------------django.mo --------------------django.po ---------myproject --------------settings.py ---------app ---------manage.py

有人可以帮我解决这个问题吗?

settings.py

...

import django.conf.locale

gettext = lambda s: s

EXTRA_LANG_INFO = {
    'kjv': {
        'bidi': False,
        'code': u'kjv',
        'name': u'Kjvx',
        'name_local': u'Kjvx'
    },
}

# Add custom languages not provided by Django
LANG_INFO = dict(django.conf.locale.LANG_INFO.items() + EXTRA_LANG_INFO.items())
django.conf.locale.LANG_INFO = LANG_INFO
LANGUAGES = (
    ('hr', gettext('hr')),
    ('en', gettext('en')),
    ('de', gettext('de')),
    ('fr', gettext('fr')),
    ('kjv', gettext('kjv')),
)
...

Django-1.6.5和所有网址都包含在i18n_patterns

1 个答案:

答案 0 :(得分:0)

如果有人来到这个地方并遇到类似问题,请不要忘记在settings.py中更新/添加LOCALE_PATHS

e.g

PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))

LOCALE_PATHS = (
    os.path.join(PROJECT_PATH, '../locale'),
)

您可以指向任何位置,只要它们存在且具有有效的区域设置结构。