This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

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.

Ď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 _).

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".

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

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 _).

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


2024-10-23 11:46