Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Strona wielojęzykowa, zmiana języka na stronie poprzez php
astt
post 18.03.2006, 02:00:01
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.03.2006

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


Witam, nie znam sie jakoś specjalnie super na php dlatego zwracam się po pomoc.

Otuz mam stronę w htmlu no i mam ja w trzech wersjach polskiej i angielskiej i niemieckiej

I teraz koniecznie musi być zmieniany jezyk poprzez funkcje w php.
tak poprostu klikasz sobie na link np o postaci:

index.php?language=polski
index.php?language=english
index.php?language=deutch

i masz stronke w danym jezyku, poprost są 3 pliki językowe i one mają sie wyświetlać np w ramce na stronie.

tak sobie zazyczył mój nauczyciel [jestem w 3 klasie liceum] infy który ma hopla na temat php i wszystko by robił w php [ostatnio zrobił w nim dziennik...]

poprostu nie wiem jak to zrobić i zwaracam sie o pomoc.
Go to the top of the page
+Quote Post
Speedy
post 18.03.2006, 04:22:02
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


Temat już był poruszany...

Operujesz na tablicach. Podam prosty przykład.

  1. <?php
  2. $polski = array(0 => 'isc');
  3. $english = array(0 => 'go');
  4. $deutsch = array(0 => 'gehen');
  5.  
  6. if($_GET['language'] == 'polski')
  7. {
  8. $lang_array = $polski;
  9. }
  10.  
  11. elseif($_GET['language'] == 'english')
  12. {
  13. $lang_array = $english;
  14. }
  15.  
  16. elseif($_GET['language'] == 'deutsch')
  17. {
  18. $lang_array = $deutsch;
  19. }
  20.  
  21. else
  22. {
  23. $lang_array = $polski;
  24. }
  25.  
  26. echo $lang_array[0];
  27.  
  28. ?>


Sposób przechowywania wersji językowych jest zależny od Ciebie.


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
astt
post 18.03.2006, 11:34:22
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.03.2006

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


Dziekuje Panu za pomoc,
ale to nic mi nie mówi, poprostu mam strone w htmlu i jak ja mam to teraz połączyć w całość. poprostu nie znam jezyka php tylko dopiero sie go zaczałem uczyć.
Go to the top of the page
+Quote Post
Kshyhoo
post 18.03.2006, 11:59:21
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




na Forum nie używamy tytułów Pan, Pani. Jedziemy na tym samym wózeczku.
Odnośnie problemu, można użyć takiego kodu:
  1. <?php
  2.  
  3.  
  4. $jezyk = $_GET["jezyk"];
  5.  
  6. if (isset($jezyk))
  7. {
  8. $_SESSION["jezyk"] = $jezyk;
  9. }
  10. else
  11. {
  12. $_SESSION["jezyk"] = isset($_SESSION["jezyk"])?$_SESSION["jezyk"]:"en";
  13. }
  14.  
  15. //Wybór podstrony
  16. echo '<a href="index.php?go=0">strona1</a> || <a href="index.php?go=1">strona2</a><br />';
  17.  
  18. //Wybór wersji językowej
  19. echo '<a href="index.php?jezyk=pl">polski</a> || <a href="index.php?jezyk=en">angielski</a><br />';
  20.  
  21. echo '<br />';
  22.  
  23. switch ($_GET["go"])
  24. {
  25. case 0:
  26. default:
  27. include("page/strona1{$_SESSION["jezyk"]}.php");
  28. break;
  29. case 1:
  30. include("page/strona2{$_SESSION["jezyk"]}.php");
  31. break;
  32. }
  33.  
  34. ?>


Dodajemy katalog page a w nim umieszczamy strony:
strona1pl.php:
  1. <?
  2.  
  3. echo 'Strona pierwsza';
  4.  
  5. ?>

strona2pl.php:
  1. <?
  2.  
  3. echo 'Strona druga';
  4.  
  5. ?>

strona1en.php:
  1. <?
  2.  
  3. echo 'Page first';
  4.  
  5. ?>

strona2en.php:
  1. <?
  2.  
  3. echo 'Page secound';
  4.  
  5. ?>

Może to pozwoli "załapać" Ci zasadę zmian języka.

Ten post edytował Kshyhoo 18.03.2006, 12:03:16


--------------------
Go to the top of the page
+Quote Post
astt
post 18.03.2006, 21:21:08
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.03.2006

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


dzieki

ale TEN SKRYPT NIE DZIAŁA, tzn wgrałem go w takiej postaci jak podajesz i po zmianie języka dalej klikam np strona2 i nic po polsku [w plikach ma ok tak jak podawałeś]

co jest nie tak?questionmark.gif

Ten post edytował astt 18.03.2006, 21:42:44
Go to the top of the page
+Quote Post
Kshyhoo
post 18.03.2006, 22:18:17
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Hmm, nie działa to za mało. Jakieś błędy wyświetla? Wybacz za ptyanie, ale czy Ty masz aby jakiś serwer postawiony?


--------------------
Go to the top of the page
+Quote Post
astt
post 18.03.2006, 23:08:58
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.03.2006

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


Cytat(Kshyhoo @ 2006-03-18 21:18:17)
Hmm, nie działa to za mało. Jakieś błędy wyświetla? Wybacz za ptyanie, ale czy Ty masz aby jakiś serwer postawiony?

tak mam serwer, tzn mam strone swojej ednostki osp, którą robię z bratem i na to wgrałem oto link osp.fireman.easyisp.pl/php
Go to the top of the page
+Quote Post
xblant
post 19.03.2006, 15:28:31
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 31.01.2006

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


zeby wejsc na droga strone po polsku musisz miec taki adres
http://osp.fireman.easyisp.pl/php/index.php?jezyk=pl&go=1
musisz w adresie miec dwie zmienne smile.gif informujace o tym jaka strone wyswietlic i jakiego jezyka uzyc.
proponuje cos takiego:
index.php
  1. <?php
  2. include('strona'.$go.'-'.$jezyk.'.html');
  3. ?>

i tera strony maja takie nazwy
  • strona0-pl.html
  • strona1-pl.html
  • strona0-en.html
  • strona1-en.html
a adresy tak
  • index.php?jezyk=pl&go=0
  • index.php?jezyk=pl&go=1
  • index.php?jezyk=en&go=0
  • index.php?jezyk=en&go=1

logiczne nie questionmark.gifquestionmark.gif


--------------------
Go to the top of the page
+Quote Post
astt
post 19.03.2006, 19:38:32
Post #9





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.03.2006

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


ok wielkie dzieki, a powiedz mi dało by się tera tak zrobić żeby tak: mam tam sobie te linki 1 2 3 4 5 i link pl i en
teraz klikam en i odrazu takie coś np (sesja, ciasteczko czy coś takiego zapamiętuje to że wybralem en) i teraz jak klikne link 1 to ma strone 1 po angielsku

oczywiście używając na stroni index.php tego kodu
Kod
<?php
include('strona'.$go.'-'.$jezyk.'.html');
?>


bo inaczej to bym musial kazdemu linkowi przypisać tą końcówke konkretną, a takto bym sobie klikną ten en i odrazu by sesja byla zapamientana i poprostu linki by miały postać taką (sorki nie znam za bardzo skaladni)
index.php?lang={skrót do funkcji z zapisamym jezykiem w ciasteczku , domyślnie polski}&go=0
index.php?lang={skrót do funkcji z zapisamym jezykiem w ciasteczku , domyślnie polski}&go=1
itd. ulatwiło by to mi prace, z góry dzięki i wogóle dziękuje za wcześniejsze informacje.
pozdrawiam!
Go to the top of the page
+Quote Post
xblant
post 20.03.2006, 14:28:44
Post #10





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 31.01.2006

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


plik index.php powinien wygladac tak:
  1. <?php
  2. setcookie('lang', $jezyk, date()+365*24*60*60);
  3. if(isset($_COOKIE['lang'])
  4. {
  5. include('strona'.$go.'-'.$_COOKIE['lang'].'.html');
  6. }
  7. else
  8. {
  9. include('strona'.$go.'-'.$jezyk.'.html');
  10. }
  11. ?>

jesli nie to moze mnie ktos poprawi questionmark.gifquestionmark.gif


--------------------
Go to the top of the page
+Quote Post
astt
post 20.03.2006, 18:34:16
Post #11





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.03.2006

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


a czy mógłby ktoś cały kod od samego początku do końca sklecić w całość bo mi to nie wychodzi??.
jeszcze raz przypomne mam strone domyślnie język pl i 1,2,3,4 to linki teraz klikam np ang i mam odrazu tą samą strone po angielsu, oraz zapamiętany zosyaje wybór języka na angielski, i klikaja na danego linka ma strony po angielsku.

DZIKUJE ZA DOTYCHCZASOWE DANE winksmiley.jpg
Go to the top of the page
+Quote Post
xblant
post 21.03.2006, 15:28:55
Post #12





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 31.01.2006

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


to jest jush proste smile.gif wejdz na php.net i poszukaj definicji tego co nie rozumiesz.


--------------------
Go to the top of the page
+Quote Post
astt
post 22.03.2006, 00:30:40
Post #13





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.03.2006

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


xblant dl Ciebie to jest prostedla mnie nie, nie potrafie tego zrobić, pomożesz mi? skleciłbys to w całość?
Bardzo proszę.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:51