# Tehnične reference

&ktuberling; ponuja nežen in nagrajujoč uvod v &kde; prilagajanje in programiranje. Aplikacijo je mogoče razširiti. Na primer, brez kodiranja je mogoče dodati nova igrišča s spreminjanjem grafičnih datotek. Z dodajanjem ustreznih zvočnih datotek lahko prevajalci spremenijo zvoke v svoj materni jezik!

Če razširite ali dodate igro, razmislite o pošiljanju svojih dodatkov vzdrževalcu Alex Fiestas za vključitev v prihodnje izdaje.

## Za umetnike

Če želite ustvariti nov &ktuberling; igrišče morate:

- Narisati igrišče v &SVG; datoteko, tam morate:

  - Poimenovati prostor, kamor lahko elemente povlečete ozadje.

  - Poimenovati vsak element, ki ga je mogoče povleči, z edinstvenim imenom.

- Ustvariti datoteko `.theme`, slediti mora tej shemi:

      <playground gameboard="yourSVGFile" name="theDesktopFile">
      <object name="itemName" sound="soundName" scale="someValue" />
      ...
      ...
      ...
      </playground>

  - `yourSVGFile` je ime datoteke &SVG; datoteke, ki vsebuje risbo.

  - `theDesktopFile` je ime datoteke namizja, ki ima ime teme.

  - Za vsak predmet potrebujete vnos `<object>`. `itemName` je edinstveno ime, ki ste ga uporabili v datoteki &SVG; `soundName` je ime zvoka, ki se bo predvajal, ko ga povlečete, za več informacij glejte datoteko `sounds/soundthemes.HOWTO` iz izvorne kode.

  - `scale` je neobvezen in `someValue` je faktor merila, ki bo uporabljen pri risanju tega predmeta zunaj skladišča, če ni naveden, je 1.

- Ustvarite datoteko `.desktop`, slediti mora tej shemi:

      [KTuberlingTheme]
      Name=themeName

  - `themeName` je ime, ki identificira temo in bo prikazano v meniju Playground.

- Če temo dodajate v &ktuberling; repozitorij dodajte datoteke `.svg`, `.theme` in `.desktop` `FILES` v `CMakeLists.txt` v mapo `pics/`.

- Če ga želite namestiti zase, postavite `.svg`, `.theme` in `. desktop` v mapo `ktuberling/pics` v ``qtpaths` `--paths GenericDataLocation``

## Za prevajalce

Poleg običajnega mehanizma datotek `.po` za prevajanje programskih oznak in pozivov je mogoče lokalizirati tudi zvoke.

Če želite ustvariti novo zvočno temo &ktuberling;, jo morate:

- Posneti zvoke v formatu datoteke OGG Vorbis rc3.

- Ustvarite datoteko ``yourLanguageTwoLetterCode`.soundtheme`, slediti mora tej shemi:

      <language code="yourLanguageTwoLetterCode">
      <sound name="soundName" file="relativePath" />
      ...
      ...
      ...
      </language>

  - `yourLanguageTwoLetterCode` je dvočrkovna koda vašega jezika, na primer gl za galicijščino.

  - Za vsak zvok vnos `<sound>`. `soundName` se mora ujemati z soundName, določenim v temi igrišča (glejte `pics/themes.HOWTO` iz izvorne kode). `relativePath` mora biti relativna pot, na katero boste namestili datoteko s tem zvokom, običajno bo to ``someUniquePath`/`soundName`. `format`` (`someUniquePath` je lahko na primer dvočrkovna koda vašega jezika).

- Če dodajate zvočno temo v &ktuberling; v vaši jezikovni mapi:

  - Dodajte zvočne datoteke in datoteke `.soundtheme` v mapo `data/kdegames/ktuberling` vaših jezikovnih prevodov.

  - V tem istem imeniku potrebujete datoteko `CMakeLists.txt`, ki opisuje, kako namestiti datoteke, običajno bo tako.

        FILE( GLOB oggfiles *.ogg )
        INSTALL( FILES ${oggfiles} DESTINATION ${KDE_INSTALL_DATADIR}/ktuberling/sounds/yourLanguageTwoLetterCode )
        INSTALL( FILES yourLanguageTwoLetterCode.soundtheme DESTINATION ${KDE_INSTALL_DATADIR}/ktuberling/sounds/ )

- Če ga želite namestiti sami:

  - Postavite datoteko ``yourLanguageTwoLetterCode`.soundtheme` v mapo `ktuberling/sounds` v ``qtpaths` `--paths GenericDataLocation``

  - Postavite svoje zvočne datoteke v mapo `ktuberling/sounds/`someUniquePath`` v ``qtpaths` `--paths GenericDataLocation``

Informacije o tem, kako delati s prevajalskimi mehanizmi v &kde; je na voljo v The &kde; Translation HOWTO.

## Za programerje

&ktuberling; za programerje res ni težko razširiti.

### razredi C++

`Najvišji nivo`

- Okno najvišje ravni in osnovno upravljanje programa.

`Igrišče`

- Opis ene od ravni igre.

`Risati`

- Opis enega od grafičnih predmetov, ki jih je treba narisati.

`SoundFactory`

- Opis enega od jezikov in njegovih zvokov.

`Akcija`

- Ena od uporabnikovih manipulacij v skladu za razveljavitev/ponovitev.