16

Djangoに新しい言語を追加する方法は?私の言語「ウイグル語」または「ウイグル語」はDjangoではサポートされていません。

プロジェクトに新しい言語ロケールファイルを追加して使用できますか?例:zh_UG

この言語はDjangoではサポートされていません。

4

6 に答える 6

25

利用できない言語をDjangoアプリに追加します

ウイグル語のISO言語コードは「ug」です。

あなたの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
于 2013-11-28T11:30:36.977 に答える
11

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'),)

2番目のステップ、settings.pyにロケールを追加します。

import os

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

3番目のステップ、ロケールディレクトリにロケール定義を追加します。

于 2014-01-26T16:22:14.830 に答える
4

誰かがこれに遭遇し、受け入れられた回答を使用し(コメントも確認してください)、追加の言語ではなく/ en /にリダイレクトされる場合は、そのロケールの.moファイルを作成する必要があります。少なくともダミーのもの。

Djangoは、.moファイルをロードできるかどうかをチェックすることにより、言語が有効かどうかをチェックします。Djangoには多数の標準言語が付属しているため、標準言語には問題はありませんが、カスタム言語には存在しません。

それがあなたの時間を節約することを願っています。

于 2016-03-23T16:19:16.170 に答える
2

あなたのsettings.pyに追加

gettext = lambda s:s


言語=(
    ('zh_UG'、gettext('Uyghur'))、
    ('en'、gettext('English'))、
)。
USE_I18N = True

走る

manage.py makemessages -l zh_UG

言語ファイルを作成するには

于 2012-10-18T11:42:15.413 に答える
0
# add Kyrgyz lang 
###########################################################
from django.conf import global_settings
gettext = lambda s: s
LANGUAGES = (
    ('ru', gettext('Russia')),
    ('ky', gettext('Kyrgyz')),
)
EXTRA_LANG_INFO = {
    'ky': {
        'bidi': False,
        'code': 'ky',
        'name': 'Kyrgyz',
        'name_local': u"Кыргызча",
    },
}

import django.conf.locale
from django.conf import global_settings
import django.conf.locale
LANG_INFO = dict(django.conf.locale.LANG_INFO, **EXTRA_LANG_INFO)
django.conf.locale.LANG_INFO = LANG_INFO
global_settings.LANGUAGES = global_settings.LANGUAGES + [("ky", 'Кыргызча')]

import os
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
###########################################################
于 2020-05-20T13:22:21.293 に答える
0

ファイルに翻訳を追加したかどうかに関係なく、以下のコマンドを実行する必要があることを追加したかっただけです。

python manage.py makemessages -l tj
python manage.py compilemessages

ここでのtjは新しく追加された言語であることに注意してください

于 2021-01-23T09:37:11.560 に答える