Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Smarty] Wielojęzykowość
Forum PHP.pl > Forum > PHP
Skie
Tak się zastanawiam jak zrobić wielojęzykowość na stronie, tzn. będzie na niej logowanie itd. I tak się zastanawiam, że lepiej będzie od siebie odgrodzić polskich i zagranicznych użytkowników, więc wygodnie będzie zrobić osobne bazy danych dla nich. I skoro będzie osobna baza danych to się zastanawiam czy jest sens robić pliki językowe tak jak teraz mam, czy nie lepiej po prostu zdublować stronę w innym folderze. (np. ang_ver i pl_ver). Pomysł być może wydaje się głupi, gdyż po co robić 2 kopie tej samej strony, skoro pliki językowe zrobią to samo? Ano, bo gdybym miał używać cache (w celu przyśpieszenia wczytywania strony, która będzie odświeżana naprawdę dużą ilość razy) to wygodniej byłoby gdyby plik nie musiał za każdym razem sprawdzać jaki język ma wyświetlić, gdyż wtedy cache traciłoby sens. Gdyby znowu robić osobną wersje każdego pliku dla każdego użytkownika, cache'ować i zapisywać na serwerze to byłoby wtedy wielke zaśmiecanie serwa, zwłaszcza przy dużej liczbie użytkowników.

Co o tym myślicie?
rafalp
Może przyda Ci się moja klasa: http://forum.php.pl/klasaphp5_Rozne_wersje...ach_t96340.html
Przydaje sie do tłumaczenia zawartości strony mając pobrany np z bazy język użytkownika. Baza wystarczy jedna, a może być kilka języków.
Skie
Tu nie chodzi o to, że nie wiem jak to zrobić, tylko o to, że osobne bazy są wygodniejsze niż jedna baza z polami np. "Lang". I właśnie pisałem, że gdybym miał za każdym razem sprawdzać język to za każdym razem cache na serwerze trzeba by było kasować (no może nie za każdym, ale w zdecydowanej większości) co by nie poprawiło szybkości działania strony, lecz pewnie by nawet ją spowolniło.
rzymek01
http://forum.php.pl/index.php?showtopic=44...mp;#entry476814

lub inne posty w tym temacie biggrin.gif


osobne bazy danych to zły pomysł, wystarczą osobne tabele jak coś, przeczytaj temat który podałem ci w linku biggrin.gif
Skie
Czytałem go już, ale nadal to nie rozwiązuje problemu z cache i nadal uwazam ze osobne bazy danych w moim przypadku sa lepszym rozwiazniem niz wspolne ;-)

Załóżmy że osobne bazy są niezbędne - co wtedy zrobić? Osobno pliki każdej wer. językowej czy tylko osobne pliki z samym tekstem do tłumaczenia?
rzymek01
Cytat(Skie @ 21.07.2008, 11:51:44 ) *
Ano, bo gdybym miał używać cache (w celu przyśpieszenia wczytywania strony, która będzie odświeżana naprawdę dużą ilość razy) to wygodniej byłoby gdyby plik nie musiał za każdym razem sprawdzać jaki język ma wyświetlić, gdyż wtedy cache traciłoby sens


chodzi ci o treść całego serwisu, czy tylko interfejs, a treść w języku takim w jakim to napisał dany user?

jesli tylko o interfejs to:
jak user jest zalogowany to pewnie pobierasz jego dane z bazy...
no i pobierzezs także jego język
i wreszcie zincludujesz odpowiedni plik, typu lang_pl.php

i koniec, bo w skrypcie dalej masz uzyte zmienne o wspólnych indeksach typu $lang['login'], co może oznaczać: loguj, login, innych jezyków nie znam to nie napiszę ci po hiszpańsku biggrin.gif


jesli o cały serwis:
większość jak powyżej, tzn. pobierasz dane i znasz jego język, np. en i wtedy do każdego zapytanie (tam gdzie to konieczne) dopisujesz postfix dla tabeli w tym wypadku en, czyli masz wiele tablic: newspl, newsen i w zapytaniu
  1. '(...)FROM news' . $lang . ' (...)'


biggrin.gif <-- oczywiście struktura bazy danych dla kazdego języka musi wyglądać identycznie
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.