이것은 분명히 이미 논의 된 주제이지만 분명히 Google과 StackOverflow에서 찾은 답변에 어려움을 겪고 있습니다.Django 웹 사이트 다국어
여러 언어를 사용할 수 있도록 모델을 구현 했으므로 완벽하게 작동합니다. 내 문제는 웹 사이트의 사용자가 스스로 언어를 영구적으로 변경할 수 있도록 허용하는 것입니다.
사용자가 클릭하여 언어를 변경할 수있는 상단 메뉴 막대에 언어 플래그가 있습니다. 그런 다음/setlanguage/de를 열고 de는 언어를 엽니 다. en 등등.
리디렉션이 작동하지 않는 이유는 요청에 어떤 변수도 설정할 수 없기 때문입니다.
그러나 실제로는 하나의 페이지 만 가지고 있으므로 사용자를 "/"로 리디렉션하면됩니다. 내 번역은 URL에서 다른 슬러그도 지원합니다.
url(r'^show/(?P<slug>[-\w]+)', views.show, name='show'),
나는 "/ 페이지/사용하기 쉬운"또는 "/ 페이지/einfach-ZU-bedinen는"같은 페이지를 얻을 수있는 아약스 요청을 할 수 있도록.
정말 사용자 컴퓨터에 쿠키를 설정하고 싶지 않습니다. 나는 PHP 배경에서 왔는데, 나는 장고에서 약간 다르게 작동하는 세션을 처리한다고 가정한다. 요청 당 기준보다는 전역 적으로 사용 가능할 것으로 기대할 수 있겠는가?
세션을 사용하지 않고 소스 코드를 클러스터링하지 않고 선택한 언어로 페이지를 다시로드하기위한 해결 방법이 있습니까?
고마워요! 이것은 매우 유용한 정보입니다. 첫 번째 코드 스 니펫의 경우 요청 문제로 인해 KeyError 때문에 오류 페이지가 표시되어이 문제를 해결할 수 있습니다. 두 번째 코드 조각 : 나는 사용자 입력을 신뢰하지 않으며 악의적 일 수 있으므로 데이터베이스 쿼리에 넣지는 않습니다. 나는 DJango가 SQL Injection을 처리한다는 것을 알고 있지만 어떻게 든 그것을 신뢰하지 않습니다. 나는 당신의 성과 관심사를 보았습니다! 그리고 나는 그 해결책에 만족하지 못했다는 것에 동의한다. 나는 그것이 설정 파일이라고 생각한다! – Richard
우선, PHP에서 django로 전환하는 경우 원시 SQL (전체 문 또는 파편)을 사용하지 않는 한 SQL 주입에 대해 잊어 버리십시오. ORM이 처리하므로 다시는 안됩니다. 둘째 : 첫 번째 스 니펫은 실제로 아무 것도하지 않습니다.'if X in Y : '연산자를 사용하면 key가 있는지 검사하기 때문에 KeyError를 던지지 않습니다. 그래서 당신은 다시 두 번 무언가를하고 있습니다. – GwynBleidD
좋습니다. 도와 줘서 고마워! 나는 그것을 고칠 것이고 그런 넌센스를 다시는 만들어 내지 않을 것이다 :) – Richard