Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] pare wersji jezykowych strony, jest gdzies jakis tutorial?
-dyzurny-
post
Post #1





Goście







Witam,
czy zna ktos moze jakis tutorial, w ktorym pokazane jest jak ladnie na php zrobic dwie rozne wersje jezykowe strony? Chodzi o to, zeby np po wklepaniu index.php?page=aktualnosci?lang=pl wyskakiwal pliczek po polsku, a przy en po angielsku. Mam strone zrobiona tak, ze boczne menu, stopka i logo do gory laduja sie za kazdym razem z tego samego pliku, a tylko wnetrze strony jest ladowane z katalogu pages, idzie zrobic tak, aby po wybraniu w menu jezyka ladowalo odpowiednio pliki labo z katalogu pages albo z pages_en ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
slash12345
post
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 21.04.2006

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


To dosyć proste, poczytaj o konstrukcji switch oficjalnej dokumentacji php.
Masz proste wyrażenie require/include/echo/cokolwiek co wyprowadza dane, a więc:
  1. <?php /* index.php */
  2. switch ($_GET["lang"])
  3. {
  4. case "pl": require "pages/{$_GET["page"]}"; break;
  5. case "en": require "pages_en/{$_GET["page"]}"; break;
  6. default: require "pages/{$_GET["page"]}"; break;
  7. }
  8. ?>

Jeśli chodzi o ładowanie wielu plików, możesz użyć przeszukiwania katalogu przy pomocy readdir. A sprawa wielojęzycznego szablonu strony rozwiązuje się sama gdy dysponujemy odpowiednio skonfigurowanym serwerem Apache (index.html.pl, index.html.en czy cuś takiego).

Ten post edytował slash12345 9.07.2006, 18:02:23


--------------------
Kod
thewanderer@debian:~$ sudo apt-get dist-upgrade
Konieczne pobranie 666KB pakietów. Czy chcesz kontynuować? [T/n] nieeeeeeee
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







Warning: main(./pages/): failed to open stream: No such file or directory in /home/dyzurny/domains/dyzurny.rwi.pl/public_html/index.php on line 23

Fatal error: main(): Failed opening required './pages/' (include_path='.:/usr/local/lib/php') in /home/dyzurny/domains/dyzurny.rwi.pl/public_html/index.php on line 23" title="Zobacz w manualu php" target="_manual

  1. <html><head><title>I Liceum Ogólnokształcące im. Marii Skłodowskiej-Curie w Ostrzeszowie</title><center>
  2. <script language="javascript">
  3.  function onColor(blah)
  4.  {
  5.  blah.style.backgroundColor='#CDCDCD';
  6.  }
  7.  
  8.  function offColor(blah)
  9.  {
  10.  blah.style.backgroundColor='#F0F0F0';
  11.  }
  12.  function displayWindow(url, width, height) {
  13. var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + 
  14. ',left=50,top=50,resizable=1,scrollbars=yes,menubar=no' );
  15.  }
  16. </script>
  17. <!--lang--!>
  18. <?php /* index.php */
  19. switch ($_GET["lang"])
  20. {
  21. case "pl": require "./pages/{$_GET["page"]}"; break;
  22. case "en": require "./pages_en/{$_GET["page"]}"; break;
  23. default: require "./pages/{$_GET["page"]}"; break;
  24. }
  25. ?>
  26. <!--langa koniec ;p--!>
  27. <!--ramka--!>
  28.  
  29. <?php
  30. if (empty($_GET['page']))
  31. {
  32. $sPage = 'glowna';
  33. }
  34. else
  35. {
  36. $sPage = basename($_GET['page']);
  37. }
  38. $sFileName = './pages/' . $sPage . '.php';
  39. if (!file_exists($sFileName))
  40. {
  41. $sFileName = './pages/gowna.php';
  42. }
  43. include ($sFileName);
  44. ?>
  45.  
  46.  
  47. <!--ramki koniec ;p--!>

I o co tu teraz chodzi? gdy wklepie /pages lub caly adres z http wyrzuca mi 403... ?
Go to the top of the page
+Quote Post
tommy4
post
Post #4





Grupa: Zarejestrowani
Postów: 288
Pomógł: 12
Dołączył: 2.12.2005

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


ja ogolnie zrobilem na pare jezykow dostosowanie, tak ze:

1) mam plik languages.txt z charsetem id , czy jezyk jest domyslny, skrot (np. "pl" albo "en") i nazwa bazy danych. ohmy.gif
2) Na poczatku glownego pliku robie sobie piekna tabele, gdzie domyslny jezyk jest na poczatku, wyczytujac dane z powyzszego pliku (domyslny jezyk jest porownywany z tym od przegladarki;d, czyli jesli w powyzszym pliku .txt nie ma jezyka "pl", a w przegladarce jest taki domyslny, to ustawia domyslny z pliku;o)
3) Sprawdzam czy jest ustawione cookie odnosnie jezyka
jesli tak biore jezyk z cookie
jesli nie biore domyslny jezyk
4) laduje baze danych odpowiednia dla jezyka
trza pamietac, ze np. foldery typu avatars musza byc dla kazdego jezyka oddzielne, jesli np. przechowujemy avatar jako $id.".gif";
5) wyswietlam u gory formularz, ktory po submicie ustawia cookie z jezykiem;o
i to wszystko w sumie, mam nadzieje ze cos pomoze.
Go to the top of the page
+Quote Post
-Gość-
post
Post #5





Goście







  1. <?
  2. $languages = array("pl","de","en");
  3. if(!empty($_GET['lang']) && in_array($_GET['lang'],$languages))
  4. {
  5. $_SESSION['lang'] = $_GET['lang'];
  6. }
  7. elseif(empty($_SESSION['lang']))
  8. {
  9. $_SESSION['lang']="pl";
  10. }
  11. ?>
  12.  
  13.  <?
  14. $menupl = fread(fopen("./pages/menu.php", "r"), filesize("./pages/menu.php"));
  15. echo $menupl;
  16. ?>
  17.  
  18.  
  19. <?php
  20. if (empty($_GET['page']))
  21. {
  22. $sPage = 'glowna';
  23. }
  24. else
  25. {
  26. $sPage = basename($_GET['page']);
  27. }
  28. var_dump($_SESSION);
  29. if($_SESSION['lang']="pl") { $sFileName = './pages/' . $sPage . '.php';
  30. include ($sFileName); }
  31. elseif($_SESSION['lang']="de") { $sFileName = './pages_de/' . $sPage . '.php';
  32. include ($sFileName); }
  33. elseif($_SESSION['lang']="en") { $sFileName = './pages_en/' . $sPage . '.php';
  34. include ($sFileName); }
  35. else { echo 'nima'; }
  36. ?>


I teraz wyrzuca przed includem array(1) { ["lang"]=> string(2) "pl" } lub array(1) { ["lang"]=> string(2) "de" } czy array(1) { ["lang"]=> string(2) "en" } w zaleznosci od &lang=
Go to the top of the page
+Quote Post
Coolmax
post
Post #6





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


Też to kiedyś przeżywałem biggrin.gif. Looknij tutaj.


--------------------
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 - 09:01