Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Strona w 2 językach..
Rajdon
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 7.06.2009

Ostrzeżenie: (0%)
-----


Witam, jakie rozwiązania polecacie dla strony dwujęzycznej ? Tzn chodzi mi mniej więcej o coś takiego, że uzytkownik po zmianie języka nie zmienia adresu tzn adres strony nie staje się www.mojastrona.pl/en/. Do tego coraz częściej spotykam się z tym że strony zagraniczne rozpoznają język użytkownika i w jego języku podają treśc strony a także tytuł itp.

Go to the top of the page
+Quote Post
przemosk
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 3.06.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Chcesz pisać wszystko do początku ? Nie lepiej z framework'a skorzystać questionmark.gif?
Go to the top of the page
+Quote Post
croc
post
Post #3





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Możesz zapisywać informację o języku w sesji, a jeśli masz logowanie na stronie, to przypisywać też język zalogowanym użytkownikom. Pamiętaj, że multijęzykowość strony wiąże się z pracą nad wpisami. Każdy najdrobniejszy tekst jest w kilku wersjach.
Go to the top of the page
+Quote Post
Rajdon
post
Post #4





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 7.06.2009

Ostrzeżenie: (0%)
-----


Cytat(przemosk @ 31.10.2011, 00:20:58 ) *
Chcesz pisać wszystko do początku ? Nie lepiej z framework'a skorzystać questionmark.gif?


Tzn co masz dokładnie na mysli, cms ? Wszytsko piszę od poczatku niemal sam więc żaden cms nei wchodzi w gre.
Go to the top of the page
+Quote Post
przemosk
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 3.06.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Ja nie pisze o żadnych cms'ach typu wordpress czy inny wynalazek, ale np. framework: symfony, zend itd itp... tam takie kwestie jak różne języki jest już zrobiona, więc po co wymyślać koło od nowa ?
Go to the top of the page
+Quote Post
Sephirus
post
Post #6





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ja jak już się czymś takim bawię, to zawsze robię wykrywanie języka w 3 krokach:

1. Jeżeli użytkownik ma cookie/sesje z ustawionym językiem - to ten jeżyk mu ustawiam (najwyższy priorytet)
2. Jeżeli użytkownik nie ma cookie/sesji z ustawionym językiem - odczytuje z przeglądarki HTTP_ACCEPT_LANGUAGE biorę pierwszy język i jeśli takowy obsługuje ustawiam go w sesji/cookie
3. Jeżeli ani 1 ani 2 nie jest spełnione ustawiam język domyślny (np. angielski)

Jeżeli user wybiera język klikając na jego flagę przykładowo to wrzucam wybór do sesji/cookie aby był nadrzędny.

Można dodatkowo dać punkt 2a i wykorzystać geolokalizację - ustawiając język dla lokacji - to już kwestia wyboru - ja bardziej patrzę na przeglądarkę.

Co dalej? - Dalej wystarczy zrobić pliki językowe dla każdego języka, z tłumaczeniami treści strony

np.: $lang['home'] = 'Strona główna' dla PL i $lang['home'] = 'Main page' dla EN itp..

Trochę z tym babrania i też bym zastosował coś gotowego - ale wprowadzenie takiego systemu w coś co już istnieje nie jest wielkim problemem, sam system wprowadza się szybko - długo zajmują tłumaczenia... ;P

HTH! wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
Rajdon
post
Post #7





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 7.06.2009

Ostrzeżenie: (0%)
-----


Spoko, dzieki w takim razie jaki system polecacie ?
Go to the top of the page
+Quote Post
croc
post
Post #8





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Z gotowych rozwiązań, ja używałem Kohany.

Pytanie czy lepiej robić osobne pliki dla każdego języka, czy jeden wspólny plik, czy może zapisać je w bazie? W osobnych plikach dość łatwo się pogubić, bo wpisów jest mnóstwo, a wszystkie klucze muszą wystąpić we wszystkich plikach. Ja lubię mieć w dodatku pogrupowane te wpisy, więc jak dodaję jakiś tekst, to zwykle ląduje gdzieś w środku. Trochę to upierdliwe dla kilku plików.
Go to the top of the page
+Quote Post
Orzeszekk
post
Post #9





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

Ostrzeżenie: (0%)
-----


To zrob sobie klase-singleton Lang, która w konstruktorze bedzie odczytywala info z cookies której wersji językowej uzyc, a nastepnie bedzie ci zwracała wpisy danego języka.

Jesli bedziesz mial w cookies lang=pl to np. Lang::get()->text('tekst_tytulowy') zwroci ci "Witaj kozaku! Zapraszamy w nasze skromne progi!" a jeżeli bedziesz mial w cookies lang=en to Lang::get()->text('tekst_tytulowy') zwroci ci "Welcome Cossack! We are welcome in our humble homepage". Itd itp tongue.gif


Tylko zadbaj o leniwą inicjalizacje tablic z językiem... tj niech jedna metoda inicjuje tablice z jezykiem PL, a druga z językiem ENG (albo jakis stosowny parametr), poniewaz wpisanie np 1000 stringow do tablicy zajmuje troche czasu, i bez sensu by ładował się język angielski gdy używasz polskiego.

Możesz również zrobic to na instrukcji switch, ale wtedy bedzie więcej pisania i więcej ifów więc chyba wcale to szybsze nie będzie. tylko nie pamietam czy w php mozna stosowac indeksy będące łańcuchami, gdyby nie to musialbys uzywac indeksow cyfrowych.


--------------------
"The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs
Go to the top of the page
+Quote Post
AndyPSV
post
Post #10





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


ja od siebie dodam, ze rozwiazalem to w ten sposob: http://path-of-power.com/php-engine-framew...ith-modules,399

sa foldery, np. /en, /pl a w nich sa pliki jezykowe, ktore sa ladowane w zaleznosci od parametrow (np. mozna ustawic cookie) etc;
mozna sobie zobaczyc rozwiazanie
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #11





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Warto zerknąć tutaj:
http://pear.php.net/packages.php?catpid=28...nationalization
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 14:21