Kilkanaście dni temu Paweł Wimmer na swoim blogu poruszył kwestie lokalizacji rozszerzeń do Firefoksa. Po krótkim wpisie wywiązała się dyskusja, z której wyłoniły się przyczyny oraz główne powody spadającej ilości rozszerzeń w PBR. We wspomnianej dyskusji bardzo szybko wyszło, dlaczego tak się dzieje. W skrócie można powiedzieć, że brak jest wsparcia i pomocy przy lokalizacji rozszerzeń oraz ich dalszej aktualizacji (podobny problem istnieje, jeśli się spojrzy na MDC).
W dyskusji okazało się, że są “nowe” i chętne osoby, które mogły by pomóc w lokalizacji rozszerzeń. Leszek(teo)Życzkowski sporządził przewodnik dla osób chętnych do pomocy przy tłumaczeniu rozszerzeń. Poniżej znajduje się tutorial jego autorstwa, w którym szczegółowo pisze jak, co i gdzie należy wykonać, aby utworzyć lokalizację rozszerzenia, które chcielibyśmy mieć w języku polskim. Więcej nt. lokalizacji dowiecie się poniżej, a ze swojej strony chcę dodać, że warto byłoby przeprowadzić jakąś akcje, dzięki której tłumaczenie rozszerzeń nabrało by nowego oblicza (o MDC już nie będę wspominał, bo tam zawsze jest potrzebna pomoc). Kończąc, poniżej zamieszczam wspomniany poradnik dla osób chętnych wspomóc PBR…
Tutorial lokalizacji rozszerzeń do Firefoksa i Thunderbirda…
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:
- Trochę umiejętności obsługi komputera i programów
- Znajomość języka angielskiego
- Znajomość języka polskiego (dysleksja i dysgrafia dyskwalifikują chętnego)
Potrzebne narzędzia (najprostszy zestaw):
- 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. Posiada jeszcze wiele innych przydatnych podczas pracy lokalizatora funkcji, no i jest oczywiście freeware!
- 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 posiada 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 posiadają 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
Ale znowu niespodzianka. Katalog “chrome” zawiera znowu jakiś spakowany plik o rozszerzeniu .jar. Taka budowa rozszerzenia wskazuje, że działa ono także w systemie Linux.
Bez paniki. Plik .jar, to nic innego jak plik .zip tylko z rozszerzeniem .jar. Tak więc dekompresor szybciutko daje sobie z nim radę i w środku znowu widzimy 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
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-PL” lub “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-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 przypatrzmy się, 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:
contents. rdf – dane instalacyjne (czasami może go nie być, dane instalacyjne zostały umieszczone we wcześniejszych plikach instalacyjnych)
- 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) i zacznijmy od pliku “contents.rdf“.
Zmieniamy w nim następujące elementy:
Jeśli są:
-English (US) na Polski (PL)
- chrome:author="xxxxxxxxxx" na chrome:author="twoje_nazwisko"
Teraz plik .dtd:
Znajdujemy w nim wiersze wyglądające mniej więcej tak:
<!ENTITY xxxxxxxxxxxx "Zzzzzzzzz">
gdzie: Zzzzzzzzz jest elementem do tłumaczenia, czyli tłumaczymy to co znajduje się pomiędzy znakami cytowania " ".
Należy zwrócić baczną uwagę, aby nie zgubić żadnych innych znaków w encji (entity), bo wówczas po zainstalowaniu rozszerzenia będziemy mieli doczynienia ze zjawiskiem “czerwonych znaków” na dole okna przeglądarki lub nie będzie działało rozszerzenie.
Uwaga! W tłumaczonym tekście nie wolno używać następujących znaków:
Niedozwolone Zamienniki
& &
< <
> >
" "
% %
' '
No to jeszcze tylko 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ć:
xxxxxxxxxx=Zzzzzzzzz. Proste! No tak – proste i łatwo określić co się w nich tłumaczy. Wszystko po znaku równości (=).
Uwaga! W tłumaczonym tekście nie wolno używać następujących znaków:
Niedozwolone Zamienniki
" \"
' \'
\ \\
Czyli dany znak trzeba poprzedzić odwróconym ukośnikiem “\”
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:
- Kopiujemy katalog “
pl-PL” do katalogu “locale“
- Usuwamy z niego wszystkie pozostałe lokalizacje
- Pakujemy katalogi znajdujące się poprzednio w archiwum
*.jar do takiego samego archiwum (plik .zip z nazwą .jar) i umieszczamy go w katalogu chrome
Teraz należałoby wszystkie pliki i katalogi spakować do archiwum *.xpi, ale to za chwilę, bo 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 chrome.manifest w wierszu wyglądającym mniej więcej tak:
locale console2 en-US jar:chrome/console2.jar!/locale/en-US/console2/
gdzie: console2 w tym przykładzie są nazwami katalogów rozszerzenia Console2, w innym będą inne nazwy, zmieniamy “en-US” na “pl-PL”
Pozostałe takie wiersze z określeniami innych lokalizacji usuwamy. W install.rdf w wierszu o takim wyglądzie:
<description>Krótki_opis_rozszerzenia.</description>
Krótki_opis_rozszerzenia jest po angielsku, zamieniamy na opis po polsku.
Jeśli jest wiersz:
<em:locale>locale/en-US/jakaś_nazwa/<em:locale>
zmieniamy w nim “en-US” na “pl-PL“, pozostałe podobne wiersze usuwamy.
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. Przekład tekstów informatycznych na polski
2. Gramatyka języka polskiego
3. Mozilla Developer Center po polsku
4. Tworzenie rozszerzeń na MozzilaZine
5. Tworzenie rozszerzeń
6. Tworzenie rozszerzeń
7. Słownik Języka Polskiego
–
Napisał: Leszek (Teo) Życzkowski
No, to teraz tylko pozostało zabrać się do roboty…