Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Strona wielojęzykowa
Forum PHP.pl > Forum > PHP
astt
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.
Speedy
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.
astt
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ć.
Kshyhoo
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.
astt
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
Kshyhoo
Hmm, nie działa to za mało. Jakieś błędy wyświetla? Wybacz za ptyanie, ale czy Ty masz aby jakiś serwer postawiony?
astt
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
xblant
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
astt
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!
xblant
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
astt
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
xblant
to jest jush proste smile.gif wejdz na php.net i poszukaj definicji tego co nie rozumiesz.
astt
xblant dl Ciebie to jest prostedla mnie nie, nie potrafie tego zrobić, pomożesz mi? skleciłbys to w całość?
Bardzo proszę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.