-
1. Data: 2010-01-23 10:03:45
Temat: Kilka języków na stronie
Od: olo <o...@n...com>
Witam
Mam gotowy system do obsługi wielu języków na stronie. Działa
prawidłowo, ale w niedługim czasie będę chciał go wrzucić na stronę,
którą odwiedza ok 2k UU dziennie. Tym samym myślę, że nie bez znaczenia
będzie już kwestia wydajności. Chciałbym zatem zapytać jakie rozwiązanie
będzie lepsze.
Zasada jest taka:
- w mysql jest tabela nazwijmy ją "teksty" z kolumnami: id, pl, en, de,
itd (w zależności ile jest wersji językowych).
- w php chcąc wstawić słowo lub zdanie wywołuję funkcję "czytaj" z
parametrem wskazującym na konkretny id. W połączeniu z globalną zmienną
przechowującą informację o wersji językowej wybranej przez użytkownika
mam komplet danych
i teraz pytanie co będzie wydajniejsze:
- jedno zapytanie mysql czytające CAŁĄ tabelę "teksty", zapisanie tego
do tablicy a następnie odwoływanie się do tej tablicy poprzez funkcję
"czytaj", czy może
- zapytanie do mysql o jeden konkretny tekst w trakcie wywolania funkcji
"czytaj"?
Rozwiązanie pierwsze wykonuje tylko jedno zapytanie, ale zjada pewnie
więcej zasobów serwera, rozwiązanie drugie z kolei wykonywać będzie
dziesiątki zapytań do mysql podczas jednego odświeżenia strony.
Jeśli ktoś robił coś podobnego i ma konkretną odpowiedź na to pytanie to
bardzo proszę o odpowiedź. W razie czego po prostu wrzucę na parę dni
jedną opcję, później to samo zrobię z drugą i przeglądne staty serwera
pozdrawiam!
-
2. Data: 2010-01-23 22:16:44
Temat: Re: Kilka języków na stronie
Od: Krzysztof Warunek <k...@t...pl>
Dnia Sat, 23 Jan 2010 11:03:45 +0100, olo napisał(a):
> - jedno zapytanie mysql czytające CAŁĄ tabelę "teksty", zapisanie tego
> do tablicy a następnie odwoływanie się do tej tablicy poprzez funkcję
> "czytaj", czy może
jakie masz ograniczenia pamięci:
sizeof(tablica)*strlen(tablica[x])* n UU jednocześnie
> - zapytanie do mysql o jeden konkretny tekst w trakcie wywolania funkcji
> "czytaj"?
jakie masz ograniczenia co do liczby zapytań, połączeń jednocześnie
to to poza tłumaczeniem będzie też coś robić innego?
poza tym skąd pomysł na "własny system" oparty o bazę skoro jest gettext
>Jeśli ktoś robił coś podobnego i ma konkretną odpowiedź na to pytanie to
>bardzo proszę o odpowiedź.
phptal
--
Krzysztof Warunek
http://tocheckserver.pl
-
3. Data: 2010-01-24 01:12:53
Temat: Re: Kilka języków na stronie
Od: Konrad Kosmowski <k...@k...net>
** olo <o...@n...com> wrote:
> Mam gotowy system do obsługi wielu języków na stronie. Działa prawidłowo, ale
> w niedługim czasie będę chciał go wrzucić na stronę, którą odwiedza ok 2k UU
> dziennie. Tym samym myślę, że nie bez znaczenia będzie już kwestia
> wydajności. Chciałbym zatem zapytać jakie rozwiązanie będzie lepsze.
Najlepiej będzie przy pierwszej wizycie sugerować się nagłowkiem HTTP
Accept-Language i kierować na właściwą wersję językową. Jeżeli user zmieni
język to ustawić mu cookie i dalej sugerować się tym cookie.
Oczywiście zgodnie ze sztuką wersje językowe powinny widnieć pod różnymi URI
czyli np. via ścieżka (/pol/foo /eng/foo itd.) czy domena (pol.foo.tld
eng.foo.tld itd.).
Najbardziej wkurwiają mnie witryny, które upierają się jaki język mi zaserwować
np. na podstawie IP z którego się łączę (helloł Google fuck off).
> Zasada jest taka:
> - w mysql jest tabela nazwijmy ją "teksty" z kolumnami: id, pl, en, de,
> itd (w zależności ile jest wersji językowych).
> - w php chcąc wstawić słowo lub zdanie wywołuję funkcję "czytaj" z
> parametrem wskazującym na konkretny id. W połączeniu z globalną zmienną
> przechowującą informację o wersji językowej wybranej przez użytkownika
> mam komplet danych
Zobacz sobie jak robi to eZ Publish - tam wszystko jest obiektem - posiada swój
bazowy język, a dodatkowe traktowane są jako kolejne obiekty - tłumaczenia.
> i teraz pytanie co będzie wydajniejsze:
> - jedno zapytanie mysql czytające CAŁĄ tabelę "teksty", zapisanie tego
> do tablicy a następnie odwoływanie się do tej tablicy poprzez funkcję
> "czytaj", czy może
> - zapytanie do mysql o jeden konkretny tekst w trakcie wywolania funkcji
> "czytaj"?
Poważnie zadałeś to pytanie czy jaja se robisz?
--
+ ' .-. .
, * ) )
http://kosmosik.net/ . . '-' . kK
-
4. Data: 2010-01-25 16:54:40
Temat: Re: Kilka języków na stronie
Od: olo <o...@n...com>
Konrad Kosmowski pisze:
> Najlepiej będzie przy pierwszej wizycie sugerować się nagłowkiem HTTP
> Accept-Language i kierować na właściwą wersję językową. Jeżeli user zmieni
> język to ustawić mu cookie i dalej sugerować się tym cookie.
>
tak to mam zamiar wlasnie zrobic. W razie czego oczywiscie zawsze bedzie
mozliwosc zmiany
> Oczywiście zgodnie ze sztuką wersje językowe powinny widnieć pod różnymi URI
> czyli np. via ścieżka (/pol/foo /eng/foo itd.) czy domena (pol.foo.tld
> eng.foo.tld itd.).
prawdopodobnie bedzie domena/en, domena/de itp, ponieważ strona jest w
.pl i jakos tak bardziej mi to rozwiazanie lezy
>> i teraz pytanie co będzie wydajniejsze:
>> - jedno zapytanie mysql czytające CAŁĄ tabelę "teksty", zapisanie tego
>> do tablicy a następnie odwoływanie się do tej tablicy poprzez funkcję
>> "czytaj", czy może
>> - zapytanie do mysql o jeden konkretny tekst w trakcie wywolania funkcji
>> "czytaj"?
>
> Poważnie zadałeś to pytanie czy jaja se robisz?
>
byc moze dla Ciebie jest to oczywiste, ale gdybym nie miał wątpliwości
to bym pytania nie zadał. Nie wiem czy w sytuacji gdy strzelam: rekordów
w tabeli będzie 500 i zajmować bedą średnio po 100 znaków to przepisanie
całej zawartości do tablicy w php i odwolywanie się do niej przez
tablica['klucz'] bedzie szybsze niz zapytanie do tabeli w mysql z
prawidłowo zrobionym indeksem.
strona została zrobiona kilka lat temu. Jej całkowite przerobienie na
coś innego jak sugeruje Krszysztof we wcześniejszym poście póki co w grę
nie wchodzi. Chciałbym tylko dodać kilka języków przy stosunkowo niskim
nakładzie pracy i co najważniejsze: by linki w wersji PL pozostały
niezmienione (wiem, że istnieje 301, ale i tak mam pewne obawy co do
braku wpływu na pozycjonowanie google). Bedzie musiało zatem pozostać:
domena.pl dla wersji polskiej i domena.pl/en w wersji angielskiej
--
pozdrawiam!
http://webtrunki.pl - piwa, wina, wódki, domowe wyroby
ZAPRASZAMY!!