Gettext
gettext software | |
---|---|
Tip | Mediu de dezvoltare integrat |
Dezvoltator | Proiect GNU |
Ultima versiune | 0,21 (27 iulie 2020) |
Sistem de operare | Multiplatform |
Limba | C. |
Licență | GNU GPL v3 + și GNU Lesser General Public License, versiunea 2.1 sau o versiune ulterioară ( licență gratuită ) |
Site-ul web | www.gnu.org/software/gettext/ |
Utilitățile GNU gettext sunt un pachet de instrumente concepute pentru a permite internaționalizarea (i18n) și localizarea software - ului sau pentru a simplifica traducerea mesajelor adresate utilizatorului în orice limbă dorită.
Compatibilitate
Fiind conceput pentru a permite traducerea întregului sistem de operare GNU, gettext este compatibil cu un număr mare de limbaje de programare și scriptare: C, C ++, orientat obiect C, script Bash, Python, GNU clsip, Emacs Lisp, GNU Smalltalk , Java, GNU awk, Pascal, WxWidgets, YCP, Tcl, PHP, Pike și multe altele.
Metoda de utilizare
Dezvoltator
Mai întâi trebuie să utilizați funcția GNU gettext în codul sursă. Acest lucru se întâmplă diferit în funcție de limbajul de programare adoptat pentru proiectul dvs., dar respectă reguli comune pentru limbile cele mai frecvent adoptate. Acestea necesită ca programatorul să încadreze șirul mesajului care urmează să fie tradus în funcția gettext . Din motive practice, forma scurtă _ este adesea utilizată. Astfel, următorul cod din C:
printf ( gettext ( "Numele meu este% s \ n " ), numele_meu );
ar deveni:
printf ( _ ( "Numele meu este% s \ n " ), numele_meu );
Ulterior, comanda xgettext va filtra codul care caută funcția gettext tocmai introdusă, pentru a crea fișierul șablon .pot , pe baza șirurilor extrase din surse. Un exemplu de fișier .pot pentru un cod care conține liniile de mai sus ar fi:
#: src / name.c: 36
msgstr "Numele meu este% s \ n"
msgstr ""
Traducător
Traducătorul va obține un fișier .po din fișierul șablon utilizând programul msginit . Aceasta va genera un fișier în funcție de traducerea care va fi efectuată, care va utiliza limba utilizată de programator în caz de non-traducere. De exemplu, pentru o traducere în franceză:
msginit --locale = fr --input = name.pot
Programul va crea fișierul fr.po, cu un conținut similar cu următorul:
#: src / name.c: 36
msgstr "Numele meu este% s \ n"
msgstr "Numele meu este% s \ n"
În acest moment, traducătorul va trebui doar să traducă șirul în linia msgstr, manual sau prin programe speciale, cum ar fi poEdit . Rezultatul va arăta astfel:
#: src / name.c: 36
msgstr "Numele meu este% s \ n"
msgstr "Je m'appelle% s \ n"
La finalizare, fișierele .po vor fi compilate în fișiere .mo binare utilizând comanda msgfmt , după care vor fi gata pentru distribuire împreună cu pachetul software pentru dezvoltatori.
Utilizator
Utilizatorul va trebui doar să ruleze programul, deoarece va utiliza traducerea fișierului .mo corespunzător valorii variabilei de mediu LANGUAGE, prestabilită de obicei în toate distribuțiile de software gratuit .
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere pe Gettext
linkuri externe
- ( RO ) Site oficial , pe gnu.org .
- Gettext , pe packages.debian.org .
- Depozitul sursă Gettext , la git.savannah.gnu.org .
- ( EN ) Gettext , în Free Software Directory .