summaryrefslogtreecommitdiffstats
path: root/tde-i18n-pt/docs/tdegames/ktuberling/technical-reference.docbook
blob: cf69aa579b60e7f23090de7588dd6f560e182636 (plain)
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
334
335
336
337
338
339
340
341
342
343
344
345
<chapter id="technical-reference">
<chapterinfo>

<authorgroup>
<author
><firstname
>Éric</firstname
> <surname
>Bischoff</surname
> </author>
<othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>jncp@netcabo.pt</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 
</authorgroup>
<date
>2002-04-10</date
> <releaseinfo
>0.03.02</releaseinfo
> <keywordset>
<keyword
>KDE</keyword>
<keyword
>Homem Batata</keyword>
<keyword
>referência técnica</keyword>
</keywordset>
</chapterinfo>

<title
>Referência técnica</title>

<para
>O &ktuberling; oferece uma forma gentil e compensadora de introduzir à personalização e programação do &kde;. A aplicação pode ser extendida. Por exemplo, sem qualquer codificação, poderão ser adicionados novos recreios, alterando os ficheiros gráficos. Ao adicionar os ficheiros de som apropriados, os tradutores poderão alterar os sons para a sua língua-mãe! </para>

<para
>Se extender ou adicionar ao jogo, por favor pense na hipótese de enviar as suas adições ao programador <ulink url="mailto:ebischoff@nerim.net"
>Éric Bischoff</ulink
> de modo a inclui-las nas próximas versões. </para>

<sect1 id="for-artists">
<title
>Para artistas</title>

<para
>O tamanho e a forma do recreio, assim como o número de objectos, poderão ser alterados. Poderão ser adicionados novos recreios. Só é preciso criar dois ficheiros de imagens para cada recreio: um tabuleiro de jogo e uma máscara. É permitido um máximo de 8 recreios, dos quais estão usados 3 neste momento. </para>

<para
>São usadas seis imagens no &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
> e <filename
>aquarium-mask.png</filename
>. A localização normal destes ficheiros é a pasta <filename class="directory"
>$KDEDIR/share/apps/ktuberling/pics/</filename
>. </para>

<para
>O primeiro tipo de imagens, os <filename
>*-game.png</filename
> contém o tabuleiro e os objectos que o utilizador selecciona. Este é o gráfico que o utilizador vê enquanto joga. </para>

<para
>O segundo tipo de imagens, os <filename
>*-mask.png</filename
>, contêm apenas as máscaras dos objectos. Estas máscaras são usadas para delimitar os contornos dos objectos e, em alguns casos, dão ao objecto alguma transferência (por exemplo, os espectáculo). É obrigatório pôr os objectos na mesma posição, tanto no ficheiro do tabuleiro como no da máscara. </para>

<para
>Na mesma pasta, um ficheiro chamado <filename
>layout.xml</filename
>. (<filename
>$KDEDIR/share/apps/ktuberling/pics/layout.xml</filename
>) indica quais as imagens a usar e associa-os aos itens do menu. Contém também os parâmetros de posição do recreio e dos objectos no tabuleiro e nas máscaras. Ele atribui também os sons aos objectos e coloca os objectos em grupos. Finalmente, declara as línguas como sendo conjuntos de sons traduzidos. Este ficheiro segue a sintaxe-padrão do &XML; (ver os detalhes <link linkend="layout-details"
>em baixo</link
>). </para>

<para
>Ainda na mesma pasta, existe um ficheiro chamado <filename
>layout.i18n</filename
> (<filename
>$KDEDIR/share/apps/ktuberling/pics/layout.i18n</filename
>) que recapitula os textos no <filename
>layout.xml</filename
> que podem ser traduzidos: <itemizedlist>
<listitem
><para
>As entradas de menu que lhe permitem escolher o recreio e a língua</para
></listitem>
<listitem
><para
>Os nomes das categorias de objectos</para
></listitem>
</itemizedlist>
</para>

<para
>Uma pasta mais acima, existe um ficheiro chamado <filename
>ktuberlingui.rc</filename
> (<filename
>$KDEDIR/share/apps/ktuberling/ktuberlingui.rc</filename
>), o qual é um segundo ficheiro &XML; que descreve os menus do &ktuberling;. Ele deverá conter uma marca <markup
>&lt;action&gt;</markup
> por cada recreio e língua. O nome simbólico da acção neste ficheiro deverá ser idêntico ao nome simbólico da acção no <filename
>layout.xml</filename
>. </para>

</sect1>

<sect1 id="for-translators">
<title
>Tradução</title>

<para
>Para além do mecanismo normal dos ficheiros <literal role="extension"
>.po</literal
> para traduzir os textos do programa e as mensagens, os sons também poderão ser localizados. </para>

<para
>Se os vários tradutores puderem gravar a sua voz para um ficheiro <literal role="extension"
>.wav</literal
>, eles poderão gravar esse ficheiro para a subpasta específica da língua da pasta de sons. O nome do som é então atribuído a um ficheiro no ficheiro <filename
>layout.xml</filename
>. Por exemplo, se a língua de destino é o Português, os tradutores poderão gravar a sua voz para os ficheiros <literal role="extension"
>.wav</literal
> localizados na pasta <filename
>$KDEDIR/share/apps/ktuberling/sounds/pt</filename
>. Aí, eles poderão então atribuir o som chamado <quote
>hat</quote
> ao nome do ficheiro <filename
>pt/chapeu.wav</filename
>. </para>

<para
>Numa versão futura, o &ktuberling; irá usar o formato de ficheiros OGG Vorbis rc3 para os sons. Nessa altura, será possível converter os ficheiros WAV para o OGG Vorbis rc3 através da seguinte linha de comandos: <screen
><prompt
>$</prompt
> <userinput
>oggenc -q 10 -o <replaceable
>som.ogg</replaceable
> <replaceable
>som.wav</replaceable
></userinput
>
</screen>
</para>

<para
>A informação sobre como lidar com os mecanismos de tradução no &kde; está disponível no <ulink url="http://i18n.kde.org/translation-howto/index.html"
>HOWTO de Traduções do &kde;</ulink
>. </para>

</sect1>

<sect1 id="for-programmers">

<title
>Para programadores</title>
<para
>Não é difícil aos programadores extenderem o &ktuberling;.</para>

<sect2 id="classes">
<title
>Classes C++</title>

<variablelist>
<varlistentry>
<term
><classname
>TopLevel</classname
></term>
<listitem>
<para
>Janela de topo e gestão básica do programa</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><classname
>PlayGround</classname
></term>
<listitem>
<para
>Descrição de um dos níveis de jogo</para
> </listitem>
</varlistentry>

<varlistentry>
<term
><classname
>ToDraw</classname
></term>
<listitem>
<para
>Uma descrição de um dos <quote
>objectos</quote
> gráficos a serem desenhados</para
> </listitem>
</varlistentry>

<varlistentry>
<term
><classname
>SoundFactory</classname
></term>
<listitem>
<para
>Descrição de uma das línguas e dos seus sons</para
> </listitem>
</varlistentry>

<varlistentry>
<term
><classname
>Action</classname
></term>
<listitem>
<para
>Uma das acções do utilizador na minha de desfazer/refazer.</para
> </listitem>
</varlistentry>
</variablelist>

</sect2>

<sect2 id="files-structure">
<title
>Estrutura dos ficheiros <literal role="extension"
>.tuberling</literal
></title>

<para
>Um ficheiro <literal role="extension"
>.tuberling</literal
> que contém todos os dados necessários para desenhar um boneco. Este poderá ser editado com um editor de texto normal.</para>

<para
>A primeira linha contém o número do recreio.</para>

<para
>Em todas as outras linhas, existe um objecto gráfico por linha, na ordem que é usada para os desenhar. Cada linha contém 5 números: o identificador do objecto e o rectângulo onde deverá ser desenhado (esquerda, cima, direita, baixo). Os números são separados por espaços.</para>

</sect2>
</sect1>

<sect1 id="layout-details">
<title
>Estrutura do ficheiro de disposição (<filename
>layout.xml</filename
>)</title>

<para
>A marca do nível de topo é única e chama-se <markup
>&lt;ktuberling&gt;</markup
>. Ela contém várias marcas <markup
>&lt;playground&gt;</markup
>, uma por cada recreio, bem como várias marcas <markup
>&lt;language&gt;</markup
>, uma para cada língua. </para>

<para
>A marca <markup
>&lt;playground&gt;</markup
> tem dois atributos: o <markup
>gameboard</markup
> e o <markup
>masks</markup
>. Estes atributos contêm os nomes dos ficheiros que contêm as imagens. A marca <markup
>&lt;playground&gt;</markup
> também contém uma marca <markup
>&lt;menuitem&gt;</markup
>, uma <markup
>&lt;editablearea&gt;</markup
> e várias marcas <markup
>&lt;category&gt;</markup
>, tendo ainda várias marcas <markup
>&lt;object&gt;</markup
>. </para>

<para
>A marca <markup
>&lt;menuitem&gt;</markup
> descreve o identificador da acção do item do menu que permite seleccionar a posição da área onde poderá largar os objectos, assim como a legenda deste item do menu. Este identificador de acção deverá ser idêntico ao do <filename
>ktuberlingui.rc</filename
>. </para>

<para
>A marca <markup
>&lt;editablearea&gt;</markup
> descreve a posição da área onde você poderá largar os objectos, bem como o nome do som associado a ele. </para>

<para
>A marca <markup
>&lt;category&gt;</markup
> descreve a posição e o texto que descreve um grupo de objectos. Por exemplo, ela pode descrever a posição e o texto do grupo <quote
>diversos</quote
>. </para>

<para
>A marca <markup
>&lt;object&gt;</markup
> descreve a posição (no tabuleiro e nas máscaras) de um objecto, assim como o nome do som associado a ele. </para>

<para
>A marca <markup
>&lt;language&gt;</markup
> tem um atributo: o <markup
>code</markup
>. Este atributo dá o código da localização para essa língua. A marca <markup
>&lt;language&gt;</markup
> também contém uma marca <markup
>&lt;menuitem&gt;</markup
> tag e várias <markup
>&lt;sound&gt;</markup
>. </para>

<para
>As marcas de nível inferior não são aqui explicadas, dado que o seu significado é bastante intuitivo. Se você modificar o ficheiro <filename
>layout.xml</filename
>, não se esqueça de modificar o <filename
>layout.i18n</filename
> e o <filename
>ktuberlingui.rc</filename
> na mesma medida. </para>

</sect1>
</chapter>