Prekladanie dokumentácie pomocou Sphinx

Sphinx je nástroj na vytváranie krásnej dokumentácie. Používa jednoduchú syntakt reStructuredText a môže generovať výstup v mnohých formátoch. Ak hľadáte príklad, táto dokumentácia je tiež zostavená pomocou neho. Veľmi užitočným spoločníkom pre používanie Sphinx je služba Read the Docs, ktorá zostaví a zverejní vašu dokumentáciu zdarma.

Nebudem sa zameriavať na písanie samotnej dokumentácie, ak potrebujete usmernenie, stačí postupovať podľa pokynov na webovej stránke Sphinx. Akonáhle máte dokumentáciu hotovú, jej preklad je celkom jednoduchý, pretože Sphinx prichádza s podporou pre toto a je to celkom pekne pokryté v ich Internationalization. Je to otázka niekoľkých konfiguračných direktív a vyvolania nástroja sphinx-intl.

Ak používate službu Read the Docs, môžete začať zostavovať preloženú dokumentáciu na Read the Docs. Ich Localization and Internationalization pokrýva takmer všetko, čo potrebujete - vytvorenie ďalšieho projektu, nastavenie jeho jazyka a prepojenie z hlavného projektu ako preklad.

Teraz už stačí len preložiť obsah dokumentácie. Sphinx generuje súbor PO pre každý adresár alebo súbor najvyššej úrovne, čo môže viesť k pomerne veľkému počtu súborov na preklad (v závislosti od nastavení gettext_compact). Môžete importovať index.po do Weblate ako počiatočný komponent a potom nakonfigurovať doplnok Objavovanie komponentov na automatické objavenie všetkých ostatných.

Konfigurácia komponentu

Názov komponentu

Documentation

Maska súboru

docs/locales/*/LC_MESSAGES/index.po

Šablóna pre nové preklady

docs/locales/index.pot

Formát súboru

gettext PO súbor

Príznaky prekladu

rst-text

Konfigurácia objavovania súčastí

Regulárny výraz na porovnanie súborov prekladov

docs/locales/(?P<language>[^/.]*)/LC_MESSAGES/(?P<component>[^/]*)\.po

Prispôsobiť názov komponentu

Documentation: {{ component|title }}

Definovať základný súbor pre nové preklady

docs/locales/{{ component }}.pot

Rada

Preferovali by ste, aby Sphinx generoval iba jeden súbor PO? Od Sphinx 3.3.0 toho môžete dosiahnuť pomocou:

gettext_compact = "docs"

Môžete nájsť niekoľko projektov dokumentácie prekladaných pomocou tohto prístupu: