Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] System języków
Forum PHP.pl > Forum > Przedszkole
IceBeast
Witam

Chciałbym dodać do mojego skryptu prosty system języków. Że z tabeli z jakiegoś tam pliku językowego pobiera zmienną, w której zdefiniowany jest tekst w wybranym języku. W jaki sposób mogę to zaimplementować? I na jakiej zasadzie mogę później dodać możliwość zmiany języka?

Z góry dziękuję za pomoc.
gino
Proponuję lepiej dla danego języka utworzyć osobny plik np. pl.inc, uk.inc itp. i pod wartościami tych zmiennych wstawić opisy. W skryptach na stronach tam gdzie tekst wstawiasz zmienne. Wcześniej robisz include plików w zależności od tego jak przesyłasz identyfikator pliku. \jak nie ma identyfikatora ustawiasz język podstawowy\
  1. //jeśli po url-u dajesz identyfikator języka np. lang=pl:
  2. include ('.$_GET['lang'].'.inc');
  3. //jak masz w sesji język dla konkretnego usera:
  4. include ('.$_SESSION['lang'].'.inc');


i tyle. Wcześniej oczywiście sprawdź czy zmienna lang istnieje i czy zmienną językową jesteś w stanie obsłużyć, jak nie to ustaw lang podstawowy np. na polski. W tabelach jeśli opisy będą rozbudowane zrobią Ci się straszne tasiemce. Ale da się:
  1. $lang = array(
  2. 'pl' => array (0 => 'tytul1', 1 => 'tytul2'),
  3. 'uk' => array (0 => 'title1', 1 => 'title2')
  4. );


Piszę z głowy, mogły wkraść się błędy.

gino
mat-bi
taa, przyda też się sprwdzanie, czy taki plik jest na serwie, na upartego można zaincludować to, czego się nie chce smile.gif
gino
Cytat(mat-bi @ 27.05.2011, 21:21:32 ) *
taa, przyda też się sprwdzanie, czy taki plik jest na serwie, na upartego można zaincludować to, czego się nie chce smile.gif


pisząc, że "jesteś w stanie obsłużyć" zawarłem całą oczywistość Twojego stwierdzenia tongue.gif

gino
IceBeast
Ok, dziękuję, ogólnie załapałem tongue.gif

Tylko w jaki sposób mógłbym zrobić, że getem pobieram lang, np. po wejściu na language.php?lang=pl ustawia w sesji lang na pl? worriedsmiley.gif
gino
Nie wiem czy o to Ci chodzi: chcesz getem przesłać identyfikator langu i wstawić go do sesji aby na następnych stronach brać już z sesji ?

Jeśli tak, to w language.php:

  1. <?php
  2. //sprawdzasz, czy obłużysz plik z opisami: czy istnieje $_GET['lang'], czy istnieje plik który chcesz includować
  3.  
  4. $nazwa_pliku = $_GET['lang'].'.inc';
  5. if (file_exists($nazwa_pliku)) {
  6. include $nazwa_pliku;
  7. $_SESSION['lang'] = $_GET['lang'];
  8. }
  9. else include ('pl.inc');
  10. ?>


w następnych plikach:
  1. <?php
  2. if (isset($_SESSION['lang'])) include ('.$_SESSION['lang'].'.inc');
  3. else include ('pl.inc');
  4. ?>


jak nie to opisz jaśniej rolleyes.gif

gino
IceBeast
Bardzo dziękuję, dokładnie o to mi chodziło wink.gif Jesteś pierwszą osobą na tym forum która tak dobrze mi coś wytłumaczyła biggrin.gif
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.