Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wybór języka
neversoft
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 24.07.2006

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


Witam serdecznie,

Mam pewien problem. Tworzę stronę na której będą na pewno 3 języki. Jest strona powitalna z 3 flagami. I teraz jak najlepiej zrobic ten wybór w php? Nie wiem czy się dobrze wyraziłem. Ale po prostu wg mnie rozwiązanie typu index1.php?lang=pl jest dosc słabe ze względu tego, że było by trzeba przesyłac tą zmienną w każdym linku... Drugim moim pomysłem wg mnie lepszym było by utworzenie sesji z wybranym językiem. I wtedy skrypt by sobie sprawdzał jaki jest język. Znacie może lepszy sposób? I czy może któryś z moich jest dobry i powszechnie stosowany? Proszę o pomoc.


--------------------
Tutoriale Maya
Go to the top of the page
+Quote Post
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Sesje bądź ciasteczka to najlepsze rozwiązanie. Dla tych którzy wyłączają ciastka, możesz dodawać na końcu każdego odnośnika zmienną językową, ale nie wiem czy jest sens. Patrz ranking.pl


--------------------
Go to the top of the page
+Quote Post
neversoft
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 24.07.2006

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


Czyli pozostają sesje?


--------------------
Tutoriale Maya
Go to the top of the page
+Quote Post
strife
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(neversoft @ 13.02.2007, 21:51:10 ) *
Czyli pozostają sesje?


No ale wiesz, jak jest sesja tworzona to zostaje dodane ciasteczko z identyfikatorem sesji ( PHPSESSID domyślnie ), i na podstawie tego są odczytywane wartości zmiennych sesyjnych z serwera. Uważam, że ciastka są lepszym rozwiązaniem, bo zostaje to zapisane po stronie użytkownika, ( co odciąża serwer ), a także przy ponownym wejściu na stronę, wersja językowa będzie już zapamiętana. Także, aby nie było w adresie widocznego np. ?lang=en musisz zmusić użytkownika do włączenia ciastek obojętnie czy będziesz to zapisywał w sesjach czy ciastkach.

Wejdź na tą stronę ranking, i zobacz jaki procent ludzi nie korzysta z ciasteczek.

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
Babcia@Stefa
post
Post #5





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Ja proponuje tablice + sesje + ciasteczka.
Przykład użycia tablicy:
  1. <?php
  2. $lang = $_SESSION['language'];
  3. $zdanie[pol] = 'To jest zdanie po polsku.';
  4. $zdanie[eng] = 'This is sentence in polish.';
  5. $zdanie[ger] = 'Blablablabla...';
  6. echo $zdanie[$lang];
  7. ?>


@strife
Chyba raczej do tego służą ciastka, ponieważ ciasteczka służą do przechowywanie informacji na stronie o użytkowniku w jego komputerze.

Dziękuję, Babcia@Stefa

Ten post edytował strife 14.02.2007, 10:36:15


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
Vogel
post
Post #6





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

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


Cytat(strife @ 14.02.2007, 02:09:33 ) *
No ale wiesz, jak jest sesja tworzona to zostaje dodane ciasteczko z identyfikatorem sesji ( PHPSESSID domyślnie ), i na podstawie tego są odczytywane wartości zmiennych sesyjnych z serwera. Uważam, że ciastka są lepszym rozwiązaniem, bo zostaje to zapisane po stronie użytkownika, ( co odciąża serwer )


wylacz ciastka w przegladarce i sprawdz co sie stanie przy odpaleniu sesji. pozatym "odciazanie serwera". odciazanie z czego? prooooszeee...

@neversoft - uzyj sesji. zapomnij o ciastkach. ciastka sa przydatne gdy chcesz zapisac dane, ktore maja pozostac PO zamknieciu przegladarki. w przeciwnym wypadku sesje sa znacznie wygodniejsze (sa niezalene od ustawien przegladarki, nie przekazujesz danych do klienta tylko trzymasz je na serwerze).


--------------------
Go to the top of the page
+Quote Post
strife
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat
@neversoft - uzyj sesji. zapomnij o ciastkach. ciastka sa przydatne gdy chcesz zapisac dane, ktore maja pozostac PO zamknieciu przegladarki. w przeciwnym wypadku sesje sa znacznie wygodniejsze (sa niezalene od ustawien przegladarki, nie przekazujesz danych do klienta tylko trzymasz je na serwerze).


Są zależne od ustawień przeglądarki, chyba że jest użyty session handler który dodaje id sesji do adresu. Ciastka są po to, aby zapamiętać jakąś wartość która się często nie będzie zmieniać, np. język na stronie. W moim przekonaniu sesje służą do czegoś innego, ale to już moje zdanie.

Cytat(Vogel @ 14.02.2007, 06:40:37 ) *
wylacz ciastka w przegladarce i sprawdz co sie stanie przy odpaleniu sesji


Zmienne z sesji nie będą widoczne?

  1. <?php
  2.  
  3. var_export( $_SESSION );
  4.  
  5. $arrLang = array( 'en', 'pl', 'de' );
  6.  
  7. if ( in_array( $_GET['lang'], $arrLang) )
  8. {
  9. $_SESSION['lang'] = strtolower( $_GET['lang'] );
  10.  
  11. }
  12.  
  13. ?>
  14. <pre>
  15. <a href="?lang=en">Angielski</a>
  16. <a href="?lang=pl">Polski</a>
  17. <a href="?lang=de">Niemiecki</a> 
  18. </pre>


I po wyłączeniu ciastek masz widoczne zmienne sesji tak ? snitch.gif

Mimo wszystko uważasz, że ciągłe ustawianie języka po wejściu na stronę jest dobrym rozwiązaniem niż zapamiętywanie języka na stałe i bycie niezależnym od zamknięcia przeglądarki?

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
neversoft
post
Post #8





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 24.07.2006

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


Hmm klient raczej chce aby zawszę była pokazana strona z wyborem języka. Więc pozostanę przy sesjach.


--------------------
Tutoriale Maya
Go to the top of the page
+Quote Post
graft
post
Post #9





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 24.03.2007

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


ja używam i sesji i ciastek, żeby powracający odwiedzający nie musieli zmieniać język przy każdych odwiedzinach.

Jeśli jest ciastko ----> przypisuje sesji dane z ciastka.
Jeśli nie ma to szuka języka przeglądarki i zapisuje ciacho i sesje.
Jeśli nie wykryje języka to standardowy.
Go to the top of the page
+Quote Post
sagittariuspl
post
Post #10





Grupa: Zarejestrowani
Postów: 374
Pomógł: 3
Dołączył: 30.12.2006
Skąd: co skąd?

Ostrzeżenie: (10%)
X----


@Babcia@Stefa ja robiłem trochę inaczej
  1. <?php
  2. $_lang[pol][zdanie1] = 'To jest zdanie po polsku.';
  3. $_lang[eng][zdanie1] = 'This is sentence in polish.';
  4. $_lang[ger][zdanie1] = 'Blablablabla...';
  5. ?>

taką tabelkę można sobie w razie potrzeby fajnie wyświetlić przez print_r.
choć oczywiście najlepiej zrobić trzy pliki językowe i wczyywać odpowiedni wg wybranego języka... ale to są rozważania trochę odbiegające od tematu wstydnis.gif


--------------------
Tylko sprawdzone typy bukmacherskie na BetGen.pl
Potrzebujesz konta bankowego? Nie? Każdy potrzebuje. Porównaj konta i wybierz najlepsze dla siebie
Zostań milionerem zaczynając od zbierania truskawek. Każdy może być bogaty - to nie mit.
Go to the top of the page
+Quote Post
sanchoo
post
Post #11





Grupa: Zarejestrowani
Postów: 161
Pomógł: 1
Dołączył: 11.02.2007
Skąd: Kraków

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


sesja + ewentualnie ciastka .. sa najlepszym rozwiazaniem....
Go to the top of the page
+Quote Post
B16
post
Post #12





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.12.2007

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


znalazłem ten temat, a że jestem początkujący w php to mam pytanko:
jak zrobić stronke index.php, żeby mieć wybór języków ?
Mam obecnie coś takiego
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>b3niup@o2.pl - Webmaster &amp; Webdesigner</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  6. <meta http-equiv="Content-Language" content="pl" />
  7. <meta name="robots" content="index,follow" />
  8. <meta HTTP-EQUIV="reply-to" CONTENT="b3niup@o2.pl" />
  9. <link href="main.css" type="text/css" rel="stylesheet">
  10. <body>
  11. <center>
  12. <?php
  13. $lang = "pol/index.php";
  14. function lang($jaki)
  15. {
  16. switch ($jaki) {
  17. case "eng":
  18. $lang = "eng/index.php";
  19. break;
  20. case "pol":
  21. $lang = "pol/index.php";
  22. break;
  23. }
  24. global $lang;
  25. }
  26. ?>
  27.  
  28. <a href=<?php $lang; ?>>
  29. <img src='img/enter_site.jpg' alt='Enter'>
  30. </a>
  31. <br />
  32. <p id="select">Wybierz język / Choose language 
  33. <img src='img/languages_06.gif' alt='English' onclick='<?php lang(eng) ?>>
  34. <img src='img/languages_03.gif' alt='Polski' onclick='<?php lang(pol) ?>>
  35. <br /><br />
  36. <b>Uwaga ! / Warning !</b><br />
  37. Żeby przeglądać tę strone w różnych językach musisz mieć włączoną obsługę cookie
    s w przeglądarce !<br />
  38. To visit our page in different languages you must have enabled cookies in your b
    rowser !
  39. </p>
  40. </center>
  41. </body>
  42. </html>

ale coś mi tu nie działa (jak zwykle tongue.gif)
Go to the top of the page
+Quote Post
in5ane
post
Post #13





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Ja pi3rd0l3, ile można to wałkować...
Masz tutaj dobrze wytłumaczone: LINK


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
.radex
post
Post #14





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Cytat(sagittariuspl @ 29.12.2007, 13:28:27 ) *
  1. <?php
  2. $_lang[pol][zdanie1] = 'To jest zdanie po polsku.';
  3. $_lang[eng][zdanie1] = 'This is sentence in polish.';
  4. $_lang[ger][zdanie1] = 'Blablablabla...';
  5. ?>

Zapomniałeś o apostrofach/cudzysłowach przy nazwach elementów.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
sagittariuspl
post
Post #15





Grupa: Zarejestrowani
Postów: 374
Pomógł: 3
Dołączył: 30.12.2006
Skąd: co skąd?

Ostrzeżenie: (10%)
X----


@radex_p - jak nie masz zamiaru pisać nic sensownego to nie pisz. nie zapomniałem. sprawdź. dziala


--------------------
Tylko sprawdzone typy bukmacherskie na BetGen.pl
Potrzebujesz konta bankowego? Nie? Każdy potrzebuje. Porównaj konta i wybierz najlepsze dla siebie
Zostań milionerem zaczynając od zbierania truskawek. Każdy może być bogaty - to nie mit.
Go to the top of the page
+Quote Post
Hazel
post
Post #16





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Obaj macie rację, bo jeden powinien stosować apostrofy/cudzysłowy przy odwoływaniu się do elementów tablic, a drugi powinien sprawdzić i zobaczyć ze działa.
@sagittariuspl
Pamiętaj, że na przykład mocno zabałaganiony kod jest mniej wart od czystego, chociaż oba działają równie poprawnie. Powinieneś faktycznie używać cudzysłowów. Ale odkopywanie tematu tylko po to, żeby to komuś powiedzieć, chyba nie ma sensu...


--------------------
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: 20.08.2025 - 18:27