# 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, veuillez penser à envoyer vos modifications au développeur Alex Fiestas (en anglais) pour qu'elles soient incluses dans 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= « Votre-Fichier-SVG » nom=« Votre-Fichier.desktop » >
          <nom de l'objet= « Nom-Objet » son=« Nom-Du-Son » échelle= « Valeur » >
          ...
          ...
          ...
          </playground>

  - `Votre-Fichier-SVG` est le nom du fichier qui a été dessiné.

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

  - Chaque objet doit correspondre à une entrée <objet>. `Nom-Objet` est la dénomination unique que vous utilisez sur un fichier SVG, `Nom-Du-Son` 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=Nom-Du-Thème

  - `Nom-Du-Thè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 dépôt de &ktuberling;, ajoutez les fichiers « .svg », « .theme » et « .desktop » à la section « FICHIERS » du fichier « CMakeLists.txt » dans le dossier « pics/ directory ».

- Si vous voulez l'installer par vous même, veuillez placer les fichiers « .svg », « .theme» et « .desktop » dans `ktuberling/pics` dans ``qtpaths` `--paths GenericDataLocation``

## 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 de son pour &ktuberling;, vous devez :

- Enregistrer les sons dans le format OGG Vorbis rc3

- Créer un fichier .soundtheme `Votre-Langue-Avec-Deux-Lettres`, cela suit le schéma :

      <code langue=« Votre-Langue-En-Deux-Lettres »>
      <nom du son=« Nom-Du-Son » fichier=« Emplacement-Relatif » />
      ...
      ...
      ...
      </langue>

  - `Votre-Langue-En-Deux-Lettres` représente votre langue d'un code de deux lettres. Par exemple, fr pour Français.

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

- Si vous ajoutez le thème de son à &ktuberling; dans votre dossier de langues :

  - 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 oggfiles *.ogg )
        INSTALL( FILES ${oggfiles} DESTINATION ${KDE_INSTALL_DATADIR}/ktuberling/sounds/yourLanguageTwoLetterCode )
        INSTALL( FILES yourLanguageTwoLetterCode.soundtheme DESTINATION ${KDE_INSTALL_DATADIR}/ktuberling/sounds/ )

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

  - Placer le fichier `VotreLangageCodeDeuxLettres`.soundtheme dans `ktuberling/sounds` dans ``qtpaths` `--paths GenericDataLocation``

  - Placer les fichiers de sons dans `ktuberling/sounds/someUniquePath` dans ``qtpaths` `--paths GenericDataLocation``

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.