<chapter id="technical-reference">
<chapterinfo>

<authorgroup>
<author
><firstname
>Éric</firstname
> <surname
>Bischoff</surname
> </author>
<othercredit role="translator"
><firstname
>Matjaž</firstname
><surname
>Jeran</surname
><affiliation
><address
><email
>matjaz.jeran@amis.net</email
></address
></affiliation
><contrib
>Prevod</contrib
></othercredit
> 
</authorgroup>

<date
>04.10.2021</date>
<releaseinfo
>KDE Gear 21.08</releaseinfo>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>KTuberling</keyword>
<keyword
>tehnična referenca</keyword>
</keywordset>
</chapterinfo>

<title
>Tehnične reference</title>

<para
>&ktuberling; ponuja nežen in nagrajujoč uvod v &kde; prilagajanje in programiranje. Aplikacijo je mogoče razširiti. Na primer, brez kodiranja je mogoče dodati nova igrišča s spreminjanjem grafičnih datotek. Z dodajanjem ustreznih zvočnih datotek lahko prevajalci spremenijo zvoke v svoj materni jezik! </para>

<para
>Če razširite ali dodate igro, razmislite o pošiljanju svojih dodatkov vzdrževalcu <ulink url="mailto:alex@eyeos.org"
>Alex Fiestas</ulink
> za vključitev v prihodnje izdaje. </para>

<sect1 id="for-artists">
<title
>Za umetnike</title>

<para
>Če želite ustvariti nov &ktuberling; igrišče morate: </para>

<itemizedlist>
  <listitem>
    <para
>Narisati igrišče v &SVG; datoteko, tam morate: <itemizedlist>
        <listitem
><para
>Poimenovati prostor, kamor lahko elemente povlečete <quote
>ozadje</quote
>.</para
></listitem>
        <listitem
><para
>Poimenovati vsak element, ki ga je mogoče povleči, z edinstvenim imenom.</para
></listitem>
      </itemizedlist>
    </para>
  </listitem>

  <listitem>
    <para
>Ustvariti datoteko <literal role="extension"
>.theme</literal
>, slediti mora tej shemi:</para>
<programlisting
>&lt;playground gameboard="<replaceable
>yourSVGFile</replaceable
>" name="<replaceable
>theDesktopFile</replaceable
>"&gt;
&lt;object name="<replaceable
>itemName</replaceable
>" sound="<replaceable
>soundName</replaceable
>" scale="<replaceable
>someValue</replaceable
>" /&gt;
...
...
...
&lt;/playground&gt;
</programlisting>
    <itemizedlist>
      <listitem
><para
><replaceable
>yourSVGFile</replaceable
> je ime datoteke &SVG; datoteke, ki vsebuje risbo.</para
></listitem>
      <listitem
><para
><replaceable
>theDesktopFile</replaceable
> je ime datoteke namizja, ki ima ime teme.</para
></listitem>
      <listitem
><para
>Za vsak predmet potrebujete vnos <literal
>&lt;object&gt;</literal
>. <replaceable
>itemName</replaceable
> je edinstveno ime, ki ste ga uporabili v datoteki &SVG; <replaceable
>soundName</replaceable
> je ime zvoka, ki se bo predvajal, ko ga povlečete, za več informacij glejte datoteko <filename
>sounds/soundthemes.HOWTO</filename
> iz izvorne kode.</para
></listitem>
      <listitem
><para
><literal
>scale</literal
> je neobvezen in <replaceable
>someValue</replaceable
> je faktor merila, ki bo uporabljen pri risanju tega predmeta zunaj skladišča, če ni naveden, je 1.</para
></listitem>
    </itemizedlist>
  </listitem>

  <listitem>
    <para
>Ustvarite datoteko <literal role="extension"
>.desktop</literal
>, slediti mora tej shemi:</para>
<programlisting
>[KTuberlingTheme]
Name=<replaceable
>themeName</replaceable
>
</programlisting>
    <itemizedlist>
      <listitem
><para
><replaceable
>themeName</replaceable
> je ime, ki identificira temo in bo prikazano v meniju Playground.</para
></listitem>
    </itemizedlist>
  </listitem>

  <listitem>
    <para
>Če temo dodajate v &ktuberling; repozitorij dodajte datoteke <literal role="extension"
>.svg</literal
>, <literal role="extension"
>.theme</literal
> in <literal role="extension"
>.desktop</literal
> <literal
>FILES</literal
> v <filename
>CMakeLists.txt</filename
> v mapo <filename class="directory"
>pics/</filename
>. </para>
  </listitem>

  <listitem>
    <para
>Če ga želite namestiti zase, postavite <literal role="extension"
>.svg</literal
>, <literal role="extension"
>.theme</literal
> in <literal role="extension"
>. desktop</literal
> v mapo <filename class="directory"
>ktuberling/pics</filename
> v <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation</option
></userinput 
> </para>
  </listitem>
</itemizedlist>

</sect1>

<sect1 id="for-translators">
<title
>Za prevajalce</title>

<para
>Poleg običajnega mehanizma datotek <literal role="extension"
>.po</literal
> za prevajanje programskih oznak in pozivov je mogoče lokalizirati tudi zvoke. </para>

<para
>Če želite ustvariti novo zvočno temo &ktuberling;, jo morate: </para>

<itemizedlist>
  <listitem
><para
>Posneti zvoke v formatu datoteke OGG Vorbis rc3.</para
></listitem>
  <listitem
><para
>Ustvarite datoteko <filename
><replaceable
>yourLanguageTwoLetterCode</replaceable
>.soundtheme</filename
>, slediti mora tej shemi:</para>
<programlisting
>&lt;language code="<replaceable
>yourLanguageTwoLetterCode</replaceable
>"&gt;
&lt;sound name="<replaceable
>soundName</replaceable
>" file="<replaceable
>relativePath</replaceable
>" /&gt;
...
...
...
&lt;/language&gt;
</programlisting>
    <itemizedlist>
      <listitem
><para
><replaceable
>yourLanguageTwoLetterCode</replaceable
> je dvočrkovna koda vašega jezika, na primer gl za galicijščino.</para
></listitem>
      <listitem
><para
>Za vsak zvok vnos <literal
>&lt;sound&gt;</literal
>. <replaceable
>soundName</replaceable
> se mora ujemati z soundName, določenim v temi igrišča (glejte <filename
>pics/themes.HOWTO</filename
> iz izvorne kode). <replaceable
>relativePath</replaceable
> mora biti relativna pot, na katero boste namestili datoteko s tem zvokom, običajno bo to <filename
><replaceable
>someUniquePath</replaceable
>/<replaceable
>soundName</replaceable
>. <replaceable
>format</replaceable
></filename
> (<replaceable
>someUniquePath</replaceable
> je lahko na primer dvočrkovna koda vašega jezika).</para
></listitem>
    </itemizedlist>
  </listitem>

  <listitem
><para
>Če dodajate zvočno temo v &ktuberling; v vaši jezikovni mapi:</para>
    <itemizedlist>
      <listitem
><para
>Dodajte zvočne datoteke in datoteke <literal role="extension"
>.soundtheme</literal
> v mapo <filename class="directory"
>data/kdegames/ktuberling</filename
> vaših jezikovnih prevodov.</para
></listitem>
      <listitem
><para
>V tem istem imeniku potrebujete datoteko <filename
>CMakeLists.txt</filename
>, ki opisuje, kako namestiti datoteke, običajno bo tako.</para>
<!--FIXME l10n-kf5/*/data/kdegames/ktuberling/CMakeLists.txt has DATA_INSTALL_DIR, has this to be changed?-->
<programlisting
>FILE( GLOB oggfiles *.ogg )
INSTALL( FILES ${oggfiles} DESTINATION ${KDE_INSTALL_DATADIR}/ktuberling/sounds/<replaceable
>yourLanguageTwoLetterCode</replaceable
> )
INSTALL( FILES <replaceable
>yourLanguageTwoLetterCode</replaceable
>.soundtheme DESTINATION ${KDE_INSTALL_DATADIR}/ktuberling/sounds/ )
</programlisting>
      </listitem>
    </itemizedlist>
  </listitem>

  <listitem
><para
>Če ga želite namestiti sami:</para>
    <itemizedlist>
      <listitem
><para
>Postavite datoteko <filename
><replaceable
>yourLanguageTwoLetterCode</replaceable
>.soundtheme</filename
> v mapo <filename class="directory"
>ktuberling/sounds</filename
> v <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation</option
></userinput
></para
></listitem>
      <listitem
><para
>Postavite svoje zvočne datoteke v mapo <filename class="directory"
>ktuberling/sounds/<replaceable
>someUniquePath</replaceable
></filename
> v <userinput
><command
>qtpaths</command
> <option
>--paths GenericDataLocation </option
></userinput
></para
></listitem>
    </itemizedlist>
  </listitem>
</itemizedlist>

<para
>Informacije o tem, kako delati s prevajalskimi mehanizmi v &kde; je na voljo v  <ulink url="https://l10n.kde.org/docs/translation-howto/index.html"
>The &kde; Translation HOWTO</ulink
>. </para>

</sect1>

<sect1 id="for-programmers">

<title
>Za programerje</title>
<para
>&ktuberling; za programerje res ni težko razširiti.</para>

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

<variablelist>
  <varlistentry>
    <term
><classname
>Najvišji nivo</classname
></term>
    <listitem
><para
>Okno najvišje ravni in osnovno upravljanje programa.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><classname
>Igrišče</classname
></term>
    <listitem
><para
>Opis ene od ravni igre.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><classname
>Risati</classname
></term>
    <listitem
><para
>Opis enega od grafičnih <quote
>predmetov</quote
>, ki jih je treba narisati.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><classname
>SoundFactory</classname
></term>
    <listitem
><para
>Opis enega od jezikov in njegovih zvokov.</para
></listitem>
  </varlistentry>

  <varlistentry>
    <term
><classname
>Akcija</classname
></term>
    <listitem
><para
>Ena od uporabnikovih manipulacij v skladu za razveljavitev/ponovitev.</para
></listitem>
  </varlistentry>
</variablelist>

</sect2>

</sect1>
</chapter>
