Niektóre klawisze gettext nie działają dla mnie - pokazują klucz zamiast tłumaczenia, ale jest jeden. Robię .mo plik PHP File_Gettext
Pear biblioteki i wydaje się działać ok, więc zrobiłem następujący skrypt, aby wypróbować, które klawisze nie działają prawidłowo:Jak mogę debugować php gettext?
$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));
}
}
Z wyjście powyżej widzę, że niektóre klawisze działają - widzę dużo ok
s - a niektórzy nie, uzyskując następujące:
string 'Cancelled' (length=9)
string 'Storniert' (length=9)
string 'Cancelled' (length=9)
więc jest tłumaczenie w pliku, ale gettext zawiedzie ich używać z jakiegoś powodu.
Sprawdź plik tłumaczenia. Myślę, że gettext jest dokładniejszy niż 'File_Gettext_MO'. Szukaj w nim napisu "Cacnelled", prawdopodobnie jest to coś, co możesz zobaczyć. Możesz również dodać część z pliku MO do pytania. – hakre
@hakre, widzę tam zarówno 'Cancelled' i' Storniert'. Którą część pliku należy dodać? – Fluffy
Jaka jest biblioteka? File_Gettext Gruszka? Nie mogę znaleźć File_Gettext_MO w dowolnym miejscu. – Gazzer