Posted in Bez kategorii, tagged php, tech on 20 marca, 2008|
Leave a Comment »
http://pl2.php.net/manual/en/ref.gettext.php#73376
Można użyć stringów lub gettext
Zalety gettext
1. Trochę szybsze w działaniu niż tablica stringów:
gettext PHP 174 (napisany w PHP)
String ID 289 (tablica stringów)
gettext Ext. 306 (rozszerzenie zewnętrzne ładowane przez PHP)
2. Praca z tłumaczeniami jest szybsza
Nie trzeba dodawać kolejnych zmiennych jeśli pojawi się nowy tekst. Po prostu piszemy w jednym języku i komunikaty zamykamy tak: echo _(Jakiś tekst).
Ale co jeśli zmienimy tekst z którego robione są inne tłumaczenia? Jak wtedy to działa?
3. Kodowanie
http://pl.php.net/manual/en/function.bind-textdomain-codeset.php#42631
http://pl.php.net/bind_textdomain_codeset
http://www.gnu.org/software/gettext/manual/gettext.html#Charset-conversion
powinno tak działać
bind_textdomain_codeset($domain, ‚UTF-8’);
ale w pliku messages chafset ustawiony jest na CHARSET. więc chyba muszę ręcznie zmienić na UTF-8.
4. Plik testowy
Jak już mamy utworzony plik php z ze stringami otoczonymi _() to wydajemy polecenie (opcja -n jeśli jeden plik tłumaczeń dla wielu plików, aby xgettext wstawił linię z lokalizacją pliku)
xgettext -n *.php
Zostanie stworzony plik messages.po, który będzie zawierał stringi do przetłumaczenia dla wszystkich plików php. W tym pliku CHARSET zmieniamy na UTF-8 w moim przypadku. Potem generujemy skompilowany plik tłumaczeń.
msgfmt messages.po
i powstanie messages.po.
5. Linki
http://www.onlamp.com/pub/a/php/2002/06/13/php.html
http://mel.melaxis.com/devblog/2005/08/06/localizing-php-web-sites-using-gettext/
http://pl2.php.net/gettext
http://www.gnu.org/software/gettext/manual/gettext.html
gettext w Ruby
http://manuals.rubyonrails.com/read/chapter/105
Read Full Post »