# Références techniques

&ktuberling; offre une agréable et gratifiante introduction à la personnalisation et à la programmation de &kde; Cette application peut être étendue. Par exemple vous pouvez ajouter un nouveau terrain de jeu, sans modifier le code source, en modifiant les fichiers graphiques. En ajoutant les fichiers de son adéquats, les traducteurs peuvent adapter les sons à leur langue d'origine.

Si vous étendez ou ajoutez des choses au jeu, pensez à envoyer vos modifications au développeur Albert Astals Cid (en anglais) pour qu'elles soient inclues lors de la future version.

## Pour les graphistes

Pour créer une nouvelle aire de jeu KTuberling, vous devez :

- Dessiner l'aire de jeu dans un fichier SVG, vous devez :

  - saisir un nom d'emplacement où les éléments sont déposés en « arrière plan »,

  - saisir un titre pour chaque élément à déposer avec un nom unique,

- Créer un fichier de thème, il doit suivre ce schéma :

      <Aire de jeu= « VotreFichierSVG » nom=« VotreFichier.desktop » >
          <nom de l'objet= « NomDeLobjet » son=« NomDuSon » échelle= « Valeur » >
          ...
          ...
          ...
          </playground>

  - `VotreFichierSVG` est le nom du fichier qui a été dessiné.

  - `VotreFichier.desktop` est le nom du fichier desktop qui a le nom du thème.

  - Chaque objet doit correspondre à une entrée <objet>. `NomDeLobjet` est la dénomination unique que vous utilisez sur un fichier SVG, `NomDuSon` est le nom du son que vous jouerez quand vous le déplacerez. Veuillez consulter la page consacrée aux thèmes sonores pour plus d'informations.

  - La réduction est optionnelle et la `Valeur` est le facteur de réduction qui sera utilisé quand dessinerez un objet en dehors de la zone. Si non-spécifié, la valeur est de 1.

- Créer un fichier .desktop, cela suit ce schéma :

      [KTuberlingTheme]
          Nom=NomDuThème

  - `NomDuThème` est le nom qui identifie le thème qui sera affiché dans le menu de l'aire de jeu.

- Si vous ajoutez un thème au SVN de KTuberling, ajoutez les fichiers .svg .theme .desktop à la section FILES du fichier CMakeLists.txt dans le dossier pics/ directory

- Si vous voulez l'installer pour vous même, déplacez les fichiers .svg .theme .desktop dans `kde4-config --prefix`/share/apps/ktuberling/pics

## Pour les traducteurs

À coté de l'habituel mécanisme utilisé sur les fichiers `.po` pour traduire les chaînes du programme, les sons peuvent être également localisés.

Pour créer un nouveau thème sonore KTuberling vous devez :

- Enregistrer les sons dans le format OGG Vorbis rc3

- Créer un fichier .soundtheme `votreLangueAvecDeuxLettres`, cela suit le schéma :

      <code langue=« VotreLangueEnDeuxLettres »>
      <nom du son=« NomDuSon » fichier=« EmplacementRelatif » />
      ...
      ...
      ...
      </langue>

  - `VotreLangueEnDeuxLettres` représente votre langue d'un code de deux lettres. Par exemple fr pour Français.

  - Pour chaque son une entrée <sound> `NomDuSon` doit correspondre avec le NomDeSon spécifié dans l'aire de jeu (voir la page consacrée aux thèmes). `EmplacementRelatif` doit être l'emplacement relatif où vous installez le fichier avec le son, typiquement cela sera emplacement/du/NomDuSon.format (emplacement peut être le code à deux lettres de votre langue par exemple).

- Si vous ajoutez le thème sonore au SVN de KTuberling :

  - ajoutez des fichiers sonores et les fichiers .soundtheme au dossier data/kdegames/ktuberling de votre langue de traduction,

  - dans le même dossier, vous avez besoin d'un fichier CMakeLists.txt décrivant comment installer ces fichiers, typiquement cela sera

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

- Si vous voulez l'installer vous même :

  - Placez le fichier .soundtheme `yourLanguageTwoLetterCode` dans kde4-config --prefix`/share/apps/ktuberling/sounds

  - placer VosFichiersSonores dans kde4-config --prefix`/share/apps/ktuberling/sounds/someUniquePath

Des informations sur la façon dont fonctionnent les mécanismes de traduction dans &kde; sont disponible à l'adresse The &kde; translation HOWTO.

## Pour les programmeurs

&ktuberling; n'est pas réellement difficile à améliorer pour les programmeurs.

### Classes C++

`TopLevel`

- Gestion du programme principal et de la fenêtre principale.

`PlayGround`

- Description d'un des niveaux du jeu.

`ToDraw`

- Description d'un des objets graphiques à dessiner.

`SoundFactory`

- Description d'une des langues et de ses sons.

`Action`

- Une des manipulations de l'utilisateur, rangée dans la pile annuler/refaire.