Как я могу отладить php gettext?

Некоторые ключи gettext не работают для меня - они показывают ключ вместо перевода, хотя существует одна. Я делаю файл .mo с помощью библиотеки PHP File_Gettext Pear, и, похоже, он работает нормально, поэтому я сделал следующий сценарий, чтобы попробовать, какие ключи работают неправильно:

$locale = 'en_GB';
$domain = 'messages';

setlocale(LC_ALL, $locale);
putenv("LC_ALL=".$locale);
bindtextdomain($domain, "D:/_gt");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);

$mocreator = new File_Gettext_MO();
$mocreator->load('D:/_gt/en_GB/LC_MESSAGES/messages.mo');

foreach ($mocreator->strings as $key => $value) {
    if ($value == gettext($key)) {
        var_dump("ok");
    } else {
        var_dump($key, $value, gettext($key));
    }
}

Из вывода выше я вижу, что некоторые ключи работают - я вижу много ok s - а некоторые нет, что дает следующее:

string 'Cancelled' (length=9)
string 'Storniert' (length=9)
string 'Cancelled' (length=9)

Итак, в файле есть перевод, но gettext по какой-то причине не использует их.

11
задан Gazzer 26 August 2011 в 08:13
поделиться