Lokalizacja opisu rozszerzenia
z Mozilla Developer Center, polskiego centrum programistów Mozilli.
Wprowadzono w Gecko 1.9
Ten artykuł obejmuje funkcje wprowadzone w Firefoksie 3
Spis treści |
[edytuj] Lokalizowanie w Gecko 1.9
Gecko 1.9 wprowadza nowe, bardziej rozbudowane metody lokalizacji opisów dodatków oraz innych meta danych. Teraz wszystkie opisy występują w pliku install.rdf we własności em:localized. Każdy z nich posiada co najmniej jedną własność em:locale określającą lokalizację, dla której należy ją użyć oraz strumienie dla danej lokalizacji. Poniższy przykład demonstruje opisaną budowę (dla większej przejrzystości większość własności manifestu zostało usuniętych):
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>TabSidebar@blueprintit.co.uk</em:id>
<em:localized>
<Description>
<em:locale>de-DE</em:locale>
<em:name>Tab Sidebar</em:name>
<em:description>Zeigt in einer Sidebar Vorschaubilder der Inhalte aller offenen Tabs an.</em:description>
</Description>
</em:localized>
<em:localized>
<Description>
<em:locale>es-ES</em:locale>
<em:name>Tab Sidebar</em:name>
<em:description>Muestra una vista previa de sus pestañas en su panel lateral.</em:description>
</Description>
</em:localized>
<em:localized>
<Description>
<em:locale>nl-NL</em:locale>
<em:name>Tab Sidebar</em:name>
<em:description>Laat voorbeeldweergaven van uw tabbladen in de zijbalk zien.</em:description>
</Description>
</em:localized>
<em:name>Tab Sidebar</em:name>
<em:description>Displays previews of your tabs in your sidebar.</em:description>
</Description>
</RDF>
W ten sposób można lokalizować wszystkie meta dane wymienione w dalszej części artykułu w sekcji Lokalizowane łańcuchy znaków. Informacje lokalizacyjne, dostarczane przez własność em:localized, można zastąpić zestawem własności lokalizacyjnych omówionych w sekcji Lokalizowanie opisu przed Gecko 1.9.
Proces doboru kodu lokalizacji dla własności em:localized przebiega następująco:
- Jeśli we własności
em:localeistnieje kod odpowiadający żądanej lokalizacji, należy go użyć. - Jeśli występuje kod nie w pełni odpowiadający lokalizacji, należy użyć część najbardziej odpowiadającą. Części powinny być oddzielone myślnikiem (np. kod pl będzie pasował do pl-PL i odwrotnie).
- Jeśli występuje więcej niż jedna lokalizacja z tą samą ilością pasujących części, należy użyć najbardziej ogólną (np. en dla kodu en-GB i en-US).
W trakcie instalacji będzie wyszukiwana lokalizacja właściwa dla obecnie używanych ustawień językowych aplikacji. Jeśli nie zostanie znaleziona, będzie użyta lokalizacja domyślna - en-US.
Jeśli kod jest określony i nie ma pasującej własności em:localized dla obecnie używanych ustawień językowych lub lokalizacji en-US, zostanie użyta, tak jak to było przed wprowadzeniem Gecko 1.9, lokalizacja określona w manifeście instalacyjnym.
[edytuj] Lokalizowanie opisu przed Gecko 1.9
W starszych wersjach Gecko, aby zlokalizować opis dodatku przeznaczonego dla aplikacji opartych na toolkicie (Firefox, Thunderbird, Sunbird), twórcy dodatków muszą zrobić to stosując specjalną metodę definiowania tego opisu.
- Jeśli w rozszerzeniu nie występuje, należy stworzyć lokalizacyjny plik własności dla każdej lokalizacji. Aby zapewnić prawidłowe wyświetlanie znaków w różnych językach, plik ten musi mieć kodowanie UTF-8 i być zapisany bez BOM (ang. Byte Order Mark - znacznik kolejności bajtów).
- Do każdego lokalizacyjnego pliku własności dodać poniższy wiersz, gdzie ID_ROZSZERZENIA, to identyfikator rozszerzenia
<em:id>określony w pliku install.rdf, a ZLOKALIZOWANY_OPIS, to opis rozszerzenia, jaki chce mu się nadać w danym języku.extensions.ID_ROZSZERZENIA.description=ZLOKALIZOWANY_OPIS
- Jeśli w rozszerzeniu nie występuje, należy stworzyć domyślny plik własności.
- Dodać do niego poniższy wiersz (gdzie ID_ROZSZERZENIA to identyfikator rozszerzenia
<em:id>pochodzący z pliku install.rdf, a ŚCIEŻKA_DO_PLIKU_LOKALIZACYJNEGO jest ścieżką dostępu do pliku lokalizacyjnego utworzonego w pierwszym kroku):pref("extensions.ID_ROZSZERZENIA.description", "ŚCIEŻKA_DO_PLIKU_LOKALIZACYJNEGO");
[edytuj] Lokalizowane łańcuchy znaków
Stosując powyższą metodę można lokalizować następujące meta dane dodatku:
- name (nazwa)
- description (opis)
- creator (autor)
- contributor (współtwórca)
- homepageURL nazwa (adres URL strony domowej)
[edytuj] Lokalizowanie list
W przypadku, gdy istnieje kilka takich samych wartości, indeks numeryczny przypisany do końcowej nazwy preferencji stanowi o ich rozróżnianiu:
extensions.ID_ROZSZERZENIA.contributor.1=PIERWSZA_ZLOKALIZOWANA_NAZWA
extensions.ID_ROZSZERZENIA.contributor.2=DRUGA_ZLOKALIZOWANA_NAZWA
extensions.ID_ROZSZERZENIA_ID.contributor.3=TRZECIA_ZLOKALIZOWANA_NAZWA
pref("extensions.ID_ROZSZERZENIA.contributor.1", "ŚCIEŻKA_DO_PLIKU_LOKALIZACYJNEGO");
pref("extensions.ID_ROZSZERZENIA.contributor.2", "ŚCIEŻKA_DO_PLIKU_LOKALIZACYJNEGO");
pref("extensions.ID_ROZSZERZENIA.contributor.3", "ŚCIEŻKA_DO_PLIKU_LOKALIZACYJNEGO");
Powyższe *_ZLOKALIZOWANE_NAZWY można zlokalizować w następujący sposób:
- Programista:
nazwisko_programisty - Tłumacz:
nazwisko_tłumacza - Współtwórca:
nazwisko_współtwórcy