Podobno nie ma odpowiednich informacji na temat, jak robić lokalizacje rozszerzeń. Postanowiłem stworzyć taki mini tutorial, który pozwoli mniej doświadczonym fanom Firefoksa, czy Thunderbirda spróbować swoich sił na niwie lokalizacji rozszerzeń.
Tutorial ten przeznaczony jest do lokalizacji prawidłowo napisanych rozszerzeń dla Firefoksa i Thunderbirda w wersjach 1.0 i powyżej.
Tutorial lokalizacji rozszerzeń do Firefoksa i Thunderbirda dla wersji 1.0 i wyższych
Tutorial ten nie ma zastosowania dla rozszerzeń zbudowanych za pomocą SDK (Jetpack).
Aby dobrze zlokalizować na język polski rozszerzenie potrzeba (nie)dużo wiedzy i samozaparcia.
Wbrew pozorom nie jest to jednak takie trudne i mając trochę wiedzy komputerowej można szybko nauczyć się tej magii.
Potrzebna wiedza:
1. Trochę umiejętności obsługi komputera i programów
2. Znajomość języka angielskiego
3. Znajomość języka polskiego (dysleksja i dysgrafia dyskwalifikują chętnego)
Potrzebne narzędzia (najprostszy zestaw)
1. Edytor tekstu z możliwością kodowania UTF-8 i wyłączenia BOM (ang. Byte Order Mark – znacznik kolejności bajtów). Zalecany przez moją osobę - PSPad. Zawiera jeszcze wiele innych przydatnych podczas pracy lokalizatora funkcji, no i jest oczywiście freeware!
2. Kompresor, dekompresor plików - każdy, który dobrze radzi sobie z plikami spakowanymi za pomocą kompresji .zip.
Moje zalecenie – Total Commander - Tak! Otóż TC z zainstalowanymi wtyczkami WCX to jest totalne ułatwienie pracy z rozszerzeniami. Wszystkie potrzebne wtyczki ma wersja TC PowerPack.
Wiedza jest, narzędzia też, no to zaczynamy odczarowywać rozszerzenia i zajrzyjmy do ich wnętrza. Jak? Prosta sprawa. Rozszerzenia to nic innego niż archiwum .zip, ale zamiast rozszerzenia .zip mają rozszerzenie pliku .xpi. Skoro .xpi to nic innego niż .zip, więc potraktujmy je jakimś dekompresorem. No i cóż się okazuje? W środku znajdują się katalogi i pliki mniej więcej o takiej strukturze:
Katalogi
chrome - właściwe bebechy rozszerzenia
default - domyślne ustawienia rozszerzenia
Pliki
chrome.manifest - plik instalacyjny
install.rdf - plik instalacyjny
Katalog „chrome” zawiera katalogi:
content – to budowa rozszerzenia pliki .xul i .js
locale – to nas najbardziej interesuje, tu są katalogi i pliki językowe
skin – obrazki, plik .css
Czasami w starszego typu rozszerzeniach po rozpakowaniu nie widać katalogu chrome, jest za to katalog z rozszerzeniem *.jar. Jest to archiwum .zip zawierające katalogi content, locale, skin. By dostać się do tych katalogów, należy to archiwum, tak jak poprzednie z rozszerzeniem .xpi, rozpakować.
Skoro przebrnęliśmy przez gąszcz spakowanych archiwów, katalogów i plików, wiemy co w nich się znajduje – przedpole zostało przygotowane. Zabierajmy się zatem do roboty.
Jak wcześniej wspomniałem to co nas najbardziej interesuje, to katalog „locale”, w którym znajdują się podkatalogi lokalizacji tzn. języków, na jakie to rozszerzenie zostało przetłumaczone. Jeśli w nim znajduje się katalog „pl” lub „pl-PL” to nie mamy tutaj nic do roboty, bo już ktoś zrobił to co my chcieliśmy zrobić. Jeśli natomiast takiego katalogu nie ma, to jest robota dla nas.
Ponieważ dla wszystkich aplikacji Mozilli podstawowym językiem jest angielski-amerykański (en-US), on też posłuży nam jako podstawa tłumaczenia na język polski, a robimy to w następujący sposób:
- kopiujemy katalog „en-US” w dowolne miejsce na dysku
- zmieniamy mu nazwę na „pl”
- przystępujemy do tłumaczenia
Zanim jednak zaczniemy tłumaczenie proponuję zainstalowanie rozszerzenia w wersji angielskiej. Jeśli nie ma pliku przeznaczonego dla konkretnej wersji językowej programu, to domyślnie instaluje się wersja angielska. Będzie łatwiej wykonywać tłumaczenie widząc umiejscowienie tłumaczonych elementów.
No to teraz popatrzmy, co znajduje się w tym katalogu lokalizacji.
Otóż, może w nim znajdować się kolejny podkatalog albo pliki. Jeśli jest podkatalog, to interesujące nas pliki będą wewnątrz tego podkatalogu i trzeba do nich dotrzeć. Niemniej w obu przypadkach docieramy do następujących plików:
- pliki z rozszerzeniem .dtd – dane z tych plików pobierane są przez pliki *.xul
- pliki z rozszerzeniem .properties – dane z tych plików pobierane są przez pliki *.js
Wszystkie te pliki zawierają elementy, które trzeba przetłumaczyć. Uruchamiamy edytor tekstu – przypominam o ustawieniu edytora na kodowanie UTF-8 i nie wstawianie BOM.
Rozpocznijmy od pliku *.dtd.
Znajdujemy w nim wiersze wyglądające mniej więcej tak:
- Kod: Zaznacz cały
<!ENTITY xxxxxxxxxxxx "Zzzzzzzzz">
Należy zwrócić baczną uwagę, aby nie zgubić żadnych innych znaków w encji (entity), bo wówczas po zainstalowaniu rozszerzenia nie będzie ono działało.
Uwaga! W tłumaczonym tekście nie wolno używać następujących znaków:
- Kod: Zaznacz cały
Niedozwolone Zamienniki
& &
< <
> >
" "
% % ; (bez spacji po ostatniej cyfrze)
No to teraz plik *.properties. Ten znowu wygląda inaczej – nie mogliby jakoś tego ujednolicić? No niestety nie, bo inne są wymagania i przetwarzanie w plikach *.xul i *.js. Wiersze w tym pliku mają postać:
- Kod: Zaznacz cały
xxxxxxxxxx=Zzzzzzzzz
Uff! Robota z tłumaczeniem zakończona. Teraz trzeba uporządkować ten cały bałagan i sprawdzić nasz wysiłek intelektualny i umysłowy, a więc spakować wszystkie pliki i katalogi tak, aby struktura ich wyglądała, jak na początku i zainstalować rozszerzenie.
Zabieramy się za to w następujący sposób:
1. Kopiujemy katalog „pl” do katalogu „locale”.
2. Usuwamy wszystkie pozostałe katalogi.
3. Teraz w plikach instalacyjnych należy dokonać kilku zmian, tak aby nasza nowa lokalizacja została rozpoznana przez aplikację. W tym celu musimy wyedytować pliki install.rdf i chrome.manifest.
- w pliku chrome.manifest w wierszu wyglądającym mniej więcej tak:
- Kod: Zaznacz cały
locale slideshow en-US chrome/locale/en-US/
Pozostałe takie wiersze z określeniami innych lokalizacji usuwamy.
- w install.rdf w wierszu o takim wyglądzie:
- Kod: Zaznacz cały
<description>Krótki_opis_rozszerzenia.</description>
W rozszerzeniach dla Firefoksa 3 i nowszych wersji mogą występować jeszcze inne encje. Cała sekcja tych encji rozpoczyna się od encji:
- Kod: Zaznacz cały
<em:localized>
Służą one do szczegółowej lokalizacji elementów takich jak:
* lokalizacja (locale np. pl)
* nazwa rozszerzenia (name)
* opis rozszerzenia (description)
* autor (author)
* współtwórca (contributor)
* autor danego tłumaczenia (translator)
* adres URL strony domowej (homepageURL )
Jeśli występuje sekcja <em:localized> nie tłumaczymy encji
- Kod: Zaznacz cały
<description>Krótki_opis_rozszerzenia.</description>
W sekcji <em:localized> pierwszy wpis zawierający <em:locale>xx</em:locale>, gdzie xx jest kodem lokalizacji, zmieniamy na <em:locale>pl</em:locale> i dokonujemy tłumaczenia opisu rozszerzenia w tej sekcji.
4. Teraz już ostatni krok przed instalacją rozszerzenia – pakujemy wszystkie katalogi i pliki do archiwum .zip z rozszerzeniem .xpi.
Teraz sprawdzenie tego, co zrobiliśmy, czyli instalacja naszego rozszerzenia i później jego korekty.
Jeśli dotrwałeś do tego momentu, to znaczy, że jesteś zdesperowany, aby tłumaczyć rozszerzenia, zatem należy ci się nagroda.
Jak wcześniej wspomniałem polecam do pracy z rozszerzeniami Total Commandera z zainstalowanymi wtyczkami WCX. Dzięki nim odpada cały galimatias z rozpakowywaniem i pakowaniem archiwów. Po prostu archiwa otwiera i operuje się na nich, jak na zwykłych katalogach. Pozostaje tylko końcowe spakowanie do pliku *.xpi, które też można ułatwić maksymalnie.
Pożyteczne odnośniki:
1. Poradnik mojego autorstwa dotyczący poprawności tłumaczeń na język polski
2. Mozilla Developer Center po polsku
3. Tworzenie rozszerzeń na MozzilaZine
4. Słownik Języka Polskiego
Proszę wszystkie osoby, które chciałyby współpracować ze mną o zgłaszanie się w tym wątku. Nawiążę z wami kontakt osobisty.
Chciałbym podkreślić, że zależy mi na osobach odpowiedzialnych, które będą współpracowały przy dalszych aktualizacjach zlokalizowanych przez nie rozszerzeń.
