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 ma 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="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="https://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>[email protected]</em:id> <em:localized> <Description> <em:locale>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</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</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:locale
istnieje 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.
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");
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)
- homepageURL (nazwa - adres URL strony domowej)
Lokalizowane listy
W przypadku, gdy istnieje kilka takich samych wartości, indeks numeryczny przypisany do końcowej nazwy preferencji stanowi o kolejności ich wyświetlania:
extensions.ID_ROZSZERZENIA.contributor.1=PIERWSZA_ZLOKALIZOWANA_NAZWA extensions.ID_ROZSZERZENIA.contributor.2=DRUGA_ZLOKALIZOWANA_NAZWA extensions.ID_ROZSZERZENIA.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");
Tym sposobem można zlokalizować następujące elementy:
- developer (nazwisko programisty)
- translator (nazwisko tłumacza)
- contributor (nazwisko współtwórcy)