PHP: Gettext sorunlar

2 Cevap php

Ben burada, gettext çalışma almak gibi olamaz.

Ben MAMP Pro kullanarak ve phpinfo(); gettext etkin olduğunu söylüyor değilim.

Bu öğretici takip: http://zez.org/article/articleview/42/1/

  1. _('test string');: Bu gibi benim kod benim dizeleri ilan etti
  2. Sonra benim messages.po dosyası oluşturulur ki, xgettest -L PHP test.php koştu.
  3. Ben bir messages.mo dosyası yaptı dosyasını, kaydettiğiniz ardından, poedit bu dosyayı açtı ve benim dizeleri tercüme.
  4. Ben her iki .po ve .mo dosyalarını aldı ve onları taşındı [webroot]/locale/es/LC_MESSAGES/ (Bu durumda, benim çeviri İspanyolca idi)
  5. Benim kod, ben şu ayarlayın:

    $lang = $_SESSION['lang']; // available to all views that include this file

    putenv('LC_ALL='.$lang);

    bindtextdomain('messages','./locale');

    textdomain('messages');

    Burada ... $_SESSION['lang'] kolayca en ve es arasında geçiş yapabilirsiniz.

  6. Ben sayfayı yeniden yükleyin, sonra da es geçiş yapar benim linke tıklayın ama benim dizeleri hala İngilizce sürümleri değil İspanyolca versiyonları olarak gösteriliyor. Geri geçişler en hiçbir değişiklik gösterir; her zaman İngilizce sürümleri bulunuyor.

Ben her yerde bu yüzden ben bu sorunu yaşıyorum neden olarak biraz kayıp olduğum hiçbir hata mesajı alıyorum. Herkes bana bazı rehberlik / yardım verebilir? Ben bir şey mi kaçırdım?

2 Cevap

Sorun poEdit ile olabilir gibi görünüyor. Başlangıçta, bütün İspanyolca çevirileri ben "bulanık" olarak işaretlenmiş oldu. Ben onlardan "bulanık" kaldırırsanız, onlar gerektiği gibi benim Web sayfasında göstermek.

Ben en azından çalışıyor, bu normal behavoir olduğunu düşünüyorum, ama hey yok.

Ayrıca böylece sunucu üzerinde gelen dil dosyalarını yüklemeniz gerekir:

cat /usr/share/i18n/SUPPORTED |grep -i "es_ES" > /var/lib/locales/supported.d/es
cat /usr/share/i18n/SUPPORTED |grep -i "nl_NL" > /var/lib/locales/supported.d/nl
cat /usr/share/i18n/SUPPORTED |grep -i "de_DE" > /var/lib/locales/supported.d/de

Şimdi, İspanyolca, Hollandaca ve Almanca dilleri yüklü. , Bitmiş dpkg-reconfigure locales çalıştırın ve ne zaman yapılır. =)