Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Strona dwujęzyczna
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Mam problem, a właściwie zapytanie. Chcę zrobić wersję angielskojęzyczną strony polskiej. Jak to zrobić, abym nie musiał pisać plików dwa razy (lub więcej, jakbym chciał robić jeszcze jakieś inne wersje stron, np. francuską)?

Mam taki szkielet. Wyświetla sekcję <body>:
  1. <body>
  2. <div id="menu">
  3. <a href="index.php?id=home">Home</a>
  4. <a href="index.php?id=newsy">Newsy</a>
  5. <a href="index.php?id=kontakt">Kontakt</a>
  6. </div>
  7. <div id="strona">
  8. <?php
  9. /////Funkcja wyświetlania strony głównej
  10. function home ()
  11. {
  12. echo 'Strona główna';
  13. echo '<a href=""> ENG</a> | ';
  14. echo '<a href="">PL</a>';
  15. }
  16.  
  17. ///////Wyświetlanie newsów
  18. function newsy()
  19. {
  20. echo 'Strona z newsami';
  21. }
  22.  
  23. ///////Wyświetlanie kontakt
  24. function kontakt()
  25. {
  26. echo 'Strona kontaktowa';
  27. }
  28.  
  29. ////////////Wywoływanie funkcji zmieniającej strony
  30. if($_REQUEST['id'] == 'home'){
  31. home();
  32. }else if($_REQUEST['id'] == 'newsy'){
  33. newsy();
  34. }else if($_REQUEST['id'] == 'kontakt'){
  35. kontakt();
  36. }else{
  37. home();
  38. }
  39. ?>
  40. </div>
  41. <div id="stopka">
  42. Designed by xxxx
  43. </div>
  44. </body>
elldiablo
  1. #
  2. function home ()
  3. {
  4. echo 'Strona główna';
  5. echo '<a href="index.php?lang=en"> ENG</a> | ';
  6. echo '<a href="index.php?lang=pl">PL</a>';
  7. }


Zmienną możesz zapisać do $_SESSION['lang'] = $_RQUEST['lang'];

A potem:
if(isset($_SESSION['lang'] == 'pl')) {
include ('polski.php')
elseif ($_SESSION['lang'] == 'en') {
include ('angielski.php')
}

Ja bym to tak zrobił
andrzejlechniak
Twój sposób nawet mi się podoba, ale musiałem lekko zmodyfikować go, mam tak:
  1. #
  2. function home ()
  3. {
  4. echo 'Strona główna';
  5. echo '<a href="index.php?lang=en"> ENG</a> | ';
  6. echo '<a href="index.php?lang=pl">PL</a>';
  7.  
  8. if(isset($_SESSION['lang'] == 'pl'))
  9. {
  10. include ('polski.php');
  11. }
  12. elseif ($_SESSION['lang'] == 'en')
  13. {
  14. include ('english.php');
  15. }
  16.  
  17. }


i wyświetla mi błąd, gdzieś tu jest błąd składniowy, ale nie wiem gdzie, takie coś mi się wyświetla:

Parse error: syntax error, unexpected T_IS_EQUAL, expecting ',' or ')' in C:\xampp\xampp\htdocs\xampp\testowa\index.php on line 24

linia 24 to
  1. if(isset($_SESSION['lang'] == 'pl'))
gigzorr
  1. function home ()
  2. {
  3. echo 'Strona główna';
  4. echo '<a href="index.php?lang=en"> ENG</a> | ';
  5. echo '<a href="index.php?lang=pl">PL</a>';
  6.  
  7. if (isset($_SESSION['lang']) == 'pl')
  8. {
  9. include ('polski.php');
  10. }
  11.  
  12. elseif ($_SESSION['lang'] == 'en')
  13. {
  14. include ('english.php');
  15. }
  16.  
  17. }
andrzejlechniak
Niby ok. Mam te dwa pliki, includowanie 'niby' działa, ale nic się nie wyświetla, znaczy się tak jakby te pliki się nie wczytywały.
elldiablo
A uruchomiłeś sesje?

session_start(); na początku każdej podstrony.

index.php itd.
andrzejlechniak
Uruchomiłem, ale efekt wciąż taki sam... sadsmiley02.gif
ciekawskiii
A co masz w tych includowanych plikach?
andrzejlechniak
Pliki, które inkluduję to, a zresztą podaję:

Plik 'polski.php':
  1. <?php
  2.  
  3. echo 'tekst polski';
  4.  
  5. ?>


Plik 'english.php':
  1. <?php
  2.  
  3. echo 'english';
  4.  
  5. ?>


Napisałem na razie jako test... Ale nie wyświetla tych echowanych napisów. Czemu, nie wiem?
ciekawskiii
Pokaz teraz caly kod jak to polaczyles wszystko bo pewnie cos pomieszales
andrzejlechniak
Ojojoj. Coś pewnie nakopałem. Podaję zatem całość:

Plik 'index.php' - cały:
  1. <?php
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <meta name="keyword" content="Strona" />
  7. <link type="text/css" rel="stylesheet" href="style/style.css" />
  8. <title>Tytuł strony</title>
  9. </head>
  10. <body>
  11. <div id="menu">
  12. <a href="index.php?id=home">Home</a>
  13. <a href="index.php?id=newsy">Newsy</a>
  14. <a href="index.php?id=kontakt">Kontakt</a>
  15. </div>
  16. <div id="strona">
  17. <?php
  18. /////Funkcja wyświetlania strony głównej
  19. function home ()
  20. {
  21. echo 'Strona główna';
  22. echo '<a href="index.php?lang=en"> ENG</a> | ';
  23. echo '<a href="index.php?lang=pl">PL</a>';
  24.  
  25. if (isset($_SESSION['lang']) == 'pl')
  26. {
  27. require_once ('polski.php');
  28. }
  29.  
  30. elseif ($_SESSION['lang'] == 'en')
  31. {
  32. require_once ('english.php');
  33. }
  34.  
  35. }
  36.  
  37. ///////Wyświetlanie newsów
  38. function newsy()
  39. {
  40. echo 'Strona z newsami';
  41. }
  42.  
  43. ///////Wyświetlanie kontakt
  44. function kontakt()
  45. {
  46. echo 'Strona kontaktowa';
  47. }
  48.  
  49. ////////////Wywoływanie funkcji zmieniającej strony
  50. if($_REQUEST['id'] == 'home'){
  51. home();
  52. }else if($_REQUEST['id'] == 'newsy'){
  53. newsy();
  54. }else if($_REQUEST['id'] == 'kontakt'){
  55. kontakt();
  56. }else{
  57. home();
  58. }
  59. ?>
  60. </div>
  61. <div id="stopka">
  62. Designed by xxxx
  63. </div>
  64. </body></html>


Plik 'polski.php':
  1. <?php
  2.  
  3. echo 'tekst polski';
  4.  
  5. ?>
  6.  
  7. Plik 'english.php':
  8. [php]
  9. <?php
  10.  
  11. echo 'english';
  12.  
  13. ?>

[/php]
ciekawskiii
Dodaj jeszcze
  1. if($_
  2. REQUEST['lang'] == 'pl')
itp
andrzejlechniak
No dobra, jakoś sobie poradziłem, dzięki wszystkim, którzy brali udział w pomocy mi. biggrin.gif
ciekawskiii
Nie ma za co, jestes winny kazdemu 83,00 pln + vat
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.