Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> aplikacja wielojezykowa w PHP
qnx
post 18.09.2007, 00:49:06
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 18.09.2007

Ostrzeżenie: (0%)
-----


Witam,

Mam pytane odnosnie budowania aplikacji z tekstami w kilku jezykach. Mam do dyspozycji PHP 4.3.x i MySQL 5 i musze stworzyc mozliwosc generowania formularza z opisami pol w roznych jezykach.
Mam zamiar dodac do formularza dodatkowa liste wyboru jezykow i po kliknieciu w dana wersje strona sie przeladuje z nowymi opisami pol.

Do wyboru mam miec: oczywiscie polski, rosyjski, niemiecki, hiszpanski, francuski, wloski, czeski i slowacki. Po pierwsze nie do konca wiem jakie kodowanie znakow wybrac. Rozumiem, ze UTF-16 powinien mi zalatwic sprawe wszystkich znakow diakrytycznych i alfabetu rosyjskiego?

Po drugie nie wiem jak przechowywac te opisy. Najchetniej skorzystalbym z bazy danych, ale baze mam kodowana w latin2... wiec zapewne nici?

Z gory dzieki za odpowiedz!


--------------------
Pozdrawiam,
qnx
Go to the top of the page
+Quote Post
qqrq
post 18.09.2007, 08:51:46
Post #2





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Ściągnij sobie osCommerce i zobacz jak tam to rozwiązano (coś a la moduły - definiujemy mnóstwo stałych i ich używamy zamiast tekstu, każda stał w odpowiednim pliku odpowiedniego języka). Ale to tylko jeden ze sposobów (szybszy od bazy danych).


--------------------
Go to the top of the page
+Quote Post
Fixus
post 18.09.2007, 09:37:22
Post #3





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

Ostrzeżenie: (0%)
-----


dlaczego nici? przeciez moesz spokojnie przekodowac dane na tobie pasujace wiec nie ma problemu.

co do samych jezykow...wrzucasz to np. do bazy...i ustalasz parametr dla danego jezyka ktory trzymasz w linku. pobierasz go GET`em i w zaleznosci od parametru wybierasz odpowiednie nazwy pola
Go to the top of the page
+Quote Post
Prph
post 18.09.2007, 10:04:51
Post #4





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Polece Ci klase mojego autorstwa z pakietu Rapide: http://rapideframework.googlecode.com/svn/...guage.class.php

Kilka slow o klasie:

1 _DIR_LANGUAGES - zdefiniuj wczesniej katalog do plikow jezykowych. Struktura jest nastepujaca:

Languages/ (czy jak to nazwiesz)
- English/
- English.php
- Polish/
- Polish.php

Obiekt jest singletonem. Przed pierwszym uzyciem nalezy go zainicjalizowac odpowiednim jezykiem:

  1. <?php
  2. Rapide_Language::init('English');
  3. ?>


Jak wygladaja pliki jezykowe? Sa to tablice PHP o nastepujacej strukturze:

English.php:

  1. <?php
  2. $aLang = array
  3. (
  4. 'entry1' => 'This is in english!',
  5. 'password' => 'Please type password'
  6. );
  7. ?>


Jak wczesniej przedstawilem - jezyk sklada sie z pliku glownego (o nazwie jezyka - np. English.php) oraz katalogu z plikami - np. English.

W katalogu mozna tworzyc kolejne pliki np. Form.php, About.php oraz katalogi...

Jak dostac sie do danych?

  1. <?php
  2. $oLang = Rapide_Language::getInstance();
  3.  
  4. echo $oLang->get('Form', 'Password') // zwroci tlumaczenie dla wpisu Password z pliku Form.php w katalogu English
  5. echo $oLang->get('entry1') // zwroci tlumaczenie dla entry1 z pliku English.php;
  6. echo $oLang->get('dir1', 'dir2', 'file', 'entry') // tego chyba nie trzeba opisac
  7. ?>


Zalety tej klasy:

Mechanizm lazy loader - wczytuje pliki jezykowe w chwili, kiedy sa potrzebne, a nie wczesniej. Czyli mozemy miec nawet 5MB plikow z tlumaczeniami, ale wcale nie musza zostac wczytane.

Pelna automatyka - podajesz tylko jezyk, a klasa pozniej sama szuka wpisow i laduje odpowiednie pliki.

Uzywam tej klasy w wielu projektach. Naprawde wygodna.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:43