Éric
Bischoff
Marek
Laane

    bald@smail.ee

Tõlge eesti keelde
2009-12-15
0.6.0
KDE
KTuberling
tehniline külg

# Tehniline külg

&ktuberling; pakub omalt poolt hea võimaluse kaasa aidata &kde; kohandamisele ja arendamisele. Ka seda mängu saab laiendada. Nii võib ka ilma programmeerimata lisada uusi mängulaudu lihtsalt graafikafaile redigeerides. Sobivate helifailide lisamisega võivad tõlkijad panna sõnad ka oma emakeeles kõlama!

Kui laiendad mängu või lisad sellele midagi, võiksid saata oma panuse ka hooldajale Alex Fiestasele , kes saab siis sinu panuse järgmisse versiooni kaasata.

## Kunstiinimesed

&ktuberling;i uue mänguvälja loomiseks on vajalik:

- Joonistada mänguväli SVG-faili, kus peab olema:

  - koha nimi, kuhu elemente saab lohistada "taustale".

  - iga lohistatava elemendi unikaalne nimi.

- Luua .theme-fail, mis peab järgima järgmist skeemi:

      <playground gameboard="sinuSVGFail" name="TöölauaFail">
          <object name="elemendiNimi" sound="heliNimi" scale="mingiVäärtus" />
          ...
          ...
          ...
          </playground>

  - sinuSVGFail on joonistust sisaldava SVG-faili nimi.

  - TöölauaFail on .desktop-faili nimi, mis sisaldab teema nime.

  - Igale objektile on vajalik kirje <object>. elemendiNimi on SVG-failis kasutatav unikaalne nimi. heliNimi on heli nimi, mida esitatakse objekti lohistamisel. Vaata selle kohta täpsemalt heliteemade HOWTO-d.

  - scale ei ole kohustuslik ning mingiVäärtus on skaleerimistegur, mida kasutatakse objekti lohistamisel väljaspool ladu. Kui see pole määratud, kasutatakse vaikimisi väärtust 1.

- Luua .desktop-fail, mis peab järgima järgmist skeemi

      [KTuberlingTheme]
          Name=teemaNimi

  - teemaNimi on teemat tuvastav nimi, mida näeb mänguvälja menüüs.

- Kui lisad teema &ktuberling;i SVN-i, lisa ka .svg-, .desktop- ja .theme-fail kataloogis pics/ faili CMakeLists.txt sektsiooni FILES.

- Kui soovid selle ainult enda jaoks paigaldada, lisa .svg-, .theme- ja .desktop-fail asukohta `kde4-config --prefix`/share/apps/ktuberling/pics.

## Tõlkijad

Lisaks tavalisemale rakenduse käskude, teadete ja muu nähtava `.po`-failide tõlkimisele saab lokaliseerida ka helisid.

&ktuberling;i uue heliteema loomiseks on vajalik:

- Salvestada helid OGG Vorbis rc3 failivormingus.

- Luua sinuKeeleKahetähelineKood.soundtheme fail, mis peab järgima järgmist skeemi:

      <language code="sinuKeeleKahetähelineKood">
      <sound name="heliNimi" file="suhtelineAsukoht" />
      ...
      ...
      ...
      </language>

  - sinuKeeleKahetähelineKood on, nagu nimigi ütleb, sinu keele kahetäheline kood, näiteks et eesti keele puhul.

  - Iga heli puhul peab olema kirje <sound>. heliNimi peab vastama heli nimele, mis on määratud kindlaks mänguvälja teemas (vaata teema HOWTO-d). suhtelineAsukoht peab olema see suhtelisena antud asukoht, kuhu kavatsed helid paigutada. Üldiselt peaks see olema mingiUnikaalneAsukoht/heliNimi.vorming (kus mingiUnikaalneAsukoht võib olla näiteks sinu keele kahetäheline kood).

- Kui lisad heliteema &ktuberling;i SVN-i:

  - Lisa heli- ja .soundtheme-failid oma keele tõlgete kataloogi data/kdegames/ktuberling.

  - Samas kataloogis peab asuma fail CMakeLists.txt, mis kirjeldab, kuidas failid paigaldada. Üldiselt peaks see välja nägema nii:

        FILE(GLOB datafiles *.ogg)
        install( FILES ${datafiles} DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/sinuKeeleKahetähelineKood )
        install( FILES sinuKeeleKahetähelineKood.soundtheme DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/ )

- Kui soovid selle ainult enda jaoks paigaldada:

  - Paiguta fail sinuKeeleKahetähelineKood.soundtheme asukohta `kde4-config --prefix`/share/apps/ktuberling/sounds.

  - Paiguta oma helifailid asukohta `kde4-config --prefix`/share/apps/ktuberling/sounds/mingiUnikaalneAsukoht.

Teavet selle kohta, kuidas käib tõlkimine &kde;s, annab &kde; tõlkimise HOWTO.

## Programmeerijad

Õigupoolest on &ktuberling; programmeerijatele üsna hõlpsasti laiendatav.

### C++ klassid

`TopLevel`

  Tipptaseme aken ja rakenduse baashaldus

`PlayGround`

  Mingi konkreetse mängutaseme kirjeldus

`ToDraw`

  Mingi konkreetse graafilise objekti kujutamise kirjeldus

`SoundFactory`

  Mingi konkreetse keele ja selle helide kirjeldus

`Action`

  Konkreetne kasutaja tegevus võta tagasi/tee uuesti võimalustega