PHP Windows gettext

5 Cevap php

Bazı öğreticiler (poEdit / w) gettext için orada var ... ne yazık ki, bir UNIX ortamında çoğunlukla bulunuyor. Ve daha da talihsiz Windows XP'de benim WAMP sunucu çalıştırıyorum (ama ben bir UNIX ortamı için geliştiriyorum) ve öğreticiler hiçbiri benim için düzgün çalışan gettext alabiliriz. Man sayfasından (http://us3.php.net/manual/en/book.gettext.php), bunun bir Windows ortamında farklı bir süreç olduğunu görünür. Ben yorum olarak bazı çözümler denedim ama ben yine de işe alınamıyor! Ben bu uzun saatler geçirdim Lütfen, umarım birileri bu şey işe almak için bana doğru yönde işaret edebilir! (Ve benim hayal kırıklığı paylaşmak orada başkaları vardır eminim). Şimdiye kadar benim Kurulum, ben sadece "Merhaba Dünya!" Çıktı alıyorum Ben tercüme dize almak gerekir oysa.

İşte benim Kurulum / kod şimdiye kadar:

<?php
// test.php
if (!defined('LC_MESSAGES')) {
    define('LC_MESSAGES', 6);

}
$locale = "deu_DEU"; // apparently the locales are different on a WINDOWS platform

putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("greetings", ".\locale");
textdomain("greetings");


echo _("Hello World"); 

?>

Klasör yapısı

root:     C:\Program Files\WampServer 2\www
test.php: C:\Program Files\WampServer 2\www\site
.po:      C:\Program Files\WampServer 2\www\site\locale\deu_DEU\LC_MESSAGES\greetings.po
.mo:      C:\Program Files\WampServer 2\www\site\locale\deu_DEU\LC_MESSAGES\greetings.mo

Lütfen tavsiye! Zaman ayırdığınız için teşekkürler :)

5 Cevap

Ben yerel ayarlar yüklü yoktu çünkü öyleydi.

I ran into problems while working with gettext on my local machine, and after some search i found this page which solved my problem: http://www.kipras.com/getting-gettext-to-work-in-apache-on-windows/96

Ben web sayfasından alıntı yapıyorum:

On Linux servers (or any other servers apart windows), the way to do it is this:

setlocale(LC_MESSAGES, “en_US”);

The correct way to set locality on windows is this:

putenv(“LC_ALL=en_US”);

Ben aynı sorunu vardı, ve bunun neredeyse bir gün ya da öylesine boşa. Son olarak, yani WAMP Server (versiyon 2.1) kaldırmak, ve install a newer version (- 32 bit WampServer 2.1e) için, çok basit bir çözüm buldu. Bu garip, ama sorunu tamamen çözüldü.

İşte benim için çalıştı örnek kod:

<?php

    $locale = "deu_DEU";

    putenv("LC_ALL=$locale");
    setlocale(LC_ALL, $locale);

    bindtextdomain("greetings", "./locale");
    textdomain("greetings");

    echo _("Hello World");

?>

Umarım yardımcı olur.

Ben bu konuda tam bir soruşturma yapılmış değil ama ben senin hatalardan biri geçersiz yerel kodları kullanılmış olmasıdır eminim - hatta Windows yerel ayarlar kodları aynı - bu gettext yerel ayarlar ve onlar çapraz platform vardır.

Yerel kodu olarak sadece "de" kullanmayı deneyin, bu çalışması gerekir. Ayrıca PHP uzantısı yüklü gettext ve (phpinfo ile kontrol) aktif olduğundan emin olun.

Çok geç olabilir ama benim WAMP php ayarlarında "kısa açık etiket" etkin kadar ben benzer sorunları olmamdı