如何添加新的语言到Django的? 我的语言“维吾尔语”或“维吾尔”不支持的Django(how

2019-06-18 13:41发布

如何添加新的语言到Django的? 我的语言“维吾尔语”或“维吾尔”不Django的支持。

我可以在我的项目中添加新的语言环境和文件,使用它? 例如:zh_UG

这种语言不Django的支持。

Answer 1:

非可用语言添加到您的Django应用程序

维吾尔族ŸۇYGۇ[R袋的ISO语言代码为“微克”。

在您的settings.py:

from django.conf import global_settings

gettext_noop = lambda s: s

LANGUAGES = (
       ('ug', gettext_noop('Uighur')),
)

EXTRA_LANG_INFO = {
    'ug': {
        'bidi': True, # right-to-left
        'code': 'ug',
        'name': 'Uighur',
        'name_local': u'\u0626\u06C7\u064A\u063A\u06C7\u0631 \u062A\u0649\u0644\u0649', #unicode codepoints here
    },
}

# 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

# Languages using BiDi (right-to-left) layout
LANGUAGES_BIDI = global_settings.LANGUAGES_BIDI + ["ug"]

和:

manage.py makemessages -l ug
manage.py compilemessages


Answer 2:

基于laffuste的答案。 第一步,添加语言定义settings.py:

EXTRA_LANG_INFO = {
    'ms': {
        'bidi': False, # right-to-left
        'code': 'ms',
        'name': 'Bahasa Melayu',
        'name_local': u'Bahasa Melayu', #unicode codepoints here
    },
}

# Add custom languages not provided by Django
import django.conf.locale
from django.conf import global_settings
LANG_INFO = dict(django.conf.locale.LANG_INFO.items() + EXTRA_LANG_INFO.items())
django.conf.locale.LANG_INFO = LANG_INFO

# Languages using BiDi (right-to-left) layout
global_settings.LANGUAGES = global_settings.LANGUAGES + (("ms",'Bahasa Melayu'),)

第二步,settings.py中添加的语言环境:

import os

PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
LOCALE_PATHS = (
    os.path.join(PACKAGE_ROOT, 'locale'),
)

第三步,在语言环境目录添加语言环境定义。



Answer 3:

如果有人遇到这种情形,并且将使用接受的答案(同时检查的意见就可以了),仍然将有一个重定向到/ EN /而不是额外的语言 - 你需要创建该区域的的.mo文件。 至少一个虚拟之一。

Django的检查,如果语言是通过检查,如果它可以加载.mo作为文件有效。 有标准语言,没有任何问题,因为Django是附带有一群人,而是为您定制的语言不存在。

我希望,这将节省您的时间。



Answer 4:

在您的settings.py加

gettext = lambda s: s


LANGUAGES = (
    ('zh_UG', gettext('Uyghur')),
    ('en', gettext('English')),
)
USE_I18N = True


manage.py makemessages -l zh_UG

创建语言文件



文章来源: how to add new languages into Django? My language “Uyghur” or “Uighur” is not supported in Django
标签: django locale