Hel*_*nar 4 django translation internationalization
在Django 1.4上,我希望在我的网站上有两种语言,土耳其语('tr')和英语('en').
这是我目前的设置:
settings.py:
USE_I18N = True
LANGUAGES = (
('en', 'English'),
('tr', 'Turkish'),
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware', # I have locale middleware
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
LOCALE_PATHS = (
'/myproject/locale/',
)
Run Code Online (Sandbox Code Playgroud)
我将我的语言环境文件作为目录顺序:
#tr files
/myproject/locale/tr/LC_MESSAGES/django.mo
/myproject/locale/tr/LC_MESSAGES/django.po
#en files
/myproject/locale/en/LC_MESSAGES/django.mo
/myproject/locale/en/LC_MESSAGES/django.po
Run Code Online (Sandbox Code Playgroud)
我仍然无法看到我的翻译,尝试从我的shell(它也不适用于模板{%trans"Corporate"%}):
>>> from django.utils import translation
>>> translation.activate('tr')
>>> translation.ugettext('Corporate')
u'Corporate'
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?奇怪的是,它翻译了像'Home'这样的单词,因为原始Django有这些翻译而不是我的翻译文件.
sta*_*alk 12
在您的情况下,您必须放入LOCALE_PATHS
您的语言环境目录的绝对路径,即
LOCALE_PATHS = (
'/home/path_to_your_project/myproject/locale/',
)
Run Code Online (Sandbox Code Playgroud)
我想你已经尝试在那里设置相对路径.
我有类似的问题:我一直在使用django 1.3,我的语言环境目录位于我的项目的根目录中,即靠近settings.py和manage.py文件.但是当我用django 1.4创建项目时,项目目录结构已经改变:settings.py已经移动到myproject/myproject文件夹中.我仍在locale
myproject /中创建文件夹(不在myproject/myproject中).使用django 1.4它不再起作用了.
阅读文档我明白,django只是找不到我的locale
文件夹.所以解决方案可以帮助我 - 将locale
dir 移动到myproject/myproject并且不在myproject/path中设置任何LOCALE_PATHS
OR leave locale
dir,并在LOCALE_PATHS
tuple 中的settings.py中添加完整路径.
归档时间: |
|
查看次数: |
4221 次 |
最近记录: |