Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%)
|
Poniższa klasa powinna pomóc w tworzeniu wielojęzykowych stron.
Przy projektowaniu wzorowałem się na podobnej funkcji w bibliotece Qt4 - gdzie metoda tr() ułatwia znacznie tworzenie templatek z tłumaczeniami, właściwie bez ingerencji w kod. Moja klasa próbuje to (trochę nieporadnie, ale cóż) zaimplementować w PHP. Główne założenia:
Przykładowa baza w sql na początku ma dwie kolumny - id z identyfikatorami oraz kolumnę aktualnego języka (np. "pl_PL"), dodając nową kolumnę - dodajemy nowy język, według mnie ułatwia to tworzenie i edycję arkusza z tłumaczeniami np. w Excelu lub Calcu (po przerzuceniu tabeli w CSV). Przykładowa struktura:
Przykładowe użycie:
Kod źródłowy Translation wraz z klasami pomocniczymi jest pod tym linkiem |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
1) No właśnie dlatego z tego względu nie "powinno" się korzystać z funkcji typu _ i twojego wrappera ponieważ powinno wystarczy wykorzystanie referencji do obiektu translacji.
2) Dlatego dzieli się tłumaczenia na tzw domeny. (podobnie masz w gettext) domena - id_ciagu Komunikaty błędów - Za krótki tekst Komunikaty błędów - Za długi tekst ... Logowanie - Błędny login i hasło itd Poza tym wykorzystanie tutaj cache byłoby rozsądne (IMG:style_emoticons/default/smile.gif) 5) To było akurat podchwytliwe aczkolwiek polecam zapoznanie się z całym działem internacjonalizacji w manualu PHP aby chociaż poznać pomysły rozwiązań. Tak gettext pobiera tłumaczenia z pliku, aczkolwiek nie widzę problemu z wygenerowaniem takowego. @Zyx o tym problemie nie słyszałem, ciekawa informacja. Rozumiem twój problem i osobiście odradzam gettext (IMG:style_emoticons/default/smile.gif) Tworzenie źródł translacji (TranslationModel) jest zdecydowanie dobrym kierunkiem. Dodatkowo pytanie ciekawostka. Jakiego autoloadera stosujesz? |
|
|
|
everth [klasa PHP5] Klasa wspierająca wielojęzykowość 7.08.2010, 06:18:30
wookieb [PHP] pobierz, plaintext $GLOBALS[$this->gl... 7.08.2010, 06:45:56
everth Aleś po mnie pojechał Więc teraz postaram się cho... 7.08.2010, 07:42:37
Zyx Używanie gettext() w aplikacjach PHP to lekkie nie... 7.08.2010, 07:53:06
everth Akurat skrótowiec jest główną osią tego obiektu (p... 8.08.2010, 04:35:44
cojack CytatThe locale information is maintained per proc... 9.08.2010, 13:05:14 ![]() ![]() |
|
Aktualny czas: 9.06.2026 - 17:45 |