2017-03-22 1 views
0

버튼을 클릭하면 (요청을 보낼 때) settings.py에서 변수 LANGUAGE_CODE의 값을 동적으로 변경할 수 있습니까?사용자에 따라 기본 언어를 동적으로 설정 또는 변경하십시오 - Django

자신의 계정에 대해 사용자가 "기본 언어"를 설정하기를 원합니다.

지금 사용자는 드롭 다운 목록을 사용하여 원하는 언어를 선택할 수 있으며 웹 사이트는 완벽하게 번역됩니다. 장고는 브라우저의 언어를 선택하기 때문에 사용자가 해당 언어를 다시 열면 언어를 다시 선택할 필요가 없습니다. 동일한 브라우저의 웹 사이트 그들은 다른 브라우저에서 웹 사이트 을 열 때

는하지만, 기본 언어 때문에 settings.py에서 en-usLANGUAGE_CODE 변수 집합으로 다시 "영어"입니다.

그래서 내가하고 싶은 것은 각 사용자가 원하는 언어를 기본값으로 선택할 수 있도록하는 것입니다. 다른 (유사한) 드롭 다운을 만들어 사용자가 "기본값"으로 원하는 언어를 선택하고 save 버튼을 눌렀을 때 저장하고 싶을 때 LANGUAGE_CODE의 값을 선택한 값으로 변경하고 싶습니다. (즉, 동적으로 변경). 그러나 LANGUAGE_CODE의 값을 동적으로 변경하는 방법을 모르겠습니다.

또한이 접근법에는 한 가지 문제가 더 있습니다.

: 나는,이 웹 사이트 모든 사용자 및뿐만 아니라 장고의 문서에 따르면, 변경이 하나의 특정 사용자에 대한 기본값으로 선택된 언어를 만들 것 동적으로 LANGUAGE_CODE 변수를 변경 할 수 있었다해도 말

언어 코드는 : 로케일 미들웨어를 사용하지 않을

  • 경우 모든 사용자에게 제공되는 번역 결정한다.

내가 많이 연구하지만 나에 대한 해결책을 찾을 수 없습니다. 나는 Internationalization을 처음 접했습니다. 도와주세요.

답변

2

, 즉 번역의 전체 지점입니다. "기본"언어를 생각해 보면 혼란스러워합니다. 그들이 선택한 것은 정의상 기본값이 아닙니다.

Django 문서는 사용자에 대해 set the active language을 명시 적으로 설명합니다. 당신이 묘사하는 것과 똑같이 세이브 할 때 이것을 설정할 수 있습니다.

사용자 프로필의 값을 다시 전달하여 로그인시이 값을 다시 설정하는 것이 좋습니다.

+0

이 답변을 주셔서 감사합니다. 이것은 내가 찾고 있었던 것이었다 : D –

0

는 U는 템플릿 파일의 각 이제까지 텍스트/var에 적합한 언어로하는 곳에 {% 트랜스 %}

example.html 통과에 {% 부하 국제화 %}를 포함해야합니다

{% load i18n %} 
... 
... 
<title>{% trans "This is the title." %}</title> 
<title>{% trans myvar %}</title> 

는 동일한에 대한 장고 문서를 참조하십시오 :이 물론 https://docs.djangoproject.com/en/1.10/topics/i18n/

+0

내 질문에 완전히 오해했습니다.나는 이미이 모든 것을 내 프로젝트에 포함시켰다. 그리고 번역은 모두 훌륭합니다. 내가 원한 것은'default' 언어를 사용자가 원하는대로 동적으로 설정할 수 있다는 것입니다. –

관련 문제