![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Od dluzszego czasu zastanawiam sie jak skutecznie wprowadzic do serwisu pliki jezykowe. Pierwsze nasuwaja sie stale. Tylko ze w miare tworzenia serwisu liczba stalych rosnie tak ze Ciezko sie w nich polapac. problem jest takze jesli mamy np e-mail w srodku ktorego chcemy wprowadzic zmienne. Trzeba wtedy ten email dzielic na kilka czesci. EMAIL_BODY1 EMAIL_BODY2 itp. Do tego dochodzi fakt ze czasami w roznych jezykach rozne slowa sa krotsze lub dlusze, badz tez do wyjasnienia czegos wystarcza dwa badz tez 15 slow, nie zawsze musi sie to wpasowac w styl strony. Biorac pod uwage ostatnie zdanie, zaczalem rozwazac robienie osobnych szablonow dola kazdego jezyka. Niby to wygodne bo napewno wszystko bedzie dobrze wygladalo, ale co jesli zechce dodac nowy element na strone. Majac 10 jezykow bede musial wprowadzic zmiane w 10*ilosc templatow plikow. ogolnie tak zle i tak niedobrze ![]() Jak wy zrealizowaliscie obsluge wielu jezykow ? Ten post edytował thornag 30.08.2006, 11:57:43 -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 240 Pomógł: 0 Dołączył: 18.01.2004 Skąd: rzeszów / kraków Ostrzeżenie: (0%) ![]() ![]() |
jesli chodzi o dane z bazy to robiłem to tak
![]()
id---art_pl---art_en-----cos tam dalej------- w sesji trzymam info o wybranym języku i potem mozna nawet zrobić coś takiego
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Na to tez wpadlem uzywam poki co. Jednak nie chodzi mi o zmienna zawartosc strony a o ta stala. Jak slowa zaloguj, zarejestruj itp itp.
-------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja używam TMX (Translation Memory eXchange).
Dane trzymasz w pliku XML, potem wszystko jest w tablicy. Tutaj masz klasę z przykładem do obsługi tego. Osobiście jestem zadowolony. Ten post edytował czachor 30.08.2006, 12:32:35 -------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
Dzieki, wydaje mi sie ze XMl rzeczywiscie dobrze sobie z tym poradzi.
Mimo wszystko moze jeszcze jakies inne sugestie ? @czachor => Sprawdzielm wlasnei ta klase. W sumie oprocz tego ze zapisujemy to wszystko w pliku XML i mamy otoczke obiektowa do parsowania tego XML w niczym sie to dla mnie nie rozni od zwyklych stalych. Dalej moze tego byc tyle ze sie nie da polapac o co chodzi. Aczkolwiek moze innego lepszego rozwiazania po prostu nie ma. Ten post edytował thornag 30.08.2006, 12:43:22 -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 315 Pomógł: 1 Dołączył: 6.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Ja robiłem tak, w osbnym pliku(inny plik dla każdego języka):
Użycie:
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
I pamietasz te wszystkie komunikaty
![]() -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
ja to zrobiłem w taki sposób że dany wiersz miał jedną kolumnę identyfikującą
napisaną po angielsku, jakieś krótkie słow lub zwrot, a reszta kolumn to pełne zwroty w danym języku np: Save, Zapisz, Zapisaju Cancel, Anukuj, Anulaju OK, OK, OK ConfirmDetele Czy na pewno chcesz skasować?, Czi na piewno chacziu skasowaju? TypeName Podaj nazwe, podaju nazwaju |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
@php_programmer Przyklad uzycia ? Cos mi sie to nie widzi
![]() -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Natomiast w templatach mozesz zrobic cos takiego
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 315 Pomógł: 1 Dołączył: 6.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
I pamietasz te wszystkie komunikaty ![]() Wiesz najpierw robie wszystko po polsku bez tej klasy. Dopiero po skończonej robocie biore się za umiędzynarodowienie zamieniając komunikaty na te zmienne. Wszystko zależy od organizacji podczas pisania aplikacji. Potem to jest już zmiana każdego wpisu pokoleji na zmienną i nadawanie kolejnych numerów. Mi osobiście to odopowiada tym bardziej, że łatwo po tej całej robocie wszytsko pozmieniać. Wszytskie komunikaty są edytowalne w jednym miejscu. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
No to mamy Stale, Baze danych i XML.
@php_programmer W sumie niezle to to, tylko ze za kazdym razem musze ladowac wszystkie rekordy, duzo niepotrzebnych danych. Mozna by w sumie cachowac hmm -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
@s_w_ir:
Już przerabiałem coś takiego, jak przyjdzie potrzeba jakiejś modyfikacji i z kodzie masz powiedzmy 20-30 wyrazów to nie wiesz jaki numer do jakiego wyrazu jest, zalecam uzywanie słów, najlepiej angielskich bo nie maja ogonkow i najlepiej jako elementy jakies wiekszej czesci tak jak u mnie w przykłądzie {$labels.save} od razu wiesz ze ta zmienna to tylko etykietka i nie myli się z innymi zmiennymi, Cytat kazdym razem musze ladowac wszystkie rekordy zgadza sie, kod podałem tak zgrubsza bez zbędnych szczegółów zawsze mozna zmodyfikowac zapytanie aby brało tylko to co trzeba np mozna w baze dać dodtkową kolumnę z informacją na jakiej stronie jest dany label i pobierac w danym momencie labele tylko z danej strony na której obecnie jestesmy, mozna jeszcze ewentualnie zmienną $labels zserializować i zapisac w sesji Ten post edytował php programmer 30.08.2006, 13:32:44 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 30.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Ja od dłuższego czasu robię to tak (mix wersji php programmer i s_w_ir`a ;) ): plik: /languages/lng.pl.php
W pliku index.php:
W szablonie użycie takie jak pokazał php programmer. Myślałem nawet kiedyś o zastosowaniu prefiltra do Smarty, żeby przeparsował same ustawienia językowe "raz, a porzadnie" (można nadać compile_id na cache szablonu Smarty i już mamy wiele języków :D). Co do przechowywania tego na bazie - można. Nad tym też kiedyś myslałem. Po zedytowaniu tego można odswiezyć taki pliczek lng.X.php i potem juz tylko inkludować go. A jak miałaby wyglądać struktura takiej tabeli? Ot po prostu:
lang - oznaczenie języka (pl, du, en) id - identyfikator (u s_w_ir`a liczbowe, u mnie string) value - wartość w danym języku Pobranie:
Nie mamy żadnych ograniczeń w ilości języków (dodanie nowego języka != dodanie nowej kolumny). Pozdrawiam Ten post edytował MiB 30.08.2006, 13:37:50 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 315 Pomógł: 1 Dołączył: 6.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
php programmer - no wiesz mi takie coś:
Kod "Nie masz uprawnien aby sie dostać do tego folderu", "Weryfikuj i dodaj", "Źle wpisane imię", mówi więcej niż label.save, ponieważ jeśli piszesz aplikacje sam to doskonale wiesz gdzie taki komunikat się pojawia, pozatym większość haseł jest tłumaczona dosłownie(więc nie musisz tego zawsze wiedzieć). Inna sprawa, że w razie wątpliwości możemy sobie komentować gdzie co się gdzie znajduje, albo w jakim kontekście. Komentowanie jest zalecane(ba, to obowiązek) w każdym większym projekcie, więc jeśli nie komentujesz to się i tak pogubisz. Ten post edytował s_w_ir 30.08.2006, 13:37:48 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Cytat "Nie masz uprawnien aby sie dostać do tego folderu", "Weryfikuj i dodaj", "Źle wpisane imię", PermissionDirError CheckAndAdd BadName Ten post edytował php programmer 30.08.2006, 13:44:17 |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 315 Pomógł: 1 Dołączył: 6.08.2003 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
OK, no to w czym problem, zamieniam polskie texty na angielskie odpowiedniki, ewentualnie troche inaczej aby utrzymać kontekst. Zmiana w jednym pliku, nie ingeruje w kod, chyba to było celem.
lece do miasta teraz więc już się nie kłóce ![]() |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Ja obstawiam php programmer
![]() -------------------- |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 504 Pomógł: 2 Dołączył: 31.03.2006 Skąd: Londyn Ostrzeżenie: (0%) ![]() ![]() |
@bim2 W Mambo ktore ja uwazam za najlepszy darmowy CMS (chociaz juz chyba nie jest darmowy) porobili to na stalych, co wcale nei oznacza ze dobrze.
Ogolnie chyba zdecyduje sie na kolejne miksowe rozwiazanie ![]() Co do samej bazy danych zdecyduje sie jednak na wzor jedna kolumna jeden jezyk. W kazdym badz razie dzieki za dyskusje. -------------------- "Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:01 |