장고는 서버 측에서 템플릿을 렌더링한다는 것을 알고 있습니다. 브라우저는 HTML 컨텐트를 수신하고 JavaScript를 사용하여 조작 할 수 있습니다.장고 템플릿 - 서버 측 장고 태그의 클라이언트 측 조작
Django 언어 태그를 조작하기위한 JavaScript 코드가 현재 양식에서 유지하기가 어려우므로 더 좋은 방법으로 코드를 작성하려고하지만 이러한 방식과 필요성을 생각할 수 없습니다. 도움. 코드는 동적 언어를 변경해야합니다
function dateCalculation(dynamic_language_code) {
var c = dynamic_language_code;
//arabic
if (dynamic_language_code == 'ar'){
var_month = "{% language 'ar' %}{% trans 'month' %}{% endlanguage %}";
var_months = "{% language 'ar' %}{% trans 'months' %}{% endlanguage %}";
var_year = "{% language 'ar' %}{% trans 'year' %}{% endlanguage %}";
var_years = "{% language 'ar' %}{% trans 'years' %}{% endlanguage %}";
//bulgarian.
} else if (dynamic_language_code == 'bg'){
var_month = "{% language 'bg' %}{% trans 'month' %}{% endlanguage %}";
var_months = "{% language 'bg' %}{% trans 'months' %}{% endlanguage %}";
var_year = "{% language 'bg' %}{% trans 'year' %}{% endlanguage %}";
var_years = "{% language 'bg' %}{% trans 'years' %}{% endlanguage %}";
}
........
many more else if conditions
........
//default value of English.
} else {
var_month = "{% language 'en' %}{% trans 'month' %}{% endlanguage %}";
var_months = "{% language 'en' %}{% trans 'months' %}{% endlanguage %}";
var_year = "{% language 'en' %}{% trans 'year' %}{% endlanguage %}";
var_years = "{% language 'en' %}{% trans 'years' %}{% endlanguage %}";
}
}
EN, FR, BG, RU, ES 등 :
dynamic_language_code은 2 개 문자 코드는 예입니다 : 여기
내 코드입니다 month, dynamic_language_code 값으로 전달됩니다. if else 문은 필요하지 않습니다. 전달 된 dynamic_language_code 값을 사용하여 var_month, var_months, var_year 및 var_years 값을 할당하면됩니다.if else 조건을 없애고 여전히 dynamic_language_code에 전달 된 언어를 사용하여 올바른 언어 버전을 반환하려면 어떻게해야합니까?
편집
나는 경우 다른 조건을 제거하고 단지 동적 언어 태그를 사용하여 언어 코드에 변수를 할당받을 싶다. 내가 이것을 어떻게 할 수 있는지 또는 이것이 수행 될지라도. 예를 들어 :
var_month = "{% language dynamic_language_code %}{% trans 'month' %}{% endlanguage %}";
var_months = "{% language dynamic_language_code %}{% trans 'months' %}{% endlanguage %}";
var_year = "{% language dynamic_language_code %}{% trans 'year' %}{% endlanguage %}";
var_years = "{% language dynamic_language_code %}{% trans 'years' %}{% endlanguage %}";
JS를 사용하여 개별 텍스트를 번역해야하는 이유가 있습니까? 좋은 디자인은 실제 번역 작업을 템플릿 시스템에 맡기고 JS 또는 서버 뷰는 사용할 언어 만 결정하는 것입니다. 예를 들어 사용자 전환 언어를 사용하면 페이지를 새로 고치고 요청 헤더를 통해 서버에 기본 언어를 보낼 수 있습니다. 서버는 선호 언어의 번역 된 텍스트 만 렌더링합니다. 이 [스레드] (http://stackoverflow.com/questions/2336785/set-language-within-a-django-view) 장고 측면에서 스위치 언어에 대해 이야기합니다. – ZZY
ZZY, 페이지 새로 고침을 피하기 위해 JavaScript를 사용하고 있습니다. 페이지 새로 고침을 원하지 않습니다. JS는 데이터가 데이터베이스로 보내지기 전에 timspan을 동적으로 표시하는 데 사용됩니다. – user3354539