Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wybór języków
Forum PHP.pl > Forum > Przedszkole
scrat
Witam!

Planuje na stronie zrobić wybór języków, nietety samemu nie daje rady :/
Nie wiem czemu ale nie moge dojść do odpowiedniej komędy.
Chodzi o to aby po naciśnięciu na flagę wczytywał TYLKO texty a nie stronę.

a więc index.php
  1. <?php include("language/pl.php")
  2. ;?> <-- standardowy język
  3. .....
  4. <td width="30"><a href="<?php include("language/de.php")?>" taget=""><IMG src="cz/deutsch.jpg"></a></td>
  5. <td width="720"><a href="<?php echo "language/pl.php";?>" taget=""><IMG src="cz/polski.jpg"></td>
  6. .....
  7. <--- w żaden sposób mi nie wychodzi mad.gif 

language/pl.php
  1. <?php
  2.  
  3.  
  4. $n = Polskatest;
  5. $menu2 = Info;
  6. $menu3 = menu3;
  7. $menu4 = menu4;
  8. $menu5 = menu5;
  9. $menu6 = menu6;
  10. $menu7 = menu7;
  11. $link1 = linki;
  12. $link2 = Forum;
  13. $link3 = guestbook;
  14.  
  15. ?>



Tym razem poprawiłem.
~mike_mech
DreeD
Po nacisnieciu obrazka niech przenosi na strone np. index.php?lang=pl

Teraz wystarczy zrobic sobie
  1. <?php
  2. switch ($_GET['lang']) { 
  3. /* 
  4. To jest niepotrzebne jak w default includujesz pl.php
  5. case pl: 
  6. include ("lang/pl.php"); 
  7. break; */
  8.  
  9. case en: 
  10. include ("lang/en.php");
  11. break;
  12.  
  13. case de: 
  14. include ("lang/de.php");
  15. break;
  16.  
  17. default: // Edit: zapomnialem o default..
  18. include ("lang/pl.php"); 
  19. break;
  20. }
  21. ?>
gulldarek
  1. <?php
  2.  
  3. if (!$_REQUEST['lang'])
  4. {
  5. $lang = 'pl';
  6. }
  7. else
  8. {
  9. $lang = $_REQUEST['lang'];
  10. }
  11.  
  12. include("language/" . $lang . ".php");
  13. ;?>
  14.  
  15. .....
  16. <td width="30"><a href="?lang=de" taget=""><IMG src="cz/deutsch.jpg"></a></td>
  17. <td width="720"><a href="?lang=pl" taget=""><IMG src="cz/polski.jpg"></td>
  18. .....


Pisane na szybko, ale dzialac powinno smile.gif
mike
A propo twojego pliku language/pl.php.
Zacznij Ty może od jakiegoś kursu dla początkujących, co :?:
A w pierszej kolejności: Łańcuchy znaków (string)
gulldarek
  1. <?php
  2.  
  3.  
  4. $n = 'Polskatest';
  5. $menu2 = 'Info';
  6. $menu3 = 'menu3';
  7. $menu4 = 'menu4';
  8. $menu5 = 'menu5';
  9. $menu6 = 'menu6';
  10. $menu7 = 'menu7';
  11. $link1 = 'linki';
  12. $link2 = 'Forum';
  13. $link3 = 'guestbook';
  14.  
  15. ?>


exclamation.gif!
scrat
dzięki
skrypty działają perfect !

mogę teraz zastosować w skrypcie $HTTP_ACCEPT_LANGUAGE,
i wykorzystać to do aut. wybierania języków. rolleyes.gif
będzie trudno ale dam rady aaevil.gif
(mam nadzieje)
teh
skopiowalem ten skrypt do mojej strony, wszystko jest ok,
prawie

podstrony nie dzialaja
tzn, jezeli w pliku pl.php mam $news = "news";
to w pliku podstrony echo "$news" nic mi nie wyswietla


czy ktos wie dlaczego ?
scrat
mam ten sam problem :/
zrobilem druga strone w cz/info.php

i otwieram ja z strony glownej:
Kod
<A class=podmenu href="cz/info.php" target=srodek ><?php echo "$m7k"?>


otwiera mis sie strona
na ktorej istnieje
  1. <?php
  2. echo "$infoin";
  3. ?>

nie wyswietla mi $infoin

jezeli includuje plik PL.php w info.php
to wtedy laduje mi text PL,

co zrobic aby wybor jezyka obowiazywal na cala sesje ?
AxZx
podeopne sie pod temat zeby nie tworzyc kolejnego topicu, mam nadzieje ze sie nikt nie obrazi smile.gif

trzymajac tlumaczenia w pliku jest wszystko dobrze, bo dodajac kolejny jezyk tworzymy nowy plik i tam jeszcze pare poprawek skryptu i dziala

a jezeli trzymama w bazie np kategorie?

kategorie sie zmieniaja, tzn dodaje nowe, zmieniam nazwy itd itp
i chcialem je rowniez tlumaczyc na kilka jezykow

jak baze zorganizowac?

kiedys zrobilem tak:
tabela branze
branza_id | branza_pl | branza_uk | branza_de

ale to jest dla 3 jezykow, zeby dodac kolejny musze dodac kolejna kolumne
czy to jest dobry sposob? zalozmy ze teraz mam 6 jezykow, bede chcial za jakis czas dodac kolejne 6.
czy to zda egzamin?
pozdrawiam
ghostrider
moze tak:
TB_LANGSY:
id_lang | name (np: polski, angielski .... )
TB_STRINGSY:
id_string | name (np: "SHOW_NEWS" .... )
TB_VALSY:
id_lang | id_string | value (np: "POKAZ NEWSY")
segos
Odświeżę topic ponieważ mam mały problem. Otóż chodzi o to że wchodząc na stronę wszystko jest po polsku, lecz jeśli zmienię na język angielski to tylko strona główna jest po angielsku, a jak przejdę na byle jaką podstronę to automatycznie idzie na język polski.

  1. <?php
  2. switch ($_GET['lang']) {
  3. case en:
  4. include ("lenguage/en_lang.php");
  5. break;
  6.  
  7. default:
  8. include ("lenguage/pl_lang.php");
  9. break;
  10. }
  11. ?>


mlawnik
Ale odkop.

Bo do następnych stron nie przekazujesz argumentu get.
blooregard
Cytat(segos @ 16.05.2011, 21:49:19 ) *
Odświeżę topic ponieważ mam mały problem. Otóż chodzi o to że wchodząc na stronę wszystko jest po polsku, lecz jeśli zmienię na język angielski to tylko strona główna jest po angielsku, a jak przejdę na byle jaką podstronę to automatycznie idzie na język polski.

  1. <?php
  2. switch ($_GET['lang']) {
  3. case en:
  4. include ("lenguage/en_lang.php");
  5. break;
  6.  
  7. default:
  8. include ("lenguage/pl_lang.php");
  9. break;
  10. }
  11. ?>


A przekazujesz w GET zmienną 'lang' do każdej podstrony?
segos
Czyli musiał bym przerobić index.php

  1. <?php
  2. // zmienna $go przekazana metoda GET
  3. $go = $_GET['go'];
  4.  
  5. // sprawdzamy czy zmienna $go nie jest pusta
  6. if(!empty($go)) {
  7. // sprawdzamy czy plik o danej nazwie istnieje
  8. if(is_file("page/$go.php")) include "page/$go.php";
  9. // jezeli plik nie istnieje wyswietla się komunikat
  10. else echo "<br />Nie ma takiej strony :-(";
  11. }
  12. // jezeli zmienna $go jest pusta wyswietla się strona glowna
  13. else include "page/start.php";
  14.  
  15. ?>
Kshyhoo
Cytat(segos @ 16.05.2011, 20:49:19 ) *
Odświeżę topic (...)

Ty nie odświeżyłeś, Ty odkopałeś ;p
Cytat(segos @ 16.05.2011, 21:00:43 ) *
Czyli musiał bym przerobić index.php

Musisz przekazać parametry w linku:
Cytat

Możesz coś np. tak:
  1. <?php
  2. $query = preg_replace("/(^l=..|&l=..)/i", "", $_SERVER["QUERY_STRING"]);
  3.  
  4. if ($query<>"") $adres = $_SERVER["PHP_SELF"]."?$query&amp;";
  5. else $adres = $_SERVER["PHP_SELF"]."?";
  6.  
  7. if ($_GET["l"]=="en") {
  8. echo "<a href=\"{$adres}l=pl\">Wersja polska</a>";
  9. } else {
  10. echo "<a href=\"{$adres}l=en\">English version</a>";
  11. }
  12. ?>

lub w sesji:
  1. <?php session_start(); ?>
  2. <p>
  3. <a href="index.php?jezyk=pl">polski</a> -
  4. <a href="index.php?jezyk=en">angielski</a>
  5. </p>
  6.  
  7. <?
  8. $jezyk = $_GET["jezyk"];
  9.  
  10. if (isset($jezyk) && file_exists("lang/$jezyk.php")) {
  11. $_SESSION["jezyk"] = $jezyk;
  12. } else {
  13. $_SESSION["jezyk"] = isset($_SESSION["jezyk"])?$_SESSION["jezyk"]:"pl";
  14. }
  15. include("lang/{$_SESSION["jezyk"]}.php");
  16. ?>
  17.  
  18. <p>
  19. <?php= LANG_HASLO ?>
  20. </p>
  21.  
  22. <p>
  23. <?php=LANG_LOGIN ?>
  24. </p>

i pliki językowe:
pl.php:
  1. <?php
  2. define("LANG_HASLO", "Wprowadź hasło.");
  3. define("LANG_LOGIN", "Wproswadź login");
  4. ?>

en.php
  1. <?php
  2. define("LANG_HASLO", "Enter password.");
  3. define("LANG_LOGIN", "Enter login");
  4. ?>
segos
Robiąc tak jak pisałeś to mi wyskakuje błąd index.php on line 28
  1. ...
  2. <title><?php=title ?></title>
  3. ...


//

Tu jest moj index.php z poprzednimi obcjami

  1. <?php
  2.  
  3. // zmienna potrzebna do prawidlowego wczytania includowanych plikow
  4. $add_site = true;
  5. /*
  6. plik z funkcjami z porady
  7. <a href="http://www.kess.com.pl/index.php?sid=10&pid=54" target="_blank">http://www.kess.com.pl/index.php?sid=10&pid=54</a>
  8. */
  9. include "include/function.php";
  10. include "include/jezyki_conf.php";
  11. ?>
  12.  
  13. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  14. <html>
  15. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  16. <meta http-equiv="Reply-to" content="segos92@gmail.com" />
  17. <meta name="Author" content="Shelvi" />
  18. <head>
  19. <title><?php echo "$title";?></title>
  20. <link rel="stylesheet" href="/style.css" type="text/css">
  21. </head>
  22. <body>
  23. <table border="0" width="800" cellpadding="0" cellspacing="2" align="center">
  24. <?php include "include/naglowek.php"; ?>
  25. <tr>
  26. <td valign="top"><?php include "include/menu_lewe.php"; ?></td>
  27. <td valign="top">
  28. <?php
  29. // zmienna $go przekazana metoda GET
  30. $go = $_GET['go'];
  31.  
  32. // sprawdzamy czy zmienna $go nie jest pusta
  33. if(!empty($go)) {
  34. // sprawdzamy czy plik o danej nazwie istnieje
  35. if(is_file("page/$go.php")) include "page/$go.php";
  36. // jezeli plik nie istnieje wyswietla się komunikat
  37. else echo "<br />Nie ma takiej strony :-(";
  38. }
  39. // jezeli zmienna $go jest pusta wyswietla się strona glowna
  40. else include "page/start.php";
  41.  
  42. ?>
  43. </td>
  44.  
  45. <td valign="top"><?php include "include/menu_prawe.php"; ?></td>
  46. </tr>
  47. <?php include "include/stopka.php"; ?>
  48. </table>
  49. </body>
  50. </html>


jezyki_conf.php

  1. <?php
  2. // sprawdzenie czy zmienna $add_site istnieje
  3. if(!$add_site) exit;
  4. ?>
  5. <?php
  6. switch ($_GET['lang']) {
  7. /*
  8. To jest niepotrzebne jak w default includujesz pl.php
  9. case pl:
  10. include ("lang/pl.php");
  11. break; */
  12.  
  13. case en:
  14. include ("lang/en.php");
  15. break;
  16.  
  17. case es:
  18. include ("lang/es.php");
  19. break;
  20.  
  21. default: // Edit: zapomnialem o default..
  22. include ("lang/pl.php");
  23. break;
  24. }
  25. ?>
mlawnik
Czyżby następny przypadek copypasteryzmu?

http://forum.php.pl/index.php?showtopic=17...mp;#entry858008

Ten kod co dałeś niczego nie daje.
Cała treść błędu i więcej kodu.

segos
Cytat(mlawnik @ 18.05.2011, 20:37:06 ) *
Czyżby następny przypadek copypasteryzmu?

http://forum.php.pl/index.php?showtopic=17...mp;#entry858008

Ten kod co dałeś niczego nie daje.
Cała treść błędu i więcej kodu.


Jak mam ci dać cala treść błędu skoro błąd jest w tytule tzn na lini 28 w index.php a ta linia to właśnie to

  1. <title><?php=title ?></title>


Więc zastosowanie Kshyhoo nie chce mi działać, bo wątpię że źle robię skoro dał podpowiedź jak mniej więcej zrobić. A ten kod co podałem to zastosowanie DreeD lecz próbowałem robić tak jak pisał
mlawnik i blooregard lecz źle to robiłem bo tak czy siak nie działało.
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.