--=REKLAMA=--
Joomla 1.5 został wyposażony w narzędzia umożliwiające pełną lokalizację witryny i zaplecza, w tym także szablonów. Dzięki temu można tłumaczyć na język użytkowników napisy umieszczone na stałe w szablonach (np. nazwa witryny, nazwy przycisków) oraz opisy i etykiety umieszczone w pliku templateDetails.xml, a widoczne w edytorze szablonu na zapleczu administracyjnym.
Do umieszczania stałych tekstów w kodzie szablonu służy specjalna klasa statyczna JText, definiująca stałą językową i zwracająca tłumaczenie w bieżącym języku, jeśli jest dostępne, albo angielski oryginał, jeśli tłumaczenie jest niedostępne. Przed zastosowaniem metod tej klasy nie jest wymagane tworzenie egzemplarza obiektu, stąd jej statyczny charakter.
Napisy mogą być tłumaczone za pomocą metody "_()". Załóżmy na przykład, że w szablonie znajduje się angielski napis „Welcome”:
<?php echo 'Welcome'; ?>
Jeśli chcemy, aby ten napis „Welcome” był tłumaczony, zapiszemy w szablonie następującą instrukcję:
<?php echo JText::_( 'Welcome' ); ?>
Taka instrukcja spowoduje, że system przeszuka odpowiedni plik języka, np. języka polskiego, poszukując wśród deklaracji napisów takiej, której lewa strona brzmi „WELCOME”. Wielkość znaków w napisie nie ma znaczenia. Przykładowo, jeśli w plikach języka polskiego znajdzie się deklaracja:
WELCOME=Witaj!
do przeglądarki użytkownika zostanie wysłany tekst „Witaj!”. Jeśli użytkownik będzie wyświetlać witrynę w języku niemieckim, przeszukany zostanie plik języka niemieckiego, w którym może się znajdować linia:
WELCOME=Wilkommen
W takim przypadku do przeglądarki zostanie wysłany tekst „Wilkommen”.
Jeśli odpowiedni plik języka nie zostanie znaleziony albo nie będzie w nim deklaracji „WELCOME = Przetłumaczony napis”, do przeglądarki zostanie wysłany tekst angielski, umieszczony w instrukcji w nawiasie, a więc „Welcome”.
A zatem z klasy JText korzystamy zawsze, gdy chcemy umieścić w kodzie szablonu jakikolwiek tekst, który będzie widoczny dla odwiedzających witrynę. Takie napisy umieszczamy w szablonie za pomocą instrukcji PHP echo, np.:
<?php echo JText::_('Site name'); ?>