Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP i pliki .mo czyli ponownie gettext
Forum PHP.pl > Forum > PHP
mosia8888
Hej!

Widziałam już wątki na ten temat, przekopałam sporo stron i przykładów przez ostatnie dni, no ale cholerstwo nadal nie wykrywa mi tłumaczeń. Chodzi o tłumaczenie z wersji angielskiej na hiszpańską. Mam taki oto kod:

  1. <?php
  2. setlocale(LC_ALL, 'es_ES.utf8');
  3. putenv("LANG=es_ES.utf8");
  4.  
  5. bindtextdomain( 'messages', './locale' );
  6. textdomain( 'messages' );
  7.  
  8. echo "<p>"._("Hello")."</p>";
  9. ?>


Na początek sprawdziłam, że na apachu jest local es_ES.utf8 przez polecenie "locale -a" i jest.
Ścieżka do pliku mo wygląda następująco: locale/es_ES.utf8/LC_MESSAGES/messages.mo
Folder "locale" znajduje się w tym samym katalogu co plik skryptu php.

Co jest nie tak? Otworzyłam wersję .po pliku tłumaczeń i jest tam zaznaczony, że język hiszpański i kodowanie utf8. Nie mogę zrozumieć czemu to nie działa.
trzczy
Włącz wyświetlanie błędów w php. Wyświetlony błąd wrzuć do googla i może się znajdzie rozwiązanie. Co to znaczy, że nie tłumaczy? Wyświetla nieprzetłumaczone słowo?

edit:
Spróbuj upodobnić swój kod do tego u dołu tej strony: https://www.sitepoint.com/localizing-php-applications-1/
Są tam pewne różnice. Np. putenv i setlocale jest podawane bez tego przyrostka ".utf8".
Inaczej jest podawana ścieżka w argumencie funkcji bindtextdomain , czyli bez "./". Na stronie php.net w komentarzu do funkcji bindtextdomain ktoś podał, że najlepiej podać tam pełną ścieżkę na serwerze.
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.