# Referències tècniques

El &ktuberling; ofereix una introducció suau i gratificant a la personalització i programació en el &kde;. L'aplicació es pot ampliar. Per exemple, sense codificar, es poden afegir zones de joc noves canviant els fitxers gràfics. Afegint fitxers de so adequats, els traductors poden canviar els sons al seu idioma natiu!

Si amplieu o afegiu res al joc, penseu a enviar les vostres addicions al mantenidor Alex Fiestas per a la seva inclusió en versions futures.

## Per a artistes

Per a crear una zona de joc nova del &ktuberling; heu de:

- Dibuixar la zona de joc en un fitxer &SVG;, aquí heu de:

  - Donar un nom al lloc on els elements es poden arrossegar al «Fons».

  - Donar un nom únic a cadascun dels elements arrossegables.

- Crear un fitxer `.theme`, haurà de seguir aquest esquema:

      <playground gameboard="vostre_fitxer_SVG" name="fitxer_escriptori">
      <object name="nom_element" sound="nom_so" scale="algun_valor" />
      ...
      ...
      ...
      </playground>

  - `vostre_fitxer_SVG` és el nom del fitxer &SVG; que té el dibuix.

  - `fitxer_escriptori` és el nom del fitxer d'escriptori que té el nom del tema.

  - Per a cada objecte necessitareu una entrada `<object>`. `nom_element` és el nom únic que heu utilitzat en el fitxer &SVG;, `nom_so` és el nom del so que es reproduirà en arrossegar-lo, per a més informació, vegeu el fitxer `sounds/soundthemes.HOWTO` en el codi font.

  - `scale` és opcional i el `algun_valor` és el factor d'escala que s'utilitzarà en dibuixar aquest objecte fora del rebost, si no s'especifica serà 1.

- Crear un fitxer `.desktop`, haurà de seguir aquest esquema:

      [KTuberlingTheme]
      Name=nom_tema

  - `nom_tema` és el nom que identificarà el tema, es mostrarà a la zona de joc.

- Si afegiu el tema al repositori del &ktuberling;, afegiu els fitxers `.svg`, `.theme` i `.desktop` a la secció `FILES` del `CMakeLists.txt` dins la carpeta `pics/`.

- Si voleu instal·lar-lo per a vosaltres mateixos, col·loqueu els fitxers `.svg`, `.theme` i `.desktop` dins la carpeta `ktuberling/pics` a ``qtpaths` `--paths GenericDataLocation``

## Per a traductors

A més del mecanisme habitual dels fitxers `.po`, per a traduir els nivells i les indicacions del programa, els sons també es poden localitzar.

Per a crear un tema nou de so del &ktuberling;, heu de:

- Enregistrar els sons en el format de fitxer OGG Vorbis rc3.

- Crear un fitxer ``vostre_idioma-codi_de_dos_lletres`.soundtheme`, haurà de seguir aquest esquema:

      <language code="vostre_idioma-codi_de_dos_lletres">
      <sound name="nom_so" file="camí_relatiu" />
      ...
      ...
      ...
      </language>

  - `vostre_idioma-codi_de_dos_lletres` és el codi de dues lletres del vostre idioma, per exemple, gl per a gallec.

  - Per a cada so hi ha una entrada `<sound>`. El nom del so haurà de coincidir amb el nom especificat en el tema de la zona de joc (vegeu el fitxer `pics/themes.HOWTO` en el codi font). El `camí_relatiu` haurà de ser el camí relatiu on vàreu instal·lar el fitxer amb aquest so, generalment, serà de ``algunCamíÚnic`/`nom_so`.`format`` (&pex;, `algunCamíÚnic` pot ser el vostre codi d'idioma de dues lletres).

- Si esteu afegint el tema de so al &ktuberling; a la vostra carpeta d'idioma:

  - Afegiu els arxius de so i els fitxers `.soundtheme` dins la carpeta `data/kdegames/ktuberling` de les vostres traduccions d'idioma.

  - En aquest mateix lloc, necessitareu un fitxer `CMakeLists.txt` que descrigui com instal·lar els fitxers, normalment serà.

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

- Si voleu instal·lar-lo:

  - Situeu el fitxer ``vostre_idioma-codi_de_dos_lletres`.soundtheme` dins la carpeta `ktuberling/sounds` a ``qtpaths` `--paths GenericDataLocation``

  - Poseu els vostres fitxers de so dins la carpeta `ktuberling/sounds/`algunCamíÚnic`` a ``qtpaths` `--paths GenericDataLocation``

La informació sobre com treballar amb els mecanismes de traducció en el &kde; està disponible en el The &kde; Translation HOWTO.

## Per a programadors

Per als programadors no és realment difícil estendre el &ktuberling;.

### Classes de C++

`TopLevel`

- Finestra de primer nivell i gestió bàsica del programa.

`PlayGround`

- Descripció d'un dels nivells de la partida.

`ToDraw`

- Descripció d'un dels «objectes» gràfics a dibuixar.

`SoundFactory`

- Descripció d'un dels idiomes i els seus sons.

`Action`

- Una de les manipulacions de l'usuari a la pila de desfer/refer.