Temat: wersje językowe strony
Wojciech Piotrowicz:
juz po powyzszym widac od razu, ze lepiej sobie sieknac to w bazie.
I ile zapytań dla jednej strony? :)
Nie zawsze używasz wszystkich stringów, więc nie trzeba trzymać w pamięci wszystkich.
Z drugiej strony przeszukiwanie pliku preg_* jest... śmieszne pod względem czasowym.
Optymalne rozwiązanie dla dużej strony z kategoriami.
1. FILTRACJA $lang / $session['lang'] tylko do dozwolonych wartości
2. dostajesz stringa przez trans('główna,powitanie')
- trans() sprawdza, czy w globalnej np. $teksty[] jest już key 'główna,powitanie' i albo zwraca ten tekst, albo
- bierze to co jest przed ',' jako $dział i ładuje plik który ma nazwę "$dział_$lang.php" - a tam są tylko linie typu:
$teksty['główna,powitanie']='jakiśtam string';
Jest wszystko w jednej funkcji, jest podział na działy, więc jeśli używasz tekstu na jakiejś stronie i jeszcze go nie załadowałeś, to zostanie załadowany tylko i wyłacznie potrzebny blok tekstów których pewnie użyjesz za chwilę (od razu jako kod), no i oczywiście jest podział na języki.
Szybciej ładuje niż baza, nie używa niepotrzebnej pamięci i szybciej wyszukuje.
Ale to i tak tylko w przypadku jak nie ma dostępu do gettext'a ;)