2017-10-09 89 views
0

我創建了一個內置本地化的Django站點,使用python manage.py runserver來測試它。但在設置Apache/WSGI後,本地化無法正常工作。本地化不起作用

我可以看到正在翻譯的日期(所以它知道當前的語言),但我所有的網站特定的字符串都是未翻譯的。

我不知道在哪裏可以看到哪裏解決這個問題。

當Django的控制檯上運行,它工作正常:

>>> import django.utils.translation 
>>> django.utils.translation.activate('nl') 
>>> django.utils.translation.ugettext('Articles') 
u'Artikelen' 

但在視圖中使用相同的代碼時:

from django.utils import translation 

def page_test(request): 
    translation.activate('nl') 
    return HttpResponse(translation.ugettext("Articles")) 

這將返回Articles

+0

我不知道爲什麼這不起作用。你有沒有嘗試從默認翻譯字符串,例如:'持續時間'? –

+0

@SandervanLeeuwen確實有效。我可以看到'搜索'也被翻譯。 –

回答

0

發現我的LOCALE_PATHS是不正確的。我有這個代碼在我settings.py

SITE_ROOT = os.path.dirname(os.path.realpath(__name__)) 
LOCALE_PATHS = (os.path.join(SITE_ROOT, 'locale'),) 

,但在現場的情況下,SITE_ROOT是空的。我將其替換爲

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
LOCALE_PATHS = (os.path.join(BASE_DIR, 'locale'),) 

它現在可以工作。