2015-09-04 68 views
2

因此,我使用django 1.8创建了一个新的网站,该网站必须翻译成葡萄牙语。即使使用LOCALE_PATHS,Django翻译也不起作用

所以使用Django自己的工具,我加入到我的中间件:

'django.middleware.locale.LocaleMiddleware', 

我也加入到我的context_processors:

'django.template.context_processors.i18n', 

和配置我的语言设置:

USE_I18N = True 
gettext = lambda s: s 
LANGUAGE_CODE = 'en' 
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'), 
) 
print LOCALE_PATHS 
LANGUAGES = (
    ('pt-br', gettext('Portuguese')), 
    ('en', gettext('English')), 
) 

TIME_ZONE = 'America/Sao_Paulo' 
USE_L10N = True 
USE_TZ = True 

我也在我的文档顶部导入了:

from django.utils.translation import ugettext as _ 

然后我加了标签:

{% trans "text" %} 

在我的模板,用适当的文本。从那以后,我跑:

python manage.py makemessages -l pt-br 

然后我翻译我的.po文件的一切,最后我用它编译:

python manage.py compilemessages 

但是,当我跑我的网站它仍然是英文的。 我的浏览器是在pt-br上,我也有一个工作示例,但该特定网站未被翻译。 我确实添加了i18n网址。

有人可以帮我吗?我错过了什么?

回答

3

所以很显然,Django必须将本地文件夹视为pt_br而不是pt-br,但设置必须与pt-br一起使用。这就是我的伎俩。

+0

我让'pt-br'的所有代码如您所说,但是使用了 'python manage.py makemessages -l pt_br'和 'python manage.py compilemessages -l pt_br'。有效。谢谢! :) – reinaldoluckman

+0

我很高兴帮助! – ViniBiso