2017-05-03 4 views
0

: excellent marina mele tuto.django에서 국가 목록을 번역하는 방법은? 에 가리 켰을 때, 나는 장고 표준 국제화 패키지를 사용하고

웹 및 모바일 사용자의 형태에서 나는 사용자의 언어에서 국가 이름의 목록을 표시해야합니다.

국가 목록을 만들려면 django-country를 사용하기 쉽고 문서화가 잘 된 것 같습니다.

국가 목록을 요청하기 위해 하나의 API (템플릿 없음)를 사용할 수 있습니다.

하지만이 국가 목록을 번역하는 방법은?

모든 예제를 환영합니다.

감사

답변

0

당신은 django-modeltranslation 살펴보고 수는 라이브러리 모델 데이터에서 변환을 수행하는 데 사용됩니다.

그렇지 않으면 국가 목록을 번역하려는 경우 새 목록을 작성하고 목록의 각 항목에 내장 된 장고 번역 도구를 사용할 수 있습니다.

+0

그것은 좋은데 ... 정말 이해할 코드 예제를 찾고있다 – alvaro562003

0

나는 django-countries에 대해 이야기하고 있다고 가정합니까? 사용자 언어가 translation.activate(language)으로 활성화되어 있는지 확인해야하며, i18n_urlpatterns을 사용하는 경우 Django의 미들웨어에서도 처리해야합니다. 거기에서, 내장 된 gettext 기계를 사용하여 사용자의 언어로 국가 이름을 검색합니다.

당신은

from django_countries import countries 
from django.http import JsonResponse 

def countries_list(request): 
    for code, name in list(countries): 
     print(code, name) 

    return JsonResponse({ 
     code: name for code, name in list(countries) 
    }) 

또는 그러나 당신이 좋아 함께보기 나, django_countries.serializer_fields.CountryField와 시리얼 국가 개체를 사용할 수 있습니다. 템플릿에서 :

{% load countries %} 
{% get_country 'BR' as country %} 
{{ country.name }} 

은 사용자의 언어가 활성화되어 있으면 작동합니다.

+0

템플릿에서 완벽하게 작동합니다. 하지만 템플릿이 없습니다. 코드가 모바일 앱 및 웹에서 실행되어야하므로 일부 API를 코딩합니다. 고맙습니다 – alvaro562003

0

마지막으로, 나는

간단한 배열

TranslatedCountries = { 
'france': { 
       'en': u'france', 
       'fr': u'france', 
       }, 

'belgium': { 
       'en': u'belgium', 
       'fr': u'belgique', 
       }, 
'spain': { 
       'en': u'spain', 
       'fr': u'espagne', 
       }, 
'morocco': { 
       'en': u'morocco', 
       'fr': u'maroc', 
       }, 

}를 사용하고 그리고 난 액세스 :

try: 
      CCC = TranslatedCountries[test_country.lower()][user_language.lower()] 
     except : 
      print "The country %s is not defines for the language %s" % (test_country.lower(),user_language.lower()) 
      CCC = test_country 

print CCC 

나는 누군가가 우리에게 간단하고, 빠르고 깨끗한 솔루션을 제공 줘야 바랍니다. 도움을 주셔서 감사합니다. 알