2012-09-28 5 views
1

데이터베이스의 단어를 번역 할 수 있습니까? 표준 도구 인 python setup.py extract_messages를 사용하고 locale/fr/LC_MESSAGES/*. po 파일을 번역에 사용하고 싶습니다.데이터베이스의 피라미드 국제화 i18n 단어?

+0

안녕 uralbash..Its는 오랜 시간이 있지만, 마지막으로 데이터베이스에있는 단어의 번역을 달성하기 위해 무엇을 했는가 @? – Yahya

답변

2

가능합니다. 데이터베이스에서 반환 된 텍스트를 TranslationString에 전달하기 만하면됩니다.

TranslationStringFactory(domain)을 사용하여 문자열을 만들고 로컬 라이저에 전달할 수 있습니다. 문제는 데이터베이스에서 문자열을 추출하는 것입니다. 어떻게 할 수 있는지 모르겠지만 추출기를 전달하여 데이터베이스에서 메시지를 추출 할 수는 있습니다.

조금 더 나은 다른 방법은 문자열로 더미 파일을 만드는 것입니다. 모두를 gettext와 같은 형식의 파일로 추출하십시오.

그런 도구로이 없다, 꽤 사용자 정의는 항상 당신이 버전에 추가 할 수 있으며, 현재 메시지 추출기는 일이 데이터베이스에 저장하는 방법부터 평소

편집

같은 텍스트를 얻을 것이다 내가 말할 수있는 한 멀리. 그러나 그것은 쉽게 작성해야합니다.

이렇게 표시됩니다.

with open(registry.settings['db_locale_file'], 'w') as f: 
    for result in my_query_results: 
     f.writeline('_(u"%s")' % result.key_you_want) 

매우 간단한 예이지만 더 복잡해야합니다. 피라미드 부트 스트랩을 사용하여 스크립트로 만들면

your_script 
python setup.py extract_messages 
python setup.py update_catalog 
???? 
python setup.py compile_catalog 
???? 
#profit! 
0

예, 가능합니다.

 

pyramid_i18n_howto/views.py:7 
msgid "My i18n project" #field_id to add in template 
msgstr ""     # label to show 

Default: Search documentation 
pyramid_i18n_howto/templates/mytemplate.pt:37 
msgid "search_documentation" 
msgstr "" 

또한 파일 locale/it/project_name.po에 각 언어를 추가 할 것입니다 : 당신은 당신이 exemple의 파일 locale/project_name.pot

에있는 줄의 끝에서 번역해야하는 필드를 추가하는 스크립트를 구현해야합니다

자세한

에 대한 this를 참조
관련 문제