Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Wielojęzyczność a podstrony..
Forum PHP.pl > Forum > Przedszkole
-DawiT-
Witam wszystkich. Posiadam takowy problem:
zrobiłem sobie krótkie linki, aby nie robić 3 tysiące stron, użyłem $_GET i IF'ami z php sprawdzam czy faktycznie jest taka strona, np.

<a href='index.php?page=cos">COS!</a>

  1. <?php
  2. $page = !empty($_GET['page']) ? $_GET['page'] : NULL;
  3.  
  4.  
  5. switch($page) {
  6.  
  7. case 'glowna':
  8. echo 'cos tam cos tam';
  9. break;
  10. default:
  11. header('index.php?page=main');
  12. break;
  13. }
  14. ?>

no i tak dalej.
Problem się pojawił kiedy spróbowałem dodać wielojezyczność http://www.bitrepository.com/php-how-to-ad...-a-website.html <-- link

Chciałbym, aby jeśli ktoś jest na stronie "index.php?page=cos"

i wybrał u góry strony język angielski (zakładając że teraz jest na domyślnym-polskim) to link się zmienił na index.php?page=cos&lang=en
ewentualnie, aby się strona przeładowała ale nie koniecznie musi dodawać "&lang=en"

Proszę o pomoc, jeśli trzeba jeszcze jakieś info, podam smile.gif
Turson
Trzymaj w sesji wybrany jezyk
buliq
języki na tablicach ... poczytaj o gettext

Możesz napisać np funkcję która będzie tworzyła poprawny link, np:
  1.  
  2. function getLink($page, $lang = null) {
  3. if ($lang === null) {
  4. $lang = $_SESSION['default_lang'];
  5. }
  6.  
  7. $link = "index.php?page=" . $page;
  8. if ($lang != 'pl') {
  9. $link .= "&lang=" . $lang;
  10. }
  11. return $link;
  12. }
  13.  


język możesz trzymać w sesji wtedy nie musisz dodawać lang=pl
aras785
Trzymanie języka w sesji jest niepotrzebne. Lepiej jest trzymać w linku ponieważ przesyłając komuś link dostanie to co chce... + pozycjowanie
-DawiT-
Dzięki za odpowiedzi, przerobiłem trochę kod Buliq'a (któremu bardzo dziękuję smile.gif) Jednakże nie wiem jak teraz w html'u zrobić linki?

<a href='index.php?page=(nazwa-podstrony)&lang=<?php echo $lang ?>'>Nazwa odnosnika</a>
?
-DawiT-
sorry za double post, ale wprowadziłem w błąd. Problem jest tutaj:
<a href='#'> English </a> | <a href='#'> Polski </a>

i nie wiem co wpisać zamiast tej siatki.
in5ane
  1. <a href="<?php echo $_SERVER['REQUEST_URI']; ?>&lang=en">English</a>
-DawiT-
o tym własnie myślałem, jednakże jest problem, kolejny tongue.gif

chodzi o to że jak w linku mam index.php?page=cos&lang=en i wybiorę język Polski, link wygląda tak: index.php?page=cos&lang=en&lang=pl

nie wiem czy to zadziała, ale może funkcją str_replace, albo explode sprawdzić czy link zawiera "&lang" jeśli tak, to ma zmienić jego wartość, jeśli nie, ma po prostu dodać..
Turson
A nie możesz inaczej?
Jeśli lang=eng to ładujesz stronę po angielsku else po polsku.
-DawiT-
Turson, nie bardzo bo wszystko co zmienia się względem języków działa na zasadzie
<?php echo $lang['JAKIES_COS']; ?>

a w linku (pierwszy post) jest opisane jak to działa, bo zrobiłem na podobnej zasadzie,
en.php | pl.php i wczytuję.
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.