|_ Penguin _|
O serveru
Sponzoři
Síň slávy
Backendy, PDA, text
Přidat k oblíbeným
Sidebar: Mozilla, Opera
Domovské stránky
Pošta
Kalendář
Tučňáci
Czech HOWTO
Překladatelské stránky
Návody (HOWTO)
Zátah na hackery
Novinky o debianu
Security announce
Názory
Software
Odkazy CZ/SK
Odkazy US
Noviny  Časopisy
Knihy
|_ Hosted Sites _|
CB.penguin.cz
CVS server
ListServer
Unix versus NT
GRAD
UTX
OWSKiller
PUK - klub uživatelů Penguina
Scriptová Banka
Linux na slabých strojích
|_ Vyhledávání _|
|_ Novinky _|
Nejnovější komentáře:
Diskuse RSS

Jan: Doporučení
Erik: Internet a jeho využití
Georgiy: Нужен срочно товар оп
Georgiy: Нужен срочно товар оп
Sleep_Walker: moje zkusenosti
Logout: Dotykáč

Nejčtenější v uplynulých 30 dnech:

Nejkomentovanější v uplynulých 30 dnech:

 

Připojeno k GTS
Logo serveru Penguin
 
MULTIFUNKČNÍ TISKÁRNY

  Zpět na Novinky
Překládáme přídavné aplikace (add-ons) Mozilly
met (17.06.2003 10:26:16, 18246/0)


I průměrný uživatel Mozilly dříve či později narazí na možnost rozšířit její vlastnosti nějakou přídavnou aplikací (čili add-ons). A že jich dnes existují již celé stovky...


Ano, napočítal jsem jich několik set - viz seznam aktivních, neaktivních a opuštěných projektů (přiznávám ne kažký je funkční) na mozdev.org. Za zmínku stojí, že sami autoři serveru mozdev.org byli množstvím vznikajících projektů tak zaskočeni, že museli požádat o "finanční výpomoc" za účelem zlepšení hostingu a upgradu hardware.

Pozn. pro příznivce Phoenixe a Ptáka Ohniváka: podpora pro tohoto mladšího bratříčka ještě nedávno poněkud pokulhávala, ale to se poslední dobou výrazně mění a počet add-ons pro něj rychle roste, takže zkrátka určitě nepřijdete.

A protože dnes na nás již Mozilla i Pták Ohnivák umí mluvit hezky česky (což nijak nebrání "konzervativcům" hovořit s nimi stále jazykem Shakespearovým :-), tak proč by na nás nemohly mluvit česky i jednotlivé přídavné aplikace že? A jelikož přídavných aplikací je opravdu hodně, není v moci jednotlivce zajistit jejich kompletní lokalizaci ;-( Jedinou možností je spolehnout se na práci nadšených jedinců, kteří si ten svůj oblíbený add-on přeloží ať již z pohnutek estetických, šlechetných či jen jako protříbení rodné řeči. Pokud sledujete forum.czilla.cz, tak jste si jistě všimli, že takoví jedincové se již nalezli, překládali a kamenem úrazu byly právě ty technické záležitosti, jak co správně udělat. Snad všem dalším nadšencům pomůže tento (lehce motivující) návod.

Napřed uklidňující informace - k lokalizaci přídavné aplikace Mozilly toho není třeba až tak moc umět. Kromě znalosti jazyka Shakespearova a Boženy Němcové budete potřebovat jen prográmek pro práci se zip archivy a textový editor schopný pracovat s utf-8 (včetně reprezentace typu \uXXXX - ehm, neVí někdo jak k tomu donutit Vim?). Z toho plyne, že lokalizaci můžete provádět na prakticky libovolné platformě (ano i na Linuxu ;-)). Jediný problém je s tvorbou zip archivů, kterou je lepší provádět pod Linuxem/Unixem, v opačném případě se totiž vše zdá být na první pohled v pořádku (třeba uživatelé OS Windows nic zvláštního nezpozorují), ale problém nastane při instalaci na Linuxech/Unixech. Práva rozbalených souborů totiž bude třeba nastavit ručně (jinak zpravidla nabydou nevhodných hodnot typu vše zakázáno či vše povoleno), což je nepříjemné (a vůči tučňákům neférové), ale bohužel se s tím občas setkáme :-(. Pokud autor add-ons programoval slušně, tak by se všechny textové řetězce měly nacházet pohromadě a mimo vlastní kód (což je pro lokalizátora jistě zpráva velmi příjemná).

Jak je vidět, žádný zázrak se od lokalizátora nečeká, tak přestaňme běhat okolo horké kaše a pojďme na věc.

A aby to bylo aspoň trochu užitečné, zkusíme si to rovnou v reálu na nějakém příkladu. Vybral jsem si projekt livehttpheaders (užitečný add-on pokud potřebujete sniffovat HTTP komunikaci mezi Mozillou a serverem a nechcete na to spouštět speciální program - prostě si přidáte tu funkci rovnou do Mozilly :-) Bohužel, lokalizoval jsem poněkud starší verzi, ale pokud vám nestačí, tak upgrade lokalizace si jistě dle tohoto návodu provedete sami a ještě budete rádi, že si to můžete všechno hned vyzkoušet ;-). Takže stáhneme originální balíček. Má příponu XPI - toho se ale nijak nezalekneme, protože je to jen obyčejný ZIP soubor (a tak jej hned rozbalíme).

Obsahuje tři soubory:
        livehttpheaders.jar     // vlastní add-ons, ten budeme lokalizovat
        install.js              // soubor s instalačním skriptem (resp. JavaScriptem),
                                // ten musíme krapet upravit
        TODO.txt                // nějaký odborný lékařský pindy

Nejzajímavější je livehttpheaders.jar, to je totiž opět ZIP soubor obsahující vlastní add-on. Ten musíme rovněž rozbalit - obsahuje:

	content/		// adresář s kódem; ten nás nezajímá
	skin/			// adresář s popisem vzhledu; ten nás taky nezajímá
	locale/			// Bingo! tenhle adresář nás zajímá

V adresáři locale se nachází jednotlivé lokalizace daného add-on (nemusí zde být vždy všechny, existuje i možnost je mít externě a přidat je jako dodatečný balíček). V našem případě zde jsou přítomny dvě "en-US" a "fr-FR" (kupodivu ani jedna z nich není česky). Vyrobíme si tedy základ pro českou lokalizaci - vytvoříme si kopii adresáře en-US jako cs-CZ.

A jdeme překládat. Otevřeme soubor livehttpheaders.dtd. Jedná se o sadu entit v kódování UTF-8 (jelikož základ přídavné aplikace je vytvořen v XUL - jazyk postavený na XML, není třeba žádný gettext (obvyklý lokalizační nástroj) - Mozilla si v tomto případě vystačí s entitami - podrobnějsí popis). Přeložený výsledek může vypadat třeba takto (prosím nekamenovat za kvalitu překladu). Je nutno dát pozor, aby byla zachována validita souboru např. jakékoliv zapomenuté uvozovky budou mít fatální dopad, který se bohužel po instalaci takového poškozeného balíku někdy projeví na (ne)funkčnosti CELÉ Mozilly! (No schválně si to vykoušejte.)

Dále zde nalezneme soubor livehttpheaders.properties. Ten je prázdný (hurá není třeba nic překládat), což je - přiznávám - nedidaktické a hned to napravím. Jeho obsah (kdyby nějaký měl) by mohl vypadat třeba takto (převzato z lokalizace Kalendáře):

	month.1.name=Leden
	month.2.name=\u00DAnor
	month.3.name=B\u0159ezen
	month.4.name=Duben
	month.5.name=Kv\u011Bten

Tohle nemá již s XML nic společného, je to druhý (a taky poslední) typ lokalizačních souborů Mozilly (podrobnější popis). Slouží k zobrazování řetězců v JavaScriptu (tam by se entity jen těžko používaly). Na každém řádku je přiřazení typu IDENTIFIKATOR=RETEZEC, kde řetězec je bez uvozovek zapsaný řetězec v kódování UTF-8, ale oproti předchozímu případu v reprezentaci \uXXXX. Z JavaScriptu se k nim přistupuje pomocí tzv. stringbundle.

Pod OS Windows lze k editaci těchto souborů použít třeba editor Unired, pod Linuxem jsem zatím žádný neobjevil :-( a tak tenhle krok dělám pouze pod okýnky. Omlouvám se čtenářům penguina a věřím, že pokud to někoho pohoršilo, tak se vykasá s editorem, který to umí. Nicméně pro jednostrannou konverzi utf-8 na \uXXXX by měl jít použít javovský konvertor native2ascii.

Překlad máme za sebou, zbývá dokončit lokalizaci po technické stránce. Musíme upravit soubor contents.rdf v adresáři s naším locale. Jedná se o RDF soubor. Já RDF nemám rád, tak to vezmu stručně. Jedná se o soubor, který pomůže Mozille, až bude tento adresář při instalaci add-on registrovat do své chrome database, poznat, co daný adresář ve skutečnosti obsahuje (podrobnější popis). Úprava spočívá v nalezení všech výskytů "en-US" a jejich nahrazení "cs-CZ" (ve většině případů by to mělo postačit), v tomto případě ale nesmíme ještě zapomenout změnit řetězec "English(US)" na "Czech (cs-CZ) Language Pack" (název, který je přiřazen českému locale Mozilly). Ve výsledku by měl soubor contents.rdf vypadat takto.

Tím jsme skoro hotovi. Výsledek naší práce zabalíme nazpět do livehttpheaders.jar. Teď již jen zbývá upravit instalační skript, který má mj. na starosti zařazení jednotlivých adresářů do chrome database Mozilly.

Prohlídněte si install.js a všimněte si těchto dvou oblastí:

 9.     const X_LOCALE1 =  "locale/en-US/livehttpheaders/";
10.     const X_LOCALE2 =  "locale/fr-FR/livehttpheaders/";
a
22.     registerChrome(DELAYED_CHROME | LOCALE, getFolder(X_CHROME, X_JAR_FILE), X_LOCALE1);
23.     registerChrome(DELAYED_CHROME | LOCALE, getFolder(X_CHROME, X_JAR_FILE), X_LOCALE2);

které přidávají existující locale (en-US a fr-FR) do chrome. Přidáme řádky
const X_LOCALE3 = "locale/cs-CZ/livehttpheaders/"; a
registerChrome(DELAYED_CHROME | LOCALE, getFolder(X_CHROME, X_JAR_FILE), X_LOCALE3);,
které zajistí přidání českého locale do chrome. Můžete lokalizovat informační hlášky instalátoru (opět v kódování UTF-8 - prezentaci \uXXXX). Upravený soubor bude vypadat takto.

A nakonec výsledek zabalíme do XPI. (Připomínám, že tento krok je lépe dělat na Linuxu, jinak může nastat problém s právy vytvořených souborů při instalaci na Linuxu.) Lokalizovaný XPI soubor je dobré oproti originálnímu malinko přejmenovat, aby bylo znát, že se jedná o českou lokalizaci, např. na livehttpheaders-cs.xpi. A můžeme si nainstalovat výsledek našeho snažení (musíte mít ale zápisová práva do Mozilla chrome adresáře).

Pozn.: Na penguinovi není dobře nastavený MIME typ pro XPI soubory, proto se po kliknutí na předchozí odkaz nezobrazí instalační dialog (já to schválně Vanoušovi hlásit nebudu, ale hned to didakticky využiji jako příklad, co v takové situaci máme dělat :-), prostě si pomůžeme JavaScriptem - instalovat add-ons (pokud ho chcete vidět, jukněte na HTML zdroják). Jinak by bylo třeba jako poslední možnost stáhnout XPI soubor a otevřít jej lokálně - to by mělo fungovat vždy.

Aby se nainstalovaný add-on projevil, je třeba Mozillu restartovat. Pak stačí načíst nějakou stránku a zobrazit si její vlastnosti.

Pokud to neproběhlo tak, jak má (ano, to se někdy stane :-), jsou tu dva možné problémy:

  1. je to stále anglicky
  2. zobrazuje se XML chyba (červená chybová hláška ve spodní části okna prohlížeče)

Jaká jazyková verze lokalizačního souboru je právě nabízena lze zjistit zobrazením adresy chrome://livehttpheaders/locale/livehttpheaders.dtd (budete ji muset do prohlížeče nakopírovat ručně a pak se podívat na zdroják stránky).

Případ 1 by neměl nastat na kompletních českých instalátorech Mozilly, pokud jste se nesnažili před tím nainstalovat originální verzi daného add-on. U Mozilly lokalizované lokalizačními balíčky k němu pravděpodobně dojde a je třeba přepnout Mozillu do angličtiny, restartovat a přepnout zpět do češtiny. Pokud to nepomůže, je to poněkud horší (konflikt s předchozími anglickými verzemi balíčku) a jsou nutné ruční zásahy. To by bylo na delší povídání, tak jen telegraficky, v případě "neřešitelných" problémů se obracejte na forum.czilla.cz:

  • přehození řádků v installed-chrome.txt tak, aby česká lokalizace daného add-on byla před ostatními lokalizacemi
  • smazání XUL.mfasl v uživatelském profilu
  • přepsání "selectedLocale" v záznamu daného add-on v chrome.rdf v uživatelském profilu, případně odstranění celého záznamu pro daný add-ons (po restartu Mozilla připíše do souboru nový záznam)

Případ 2 znamená, že se Mozilla snaží nalézt české locale, najde ho, ale vy jste v něm udělali chybu (zapomenuté uvozovky, špatné kódování či zapomenutá entita) nebo ho nenajde vůbec - v tom případě zkuste trik s přepnutím Mozilly do angličtiny a zpět, jinak opět nastoupí na řadu nepříjemné ruční zásahy. Potřebě ručních zásahů se prakticky vyhnete, pokud se nebudete snažit do Mozilly předem instalovat anglicku verzi daného add-ons. To naštěstí odpovídá tomu, že BFU, který sáhne nejspíše po české Mozille a rovnou po české variantě add-on nezaznamená žádný problém a ti ostatní se holt občas budou muset malinko snažit.

Přídavné aplikace jsou většinou multiplatformní, ale v některých případech nikoliv, zpravidla proto, že obsahují nějaké binární komponenty. Pak autorovi nezbývá než vydávat balíčky pro každou platformu zvlášť (což lokalizátorovi přidělá o něco práce navíc).

Shrnutí, jak probíhá lokalizace:

  1. Přeložit .dtd a .properties pro cs-CZ locale
  2. Upravit contents.rdf pro cs-CZ locale
  3. Upravit install.js
  4. Vše zabalit - pokud možno pod Linuxem

S lokalizací pro Phoenix/Mozilla Firebird bohužel nemám zatím zkušenosti, ale teoreticky by v tom neměl být velký rozdíl.

Při lokalizaci celé Mozilly lze samozřejmě postupovat podobně, ale práci lokalizátorům značně usnadní prográmek Mozilla Translator - mezi jehož přednosti patří např. kontrola správnosti "accesskeys" a snadnější portování překladu z jedné verze na jinou.

Na závěr zbývá dodat nadšeným lokalizátorům odvahy a ačkoliv jsem tu popsal kupu problémů, se kterými se můžete setkat, tak při troše štěstí tomu tak vůbec být nemusí. A pokud si už dáte s lokalizací nějaké přídavné aplikace práci, nezapomeňte nám pak na czilla.cz dát vědět, ať na vás můžeme dát odkaz.

met - martin hassman
CZilla tým

[Tiskni] [Přidat komentář]


Zpět na Novinky
|_ Nastavení & Info _|
Získání účtu?
|_ On-Line DOC _|
Debian Packages
TUXfinder
|_ Zajímavá místa _|
CZilla..
Webdot.cz
ABC Linuxu..
Konference
Linux na MFF UK
Debian
SuSE Linux
Blackhole
Root..
Reboot
Linuxzone.cz
Underground..
Linuxworld
Documentation Archiv
Manualy SK
Linuxsoft.cz..
|_ Linuxová komunita _|
Linux CZ
Linux SK
GNU
SkLUG
Freesoft
|_ Staré dobré sajty _|
Linuxové noviny
Dokumentační projekt
Mikroservis
Školičky
Myslíkovna
|_ Mirror _|
Phuture
|_ Kalendář _|
Přidej akci

|_ Počitadlo _|
    
Server vzniká za pomocí open-source produktů. Mezi nejdůležitější patří GNUDebianLinuxApachePHPMySQLGimp. Vim. Tomcat.
LINUX Trademark Registration of Linus Torvalds from US
UNIX Trademark Registration of X/Open
Copyright Penguin 1998 - 2023. ALL RIGHTS RESERVED