1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
|
<chapter id="technical-reference">
<chapterinfo>
<authorgroup>
<author
><firstname
>Eric</firstname
> <surname
>Bischoff</surname
> </author>
&traducteurBenoitCosandier;
</authorgroup>
<date
>2002-04-10</date
> <releaseinfo
>0.03.02</releaseinfo
> <keywordset>
<keyword
>KDE</keyword>
<keyword
>KTuberling</keyword>
<keyword
>référence technique</keyword>
</keywordset>
</chapterinfo>
<title
>Référence technique</title>
<para
>&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 changer le code source, en changeant les fichiers graphiques. En ajoutant les fichiers de son adéquats, les traducteurs peuvent adapter les sons à leur langue d'origine. </para>
<para
>Si vous étendez ou ajoutez des choses au jeu, pensez à envoyer vos modifications au développeur <ulink url="mailto:[email protected]"
>Éric Bischoff</ulink
> (en anglais) pour qu'elles soient inclues lors de la future version. </para>
<sect1 id="for-artists">
<title
>Pour les graphistes</title>
<para
>Les dimensions et la forme du terrain de jeu ainsi que le nombre d'objets peuvent être changés. De nouveaux terrains de jeu peuvent être ajoutés. Deux fichiers d'image par terrain de jeu seulement doivent être créés : un tableau de jeu et un masque. Il y a un maximum autorisé de 8 terrains de jeu, dont seulement 3 sont utilisés pour le moment. </para>
<para
>Six images sont utilisées par &ktuberling; : <filename
>potato-game.png</filename
>, <filename
>potato-mask.png</filename
>, <filename
>penguin-game.png</filename
>,.<filename
>penguin-mask.png</filename
>, <filename
>aquarium-game.png</filename
> et <filename
>aquarium-mask.png</filename
>. L'emplacement standard de ces fichiers est le dossier <filename class="directory"
>$TDEDIR/share/apps/ktuberling/pics/</filename
>. </para>
<para
>Le premier type d'images, <filename
>*-game.png</filename
> contient le terrain de jeu et les objets que l'utilisateur choisit. C'est le graphisme que voit l'utilisateur quand il joue au jeu. </para>
<para
>Le second type d'images, <filename
>*-mask.png</filename
>, contient seulement les masques des objets. Les masques sont utilisés pour délimiter les bords des objets et, dans certains cas, donner à l'objet une certaine transparence (par exemple, les lunettes). Il est obligatoire de placer les objets au même emplacement dans le terrain de jeu et dans le fichier de masques. </para>
<para
>Dans le même dossier, un fichier nommé <filename
>layout.xml</filename
> (<filename
>$TDEDIR/share/apps/ktuberling/pics/layout.xml</filename
>) indique quelles images utiliser et les relie aux éléments de menu. Il contient également les paramètres de position du terrain de jeu ainsi que des objets et des masques. Il affecte les sons aux objets et classe ces objets dans des groupes. Enfin, il déclare des langues sous forme d'ensembles de sons traduits. Ce fichier suit la syntaxe standard XML (pour plus de détails, <link linkend="layout-details"
>voir plus bas</link
>). </para>
<para
>Toujours dans ce dossier, un fichier nommé <filename
>layout.i18n</filename
> (<filename
>$TDEDIR/share/apps/ktuberling/pics/layout.xml</filename
>) récapitule les chaînes de <filename
>layout.xml</filename
> qui peuvent être traduites. <itemizedlist>
<listitem
><para
>Les éléments de menu qui permettent de choisir les terrains de jeu et la langue.</para
></listitem>
<listitem
><para
>Les noms des catégories d'objets</para
></listitem>
</itemizedlist>
</para>
<para
>Dans le dossier de niveau supérieur, un fichier nommé <filename
>ktuberlingui.rc</filename
> (<filename
>$TDEDIR/share/apps/ktuberling/ktuberlingui.rc</filename
>) est un second fichier XML décrivant les menus de &ktuberling;. Il devrait contenir une balise <markup
><action></markup
> par terrain de jeu et par langue. Le nom symbolique de cette action devrait être identique au nom symbolique de l'action dans <filename
>layout.xml</filename
>. </para>
</sect1>
<sect1 id="for-translators">
<title
>Traduction</title>
<para
>À coté de l'habituel mécanisme basé sur les fichiers <literal role="extension"
>.po</literal
> pour traduire les chaînes du programme, les sons peuvent être localisés également. </para>
<para
>Si les différents traducteurs ont l'opportunité d'enregistrer leur voix dans un fichier <literal role="extension"
>.wav</literal
>, ils peuvent placer ce fichier dans le sous-dossier propre au langage dans le dossier des sons. Le nom des fichiers son est alors traduit dans le fichier <filename
>layout.xml</filename
>. Par exemple, si le langage de destination est l'italien, les traducteurs peuvent enregistrer leur voix dans un fichier <literal role="extension"
>.wav</literal
> situé dans <filename
>$TDEDIR/share/apps/ktuberling/sounds/it</filename
>. Ils peuvent ensuite traduire le son nommé <quote
>hat</quote
> en des noms de fichiers comme <filename
>it/cappello.wav</filename
>. </para>
<para
>Dans une prochaine version, &ktuberling; utilisera le format de fichiers OGG Vorbis rc3 pour les sons. À ce moment, il sera possible de convertir les fichiers VAV en OGG Vorbis rc3 grâce à la commande suivante : <screen
><prompt
>$</prompt
> <userinput
>oggenc_rc3 -o <replaceable
>son.ogg</replaceable
> <replaceable
>son.wav</replaceable
></userinput
>
</screen>
</para>
<para
>Des informations sur la façon dont fonctionnent les mécanismes de traduction dans &kde; sont disponible à l'adresse <ulink url="http://i18n.kde.org/translation-howto/index.html"
>The KDE Translation HOWTO</ulink
> ou en français dans <ulink url="http://fr.i18n.kde.org/docs/howto/index.html"
>Le HOWTO de traduction de KDE</ulink
>. </para>
</sect1>
<sect1 id="for-programmers">
<title
>Pour les programmeurs</title>
<para
>&ktuberling; n'est pas réellement difficile à améliorer pour les programmeurs.</para>
<sect2 id="classes">
<title
>Classes C++</title>
<variablelist>
<varlistentry>
<term
><classname
>TopLevel</classname
></term>
<listitem>
<para
>Gestion du programme principal et de la fenêtre principale</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><classname
>PlayGround</classname
></term>
<listitem>
<para
>Description d'un des niveaux du jeu</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>ToDraw</classname
></term>
<listitem>
<para
>Description d'un des <quote
>objets</quote
> graphiques à dessiner</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>SoundFactory</classname
></term>
<listitem>
<para
>Description d'une des langues et de ses sons</para
> </listitem>
</varlistentry>
<varlistentry>
<term
><classname
>Action</classname
></term>
<listitem>
<para
>Une des manipulations de l'utilisateur, rangée dans la pile annuler/refaire.</para
> </listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files-structure">
<title
>Structure du fichier <literal role="extension"
>.tuberling</literal
> </title>
<para
>Un fichier <literal role="extension"
>.tuberling</literal
> contient toutes les données nécessaire pour redessiner une patate. il peut être édité avec un éditeur de texte ordinaire.</para>
<para
>La première ligne contient le numéro du terrain de jeu.</para>
<para
>Pour toutes les autres lignes, il y a un objet graphique par ligne, dans l'ordre dans lequel ils seront affichés. Chaque ligne contient 5 nombres : l'identifiant de l'objet, et le rectangle où il devra être dessiné (gauche, haut, droite, bas). Les nombres sont séparés par des espaces.</para>
</sect2>
</sect1>
<sect1 id="layout-details">
<title
>Structure du fichier de disposition (<filename
>layout.xml</filename
>)</title>
<para
>La balise de plus haut niveau est unique et est intitulée <markup
><ktuberling></markup
>. Elle contient plusieurs balises <markup
><playground></markup
>, une par terrain de jeu, ainsi que plusieurs balises <markup
><language></markup
>, une par langue. </para>
<para
>La balise <markup
><playground></markup
> a deux attributs : <markup
>gameboard</markup
> et <markup
>masks</markup
>. Ces attributs indiquent le nom des fichiers contenant les images. La balise <markup
><playground></markup
> contient également une balise <markup
><menuitem></markup
>, une balise <markup
><editablearea></markup
>, plusieurs balises <markup
><category></markup
> et plusieurs balises <markup
><object></markup
>. </para>
<para
>La balise <markup
><menuitem></markup
> décrit l'identificateur de l'action associée à l'élément de menu permettant de choisir la position de la zone où vous pouvez faire glisser des objets, ainsi que l'intitulé de cet élément de menu. Cet identificateur d'action doit être identique à celui dans <filename
>ktuberlingui.rc</filename
>. </para>
<para
>La balise <markup
><editablearea></markup
> décrit la position de la zone où vous pouvez faire glisser les objets, ainsi que le nom du son qui lui est associé. </para>
<para
>La balise <markup
><category></markup
> décrit la position et l'intitulé d'un groupe d'objets. Par exemple, il permet de décrire la position et l'intitulé du groupe d'<quote
>accessoires</quote
>. </para>
<para
>La balise <markup
><object></markup
> décrit la position (dans le plateau de jeu et dans les masques) d'un objet, ainsi que le nom du son qui lui est associé. </para>
<para
>La balise <markup
><language></markup
> a un attribut : <markup
>code</markup
>. Cet attribut indique le code des réglages locaux pour cette langue. La balise <markup
><language></markup
> contient également une balise <markup
><menuitem></markup
> et plusieurs balises <markup
><sound></markup
>. </para>
<para
>Les balises de plus bas niveau ne sont pas expliquées ici, car leur signification est relativement évidente. Si vous modifiez <filename
>layout.xml</filename
>, n'oubliez pas de modifier <filename
>layout.i18n</filename
> ainsi que <filename
>ktuberlingui.rc</filename
> en conséquence. </para>
</sect1>
</chapter>
|