장고에서 현재 언어를 얻는 방법은 무엇입니까?
모델 또는 관리자의 현재 스레드에서 현재 언어를 얻으려면 어떻게해야합니까?
특히 관심있는 함수는 django.utils.translation.get_language()
현재 스레드에서 사용되는 언어를 반환합니다. 설명서를 참조하십시오 .
또는 당신의 견해에서 이것을 얻을 수 있습니다
request.LANGUAGE_CODE
언어를 얻기 위해 사용하는 방법에주의하십시오 . 어떤 방법에 따라 Django는 사용할 올바른 언어를 결정 하기 위해 다른 방법과 정보 를 사용합니다.
django.utils.translation.get_language()
함수를 사용할 때 스레드 언어에 연결 됩니다. Django 1.8 이전 settings.LANGUAGE_CODE
에는 번역이 비활성화되었을 때 항상 반환 되었습니다. 스레드 언어를 수동으로 재정의하려면 override()
또는 activate()
함수를 사용할 수 있습니다. 이는 명시 적으로 이름이 지정되지는 않았지만 여전히 유용합니다.
from django.utils import translation
with translation.override('fr'):
print(_("Hello")) # <= will be translated inside the with block
translation.activate('fr') # <= will change the language for the whole thread.
# You then have to manually "restore" the language with another activate()
translation.activate('en') # <= change languages manually
django가 경로 및 / 또는 요청 (언어 쿠키, ...) 을 확인하기를 원하면 (언어 쿠키, ...) 훨씬 더 일반적입니다 (예 : www.example.com/en/<somepath>
vs www.example.com/fr/<somepath>
) django.utils.translation.get_language_from_request(request, check_path=False)
. 또한 항상 유효한 언어 세트를 반환합니다.settings.LANGUAGES
이 주제에 대해 Google을 통해 이러한 차이점을 찾는 것이 그리 쉽지 않다는 것을 알았으므로 여기에 추가 참조 용입니다.
사용 django.utils.translation.get_language()
하는 경우 해당 코드 섹션이 비동기 적으로 (예 : 셀러리 작업으로) 호출되는 경우이 방법은 다른 스레드에서 실행되기 때문에 작동하지 않는다는 점을 명심해야합니다.
시스템의 locale
언어 정보를 읽을 수 있습니다 .
당신은 이것을 사용할 수 있습니다
from django.utils import translation
translation.get_language()
참고 URL : https://stackoverflow.com/questions/3356964/how-i-get-the-current-language-in-django
'developer tip' 카테고리의 다른 글
JSON 문자열에서 반환 된 Objective-C의 null 값 확인 (0) | 2020.10.13 |
---|---|
Linux에서 R에 사용할 수있는 IDE는 무엇입니까? (0) | 2020.10.13 |
Perl에서 키가 주어진 배열에서 나온 해시를 어떻게 생성합니까? (0) | 2020.10.13 |
DateTime. 날짜가 30 일 미만인지 확인하는 방법을 비교합니까? (0) | 2020.10.13 |
Angular 6 재질 매트 선택 변경 방법 제거 (0) | 2020.10.13 |