Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wersje językowe strony
Forum PHP.pl > Forum > PHP
boya
Witam

Musze napisać stronę w 3 językach, i według mnie nie ma sensu pisania 3 wersji plików jak można wszystko zrobić w 1 pliku...
Chciałem się dowiedzieć czy macie jakieś sprawdzone rozwiązania pisana własnej biblioteki.
Myślę żeby zbudować jedną tablice którą w zależności od języka wypełniam odpowiednimi wartościami.
Języki w moim systemie będą wciągane po zmiennej _GET, może ktoś ma lepsze rozwiązanie niż tablica i robi to np. na obiektach.

Czekam na wasze pomysły jak się za to zabrać.


pozdrawiam
Tomek
drPayton
Jeżeli mówimy o zawartości (artykuły, całe podstrony etc), to nie ma innej opcji jak przechowywanie odrębnych wpisów w bazie/osobnych plików. Jeżeli natomiast o "interfejsie" (podpisy, komunikaty etc) to chyba najprostszym i jednocześnie optymalnym rozwiązaniem jest includowanie odpowiedniego pliku językowego (które dla przejrzystości umieszczone są w jednym katalogu) w zależności od wybranego języka. A jak to w nich wygląda to już kwestia gustu. Może być tak:
  1. <?php
  2. define('CONFIRM_DEL', 'Czy na pewno blabla');
  3. define('CONN_ERR', 'Błąd połączenia');
  4. itd
  5. ?>

albo:
  1. <?php
  2. $lang = array (
  3. 'CONFIRM_DEL' => 'Czy na pewno blabla',
  4. 'CONN_ERR' => 'Błąd połączenia'
  5. itd
  6. );
  7. ?>

Dla przejrzystości kodu chyba lepiej operować na stałych
Strzałek
Najlepiej użyć gettext'a. Poszukaj na tym forum o czymś takim jak "Babel".
MMX3
Defajny działają bardzo fajnie nawet przy dużych serwisach. A jak sprzedajesz serwis następnemu klientowi. To tylko podmieniasz np. plik lang.php.
Tylko trzeba sie zastanowić czy w to wchodzić bo jak na horyzoncie pojawiają się smarty to trzeba te wszystkie define zczytać z pliku, odpowiednio pharsować i assignować do smarty. Smarty = ZUO!
drPayton
Jak ktoś używa Smarty to już jego problem. Gettext (poprzez klasę Babel) o którym pisał @Strzałek to sympatyczne rozwiązanie (jak z wydajnością?) ale raczej do większych projektów. Niespecjalnie widzę potrzebę stosowania tego do zwykłych stron czy niewielkich aplikacji.
Z tego o co pytał @boya zrozumiałem, że chodzi raczej o zawartość podstron/artykułów czy jak to nazwać, a tutaj nie ma innej opcji jak przechowywanie oddzielnych wpisów w bazie/plikach
boya
Tak treść to jedno, niektóre treści będą statyczne a niektóre bezpośrednio pójdą z bazy.
Poza samą treścią dochodzi nam jedna duża klasa sklepu która musi działać na dwóch językach, więc chyba się zdecyduje na define... tłumaczom może będzie łatwiej ogarnąć plik z językami smile.gif

Dziękuje i pozdrawiam.
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.