Django 翻译不适用于生产
Django translation not working on production
我已经为不同的城市翻译了网站,它在开发机器上运行良好。但是在生产服务器上发布时没有显示任何翻译。
但它正确显示可用语言和当前语言。
这是我的 settings.py:
USE_I18N = True
USE_L10N = True
LANGUAGES = [
('ru-spb', _('SaintP')),
('ru-msk', _('Moscow')),
]
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'nordicsite/locale'),
)
这是语言检查模板:
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_language_info_list for LANGUAGES as languages %}
{{server}}<br/>
{% trans 'Test 2' %}<br/>
{{LANGUAGE_CODE}}<br/>
{% for language in languages %}
{{ language.name_local }} ({{ language.code }})<br/>
{% endfor %}
<br/>
{% for path in paths %}
{{path}}<br/>
{% endfor %}
dev 的输出:
Тест 1 Питер
Тест 2 Питер
ru-spb
Русский (ru)
Русский (ru)
/*****/nordicsite/locale
生产输出:
Test 1
Test 2
ru-spb
Русский (ru)
Русский (ru)
/*****/nordicsite/locale
有什么问题吗?
我终于知道哪里出了问题。我的开发机器 - Mac 和生产机器 - Ubuntu。而且它对像 ru-spb 和 ru-msk 这样的假语言代码不起作用。我将其更改为 ru-ru 和 ru-ua 并开始正常工作。
还有一件事。 Ubuntu 需要语言环境文件夹为 ru_RU(而不是 ru_ru)。
我已经为不同的城市翻译了网站,它在开发机器上运行良好。但是在生产服务器上发布时没有显示任何翻译。
但它正确显示可用语言和当前语言。
这是我的 settings.py:
USE_I18N = True
USE_L10N = True
LANGUAGES = [
('ru-spb', _('SaintP')),
('ru-msk', _('Moscow')),
]
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'nordicsite/locale'),
)
这是语言检查模板:
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_language_info_list for LANGUAGES as languages %}
{{server}}<br/>
{% trans 'Test 2' %}<br/>
{{LANGUAGE_CODE}}<br/>
{% for language in languages %}
{{ language.name_local }} ({{ language.code }})<br/>
{% endfor %}
<br/>
{% for path in paths %}
{{path}}<br/>
{% endfor %}
dev 的输出:
Тест 1 Питер
Тест 2 Питер
ru-spb
Русский (ru)
Русский (ru)
/*****/nordicsite/locale
生产输出:
Test 1
Test 2
ru-spb
Русский (ru)
Русский (ru)
/*****/nordicsite/locale
有什么问题吗?
我终于知道哪里出了问题。我的开发机器 - Mac 和生产机器 - Ubuntu。而且它对像 ru-spb 和 ru-msk 这样的假语言代码不起作用。我将其更改为 ru-ru 和 ru-ua 并开始正常工作。
还有一件事。 Ubuntu 需要语言环境文件夹为 ru_RU(而不是 ru_ru)。