試圖弄清楚Django i18n是如何工作的。已經閱讀了官方和其他幾個教程。問題是Django生成.po文件,但它不包含來自我的模型和Python腳本的消息(嗯,我已經準備好使用腳本,但模型必須被翻譯)。這裏是我的設置:Django不尋找翻譯消息
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale'),
os.path.join(BASE_DIR, 'install', 'locale'),
]
LANGUAGES = (
('ru', _('Russian')),
('en', _('English')),
)
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
LANGUAGE_CODE = 'en'
這裏是.po文件(「區域」的文件夾位於項目的根目錄):
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <[email protected]>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-12 12:26-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <[email protected]>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%"
"100>=11 && n%100<=14)? 2 : 3);\n"
#: trackpost/settings.py:127
msgid "Russian"
msgstr ""
#: trackpost/settings.py:128
msgid "English"
msgstr ""
正如你看到的,它僅包含來自串設置。在模型中,我使用ugettext_lazy as _
。
現在已經跟這3天戰鬥了。任何想法爲什麼發生這種情況?
UPD。我翻譯了一些變量。其中一個看起來像v = 'string'
,然後_(v)
,另一個是我通過API獲得的文本變量。他們都沒有被Django發現,儘管第一個應該是。
UPD。這裏是項目結構(如遷移不重要的文件遺漏):
├── account
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── binder.py
├── db.sqlite3
├── install
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── locale
│ │ └── ru
│ │ └── LC_MESSAGES
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── locale
│ └── ru
│ └── LC_MESSAGES
│ └── django.po
├── manage.py
├── nginx.conf
├── nohup.out
├── payments.py
├── trackpost
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── uwsgi.ini
請問您可以添加您的應用程序的結構? (包括manage.py,設置和應用程序文件夾) –
@Taras添加了結構。但是,這有什麼幫助? –
@RyanSnow,哪些翻譯沒有被發現?在'安裝'應用程序下的那些?您介意顯示您的「設置」嗎? –