Internaciigo de komputilaj programoj/Internaciigo kaj lokecigo

[1]

Internaciigo kaj lokecigo

edit

Teorio

edit

La 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".

 
Programo estas lokecigita al pluraj cellingvoj.

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.

 
Programo estas internaciigita kaj poste lokecigita.

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

edit

Kiel 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

  1.  iloj (helpaj programoj) por programistoj (sendepende de la internaciigataj programoj)
  2.  program-bibliotekoj ligitaj (programtekoj) al la internaciigataj programoj
  3.  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

edit

Por 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

edit

 Testu vin!

1 Plenigu tiun difinon pri lokecigo de programo?

Lokecigo estas tiu

, kiu

programon en alian

.

2 Kio estas internaciigo de programo?

Internaciigo

as la programon al

oj. Ĝi ne inkluzivas

on, sed nur rezultigas

on, kies

o estas pli facila.

3 Kiam oni konsiderendus internaciigon de programo?

jam antaŭ la ideo de la programtemo.
jam dum la verkado de programo.
poste la plenverkado de programo.
neniam, uzantoj lernendus la lokaĵaj uzadoj de programistoj.

4 Kiom da lokecigoj necesas por 3 programoj, kiuj funkciu en 5 lingvoj?

1
3
5
8
10
15
20
35
53

5 Kiom da internaciigoj necesas por 3 programoj, kiuj funkciu en 5 lingvoj?

1
3
5
8
10
15
20
35
53

6 Kiuj tri specoj de scio necesas por plurlingvaj programoj?

Scio pri la integra cirkvito
Scio pri la tasko de la programo
Scio pri la tekniko de programado
Scio pri la internacia juro
Scio pri la cellingvo
Scio pri la lingvoscienco

7 Kiel rilatas internaciiga kadraĵo, programoj kaj specialaj ecoj de lingvoj?

Bona kadraĵo

as la programojn

e de la ecoj de unuopaj lingvoj. Anstataŭ okupiĝi pri la

oj de multaj

oj la

anto devas okupiĝi nur pri la

oj de la

o.

8 Kies tasko estas la internaciigo de programoj?

Tradukado
Programi kun ĉiuj cellingvoj
Prepari la programon per taŭga kadraĵo

9 Kies tasko estas la lokecigo de programoj?

Tradukado
Programi kun ĉiuj cellingvoj
Prepari la programon per taŭga kadraĵo


Referencoj

edit
  1. Parto aŭ ĉiu enhavo de tiu paĝo reprenas tiun originan verkon.