2014-01-30 5 views
1

우리는 알림을 다른 언어로 번역해야하는 프로젝트를 만들고 있습니다.Django translation : pick variables

표준 "Hello, %(first_name)s"과 달리 언어에 따라 "Halo, Herr %(last_name)s"이 필요합니다.

또 다른 단어는 번역 된 블록에서 사용하려는 변수가 언어에 따라 다릅니다.

어떻게 구현하는 것이 가장 좋을까요? 모든 언어에 대해 다른 템플릿을 구현하지 않아도됩니다.

고마워요! 그러나 미주리 파일을 생성하는 a format specification for argument 'first_name' doesn't exist in 'msgstr' 오류 번역을 Halo, Herr %(last_name)s 결과를 공급하면서

user_data = { 
    'first_name': 'Charlie', 
    'last_name': 'Brown', 
} 

1.

_('Hello, %(first_name)s') % user_data를 컴파일하고, 번역 작품을 좋아 :

답변

1

데! (gettext 0.18.1을 윈도우에서 실행하여 테스트).

2.

당신은 파이썬 새로운 문자열 서식을 사용할 수 있습니다 _('Hello, {first_name}').format(**user_data) 및 Hackish Halo, Her, {last_name}

3. 로 번역 :

_("Hello %s") % (user_data[_('hello_name_field')]) 

#or uglier but safe: 
_("Hello %s") % (user_data.get(_('hello_name_field'), user_data['first_name'])