Kontrola a preklad podľa zdrojových súborov

Vyhľadanie umiestnenia prekladaného reťazca

Každý .po súbor pri prekladanom reťazci obsahuje cestu k zdrojovým súborom (viď Poloha reťazca na preklad a preklad), v ktrých sa nachádza. Na konci každého odkazu sa nachádza dvojbodka a za ním je číslo riadka odkazujúce na riadok v zdrojovom súbore, na ktorom sa daný reťazec nachádza. Adresa má teda nasledujúci tvar:

./relatívna/cesta/k/súboru:riadok

Tieto zdrojové súbory môžeme zobraziť dvoma spôsobmi.

  1. Buď si stiahneme súbory z úložiska systému Git (viď. Stiahnutie modulu zo systému Git a jeho skompilovanie) a .po súbor umiestnime relatívne k stiahnutým súborom (viď návod pre poEdit),
  2. alebo si súbor môžete zobraziť priamo cez webový prehliadač.

Druhú možnosť si popíšeme bližšie na príklade modulu libgimp:

Máme preložiť reťazec None, ktorý môžeme preložiť rôznymi spôsobmi (žiadny, žiadna, žiadne, nič). Klinutím pravým tlačidlom myši zistíme, že reťazec sa nachádza v týchto súboroch.

  • ./plug-ins/common/align-layers.c:424 ../plug-ins/common/align-layers.c:455
  • ./plug-ins/common/cml-explorer.c:166 ../plug-ins/common/file-ps.c:3244
  • ./plug-ins/common/file-ps.c:3256 ../plug-ins/common/file-psp.c:647
  • ./plug-ins/file-fits/fits.c:1044
  • ./plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1001
  • ./plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1042
  • ./plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1083
  • ./plug-ins/lighting/lighting-ui.c:418
  • ./plug-ins/print/print-page-layout.c:461

Ďalej budeme postupovať takto:

  1. Presunieme sa na stránku modulu v systéme Damned Lies (http://l10n.gnome.org/vertimus/gimp/gimp-2-6/po-libgimp/sk)

  2. Klikneme na názov modulu v hornej časti stránky, čo nás presunie na adresu http://l10n.gnome.org/module/gimp/

  3. Klikneme na odkaz "Prehliadať repozitár", čím sa dostaneme na stránku http://git.gnome.org/browse/gimp/

  4. Klikneme na odkaz "tree", čím sa na zobrazí výpis adresára systému Git s aktuálnou verziou zdrojových súborov (http://git.gnome.org/browse/gimp/tree/).

  5. Teraz podľa zobrazeného odkazu vojdeme do "plug-ins", potom do "common" a tam otvoríme súbor "align-layers.c" alebo rovno skopírujeme cestu s .po súboru a pridáme ju za aktuálnu cestu. V našom prípade to bude http://git.gnome.org/browse/gimp/tree/plug-ins/common/align-layers.c

  6. Prejdeme na riadok 424

Poznámka: pri generovaných súboroch ako sú napríklad súbory .gschema.xml.in.in.h odkaz na súbor neobsahuje poslednú časť (.h) cesta k sú boru bude teda obsahovať iba časť .gschema.xml.in.in

Druhy reťazcov a súborov

V každom prekladanom .po súbore môžeme násjsť niekoľko typov súborov, ktoré nám už sami o sebe prezradia, čo prekladáme.

Názov programu a jeho popis

Preklady, ktoré sa nachádzajú v súboroch s príponou "desktop.in.h" obsahujú názov programu a jeho popis.

[Desktop Entry]
_Name=Mines
_Comment=Clear hidden mines from a minefield
Exec=gnomine
Icon=gnomine
Terminal=false
Type=Application
Categories=GNOME;GTK;Game;LogicGame;
_Keywords=minesweeper;

Na preklad sú v tomto prípade určené položky Name, Comment a Keywords (začínajú znakom _).

  • Položku Comment je potrebné preložiť popisným spôsobom napr. v tomto prípade (doplním čoskoro)
  • Položku Keywords treba preložiť tak aby obsahovala všetky slová ktoré sa v slovenčine môžu použiť na vyhľadanie programu. V našom prípade bude preklad "minesweeper;míny;hľadanie mín;"

Ovládacie prvky používateľského rozhrania

Preklady, ktoré sa nachádzajú v súboroch s príponou .ui.h obsahujú texty ovládacích prvkov (viď pvládacie prvky v slovníku) grafického používateľského rozhrania.

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gtk+ 3.0 -->
  <object class="GtkAboutDialog" id="about-dialog">
    <property name="can_focus">False</property>
    <property name="border_width">5</property>
    <property name="resizable">False</property>
    <property name="modal">True</property>
    <property name="destroy_with_parent">True</property>
    <property name="type_hint">dialog</property>
    <property name="program_name" translatable="yes">Disks</property>
    <property name="copyright" translatable="yes">Copyright © 2008-2012 Red Hat, Inc.
Copyright © 2008-2012 David Zeuthen</property>
    <property name="comments" translatable="yes">View, modify and configure disks and media</property>
    <property name="website">http://live.gnome.org/Design/Apps/Disks</property>
    <property name="authors">David Zeuthen</property>
    <property name="translator_credits" translatable="yes">translator-credits</property>
    <property name="logo_icon_name">gnome-disks</property>
    <property name="license_type">gpl-2-0</property>
    <child internal-child="vbox">
      <object class="GtkBox" id="aboutdialog-vbox1">
        <property name="can_focus">False</property>
        <property name="orientation">vertical</property>
        <property name="spacing">2</property>
        <child internal-child="action_area">
          <object class="GtkButtonBox" id="aboutdialog-action_area1">
            <property name="can_focus">False</property>
            <property name="layout_style">end</property>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="pack_type">end</property>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <placeholder/>
        </child>
      </object>
    </child>
  </object>
</interface>

Napríklad z tohto súboru sa môžeme dozvedieť, že položky sú v dialógovom okne O programe (GtkAboutDialog) a na preklad sú určené tri jeho tzv. vlastnotsti (pojem z objektovo orientovaného programovania), ktoré majú položku translatable="yes".

  • copyright - informácia o autorských právach
  • comments - komentáre
  • translator_credits - autori prekladu, Tu je potrebné napísať svoje meno a emalovu adresu napr. Jozef Mrkva <mrkva@nieco.sk>

Okrem týchto vlastností často môžeme naraziť na vlastnosti

  • title - titulok okna
  • label - text na ovládacom prvku ako tlačidlo, zaškrtávacie pole a pod
  • tooltip,tooltip_text alebo tooltip_markup - text v bubline, ktorá sa zobrazí ked na prvku postojíme prekladáme popisne napr. otvorí dialógové okno pre výber farby alebo ako radu používateľovi napr. Klikaním vyberte všetky položky, ktoré chcete označiť

Položky ponúk

Ponuky sú niekedy uložené v samostatných súboroch ktoré vyzerajú nasledovne

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <menu id='app-menu'>
    <section>
      <item>
        <attribute name="label" translatable="yes">Attach Disk _Image...</attribute>
        <attribute name="action">app.attach_disk_image</attribute>
      </item>
    </section>
    <section>
      <item>
        <attribute name="label" translatable="yes">_About Disks</attribute>
        <attribute name="action">app.about</attribute>
      </item>
      <item>
        <attribute name="label" translatable="yes">_Quit</attribute>
        <attribute name="action">app.quit</attribute>
        <attribute name="accel">&lt;Primary&gt;q</attribute>
      </item>
    </section>
  </menu>
</interface>

Jednotlivé položky ponúk sú ohraničené značkami <item></item> a to čo mi vidíme sa nachádza v atribútoch s názvom "label". Preložiteľné položky sú označené translatable="yes".

Akcelerátory ponúk

Niektoré položky ako napríklad "_Quit" v sebe majú znak _ ktorý voláme akcelerátor ponuky alebo tiež mnemonika. Týmto znakom sa dá položka aktivovať ak napríklad ovládame počítač bez použitia myši. Pre umiesťnovanie akcelerátorov platia nasledovné pravidla:

  1. akcelerátory na jednej úrovni ponuky by sa nemali opakovať
  2. akcelerátor dávame na zaužívané miesto napr. O_dstrániť (TODO urobiť zoznam)
  3. akcelerátor sa snažíme umiestniť tak aby bol čo najľahšie zapamätateľný

Schéma pre gsettings

Preklady, ktoré sa nachádzajú v súboroch s príponou .gschema.xml.in.in.h sú určené pre popis nastavení v systémoch ako gconf alebo dconf (obdoba databázy registry vo Windows).

<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
  <schema id="org.gnome.Disks" path="/org/gnome/Disks/" gettext-domain="@GETTEXT_PACKAGE@">
    <key name="image-dir-uri" type="s">
      <default>''</default>
      <_summary>Default location for the Create/Restore disk image dialogs</_summary>
      <_description>Default location for the Create/Restore disk image dialogs. If blank the ~/Documents folder is used.</_description>
    </key>
  </schema>
</schemalist>

Na preklad sú určené položky summary a description (začínajú znakom _).

  • sumary - je krátky popis položky nastavenia - má popisovať čo daný kľúč nastavení nastavuje
  • description - podrobne popisuje aké hodnoty je možné položke nastaviť a čo robia nastaviteľné položky nie je vhodné prekladať, ich preklad uvádzajte do zátvorky

Voľby programu v príkazovom riadku

Po zadaní názvu príkazu s voľbou --help alebo -h sa zobrazí zoznam volieb spolu s popismi. V kode ich môžete rozlíšiť ako konštanty typu GOptionEntry. Napríklad:

static const GOptionEntry opt_entries[] =
{
  { "writable", 'w', 0, G_OPTION_ARG_NONE, &opt_writable, N_("Allow writing to the image"), NULL},
  { NULL }
};

Porozumenie kódu

Ak vyššie uvedeným postupom prejdeme na riadok 424 v súbore align-layers.c (http://git.gnome.org/browse/gimp/tree/plug-ins/common/align-layers.c), nájdeme nasledujúci kód:

  combo = gimp_int_combo_box_new (_("None"),                 H_NONE,
                                  _("Collect"),              H_COLLECT,
                                  _("Fill (left to right)"), LEFT2RIGHT,
                                  _("Fill (right to left)"), RIGHT2LEFT,
                                  _("Snap to grid"),         SNAP2HGRID,
                                  NULL); 

Tento kód nám prezradí, že reťazec sa nachádza v prvku combo box (viď. prehľad grafických prvkov okien.

Ak sa rozhliadneme trochu vyššie, na riadku 400 zistíme, že

dialog = gimp_dialog_new (_("Align Visible Layers")

čo nám napovie že daný reťazec sa nachádza v dialógovom okne s daným názvom a ak sa pozrieme nižšie, na riadku 436 uvidíme

gimp_table_attach_aligned (GTK_TABLE (table), 0, 0,
                             _("_Horizontal style:"), 0.0, 0.5,
                             combo, 2, FALSE);

čo nám napovie, že prvok combo sa nacházda za nápisom "Horizontal style:", teraz už budeme vedieť, že reťazec "None" by mal byť v tomto prípade preložený v mužskom rode, pretože ide o vodorovný štýl zarovnania.

Ak však rovnakým spôsobom pozrieme na ostatné výskyty reťazca "None", uvidíme, že v inom prípade je potrebný ženský rod, preto už ďalej hľadať nemusíme a požiadame vývojárov o rozdelenie reťazca. – TODO spracovať návod

SlovakTranslation/KontrolaPodlaKodu (last edited 2012-10-29 13:49:49 by etkinator)