장고 1.4에 포팅 할 기존 다국어 Django 앱이 있습니다. I18n 지원은 현재 추악한 해킹을 기반으로하고 있으며, 장고에 내장 된 i18n 모듈을 사용하도록하고 싶습니다.Django i18n 경로 접두사가없는 기본 언어
제약 조건 중 하나는 이미 설치된 URL을 변경하고 싶지 않다는 것입니다. 이 사이트는 잠시 동안 활성화되어 있으며, 외부 링크가있어 '깨거나 리디렉션하고 싶지 않습니다. URL이 방식은 다음과 같이 작동
영어의 URL :
/
/articles/
/suggestions/
스페인어 URL을 :
/es/
/es/articulos/
/es/sugerencias/
를 다른 언어 도메인 이름에 접두어를 사용하는 동안 영어 컨텐츠 사이트의 루트에
Django 1.4의 i18n 모듈을 사용하여 번역 된 페이지를 얻었지만 실제로는 정말/en/아래에 모든 영어 URL을 넣고 싶습니다. 나는 영어 버전이 아닌 국제화 URL을 정의를 포함하여 몇 가지 다른 해킹 시도했다 : 이것은 URL이 제대로 해결하게
def build(callback):
return callback('',
url(_(r'^$'), home.index, name="home"),
url(_(r'^articles/$'), content.article_list, name='article_list'),
url(_(r'^suggestions/$'), suggestions.suggestions, name='suggestions'),
)
urlpatterns = build(patterns)
urlpatterns += build(i18n_patterns)
을하지만, {%의 URL을 %} 태그가 작동하지 않는 역 해결을 할 수 .
접두사가없는 영어 URL을 얻는 가장 좋은 방법은 무엇입니까?
단지 질문 : gettext에 FO 당신의'_' 비 게으른 버전? 즉'from django.utils.translation import ugettext as _' –
아니요, 게으른 버전입니다 : django.utils.translation.ugettext_lazy –
게으른 버전이 아닌 시도해 볼 수 있습니까? –