![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 29.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chcę się z wami skonsultować i usłyszeć opinie nt. mojego rozwiązania. Tworzę system wielojęzyczny przy użyciu Zenda i szablonów SMARTY. Najważniejszym założeniem z jakiego wyszedłem był globalny dostęp do danych językowych ale przy założeniu, że czynności związane z odczytaniem odpowiedniego tekstu będą możliwie zminimalizowane. Chcąc stworzyć automatyczny system wielojęzyczny zastosowałem takie oto rozwiązanie. - Stworzyłem klasę w pełni statyczną, którą inicjuję już w samym bootstrapie i inicjuję dane w odpowiednim języku. - Pozwoliłem sobie na dostęp do tej klasy za pomocą odwołania statycznego TKlasa::get('firstname') gdzie wywoływana będzie metoda __callStatic i tam odpowiednio obsłużona. - Jako, że nie chciałem za każdym razem tworzyć obiektu i przekazywać do View postanowiłem stworzyć obiekt już w samym szablonie z odpowiednią ilością danych w tablicy assocjacyjnej przy użyciu ASSIGNE a następnie standarowe odczytanie wartości. Wiem, że temat był maglowany setki razy ale takiego rozwiązania nie znalazłem. Dlaczego tak? Ano dlatego, że przy tworzeniu nowego szablonu nie muszę się martwić o dostęp do tekstu i nie trzeba wykonywać nadmiarowych czynności. Jest tylko inicjalizacja na samym pocżątku, potem w szablonie assigne i następnie odczyt np. labela. Tutaj chciałbym usłyszeć waszą opinię, czy takie rozwiązanie jest możliwie optymalne, czy i gdzie mogę spodziewać się problemów lub też co mógłbym zmienić by to ulepszyć. Pozdrawiam DS Ten post edytował daves 9.02.2012, 08:57:48 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat wg mnie głównym problemem wersji językowych to to, jak przedstawic np elementy charakterystyczne np różnie liczone liczby ( 1 kreska, 2 kreski, 5 kresek) a w angielskim (1 line , n lines), a to w jaką klasę sobie tam opakujesz to już szczegół. Przecież takie rzeczy masz już gotowe: MessageFormatter.Cytat Dzis uczylem sie z net frameworka, w ksiazce do egzaminu znalazlem informacje ze system językowy w ktorym do dokonywania tłumaczen musi sie uzywac jezyka programowania jest do kitu - nie dasz strony do przetlumaczenia komus obcemu. Plik jezykowy powinien byc w jakims prostym formacie, np yaml lub xml, i dla lepszej wydajnosci wg mnie powinien byc tlumaczony do postaci klas przy pierwszym odczytaniu. Tutaj standardem jest XLIFF lub PO.
to nic trudnego stworzyc generator kodu klasy zawierajacej dane stałe. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 06:12 |