Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: gettext - brak tłumaczenia
Forum PHP.pl > Forum > PHP
artur_dziocha
Witam,
ostatnio chciałem się pobawić gettextem no i wystapił problem z tłumaczeniem - nie tłumaczy
PHP Version 5.2.6-3
Linux debian 2.6.26-1-686 Squezze
GetText Support enabled
i zainstalowany gettext aptem

Sprwdzałem według różnych tutoriali
- http://www.php.rk.edu.pl/w/p/gettext-w-php/ tutaj jest błąd
Kod
msgfmt pliczek.po -o pliczek.po

a powinno być
Kod
msgfmt pliczek.po -o pliczek.mo
ale mniejsza z tym.
Próbowałem jeszcze tego
http://www.sourcerally.net/regin/49-How-to...ubuntu,-debian),
http://www.oreillynet.com/pub/a/php/2002/0...php.html?page=1
http://zenedith.wordpress.com/2009/01/02/g...iana-i-windows/
No i niestety u mnie coś nie działa

Układ plików
http://img256.imageshack.us/img256/3224/beznazwyjiv.jpg
w LC_MESSAGES znajdują sie pliki messages.mo, messages.pl
Jeśli ktoś zna przyczyne poprosiłbym o pomoc

Pozdrawiam artur dziocha
EDIT
i jeszcze kod
  1. <?php
  2. $language = 'pl_PL';
  3. putenv("LANG=$language");
  4. setlocale(LC_ALL, $language);
  5.  
  6. $domain = 'messages';
  7. bindtextdomain($domain, "/var/www/gettext");
  8. bind_textdomain_codeset($domain, 'utf-8');
  9.  
  10. textdomain($domain);
  11.  
  12. echo gettext("A string to be translated would go here");
  13. ?>
Arbor
Stary topic więc pewnie problem został rozwiązany ale nawszelki wypadek napiszę.

Przy używaniu gettexta pierwsza rzecz, którą musisz sprawdzić to jakie wersję językowe masz zainstalowane.
Kod
locale -a

Wyświetlona wersję to te z którym możesz korzystać, również w php. Domyślnie jest chba en_US i jakieś inne dwie i tyle. Więc chcąc korzystać z pl_PL musisz doinstalować to do systemu. W debianie testing jest paczka, która zawiera chyba wszystkie dostępne wersje.
Kod
sudo apt-get install locales-all

Następnie należy zrestartować Apache.

Pozwolę sobie wkleić działający u mnie kod:
  1. setlocale(LC_ALL, 'pl_PL.utf8');
  2.  
  3. bindtextdomain( 'messages', './locale' );
  4.  
  5. textdomain( 'messages' );
  6.  
  7. echo gettext("Hello");
  8. echo gettext("Hello World");


Plik messagaes.mo znajduję się w
Kod
locale/pl_PL.utf8/LC_MESSAGES

Gdzie katalog locale jest w katalogu tego skryptu.

W razie kolejnych problemów proponowałbym przejrzeć komentarze do to tej funkcji w php. W zależności od dystrybucji i ustawień w systemie trochę inaczej się to ustawia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.