Internaciigo de komputilaj programoj/Internaciigo kaj lokecigo
Internaciigo kaj lokecigo
editTeorio
editLa komerca produktado kaj vendado de programoj baziĝas sur la ideo, ke ne ĉiu verku siajn proprajn programojn, sed programoj estu uzataj de multaj homoj. Tiu penso implicas, ke oni ne verku (kaj flegu) por ĉiu lingvo programojn kun identaj funkciadoj, sed igu unu saman programon funkcii en multaj lingvoj. Ĉar la aŭtoroj de programoj normale ne estas lingvistoj aŭ poliglotoj, necesas metodoj por "traduki programojn".
Tiu procezo, traduki programon en alian (uzo-)lingvon, nomiĝas lokecigo de la programo. La vorto devenas de la angla vorto localization, kiu baziĝas sur la supozo, ke la tradukado igas la programon taŭga por uzo en alia loko (lando, regiono alilingvaj). Lokecigo ne estas nura traduko, sed inkluzivas la adapton ekzemple de valutoj, hor-sistemoj ktp.
Por ĉiu lingvo, en kiu funkciu programo, necesas aparta lokecigo. Escepto estas la unua lingvo, en kiu la programo estas verkita; kvazaŭ ĝia "denaska" lingvo. Tiu lingvo ofte estas la ĉiutaga lingvo de la programistoj.
Kvanta ekzemplo klarigas la avantaĝon de lokecigo: Ni supozu, ke ni havas 8 programojn P1 …P8 , kiuj funkciu en 12 lingvoj L1 …L12 . Verkante propran programon por ĉiu lingvo ni bezonas 8×12 = 96 programojn, kiujn necesas ankaŭ flegi, t. e. korekti iliajn erarojn kaj pluevoluigi. Uzante lokecigon ni bezonas 8 programojn (en unu lingvo) kaj 88 lokecigojn. Se ni supozas, ke lokecigo estas pli simpla kaj malpli kosta ol verkado de programo, ni ŝparas.
Esotera ĵargono
Ankaŭ la vorto internaciigo devenas de angla vorto: internationalization. Ĉar tiu vorto estas tre longa (20 literoj, 7 aŭ 8 silaboj), usonaj programistoj inventis la mallongigon "i18n", kiu anstataŭigas la mezajn 18 literojn per ilia nombro.
Alia termino anglalingva estas NLS. Tiu estas mallongigo de National Language Support or Native Language Support, t.e. «NaciLingva Subteno»).
Ni poste vidos, ke lokecigo ne estas tute simpla afero. Se programo ne estas preparita por ĝi, ĝia lokecigo estas ne nur malfacila kaj temporaba, sed eĉ suferas pro certaj restriktoj, kiuj limigas la kvaliton de la traduko.
Pro tio estas utile, eĉ preskaŭ necese, konsideri la postajn lokecigojn jam dum la verkado de programo, kaj prepari la programon al ili. Tiu preparo nomiĝas internaciigo de la programo. Ĝi ne inkluzivas tradukadon, sed nur rezultigas programon, kies lokecigo estas pli facila ol la lokecigo ne ne-preparita programo.
Temas tie ĉi pri "internaciigo en strikta senco", internaciigo kiel procezo aŭ ago de programanto. Ankaŭ la tuta tekniko de plurlingvaj programoj ja nomiĝas "internaciigo" (en vasta senco). Tio normale ne kaŭzas konfuzon.
En ju pli da lingvoj programo funkciu, des pli valoras zorga
internaciigo, kiu ja estas farata nur unufoje por ĉiuj lingvoj. Praktike
internaciigo estas tiom grava, ke ĝi necesas eĉ por nur 2 lingvoj.
Praktika subteno
editKiel ni vidos, dum la internaciigo de programo aperas multaj taskoj, kiuj postulas scion pri lingvoj, sed estas kvazaŭ identaj por diversaj programoj. Ekzemplo estas la alfabeta ordigo de vortoj en diversaj lingvoj.
Estus malŝparo, se ĉiu programisto farus tiujn taskojn. Pli racia estas subteno de la internaciigo pere de
- iloj (helpaj programoj) por programistoj (sendepende de la internaciigataj programoj)
- program-bibliotekoj ligitaj (programtekoj) al la internaciigataj programoj
- instruado (kursoj) por la programistoj
Por tiuj taskoj ekzistas specialaj fakuloj, institucioj kaj firmaoj. La menciita sistemo NLS estas precipe programoteko, kiu helpas pri internaciigo. Ĝiaj konceptoj ankaŭ helpas programiston rekoni eblajn problemajn situaciojn de internaciigo. Speciala instruado tamen estas necesa, ĉar multaj programistoj ne estas lingvistike spertaj, kaj preskaŭ neniu scias sufiĉe da lingvoj por mem ekkoni ĉiujn eblajn problemojn.
Resumo
editPor havi programon, kiu funkcias en pluraj lingvoj, necesas scioj lingvaj (tradukistoj) kaj teknikaj (programistoj). Ideale oni dividas la taskojn jene:
- Por la lokecigo necesu nur lingvaj scioj; ĝin faru tradukistoj, kiuj ne konas la funkciadon de la programo, sed ja la fakan terminologion.
- Por la internaciigo necesu nur teknikaj scioj; ĝin faru la evoluigantoj de la programo, kiuj konas ties funkciadon. Ili faras ankaŭ la unuan lokecigon por sia propra lingvo.
- Por ĉiuj taskoj, kiuj postulas kaj teknikan kaj lingvan scion, oni disponigu taŭgan kadraĵon en la formo de iloj kaj program-bibliotekoj. Tiuj taskoj estu tiom abstraktigitaj, ke ili ne dependas de la funkciado de unuopaj programoj. La menciita sistemo NLS estas tia kadraĵo.
La taskoj kaj la necesaj scioj do estas divideblaj jene:
Scio pri la tasko de la programo | Scio pri la tekniko de programado | Scrio pri la cel-lingvo | |
---|---|---|---|
Lokecigo | (×) | × | |
Internaciigo | × | × | |
Kadraĵoj | × | × |
Kiel montras la tabelo, la celo de internaciigo (en vasta senco) estas
eviti, ke iu bezonu scion pri ĉiuj tri kampoj.
Kondiĉo por lokecigo sen teknika scio estas bona internaciigo: Nur se la programisto antaŭvidis kaj evitis problemajn situaciojn, tradukisto povas bone labori. Kondiĉo por internaciigo sen lingvaj scioj estas teknika scio pri la eblaj problemoj kaj dispono pri tauŭgaj iloj kaj program-bibliotekoj (kadraĵo).
La pozicion de kadraĵo por internaciigo oni povas imagi laŭ la sekva bildo, kiu staras centre inter:
- plurlingvaj programoj (P1 , P2 , …) unuflanke kaj
- lingvoj (da = dana lingvo, de = germana, …) kaj iliaj specialaj ecoj aliflanke. Pri tiuj ecoj ni ankoraŭ parolos.
da | Internaciiga kadraĵo | |
de | P2 | |
en | ||
eo | ||
ro | P5 | |
… | P6 |
Pri Vikipedio
La multlingva enciklopedio Vikipedio donas bonan studmaterialon pri diverslingvaj tekstoj, ĉar multaj artikoloj ekzistas en pluraj lingvoj kaj estas inter si reciproke ligitaj per referencoj (ret-ligiloj).
Bona kadraĵo izolas la programojn komplete de la ecoj de unuopaj lingvoj. Anstataŭ okupiĝi pri la ecoj de multaj lingvoj la programanto devas okupiĝi nur pri la ecoj de la kadraĵo.
Ankaŭ la programoj mem havas strukturon laŭ la lingvoj: Ili konsistas el ne-lingvodependa parto kaj por ĉiu lingvo unu lingvo-dependa parto (P1 -ro por la rumana ktp.). Ideale, se la internaciigo estis perfekta, la ne-lingvodependa parto enhavas la tutan funkciadon ("logikon"), la aliaj partoj enhavas nur "statikan" materialon (tekstoj, bildoj ktp.).
ne-lingvodependa parto de P1 | |
P1-da | |
P1-de | |
P1-en | |
P1-eo | |
P1-ro | |
… | |
dinamika | statika |
Alternativa difino de internaciigo
Internaciigo estas la procezo, kiu disigas la funkciadon de la programo de la lingvo-dependaj partoj. Tiu difino estas pli teknika ol la supre donita, sed por la praktiko sam-signifa
Specimenaj demandoj
editTestu vin!
Referencoj
edit- ↑ Parto aŭ ĉiu enhavo de tiu paĝo reprenas tiun originan verkon.