GNU gettext

frá Wikipedia, ókeypis alfræðiorðabókinni
Fara í siglingar Fara í leit
GNU gettext

Opinber gnu.svg
Grunngögn

Viðhaldsmaður Daiki Ueno
verktaki GNU gettext teymi
Núverandi útgáfa 0,21[1]
( 27. júlí, 2020 )
stýrikerfi Unix-eins stýrikerfi, Windows (sjá veftengla)
forritunarmál C.
flokki Staðsetning
Leyfi GPL : forrit og libgettextpo bókasafn, LGPL : libintl og libasprintf bókasafn
Þýskumælandi nei
GNU gettext heimasíða

GNU gettext er GNU forritasafn fyrir alþjóðavæðingu hugbúnaðar. Venjulega er það notað til að þróa fjöltyngd forrit.

vinnuflæði

forritari

vinnuflæði

Í fyrsta lagi er frumkóðanum breytt þannig að það kallar GNU gettext aðgerðir. Í flestum forritunarmálum er þessu náð með því að vefja strengina sem á að gefa út með gettext . Til glöggvunar er einnig hægt að taka á þessari aðgerð undir nafninu _ , þannig að eftirfarandi kóða dæmi (í C ) frá

 printf ( "Ég heiti% s. \ n " , nafn mitt );

í

 printf ( _ ( "Ég heiti% s. \ n " ), nafn mitt );

þyrfti að breyta. Þetta er samheiti við

 printf ( gettext ( "Ég heiti% s. \ n " ), nafn mitt );

Til viðbótar við C er GNU gettext nú einnig fáanlegt í C ++ , Objective-C , sh forskrift, Bash handriti, Python , Ruby , GNU CLISP , Emacs Lisp , librep, GNU Smalltalk , Java , GNU awk , Pascal , Delphi , Gambas , wxWidgets (með hjálp wxLocale bekkjarins), YCP ( YaST2 tungumálið), Tcl , Perl , PHP og Pike í boði. Notkun gettext í þessum kerfum er venjulega mjög svipuð og C.

xgettext eru greindar með xgettext til að búa til .pot skrá ( Portable Object Template ) sem inniheldur lista yfir alla texta sem hægt er að þýða (strengi). Fyrir dæmið hér að ofan myndi færslan í .pot skráinni líta svona út:

 #: src / nafn.c: 36
msgstr "Ég heiti% s. \ n"
msgstr ""

þýðandi

Þýðandinn býr til .po skrá ( Portable Object ) úr sniðmátinu með msginit forritinu og býr síðan til þýðingarnar. msginit frumstillir þýðinguna, þannig að ef þú vilt búa til enska þýðingu, þá þarftu að hringja í msginit sem hér segir:

 msginit --locale = en --input = name.pot

Þetta símtal myndi búa til en.po skrána; færsla í þessari skrá myndi t.d. B. líta svona út:

 #: src / nafn.c: 36
msgstr "Ég heiti% s. \ n"
msgstr "Ég heiti% s. \ n"

Þýðandinn myndi þá verða að koma í stað samsvarandi texta annaðhvort handvirkt eða með tól eins og poEdit eða Lokalize (áður KBabel ). Eftir að verkinu er lokið myndi dæmifærslan líta svona út:

 #: src / nafn.c: 36
msgstr "Ég heiti% s. \ n"
msgstr "Ég heiti% s. \ n"

Að lokum eru .po skrárnar msgfmt í tvöfaldar .mo ( Machine Object ) eða .gmo skrár ( GNU Machine Object ) með því að nota msgfmt . Þetta er nú hægt að afhenda með hugbúnaðarpakkanum. Til að bókasafnið geti fundið skrána er hún nú afrituð í fyrirfram skilgreinda möppu (td í C með bindtextdomain( name ,"/usr/share/locale") ). Hluturinn sem heitir name.mo ( nafn er lénið , t.d. nafn bindtextdomain() , tilgreint sem fyrsta rök bindtextdomain() ). Skilaboðahluturinn er þá staðsettur í /usr/share/locale/<Sprachkürzel>/LC_MESSAGES/name.mo .

Það er oft ráðlegt fyrir þýska forritara að skrifa frumtextana á ensku, annars þyrfti þýðandi að ná tökum á bæði þýsku og markmáli. Önnur stefna er að nota stutt hugtök í stað heilra setninga (td "form_submit"), sem hefur þann kost að hægt er að nota þessar almennu "bútar" á nokkrum stöðum í kóðanum, en aðeins einu sinni í þýðingarskránni þarf að þýða . Til að ná sömu áhrifum með heilum setningum, þá þyrftu þessir stafir að vera eins, sem er frekar viðkvæmt fyrir villum. Á hinn bóginn forðast þessi varðveisla samhengis tungumála tvíræðni sem getur komið fram sérstaklega með stuttum setningum eða jafnvel einstökum orðum. Til dæmis, ef þú vilt nota enska orðið „röð“ annars vegar fyrir flokkunarröðina og hins vegar sem „röð“, þá áttu í erfiðleikum með eina-til-eina þýðingu, en þegar þú notar samhengis- viðkvæm hugtök sem þú þyrftir „order_by“ og „submit_order“ „Gæti notað.

notandi

Notandinn í Unix (eða Unix-líku) kerfi skilgreinir staðsetninguna með umhverfisbreytunum LC_ALL , LC_MESSAGES eða LANG og LANGUAGE .

Í Windows er tungumálið sem er stillt undir "svæði" sjálfkrafa notað.

Forritið sendir textana út á samsvarandi tungumáli, að því tilskildu að það sé til .mo skrá fyrir það. Ef engin viðeigandi .mo skrá er til staðar notar forritið tungumálið sem hún var upphaflega skrifuð á, venjulega ensku.

Sjá einnig

Vefsíðutenglar

Wikibækur: Tölvutengd þýðing - náms- og kennsluefni

Einstök sönnunargögn

  1. Bruno Haible: GNU gettext 0.21 gefið út . 27. júlí 2020 (sótt 27. júlí 2020).