Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pliki z jezykami
Forum PHP.pl > Forum > Przedszkole
Spyder
Witam

Planuje napisac cms z opcja wyboru jezyka. Jezyki chce zapisac w plikach php lub txt. Moze ktos mi podac jakies ciekawe pomysly jak to najlepiej zrobic. Pozdro
darophp
Tworszysz plik:
lang_pl.php i lang_en.php
i w każdym odpowiednio:
  1. <?php
  2. ...
  3. $lang["kontakt"] = "Kontakt";
  4. ...
  5. ?>

  1. <?php
  2. ...
  3. $lang["kontakt"] = "Contact";
  4. ...
  5. ?>

No i jeśli np. masz panel admin. to ustawiasz sobie który plik ma includować. No chyba że chcesz, żeby użytkownik we własnych ustawieniach mógł zmienić który język strony chce mieć. Taka metoda "słowniczka". Możesz przez bazę danych, ale to nie zawsze będzie grało.
Spyder
Ok czyli wszystko na zwyklych zmiennych tak jak myslalem a nie lepiej jest na plikach txt? Tak jak np joomla?

CHECKED IN=Zkontrolováno
CHECKING TABLE=Kontroluji tabulku
CONF_CHECKED_IN=Položky ke zkontrolování byly nyní všechny zkontrolovány
CONFIRM YOUR ACCOUNT=Potvrďte váš účet
COULD_NOT_FIND_EMAIL=uživatel se zadaným emailem nemůže být nalezen
COULD_NOT_FIND_USER=Uživatel se zadaným uživatelským jménem a emailem nemůže být nalezen
EDIT YOUR DETAILS=Upravte váš profil
DATABASE_ERROR=vyskytla se databázová chyba. Zkuste to znovu později
DESCLOGINFORM=Tento modul zobrazí přihlašovací formulář s uživatelským jménem a heslem. Také zobrazí odkaz pro získání zapomenutého hesla. Pokud je povolena registrace uživatelů (viz Globální nastavení), zobrazí se i další odkaz vyzývající uživatele k registraci.
EMAIL=Email
EMAIL ADDRESS=Email
ERROR_SENDING_CONFIRMATION_EMAIL=vyskytla se chyba při posílání potvrzovacího emailu
ERROR_SENDING_REMINDER_EMAIL=vyskytla se chyba při posílání emailu připomínajícího uživatelské jméno
E_LOGIN_AUTHENTICATE=Uživatelské jméno nebo heslo nesouhlasí, případně ještě nemáte vytvořen účet.
E_SESSION_TIMEOUT=Vaše sezení vypršelo, prosím zkuste to znovu
E_NOLOGIN_BLOCKED=Přihlášení je zakázáno! Váš účet byl zablokován nebo ještě nebyl aktivován. Již jste klikli na ověřovací odkaz zaslaný vám v emailu?
FAILED TO COPY=Kopírování selhalo
FAX=Fax
FORGOT_YOUR_PASSWORD=Zapomenuté heslo?
FORGOT_YOUR_USERNAME=Zapomenuté uživatelské jméno?
tehaha
może być plik txt to nie robi właściwie różnicy, i lepiej jednak trzymać w tablicy niż w zmiennych bo przy dużej ilości zmiennych może dojść do jakiegoś konfliktu z nazwą, ustawiony przez użytkownika język możesz zapisać do ciastek i sesji żeby ładować taki język jaki sobie ustawi lub pobrać domyślny język przeglądarki
darophp
To już od Ciebie zależy jak wolisz. Ja jednak gdybym miał pisać CMS'a (a będę go pisał za 2msc.) to wybrałbym na plikach php i zmiennych smile.gif
Spyder
Cytat(tehaha @ 10.07.2010, 13:19:09 ) *
może być plik txt to nie robi właściwie różnicy, i lepiej jednak trzymać w tablicy niż w zmiennych bo przy dużej ilości zmiennych może dojść do jakiegoś konfliktu z nazwą, ustawiony przez użytkownika język możesz zapisać do ciastek i sesji żeby ładować taki język jaki sobie ustawi lub pobrać domyślny język przeglądarki



Mozesz podac przyklad o co ci chodzi i jak bys to widzial? Dzieki
muk4
Polecam ten temat:
Temat: Wielojezykowosc


Cytat
Mozesz podac przyklad o co ci chodzi i jak bys to widzial? Dzieki


Robisz tablicę $lang i robisz to np tak:

[/php]$lang['pl']['FORGOT_PASSWORD'] = 'Zapomniałeś hasła?';
$lang['cz']['FORGOT_PASSWORD'] = 'ZZapomenuté heslo?';[/php]
tehaha
co do formatu zapisu to może być tak jak przedstawił @muk4, tablica jest po prostu łatwiejsza w użyciu niż takie stałe i łatwiejsza w edycji gdybyś chciał to edytować z panelu lub też oddzielny plik dla każdego języku np. pl.txt, en.txt, du.txt itp. a w niej tablica:
  1. $lang = array
  2. (
  3. 'contact'=>'kontakt',
  4. 'hello user'=> 'witaj użytkowniku '
  5. )


co do reszty to możesz sprawdzać przy pomocy $_SERVER[''HTTP_ACCEPT_LANGUAGE'] - domyślny język przeglądarki, żeby od razu ustawić en, du lub pl dla użytkownika, ponadto jeżeli user dokona zmiany język możesz zapisać to u niego w ciastkach, tak więc przy odwiedzinach użytkownika sprawdzasz czy jest ustawiona zmienna sesyjna np. $_SESSION['default_lang']; jeżeli tak to ładujesz taki język, jak nie to sprawdzasz czy istnieje ciastko np. $_COOKIE['default_lang'] jeżeli tak to ładujesz taki plik językowy jaki sobie user ustawił i ustawiasz w sesji, jeżeli nie ma ciastka to sprawdzasz $_SERVER[''HTTP_ACCEPT_LANGUAGE'] aby pokazać mu język taki jaką ma przeglądarkę i ustawiasz w sesji, a jak tego też nie ma to ładujesz domyślnie pl i wrzucasz go do sesji, tak abyś nie sprawdzał tego wszystkiego przy każdym przeładowaniu tylko za pierwszym razem
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.