Lokalizacja motywów projektowych
Aby wyświetlać różne napisy pomocnicze w różnych językach (np. "Subskrybuj" lub "Koszyk"), wygodnie jest skorzystać z mechanizmu lokalizacji motywu projektu.
Mechanizm lokalizacji motywu projektu działa na zasadzie gettext: jego wariant w jednym języku (zwykle angielskim) jest używany jako identyfikator ciągu znaków, a tłumaczenie jest określane dla każdego locale dostępnego w frameworku. Jeśli dla któregoś z języków lokalnych nie określono tłumaczenia wiersza, to dla tego języka używany jest identyfikator wiersza.
Wierszy lokalizacji i ich warianty językowe są określone w pliku manifestu theme.xml motywu projektowego jako jeden wspólny element locales i zagnieżdżone elementy locale.
W każdym elemencie locale powinien znajdować się jeden element msgid zawierający identyfikator wiersza lokalizacyjnego oraz dowolna liczba elementów msgstr - jeden dla każdego locale, dla którego wiersz powinien zostać przetłumaczony. Każdy element msgstr powinien posiadać atrybut locale z odpowiednim locale. Jeśli dany element msgstr nie jest konieczny dla danego locale (na przykład, gdy tłumaczenie wiersza pasuje do jego identyfikatora), wówczas nie należy dodawać żadnego elementu msgstr dla tego locale.
Przykład sekcji locales dla pliku theme.xml:
<locales>
<locale>
<msgid>Subscribe for news</msgid>
<msgstr locale="pl_PL">Subskrybuj nowości</msgstr>
</locale>
<locale>
<msgid>Shopping cart</msgid>
<msgstr locale="pl_PL">Koszyk</msgstr>
</locale>
</locales>
Używanie ciągów lokalizacji w szablonach
Do wstawiania zlokalizowanych ciągów do szablonu służy konstrukcja w postaci [`string`]. Poniżej przedstawiono fragment szablonu wykorzystującego ciąg znaków zadeklarowany w poprzednim przykładzie:
<p>[`Subscribe for news`]</p>
Jeśli dla osady korzystającej z tego motywu graficznego wybrano (lub określono automatycznie) polskie ustawienia lokalne (pl_PL), w przeglądarce użytkownika zostanie wyświetlone tłumaczenie ciągu znaków zamiast [`Subscribe for news`]:
<p>Subskrybuj nowości</p>
W przeciwnym razie na stronie zostanie użyty identyfikator tego ciągu:
<p>Subscribe for news</p>
0 komentarzy