2014-11-30 28 views
9

Kendim için yeni bir modül oluşturmak istiyorum ancak bazı iş arkadaşlarının da bunu kullanmasını istiyorum. Belgelerimi İngilizce yazmaya başladım ama sonra bu dili iyi anlamayan bir kısmı için modülü işe yaramayacağını anladım.Birden çok dil için python'da belge oluşturma

İlk fikrim hem İngilizce hem de aynı belgede İspanyolca yazmaktı. Fakat bu doğru görünmüyor, ne de olsa bazı Rus arkadaşların da kullanmasını istersem? Dünyada, dokümanlar okumak için ortak bir dili olmayan arkadaşları olan arkadaşların varsa ne olur?

Birden çok dilde docstrings yazmanın ve okumanın en kolay yolu nedir?

+1

Dokümanların birden çok dile çevrilmesini sağlamanın bir yolu yoktur, ancak sfenks yoluyla belgeler oluşturabilir ve dokümanları çevirebilirsiniz. –

+0

@AndrewSvetlov bunu kesinlikle bir cevap olarak eklemelisiniz. – alecxe

+0

@AndrewSvetlov, evet, lütfen detaylandırın ve cevap olarak ekleyin, iyi bir çözüm gibi görünüyor. –

cevap

3

birden fazla dile tercüme docstringe yapmak için bir yolu yoktur ama Sphinx aracı ile belgeleri oluşturmak ve belgeler çevirebilir.

Sphinx, oluşturulmuş dokümanlar için gettext tabanlı çevirileri destekler, Sphinx Internationalization Guide'a bir bakın.

+0

En iyi cevap olarak işaretlenmiş çünkü Sphinx gitmek için iyi bir yoldur. Ayrıca bulundu [bu alternatif] (http://stackoverflow.com/questions/2258696/more-than-1-docstrings-için-one-modül-işlev-vb? rq = 1), ancak birçok dil için iyi tırmandırmaz. –

0

Düşünebildiğim tek pratik çözüm hakkında - ve çirkin - bir dili diğerine arka arkaya yerleştirmek. Örneğin:

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

Bu gerçekten parsable değil ve "GetText-mümkün" değil çünkü gerçekten çirkin :( –

3

Aynı sorunu yaşadım; tür: cmd modülü, son kullanıcıya yardım yazdırmak için docstrings kullanır ve gerçekten çok dilde docstrings sahip olmak için bir yol gerekiyordu. İşte nasıl yaptık:

Gettext modülünü kullanmak için bu awesome tutorial'a bakın. Bu, herhangi bir Python uygulamasını çevirmenizi sağlar.

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

Ve eğer bir docstring'ini uluslararası hale getirmek istediğinizde şimdi, bu deseni takip: Böyle kullanmak

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.''') 

Şimdi Daha önce de belirttiğimiz that tutorial okumak zamanıdır: pygettext çağırıyoruz senin kod, çeviri oluşturmak ve eğlenmek için poedit kullanın.

Adiós, paisanos.

İlgili konular