ja postępując zgodnie z instrukcjami z odpowiedzią BryanH tu: gettext() equivalent in Intl library? i próbuje wdrożyć Lokalizacja (tłumaczenie) z php-Intl, ale wciąż otrzymuję ten sam problem, to osoba ta: ResourceBundle returns NULL without any errors being raisedJak utworzyć pliki zasobów ICU do użycia w PHP?
Wspomina on stworzył plików DAT za pomocą narzędzia (którego nie mogę wymyślić, jak pracować), podczas gdy osoba w poprzedniej odpowiedzi wydaje się po prostu używać plików txt z rozszerzeniem .res.
Jak prawidłowo zaimplementować lokalizację za pomocą php-intl i ResourceBundle i co robię źle?
Celem jest mieć różne pliki z danymi z różnych językach, więc mogę zrobić coś podobnego do
$t = new Translator();
$t->setResource(new \ResourceBundle('es', 'locales_folder/'));
$t->echo("somestring"); // "el stringo"
..much jak osoba w pierwszej odpowiedzi miał. Ponadto celem jest posiadanie łatwych do edycji plików, więc mogę dać tłumaczom poprawki, aktualizacje i tym podobne. Zdaję sobie sprawę, że z łatwością mógłbym to zrobić za pomocą niestandardowego rozwiązania za pomocą prostego pliku tekstowego, który jest przetwarzany i zapisywany do memcache'a na pierwsze żądanie, gdzie następnie będzie działał i będzie obsługiwany bez konieczności ponownego odczytu plików .dat, ale wolałbym skorzystaj z sugerowanej trasy tutaj.
Edycja: Aby to osiągnąć, zaimplementowałem to samo z gettext i było to łatwe - z wyjątkiem jednego błędu, który utrzymuje się w systemach linuxowych (http://www.php.net/manual/en/book.gettext.php#91187) - ale chciałbym polegać na bardziej nowoczesne i all-inclusive rozszerzenie wewnętrzne, jeśli to możliwe.
Dzięki, że zrobię. Ponieważ ma to być bezpieczne dla wątków, uważam, że jest to rozwiązanie, którego szukałem. Teraz wystarczy napisać własny ekstraktor, który powinien działać. – Swader
Byłoby bardzo przydatne, gdybyś mógł podzielić się z nim doświadczeniem, również za pomocą ekstraktora ciągów (może mógłbyś nawet otworzyć to źródło?). Z góry dziękuję! – akirk
Ponieważ poedit może automatycznie wyodrębnić dla gettext, pomyślałem, że mógłbym po prostu nadać mu inny wzorzec, aby szukać jak $ t -> _ ($ string), który następnie utworzyłby pliki .mo i .po również dla tych ciągów. Wszystko, co musiałbym zrobić, to napisać narzędzie, które zamienia je na format OZE, co wydaje się dość łatwe. Napiszę wpis na blogu o całym doświadczeniu i link tutaj. – Swader