2016-04-26 73 views
0

我在加載正確的翻譯(.po/.mo)文件時遇到了Django問題。Django未加載正確的語言環境文件

我知道我的翻譯正在工作,因爲當我將LANGUAGE_CODE更改爲'fr'時,我可以看到我的字符串被翻譯。

LANGUAGE_CODE = 'nl' 

LANGUAGES = (
    ('nl', 'Nederlands'), 
    ('fr', 'Frans'), 
) 

LOCALE_PATHS = [ 
    os.path.join(BASE_DIR, 'locale'), 
] 

TIME_ZONE = 'UTC' 

USE_I18N = True 

但是,當我把我的翻譯使用i18n_patternsurls.py當我訪問它不加載我的法語(FR)翻譯:127.0.0.1:8000/fr/about/它仍然加載荷蘭語(NL)值。

有趣的是,當我訪問127.0.0.1:8000/fr/admin/我可以看到它加載法國管理值,當我訪問127.0.0.1:8000/nl/admin/它加載荷蘭的......我一定是做錯了什麼。

urls.py

urlpatterns = i18n_patterns(
    url(r'^$', 'homepage.views.index', name="homepage"), 
    url(r'^i18n/', include('django.conf.urls.i18n')), 
    url(r'^contact/', 'homepage.views.contact_us', name="contact"), 
    url(r'^about/', 'homepage.views.about', name="about"), 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^jobs/', include(job_urls)), 
    url(r'^news/', include(news_urls)), 
    url(r'^search/', include('haystack.urls')), 
    url(r'^content/(?P<slug>[^\.]+)', 'homepage.views.content', name="view_content"), 
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
+0

您是否翻譯過有關該網站的問題? – Jingo

+0

你是什麼意思? –

+0

請發佈相應的urls.py文件。 – Jingo

回答

1

您需要import ugettext_lazy as _在models.py和forms.py,而不是常規的ugettextugettext將評估導入過程中的翻譯,此時它除了使用默認語言之外別無選擇; ugettext_lazy將在渲染時評估,此時它具有可用的正確語言信息。

+0

這樣做的竅門,謝謝! –