--=REKLAMA=--
Ta strona wyjaśnia różnice w specyfikacji plików językowych pomiędzy wersjami 1.5 a 1.6/1.7. W Joomla! 1.7 nie wprowadzono żadnych zmian w tych specyfikacjach.
Specyfikacja plików językowych ciągle jest w fazie rozwoju i nie przewiduje się powrotu do centralnej strony specyfikacji.
Specyfikacja językowa dla Joomla! 1.5 dostępna jest pod adresem Tworzenie pliku definicji językowych.
Dodatkowe informacje znajdziesz tutaj (ang.)
Reasumując, plik .ini powinien zawierać następujące pary Kluczy i Wartości:
KLUCZ_DO_TŁUMACZENIA="Wartość, czyli przetłumaczony tekst."
Jeśli format pliku INI jest błędny, tłumaczenie nie zostanie poprawnie zdefiniowane. Większość wersji PHP załaduje plik językowy do punktu, w którym pojawia się błąd, ale nie wyświetli żadnego komunikatu o błędzie.
Aby przekonwertować plik .ini z Joomla! 1.5 na Joomla! 1.6/1.7 możemy użyć jednej z dwóch możliwości.
Albo użyjemy odpowiedniego skryptu do konwersji - np. taki jak ten (ang.), albo zrobimy to ręcznie za pomocą naszego ulubionego edytora tekstowego, obsługującego kodowanie UTF-8 bez BOM.
Rozwiązanie ręczne też jest proste i łatwe do wykonania:
Otwórz plik .ini który chcesz edytować. Następnie za pomocą narzędzi znajdź / zamień pozamieniaj automatycznie istniejące cudzysłowy, dodaj nowe cudzysłowy, jeśli są potrzebne w ciągu i zaktualizuj komentarze.
Wszystkie pliki językowe traktuj zgodnie z konwencją nazewnictwa język.rozszerzenie.ini. Na przykład, plik polskiego tłumaczenia komponentu com_przykladowy powinien nosić nazwę pl-PL.com_przykladowy.ini.
Pliki tłumaczeń przechowywane są wewnątrz poszczególnych katalogów dostępnego języka. Na przykład, polskie pliki językowe dla witryny przechowywane są wewnątrz katalogu language/pl-PL. Tak więc ścieżka dostępu do polskiego pliku tłumaczenia dla com_przykladowy wygląda następująco: language/pl-PL/pl-PL.com_przykladowy.ini. Podobnie, plik tłumaczenia zaplecza, ma pełną ścieżkę administrator/language/pl-PL/pl-PL.com_przykladowy.ini.
Oczywiście pliki te należy zdefiniować w pliku manifestu .XML danego rozszerzenia, inaczej pliki te nie zostaną zainstalowane w naszym Joomla!. Aby umieścić pliki językowe w pliku .XML, można użyć tej samej składni co z Joomla! 1.5, tj.:
<languages folder="ścieżka/do/katalogu"> <language tag="en-GB">en-GB/en-GB.com_foobar.ini</language> <language tag="en-GB">en-GB/en-GB.com_foobar.sys.ini</language> </languages>
Każde rozszerzenie może mieć także "lokalny" plik z tłumaczeniami. Na przykład, możesz mieć plik języka polskiego w katalogu administrator/components/com_przykladowy/language/pl-PL/pl-PL.com_przykladowy.ini. Te "lokalne" pliki nie muszą być wymienione w pliku manifestu XML. W rzeczywistości, użytkownik zawsze może stworzyć katalog z językiem, wewnątrz katalogu rozszerzenia, tworząc podkatalog nazwany jak kod języka i wewnątrz niego utworzyć plik INI z tłumaczeniem.
Rozszerzenia Joomla! muszą posiadać również pliki sys.ini, które są używane:
Pliki te mają podobne nazewnictwo do głównych plików językowych i można je przechowywać w miejscu zaplecza. Jeśli są one jedynie przechowywane, ich Klucze - Wartości nie zostaną użyte przy instalacji.
Na przykład, polski plik tłumaczenia sys.ini komponentu com_przykladowy, jest przechowywany w administrator/language/pl-PL/pl-PL.com_przykladowy.sys.ini i jego wariant w administrator/components/com_przykladowy/language/pl-PL/pl-PL.com_przykladowy.sys.ini.
WAŻNE! Aby załadować plik tłumaczenia automatycznie zaraz po instalacji, należy go przechowywać w katalogu naszego rozszerzenia. Jeśli posiadamy tylko jeden plik tłumaczenia sys.ini, w katalogu languages naszego rozszerzenia, to zostanie on załadowany i używany w zapleczu administracyjnym.
Pliki tłumaczenia sys.ini przechowywane w katalogu language systemu Joomla! ZAWSZE nadpisują te przechowywane w katalogu języka naszego rozszerzenia, z wyjątkiem procesu instalacji, gdzie używany jest plik tłumaczenia sys.ini znajdujący się w katalogu językowym rozszerzenia. Oznacza to że możemy mieć dwa pliki sys.ini. Umożliwi nam to zdefiniowanie dwóch róznych informacji w Kluczu pliku manifestu XML <description>COM_PRZYKLADOWY_XML_OPIS</description>
Dzięki temu podczas instalacji możemy wyświetlić komunikat instalacyjny, a podczas edycji naszego rozszerzenia w zapleczu administracyjnym inny komunikat informacyjny.
Składniki menu, widoczne w menu Komponentu Panelu Administratora, zawsze pochodzą z tłumaczenia Klucza COM_PRZYKLADOWY komponentu o nazwie com_przykladowy (czyli katalogu instalacyjnego komponentu, pisane DUŻYMI LITERAMI) . Jest to znaczna różnica w porównaniu do plików tłumaczenia .ini dla menu w Joomla! 1.5 !
Najlepszym sposobem na zobrazowanie tych konwencji, jest pobranie popularnych rozszerzeń dla Joomla! 1.6 z JED i analiza ich treści, w prawdziwym duchu Wolnego i Otwartego Oprogramowania.
Joomla! automatycznie ładuje pliki z tłumaczeniami, gdy użytkownik uzyskuje dostęp do komponentu.
Aby załadować dowolne pliki języka w rozszerzeniu, można użyć następującego kodu:
$language = JFactory :: getLanguage ( ) ; $language -> load ( 'com_nazwakomponentu' ) ;
lub dla specyfikacji PHP5
JFactory :: getLanguage ( ) -> load ( 'com_nazwakomponentu' ) ;
Możliwe także jest, wymuszenie załadowania innych plików językowych niż wskazują na to ustawienia językowe danego użytkownika, zarówno dla zaplecza jak i witryny.
Na przykład można załadować pliki językowe angielskie, użytkownikowi z językiem polskim. Dzięki temu Klucze nie przetłumaczone na język polski, zostaną wyświetlone w języku angielskim, a nie za pomocą samych Kluczy.
Dla zaplecza :
$language = JFactory :: getLanguage ( ) ; $language -> load ( 'com_nazwakomponentu' , JPATH_ADMINISTRATOR , 'en-GB' , true ) ; $language -> load ( 'com_nazwakomponentu' , JPATH_ADMINISTRATOR , null , true ) ;
Dla witryny :
$language = JFactory :: getLanguage ( ) ; $language -> load ( 'com_nazwakomponentu' , JPATH_SITE , 'en-GB' , true ) ; $language -> load ( 'com_nazwakomponentu' , JPATH_SITE , null , true ) ;
» danielg28,