Enhavolisto

Antaŭa temo

Kiel uzi ĉifritan .netrc dosieron en pitonaj skriptoj

Sekva temo

Instruilo por la programlingvo Pitono

Esperantigo de SNAP 4.0

Enkonduko

Jam de longe ekzistas porinstrua programada sistemo Scratch, esperantigita de fizikisto kaj Stefano.

Scratch tamen havas gravan malavantaĝon - ĝi ne ebligas kreadon de propraj blokoj, tial aperis kelkaj ĝiaj plibonigoj. Unu el ili estas BYOB, kiun mi tradukis baziĝante je traduko de Scratch kaj uzante principojn de tradukantoj de GNOME

SNAP

Ĉar BYOB evoluas, aperis SNAP 4.0 kiu estas uzebla ene de retumilo.

Jen la tasko - esperantigi la novan version baziĝante je la jam ekzistanta traduko sen bezono traduki ĉion permane.

Do, kion mi havas:

  • tradukendan dosieron lang-de.js de nova programo, elŝutebla de http://snap.berkeley.edu/snapsource/snap.zip. Ĝi estas la germanlingva traduko de SNAP 4.0 kiu estas bazo por traduko alilingven.
  • la dosieron de esperantigo de BYOB

Traduko per OmegaT

Kion mi malŝategas, estas plurobla laboro - ĉi-foje - transskribado de jam ekzistanta traduko de BYOB (en .po dosiero) en la novan tradukdosieron de SNAP. Bedaŭrinde, mi ne povis simple transskribi aŭtomate la tradukojn (vidu ĉapitron Tradukado), tial mi decidis utiligi trajton de OmegaT “flustri” la tradukon baziĝante je la jam konata traduko, eĉ kiam la traduko estas nur simila (ĝi nomiĝas “malstrikte kongrua tradukado”).

Preparo

En OmegaT oni kreu novan projekton: en menuo Projekto elektu Kreu novan projekton..., kiu kreas novan dosierujon kun kelkaj subdosierujoj.

La tradukenda dosiero

OmegaT komprenas multajn formatojn, sed ĝuste ne la uzitan tiufoje. Pro tio, mi devis ŝanĝi ĝin de ekzistanta:

{
'anglalingva teksto':
      'tradukita teksto',
'alia trdukota teksto':
      'alia tradukita teksto'
}

al la komprenata de OmegaT:

{
'anglalingva teksto' = 'tradukita teksto'
'alia trdukota teksto' = 'alia tradukita teksto'
}

Ĉar OmegaT ne rekonas dosierojn kun finaĵo .js, mi aldone ŝanĝis ĝin al .lng:

cat lang-de.js | sed -e ":a" -e "/': *$/N; s/: *\n *'/ = '/; ta" > lang-de.lng
  • cat listigas la enhavon de la dosiero;
  • sed trovas liniojn kun dupunkto kaj kunigas ilin kun la sekvaj linioj, anstataŭante la dupunkton per egalsigno;
  • ĉio estas skribita kiel lang-de.lng dosiero.

La lingvo uzita en la provizita dosiero estas la germana, sed tiun tradukon mi ne bezonas - mi havas jam la esperantan tradukon de anglalingva dosiero de BYOB, mi forigis la germanajn tradukojn anstataŭigante ilin per la malplenaj tekstoĉenoj finigitaj per komo:

cat lang-de.lng | sed -e "s/'\(.*\)' = '\(.*\)/'\1' = '',/" > lang-en.lng

Krome, mi markis ke la nova lingvo estas la angla (por ke ĉio ne miksiĝu).

La helpa traduko

Por fari la malstrikte kongruan tradukadon, OmegaT bezonas jam koni alia(j)n traduko(j)n, kaj mi ja havas tradukon de BYOB. Tamen OmegaT bezonas ĝin en formo de tradukmemoraj dosieroj .tmx. Por transformi dosieron .po al .tmx, mi uzis po2tmx.exe programon akireblan kun Translate Toolkit:

po2tmx.exe --language=eo --source-language=en byob.eo.po byob.tmx

kaj la rezultan dosieron mi konservis en tradukmemoran dosieron de la OmegaT projekto (dosierujo tm en la OmegaT tradukprojekta dosierujo - vidu Preparo).

Atentigo

Oni devas agordi la fontan lingvon de OmegaT projekto (per Ctrl+E malfermu agordojn de projekto) al EN (ĉar tiel mi kreis transformon - --source-language=en).

Tradukado

La tradukadon mi faris per OmegaT ŝanĝante, kie necese, la lokokupilojn kiel %dst%n (en BYOB oni uzadis nur la unuliterajn kiel %d, %r%s).

Fina polurado

Post finita tradukado, mi devis reveni al la originala formato kaj dosiera finaĵo .js. Bedaŭrinde, malfacilas aldoni linirompojn de vindoza komandolinio, tial mi kreis dosieron kun komandoj por programo sed kaj uzis ĝin:

cat lang-eo.lng | sed -f lang2js.sed > lang-eo.js

Restis nur permana redakto por forigi liniojn kun +, ŝanĝo de kodoj de diakritaj signoj kaj informon pri lingvo.

Kaj jen - preta, traduko de SNAP 4.0.