2015-09-04 65 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