<chapter id="technical-reference"> <chapterinfo> <authorgroup> <author ><firstname >Éric</firstname > <surname >Bischoff</surname > </author> <othercredit role="translator" ><firstname >Andrea</firstname ><surname > Celli</surname ><affiliation ><address ><email >andrea.celli@libero.it</email ></address ></affiliation ><contrib >Traduzione della documentazione tecnica</contrib ></othercredit > </authorgroup> <date >05-05-2006</date > <releaseinfo >0.05.01</releaseinfo > <keywordset> <keyword >KDE</keyword> <keyword >KTuberling</keyword> <keyword >documentazione tecnica</keyword> </keywordset> </chapterinfo> <title >Documentazione tecnica</title> <para >&ktuberling; fornisce un'introduzione agevole e gratificante alla programmazione e personalizzazione in &kde;. Questa applicazione può essere estesa. Per esempio, si possono introdurre nuove scene cambiando i file grafici, senza bisogno di programmare. Aggiungendo gli appropriati file sonori, i traduttori possono mettere i commenti sonori nella propria lingua. </para> <para >Se introduci estensioni o aggiunte al gioco, considera l'idea di inviare i tuoi contributi allo sviluppatore <ulink url="mailto:aacid@kde.org" >Albert Astals Cid</ulink > affinché li includa nelle prossime versioni. </para> <sect1 id="for-artists"> <title >Per i disegnatori</title> <para >Per creare una nuova scena di KTuberling devi: </para> <itemizedlist> <listitem> <para >Disegnare lo sfondo in formato SVG, per farlo dovrai: <itemizedlist> <listitem ><para >Dare un nome al punto dove gli oggetti possono essere trascinati sullo "sfondo".</para ></listitem> <listitem ><para >Dare un nome univoco a tutti gli oggetti trascinabili.</para ></listitem> </itemizedlist> </para> </listitem> <listitem> <para >Creare un file.theme. Che deve rispettare questo schema:</para> <programlisting ><playground gameboard="<replaceable >TuoFileSVG</replaceable >" name="<replaceable >IlFileDesktop</replaceable >"> <object name="<replaceable >NomeOggetto</replaceable >" sound="<replaceable >NomeSuono</replaceable >" scale="<replaceable >ValoreOpportuno</replaceable >" /> ... ... ... </playground> </programlisting> <itemizedlist> <listitem ><para ><replaceable >TuoFileSVG</replaceable > è il nome del file svg che contiene il disegno.</para ></listitem> <listitem ><para ><replaceable >IlFileDesktop</replaceable > è il nome del file del desktop che ha il nome del tema.</para ></listitem> <listitem ><para >Per ogni oggetto ti serve una voce <object> <replaceable >NomeOggetto</replaceable > è il nome univoco che hai usato nel file SVG, <replaceable >NomeSuono</replaceable > è la voce che si sente quando trascini l'oggetto. Vedi il paragrafo sui temi sonori per maggiori informazioni.</para ></listitem> <listitem ><para >"scale" è opzionale e <replaceable >ValoreOpportuno</replaceable > è il fattore di scala che viene applicato all'oggetto quando viene trascinato fuori dal deposito. Se non è specificato, sarà 1.</para ></listitem> </itemizedlist> </listitem> <listitem> <para >Per creare un file .desktop bisogna seguire questo schema</para> <programlisting >[KTuberlingTheme] Name=<replaceable >NomeTema</replaceable > </programlisting> <itemizedlist> <listitem ><para ><replaceable >NomeTema</replaceable > è il nome che identifica il tema. Verrà mostrato nel menu Scena.</para ></listitem> </itemizedlist> </listitem> <listitem> <para >Se vuoi depositare il tema nel deposito SVN di KTuberling, devi aggiungere i file .svg .theme e .desktop alla sezione FILES di pics/CMakeLists.txt. </para> </listitem> <listitem> <para >Se vuoi installarlo da solo, metti i file .svg .theme .desktop in `kde4-config --prefix`/share/apps/ktuberling/pics </para> </listitem> </itemizedlist> </sect1> <sect1 id="for-translators"> <title >Per i traduttori</title> <para >Oltre all'abituale sistema dei file <literal role="extension" >.po</literal > per tradurre messaggi e richieste del programma, occorrerà localizzare anche i file sonori. </para> <para >Per creare un nuovo tema sonoro per KTuberling devi: </para> <itemizedlist> <listitem ><para >Registrare i suoni su file con formato OGG Vorbis rc3.</para ></listitem> <listitem> <para >Creare un file <replaceable >Codice2LettereXTuaLingua</replaceable >.soundtheme file, che deve avere questo schema:</para> <programlisting ><language code="<replaceable >Codice2LettereXTuaLingua</replaceable >"> <sound name="<replaceable >NomeSuono</replaceable >" file="<replaceable >PercorsoRelativo</replaceable >" /> ... ... ... </language> </programlisting> <itemizedlist> <listitem ><para ><replaceable >Codice2LettereXTuaLingua</replaceable > è il codice in due lettere che individua la tua lingua, ad esempio "it" per italiano.</para ></listitem> <listitem ><para >Per ogni suono serve una riga <sound>. <replaceable >NomeSuono</replaceable > deve corrispondere al NomeSuono specificato nel tema della scena (vedi l'HOWTO dei temi). <replaceable >PercorsoRelativo</replaceable > deve essere il percorso relativo da seguire per trovare dove è installato il file con questo suono. Tipicamente sarà QualcosaDiUnivoco/NomeSuono.formato (ad esempio, QualcosaDiUnivoco potrebbe essere il codice di 2 lettere della tua lingua).</para ></listitem> </itemizedlist> </listitem> <listitem ><para >Se vuoi depositare il tema sonoro sul SVN di KTuberling:</para> <itemizedlist> <listitem ><para >Aggiungi i file audio e i file .soundtheme nella directory ktuberling delle traduzioni della tua lingua.</para ></listitem> <listitem ><para >Proprio in questa directory dovrai creare un file CMakeLists.txt che indica come installare i file. La sua forma tipica è:</para> <programlisting >FILE(GLOB datafiles *.ogg) install( FILES ${datafiles} DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/<replaceable >Codice2LettereXTuaLingua</replaceable > ) install( FILES <replaceable >Codice2LettereXTuaLingua</replaceable >.soundtheme DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/ ) </programlisting> </listitem> </itemizedlist> </listitem> <listitem> <para >Se vuoi installarlo per te stesso:</para> <itemizedlist> <listitem ><para >Metti il file <replaceable >Codice2LettereXTuaLingua</replaceable >.soundtheme in `kde4-config --prefix`/share/apps/ktuberling/sounds</para ></listitem> <listitem ><para >Metti TuoiFileSuono in `kde4-config --prefix`/share/apps/ktuberling/sounds/PercorsoUnivoco</para ></listitem> </itemizedlist> </listitem> </itemizedlist> <para >Le informazioni su come utilizzare i meccanismi di traduzione per &kde; sono disponibili nel <ulink url="http://i18n.kde.org/translation-howto/index.html" >&kde; Translation HOWTO</ulink >. </para> </sect1> <sect1 id="for-programmers"> <title >Per i programmatori</title> <para >Non è molto difficile per un programmatore estendere &ktuberling;.</para> <sect2 id="classes"> <title >Classi C++</title> <variablelist> <varlistentry> <term ><classname >TopLevel</classname ></term> <listitem> <para >Gestione a alto livello della finestra e del programma base</para> </listitem> </varlistentry> <varlistentry> <term ><classname >PlayGround</classname ></term> <listitem> <para >Descrizione di uno dei livelli di gioco</para > </listitem> </varlistentry> <varlistentry> <term ><classname >ToDraw</classname ></term> <listitem> <para >Descrizione di uno degli <quote >oggetti</quote > grafici da disegnare.</para > </listitem> </varlistentry> <varlistentry> <term ><classname >SoundFactory</classname ></term> <listitem> <para >Descrizione di una lingua e dei suoi suoni</para > </listitem> </varlistentry> <varlistentry> <term ><classname >Action</classname ></term> <listitem> <para >Una delle manipolazioni dell'utente sullo stack annulla/rifai</para > </listitem> </varlistentry> </variablelist> </sect2> </sect1> </chapter>