6. Jazyková lokalizace

Panely a skripty – jazyková lokalizace.

Minule jsme si ukázali, jak vytvářet panely. Dnes se podíváme na to, jak panely a skripty lokalizovat tak, aby jejich texty byly ve stejném jazyce, ve kterém je Photoshop.

Abychom mohli lokalizaci v panelech použít, je potřeba do souboru ext.js každého projektu přidat na začátek funkce onLoaded() následující řádek :

var resourceBundle = csInterface.initResourceBundle();

Úprava souboru ext.js.

Pak si v podadresáři projektu ExtensionContent vytvoříme adresář Locale. V něm si vytvoříme adresáře podle jazyků, které budeme chtít lokalizovat. Pro češtinu je to adresář cs_CZ.

Struktura adresářů locale.

Do každého z těchto adresářů zkopírujeme soubor messages.properties, který vypadá asi takto :

video=Video... 
BBalicek=Nau010Dti vrstvy 
BVideo=Vytvou0159 video 
BFlip=Prohou010F vrstvy 
BVideoF=Vytvou0159 video F

Ukázkový soubor messages.properties.

V tomto souboru jsou definice textů pro název panelu a názvy tlačítek panelu. Vlevo je název proměnné a za rovnátkem jeho jazyková podoba, podle adresáře ve kterém je soubor messages.properties umístěn. České znaky je potřeba zadat v kódování Unicode UTF-8 podle následující tabulky :

Á u00C1 á u00E1
Č u010C č u010D
Ď u010E ď u010F
É u00C9 é u00E9
Ě u011A ě u011B
Í u00CD í u00ED
Ň u0147 ň u0148
Ó u00D3 ó u00F3
Ř u0158 ř u0159
Š u0160 š u0161
Ť u0164 ť u0165
Ú u00DA ú u00FA
Ů u016E ů u016F
Ý u00DD ý u00FD
Ž u017D ž u017E

!!! Rozhodně je nezadávejte přímo českými znaky !!! V tom případě Photoshop při načítání panelu zatuhne a je potřeba jej zavřít přes správce úloh.

Název panelu je uveden v souboru manifest.xml a je potřeba místo názvu napsat název proměnné uvedené v souboru messages.properties a uvést ji znakem procento.

Zadání proměnné názvu panelu.

Proměnné názvů tlačítek se zadají v souboru index.html přímo do tagu button ve formě data-locale=“xxx, kde xxx je název proměnné ze souboru messages.properties.

Ukázka zadání názvů tlačítek panelu.

Lokalizace textů ve skriptech a jeho dialozích je jednodušší. Přímo do kódu můžeme na místo, kde používáme řetězec napsat místo řetězce následující kód :

localize({cs:'Délka záběru[s]',en:'Shot length[s]'})

Funkce localize vrátí patřičný řetězec podle použité jazykové verze Photoshopu. Jednoduše tak upravíte jazykové rozhraní skriptu a jeho dialogů.

Tímto dílem programování ve Photoshopu prozatím končí. Pokud mě ještě něco napadne, samozřejmě o tom napíšu.