Nigdy nie używałem CI_Language, ale wydaje się, że do tłumaczenia używane są tablice językowe.
Nadmiernie uproszczonym przykładem tej metody typu:
$trans = array(
'MAIN_TITLE' => 'Title Here'
);
echo $trans['MAIN_TITLE'];
Osobiście uważam to naprawdę irytujące, ponieważ jesteś wtedy edycję widoki, które są zaśmiecone tablicy kluczowych nazw zamiast przydatnych tekstów. Co może być dość denerwujące w czasach. Nie wspominając już o tym, że musisz pamiętać, które klawisze korelują z wybranymi ciągami, jeśli używasz ich w wielu miejscach.
Używam Gettext, które uważam za znacznie łatwiejsze. Trzeba tylko zawijać łańcuchy za pomocą metody translate: _()
. Następnie, gdy skończysz z aplikacją, otwórz PoEdit i utwórz nowy plik językowy. PoEdit przetworzy wszystkie moje pliki źródłowe w poszukiwaniu ciągów owiniętych w ten sposób <?php echo _('Title here') ?>
i wstawi je do pliku językowego .po. Możesz następnie przejść ciąg po łańcuchu i łatwo przetłumaczyć tekst w PoEdit. Zaletą tego jest to, że posiadasz tłumaczenie źródłowe w obrębie PoEdit, zamiast bezsensownej nazwy klucza tablicy w jakimś pliku włączającym
To wszystko ułatwia moje życie dzięki temu, że mogę aktualizować pliki językowe w każdy piątek za pomocą jednego kliknięcia . Wszelkie nowe lub zmodyfikowane tłumaczenia zostaną automatycznie dodane do mojego pliku językowego, a wszelkie nieużywane tłumaczenia zostaną automatycznie usunięte. Wysyłam pliki do moich 3 międzynarodowych oddziałów w celu tłumaczenia, a moje zmiany i zaktualizowane pliki językowe są gotowe do wdrożenia w poniedziałek rano
Dzięki za odpowiedź, Mark. Bardzo doceniony. Twoje podejście do używania gettext jest interesujące! Myślę o tym, że robię prawie tak samo, ale wersję bazy danych, która będzie mocno buforowana, a zamiast tego aktualizowana na żądanie. – Industrial
Byłoby miło zobaczyć więcej przykładów różnych podejść do tego problemu, nie mówiąc, że twoje rozwiązanie jest złe! – Industrial
Możesz pobrać ZF i sprawdzić różne adaptery dla Zend_Translate: http://framework.zend.com/manual/en/zend.translate.adapter.html dla dodatkowych pomysłów. Obejmują one wszystkie popularne metody lokalizacji – Mark