--=REKLAMA=--

Obsługa wielojęzyczności w rozszerzeniach

Z Joomla!WikiPL

Wersja Zwiastun (dyskusja | edycje) z dnia 03:16, 25 sie 2009

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

Celem tego dokumentu jest zestawienie kilku istotnych wytycznych dla projektantów rozszerzeń dla Joomla 1.5, aby zapewnić ich użytkownikom łatwy sposób dostosowania rozszerzenia do użycia w języku ojczystym. Wskazówki poniższe nie są regułami ograniczającymi swobodę rozwoju i dystrybucji. Ale rozszerzenia oparte na tych wskazówkach będą elastyczniejsze i łatwiejsze w tłumaczeniu, co będzie miało niewątpliwie wpływ na ich wykorzystanie i popularność.

Do NOT use hard coded language text

Moduł (np. mod_jakismodul) z następującym twardo kodowanym tekstem w języku holenderskim w pliku manifestu XML (instalacyjnym i konfiguracyjnym) musi być przeanalizowany i na nowo napisany do obsługi każdego innego języka:

<param name="dateformat" type="text" default="%A %d %B %Y, %H:%M" 
 label="Datum / Tijd formaat" description="Gebruik de PHP strftime datum en tijd opmaak." />
<param name="posttext" type="text" default="" 
 label="Tekst achter datum" description="Eventuele tekst die achter de datum wordt getoond." />

Stosuj zawsze etykiety językowe

Ten sam plik instalacyjny modułu można uczynić łatwym do tłumaczenia dzięki zastosowaniu etykiet językowych, np.

<param name="dateformat" type="text" default="%A %d %B %Y, %H:%M" 
 label="DATUMTIJDFORMAAT" description="DATUMTIJDFORMAATBESCHR" />
<param name="posttext" type="text" default="" 
 label="TEKSTACHTER" description="TEKSTACHTERBESCHR" />

Do przetłumaczenia na inny język potrzebny jest jedynie plik językowy nl-NL.mod_somemodule.ini, aby można sporządzić tłumaczenie na dowolny inny język:

DATUMTIJDFORMAAT = Datum / Tijd formaat
DATUMTIJDFORMAATBESCHR = Gebruik de PHP strftime datum en tijd opmaak.
TEKSTACHTER = Tekst achter datum
TEKSTACHTERBESCHR = Eventuele tekst die achter de datum wordt getoond.

Używaj w etykietach angielskiego

Poprzedni przykład i etykietami językowymi i pliki językowym jest łatwiejszy do przetłumaczenia, ale użytkownicy nie-Holendrzy będą mieli spore trudności w zrozumieniu pliku językowego. Dlatego używaj zawsze etykiet w języku angielskim.

<param name="dateformat" type="text" default="%A %d %B %Y, %H:%M" 
 label="DATETIMEFORMAT" description="DATETIMEFORMATDESCR" />
<param name="posttext" type="text" default="" 
 label="TEXTAFTER" description="POSTTEXTDESCR" />

Te same etykiety zastosuj np. w holenderskim pliku językowym nl-NL.mod_somemodule.ini

DATETIMEFORMAT = Datum / Tijd formaat
DATETIMEFORMATDESCR = Gebruik de PHP strftime datum en tijd opmaak.
TEXTAFTER = Tekst achter datum
POSTTEXTDESCR = Eventuele tekst die achter de datum wordt getoond.

Dołącz angielski plik językowy

I znowu powyższy przykład jest łatwiejszy do tłumaczenia dzięki angielskim etykietom. Ale nie każdy jest w stanie przeczytać i przetłumaczyć treść zapisaną w w pliku języka holenderskiego. A że wielu ludzi potrafi czytać teksty w języku angielskim, dołącz przynajmniej plik języka angielskiego. Tłumaczenie z języka angielskiego dla większości ludzi jest o wiele łatwiejsze, niż z innych języków.

en-GB.mod_somemodule.ini

DATETIMEFORMAT = Date/Time format
DATETIMEFORMATDESCR = Use the PHP strftime formatting.
TEXTAFTER = Text after date
POSTTEXTDESCR = Any text that should be placed after the date.

Innym powodem, dla którego warto dołączyć plik języka angielskiego jest pomoc tłumaczom korzystającym z komponentu Pomocnik tłumacza, obsługującym tworzenie plików w innych językach. Projektanci komponentu założyli, że językiem podstawowym, na którym opierane są tłumaczenia, jest pliki języka angielskiego - en-GB.

PHP strftime

Kraje całego świata leżą w różnych strefach czasowych, obowiązują w nich różne zwyczajowe sposoby formatowania daty i czasu. Prosimy korzystać w swoich rozszerzeniach z funkcji PHP strftime, która automatycznie formatuje datę i czas, ponieważ jest oparta na ustawieniach językowych.

Stosuj UTF8

Wszystkie pliki językowe .ini powinny być zapisane w kodowaniu utf bez znacznika BOM, aby wyświetlać prawidłowo znaki spoza zakresu ASCII [..z] i [A..Z].

es-ES.mod_somemodule.ini

DATETIMEFORMAT = Formato de fecha/tiempo
DATETIMEFORMATDESCR = Usan el PHP strftime formateo.
TEXTAFTER = Texto después de Fecha
POSTTEXTDESCR = Cualquier texto que debería ser colocado después de la fecha.

Wyraz después jest kodowany w UTF-8 i zostanie wyświetlony jako después.

Grupuj logicznie definicje stałych w pliku językowym

Długie pliki językowe są trudne w czytaniu. Spróbuj pogrupować deklaracje językowe logicznie i zastosować linie komentarza (rozpoczynane od znaku "#") do opisu logicznej grupy encji. Dobrym przykładem jest jest rdzenny plik językowy Joomla /language/en-GB/en-GB.ini, w którym wyodrębniono kilka grup: format daty, miesiące, dnie, tygodnie, strefy czasowe, kodowanie listów elektronicznych i inne.

Inną możliwością jest zastosowanie nawiasów kwadratowych' jak tutaj: [To jest grupa parametrów rozszerzonych]

Kontrola wersji plików tłumaczeń

Pamiętaj, że Twoje rozszerzenie może być stosowane w wielu językach. Wydanie nowej wersji rozszerzenia może przynieść także zmiany w domyślnym pliku języka. Gdy Twoje rozszerzenie ma duży plik językowy, tłumacze mogą mieć spore trudności w odnalezieniu zmian. Prosimy, ułatwiaj im zadanie, na ile to możliwe. Niektórzy projektanci umieszczają nowe deklaracje językowe na początku lub na końcu pliku, co powoduje, że aktualizacja tłumaczenia jest łatwiejsza. Można również dodawać po znaku # informacje o zmianach (np. z numerem wersji - wydania).

[Prosimy o sugestie innych rozwiązań tego problemu]

Kolekcjonuj i upowszechniaj tłumaczenia

Zwróć się do użytkowników swojego rozszerzenia z prośbą o nadsyłanie przetłumaczonych plików językowych i zadbaj, aby były umieszczone w Twoim rozszerzeniu. Tworzenie nowych tłumaczeń, gdy już inni je opracowali, jest marnowaniem czasu i energii.

Konkluzja

Uczynisz swoje rozszerzenie łatwiejszym do tłumaczenia, postępując według tego podręcznika. Efektem będzie i ułatwienie pracy tłumaczom, i większa liczba użytkowników kozystających z Twojego trudu.

Inne dokumentacja

Więcej informacji na temat stosowania plików językowych można znaleźć w następujących artykułach:

© Ten materiał jest dokładnym albo swobodnym tłumaczeniem artykułu http://docs.joomla.org/Language_Guidelines_for_3rd_Party_Extensions udostępnionego na licencji JEDL na witrynie: Joomla! Official Documentation Wiki

Dziękujemy za wkład

» Stefan Wajda [zwiastun],