2014-11-30 9 views
9

나 자신을 위해 새 모듈을 만들고 싶지만 일부 동료가이 모듈을 사용할 수 있기를 바랍니다. 나는 영어로 문서화 문자열을 작성하기 시작했으나이 언어를 잘 이해하지 못하는 사람들에게 모듈을 쓸모 없게 만들 것이라고 깨달았다.파이썬에서 다국어 문서화하는 방법

첫 번째 아이디어는 영어와 동일한 문서 문자열에 스페인어를 입력하는 것이 었습니다. 그러나 이것이 옳지 않은 것 같습니다. 만약 러시아 친구들이 그것을 사용하기를 원한다면 어떨까요? 전 세계에 친구가 있고 문서를 읽을 수있는 공통 언어가없는 친구가 있다면 어떻게 될까요?

다국어로 된 문서 문자열을 작성하고 읽는 가장 쉬운 방법은 무엇입니까?

+1

docstring을 여러 언어로 번역 할 방법이 없지만 sphinx를 통해 문서를 만들고 문서를 번역 할 수 있습니다. –

+0

@AndrewSvetlov 당신은 확실히 대답으로 이것을 써야합니다. – alecxe

+0

@AndrewSvetlov, 예, 정교하고 대답을 추가하십시오. 좋은 해결책 인 것 같습니다. –

답변

3

여러 언어로 번역 문서화 문자열 할 방법이 없습니다하지만 당신은 Sphinx 도구를 통해 문서를 작성하고 문서를 번역 할 수 있습니다.

스핑크스는 생성 된 문서에 대해 gettext 기반 번역을 지원하므로 Sphinx Internationalization Guide을 살펴보십시오.

+0

스핑크스는 좋은 방법이기 때문에 가장 좋은 답으로 표시됩니다. [이 대안] (http://stackoverflow.com/questions/2258696)/more-than-1-docstrings-for-a-single-module-function-etc? rq = 1) 그러나 많은 언어에서 잘 확대되지 않습니다. –

0

내가 생각할 수있는 유일한 실용적인 해결책에 대해서 - 그리고보기 흉한 것은 문서 문자열에 하나의 언어를 배치하는 것입니다. 예를 들어 :

def findChocolate(variety): 
    '''Locate chocolate - Encuentra la choloate - nuqDaq yuch Dapol ''' 
    ... 
+0

이것은 실제로 파싱 할 수 없으며 "GetText-able"이 아니기 때문에 실제로보기 흉하게됩니다. ( –

3

나는 동일한 문제가있었습니다. 일종의 : cmd 모듈은 docstrings을 사용하여 최종 사용자에게 도움말을 인쇄하며 여러 언어로 문서화 문자열을 작성해야했습니다. 방법은 다음과 같습니다.

gettext 모듈 사용에 대한 내용은 awesome tutorial입니다. 이를 통해 모든 Python 응용 프로그램을 번역 할 수 있습니다.

import gettext 
try: 
    lang = gettext.translation('myawesomeapp', localedir='locale') 
    lang.install() 
except FileNotFoundError: 
    _ = lambda x: x 

그리고 당신이 문서화 문자열을 국제화 할 때마다 지금,이 패턴 다음과 같습니다 :이처럼 사용

class MyAwesomeClass: 
    def incredible_method(with_fantastic_args): 
     # Some marvellous code 

    incredible_method.__doc__ = _('''\ 
Place here a fabulous docstrig for your incredible method. 
This will be translated by the gettext module at runtime.''') 

지금은 앞서 언급 한 that tutorial을 읽을 수있는 시간은 다음과 같습니다 pygettext을에 전화를하여 코드를 사용하려면 poedit을 사용하여 번역을 만들고 재미있게 보내십시오.

Adiós, paisanos.