2016-08-22 3 views
0


내 응용 프로그램에는 python3 및 django1.10을 사용하고 django에는 kinnda를 사용합니다.
메신저 django 관리자 패널에 대한 많은 언어를 계획하고 있습니다. 내가 Django documantion의 규칙을 따를 , 내가 현지화를위한 middleware를 사용할 필요가 있음을 알 수는 ... 여기에 내가이django를 사용한 다국어 문제

LANGUAGES = (
    ('fa', ugettext('Farsi')), 
    ('en', ugettext('English')), 
) 

을 추가 내 설정 응용

'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.locale.LocaleMiddleware', 
'django.middleware.common.CommonMiddleware', 

입니다

그리고 물론 GNU gettext을 설치하고 내 로컬 폴더를 django-admin.py makemessages -l fa 쉼표로 만듭니다. 그런 다음 .po 파일을 번역하고 컴파일하여 .mo 파일을 얻습니다. 지금까지 모든 것이 잘 어울리는 것 같아요. 단지 파일을 타이핑하면 설정 파일에서 언어를 변경하면 모든 것이 작동합니다.
이제 내 질문에, 어떻게 관리 패널에서 응용 프로그램 언어를 변경하거나보기 기능을 추가 할 수 있습니까? 파일에 url((r'^i18n/', include('django.conf.urls.i18n'))),을 추가합니다. 그러나 나는 지금 무엇을 해야할지 잘 모릅니다. 도와주세요. 다음 단계는 무엇인가요 ? 이 양식을 추가하려면 어떻게해야합니까? 아니면 sholud를 사용하여 언어를 바꾸기 위해이 양식을 추가 할 수 있습니까?

뷰에서
<form action="/i18n/setlang/" method="post"> 
    <input name="next" type="hidden" value="/next/page/" /> 
     <select name="language"> 
      {% for lang in LANGUAGES %} 
       <option value="{{ lang.0 }}">{{ lang.1 }}</option> 
      {% endfor %} 
     </select> 
    <input type="submit" value="Go" /> 
</form> 

답변

0

, 당신은 사용할 수 있습니다

from django.utils import translation 

# to change to French for example 
translation.activate('fr') 

# and you set it in the session to change it for the user 
request.session[settings.LANGUAGE_SESSION_KEY] = 'fr' 

을 그래서, 당신은보기의 "form_valid"방법과 유사한 코드를 추가 할 수 있습니다,에서 선택한 언어에 대한 언어 코드를 전달하여 형태. 또한 https://docs.djangoproject.com/en/1.10/ref/utils/#module-django.utils.translation

과 :

이에 대한 자세한 정보를 보려면, 다음 문서를 체크 아웃

https://docs.djangoproject.com/en/1.10/topics/i18n/translation/#explicitly-setting-the-active-language

+0

난 내보기에이 코드를 추가합니다. 하지만 'request.LANGUAGE_CODE'를 출력해도 여전히 같은 (en) ... im의 주식과 혼란 스러워요. (@ Body Parker –

+0

죄송합니다. 사용자가 수동으로 변경하려면 세션에서 변경해야합니다. –

+0

관리자 패널에서 변경하는 방법을 찾기 위해 노력하고 있습니다. 내 응용 프로그램에는 정면보기 또는보기가 없습니다 ... 제안 사항이 있습니까? [질문] (내 변경 사항 응용 프로그램 언어를 올바르게.하지만 그것은 또한 내가 제공하는 언어 파일을 변경 dosent. 어떻게 그 언어를로드 할 수 있습니까? 나를 도울 수 있습니까? [내 질문] (http://stackoverflow.com/questions/39102538/language-file-dosent- load-automaticaly-in-django) –