Djangoに新しい言語を追加する方法は?私の言語「ウイグル語」または「ウイグル語」はDjangoではサポートされていません。
プロジェクトに新しい言語ロケールファイルを追加して使用できますか?例:zh_UG
この言語はDjangoではサポートされていません。
利用できない言語を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
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番目のステップ、ロケールディレクトリにロケール定義を追加します。
誰かがこれに遭遇し、受け入れられた回答を使用し(コメントも確認してください)、追加の言語ではなく/ en /にリダイレクトされる場合は、そのロケールの.moファイルを作成する必要があります。少なくともダミーのもの。
Djangoは、.moファイルをロードできるかどうかをチェックすることにより、言語が有効かどうかをチェックします。Djangoには多数の標準言語が付属しているため、標準言語には問題はありませんが、カスタム言語には存在しません。
それがあなたの時間を節約することを願っています。
あなたのsettings.pyに追加
gettext = lambda s:s 言語=( ('zh_UG'、gettext('Uyghur'))、 ('en'、gettext('English'))、 )。 USE_I18N = True
走る
manage.py makemessages -l zh_UG
言語ファイルを作成するには
# 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'),
)
###########################################################
ファイルに翻訳を追加したかどうかに関係なく、以下のコマンドを実行する必要があることを追加したかっただけです。
python manage.py makemessages -l tj
python manage.py compilemessages
ここでのtjは新しく追加された言語であることに注意してください