Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pytanie o język
Forum PHP.pl > Forum > Przedszkole
Komarek
Witam, posiadam stronkę (kolega zrobił), w wersji angielskiej.
Zawiera ona dużo róznych stwierdzen i angielskich zwrotow.

Wyobrazmy sobie przyklad:

Username: |________|
Password: |________|
<a href="http://blebleble.pl">English Link</a>

Czy da rade zrobic cos w ten deseń: (?)
$_LANG['username']: |________|
$_LANG['password']: |________|
<a href="http://blebleble.pl">$_LANG['link1']</a>

Nie chodzi mi tutaj o mieszanie roznych językow programowania...
chodzi mi czy jest mozliwosc w taki sposob podstawic te zwroty a w nowych plikach np, english.php i polish.php dodac po prostu tekst do tych zmiennych.

+ na stronce jakies ikonki do zmieniania języka:

wiecie o co mi chodzi?
tak by miec np w pliku english.php
$_LANG['username'] = Username
itd...
a w polish.php
$_LANG['username'] = Użytkownik

czy da rade stosowac taka podmiane?
Czy jest jakis skrypt do tego?

w php jestem zielony wiec prosze o pomoc jak to mniej wiecej zrobic winksmiley.jpg
MateuszS
Tak jest taka możliwość, ale najlepiej to zrobić osobny folder na stronę pl i en, w jednym jest strona po PL a w drugim EN, tak jest chyba najprościej
ZuyPan
Z tego co wywnioskowałem chodzi Ci o zmianę języków na stronie. Oczywiście, że jest taka możliwość, co więcej nawet sam podałeś sposób jego rozwiązania smile.gif Ja bym to zrobił tak: stworzył bym folder: jezyki a w nim np. polski.php, english.php itd. na stronie zrobił bym menu rozwijane z wyborem języka i przycisk wyślij. Po wybraniu interesującego nas języka wartość zapisywała by się do sesji o nazwie np. jezyk. Potem za pomocą wartości w tej sesji includowało by sięodpowiedni plik z językiem np. polski.php. I teraz przy logowaniu wyglądało byto tak
  1. <?php
  2. echo "$login : |________|";
  3. echo "$haslo: |________|";
  4. echo "<a href="http://blebleble.pl">$link</a>";
  5. ?>


natomaist plik polski.php tak

  1. <?php
  2. $login = 'Login';
  3. $haslo = 'Hasło';
  4. $link = 'Treść linka';
  5. ?>


inny przykład: plik english.php


  1. <?php
  2. $login = 'Username';
  3. $haslo = 'Password';
  4. $link = 'Link';
  5. ?>
QooBooS
Dobrze kombinujesz. W PHP-Fusion jest to rozwiązane w ten sposób:
w pliku, który wyświetla ten formularz wstawiasz:
  1. require_once "plik_z_jezykiem.php";

w nim piszesz:
  1. <?php
  2. $LANG['username'] = "Użytkownik";
  3. $LANG['password'] = "Hasło";
  4. ?>

i tak dalej...
Językiem możesz sterować poprzez zmienną podawaną w adresie ($_GET), np. www.strona.pl/index.php?jezyk=pl i na podstawie tego w pliku wyświetlającym formularz załadować odpowiedni plik językowy, np.:
  1. if (isset($_GET['jezyk']) && $_GET['jezyk'] != '')
  2. {
  3. switch($_GET['jezyk'])
  4. {
  5. case 'pl': require_once "polski.php"; break;
  6. case 'eng': require_once "angielski.php"; break;
  7. }
  8. }

Jeśli potrafisz łączyć się z bazą danych i pobierać z niej dane (jeśli w ogóle masz taką na serwerze), możesz ją wykorzystać do przechowywania języków każdego użytkownika z osobna. W ten sposób każdy będzie miał indywidualne ustawienie języka, czyli strona będzie mogła pójść w świat smile.gif
Jest jeszcze kilka rozwiązań, ale te wydają mi się najłatwiejsze.
Pozdrawiam.
Komarek
@ZuyPan:
trochę dużo, za dużo byłoby męczarni z dodawaniem echo do kazdej funkcji, pozatym moze to troche (bardzo) zagmatwac kod...

@QooBooS:
mozesz to troche bardziej opisac, bo za bardzo nie kumam ?biggrin.gif
jak ma wygladac sposob umiejscawiania tego $LANG... w org index.php?
Przykladowo jak mam w htmlu:
Username: ........

to jak to zamienic?
<? $LANG['username'] ?>: ............

jakos tak ? biggrin.gif
nie mam pojecia prosze o pomoc biggrin.gif

i czy moglbys mi powiedziec jak zamieniac te jezyki bez uzywania funkcji GET ? biggrin.gif
erix
Temat: Wielojzykowo
Komarek
okej troche rozumiem a troche nie biggrin.gif

dorobilem pliki lang_... php oraz pozamienialem teksty w index.php na zmienne $LANG....

Jednak teraz mam problem poniewaz nie mam pojecia jak dalej zrobic.

Mianowicie:

jak zrobić by domyślnie był includowany plik lang_en.php?
oraz jak zrobić menu zmiany języku (zapisywane do sesji)?

Prosilbym o jakis przyklad lub chociazby link do poradnika.

Pozdrawiam winksmiley.jpg
devdev
Cytat(QooBooS @ 10.02.2010, 19:38:28 ) *
Dobrze kombinujesz. W PHP-Fusion jest to rozwiązane w ten sposób:
w pliku, który wyświetla ten formularz wstawiasz:
  1. require_once "plik_z_jezykiem.php";

w nim piszesz:
  1. <?php
  2. $LANG['username'] = "Użytkownik";
  3. $LANG['password'] = "Hasło";
  4. ?>

i tak dalej...
Językiem możesz sterować poprzez zmienną podawaną w adresie ($_GET), np. www.strona.pl/index.php?jezyk=pl i na podstawie tego w pliku wyświetlającym formularz załadować odpowiedni plik językowy, np.:
  1. if (isset($_GET['jezyk']) && $_GET['jezyk'] != '')
  2. {
  3. switch($_GET['jezyk'])
  4. {
  5. case 'pl': require_once "polski.php"; break;
  6. case 'eng': require_once "angielski.php"; break;
  7. }
  8. }

Jeśli potrafisz łączyć się z bazą danych i pobierać z niej dane (jeśli w ogóle masz taką na serwerze), możesz ją wykorzystać do przechowywania języków każdego użytkownika z osobna. W ten sposób każdy będzie miał indywidualne ustawienie języka, czyli strona będzie mogła pójść w świat smile.gif
Jest jeszcze kilka rozwiązań, ale te wydają mi się najłatwiejsze.
Pozdrawiam.




Mozna zrobić na sesjach
  1. switch($_SESSION['lang']){}



  1. if(!isset($_SESSION['lang'])) $_SESSION['lang'] = 'pl';
  2.  
  3.  
  4. switch($_SESSION['lang'])
  5. {
  6. case'pl': include './polish.php'; break;
  7. case'en': includes 'english.php'; break;
  8.  
  9. }
  10.  
  11. if(isset($_GET['setlang']) == 'pl') { $_SESSION['lang'] = 'pl';
  12. elseif(isset($_GET['setlang']) == 'en') { $_SESSION['lang'] = 'en';
  13.  
  14.  

wywoule sie jako plik.php?setlang=en ;
QooBooS
Proszę bardzo:
Niech język będzie zapisywany do tej sesji.
Sesję inicjujesz (zaczynasz) linijką:


Ustawienie domyślnie na język angielski:
  1. if (!isset($_SESSION['lang'])) $_SESSION['lang'] = 'en'; //Czyli jeśli nie ustalono jeszcze nic w zmiennej lang w sesji, ma przypisać do niej en.


I linijkę odpowiedzialną za załadowanie pliku językowego przerabiasz na:
  1. require_once "lang_".$_SESSION['lang'].".php";

Dzięki temu kompilator sam wstawi odpowiednią końcówkę do nazwy pliku, w zależności co jest zapisane w sesji.
Menu wyboru języków - robisz plik, który będzie odpowiedzialny za zapisywanie do sesji zmiennej pobranej z adresu. Plik ten może wyglądać tak:
  1. <?php
  2. if (isset($_GET['lang']))
  3. {
  4. $_SESSION['lang'] = $_GET['lang'];
  5. }
  6. header("Location: index.php");
  7. ?>

Plik zapisujesz np. jako zmien_jezyk.php
I teraz wystarczy zrobić menu złożone z linków odwołujących się do tego pliku, czyli np.:
  1. <a href="zmien_jezyk.php?lang=pl">Zmień na język polski</a>
  2. <a href="zmien_jezyk.php?lang=en">Switch to English</a>
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.