Table of Contents

Prekladove subory vozidlovej aplikacie

Ako zmenit jazyk na Vesne

Vesna taha preklady z binarneho suboru default.qm, ktory je umiestneny na ceste /opt/app-5/usr/lang/.
Ak chceme zmenit aktualny jazyk, staci nam nahradit povodny subor novym s zelanym jazykom, pripadne len stary premenovat a na novy vytvorit symlink.
Ak je file system ako readonly, je potrebne ho DOCASNE zmenit na RW (mount -o remount,rw /mnt/userfs) a nasledne na RO (mount -o remount,ro /mnt/userfs).

Mechanizmus prekladov

Hlavickovy subor

Kazdy text, ktory sa ma prekladat musi byt v prvom rade zadefinovany v jednom z hlavickovych suborov, ktore su na to urcene. (textOBC.h, textMenu.h, textCommon.h, textSelfServiceValidator.h, textSlave.h).

#define E_STR_LATITUDE EObcText::tr("Latitude")

V hlavickovom subore su nadefinovane texty, ktore sa defaultne zobrazia, ked sa explicitne nepouzije preklad do ineho jazyka.

.ts subor

Pre kazdy jazyk existuje samostatny .ts subor (je to xml-ko), v ktorom je k define-u (source) z hlavickoveho suboru priradeny konkretny preklad (translation) v danom jazyku.
Priklad suboru sk_obc.ts (preklady pre slovensky jazyk):

<message>
    <source>Latitude</source>
    <translation>Zemepisná šírka</translation>
</message>

.qm subor

Znova pre kazdy jazyk samostatne existuje .qm subor (je to binarny subor), ktory je vysledkom spracovania .ts suboru. Tento subor uz mozeme priamo pouzit v aplikacii.

Ako sa dopracovat k funkcnemu .qm suboru pre aplikaciu

Najprv treba skontrolovat, ci uz dany vyraz v hlavickovych suboroch nie je.
Ak takyto define nie je, pridame ho do jedneho z hlavickovych suborov. Treba zhodnotit, do ktoreho to patri.
Pouzijeme utilitu lupdate, pomocou ktorej doplnime prislusny .ts subor o novy preklad (do .ts suboru to zatial doplni len <source> cast, <translation> sa doplni v dalsom kroku).
Priklad pre update .ts suboru so slovenskymi prekladmi pre obc:

lupdate-qt4 textOBC.h textCommon.h textMenu.h -ts obc/sk_obc.ts

Po tomto kroku budu v sk_obc.ts definovane vsetky prekladane retazce zo suborov textOBC.h textCommon.h textMenu.h

Doplnime preklady do sk_obc.ts pomocou linguist:

linguist-qt4 sk_obc.ts

Nakoniec uz len spracujeme .ts subor na binarku:

lrelease-qt4 sk_obc.ts

Vysledkom coho je subor sk_obc.qm.
Tymto mame hotovy pouzitelny subor so slovenskymi prekladmi, ak ho chceme pouzit v aplikacii, staci nan vytvorit symlink s nazvom default.qm vo var/lib/lang.