Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Budowa wielojęzycznego CMS'a
freddd
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.04.2009

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


Witam wszystkich!
Chciałem was zapytać o opinię na temat tworzenia wielojęzycznych cms'ów.
Mam dwie koncepcję stworzenia takiego cms'a.
Pierwsza opiera się na tym, że budowanie stron, produktów itp. rozpoczynamy od wyboru wersji językowej, dla której będzie tworzony ten kontent. W tej wersji relacja pomiędzy modułami a językami jest jeden do wielu. Druga opcja jest taka, że każdy moduł jest połączony z językami relacją wiele do wielu, czyli np. mamy tabele: site, site_lang i lang. W pierwszej tabeli znajdują się dane wspólne dla wszystkich wersji językowych (nazwa w menu, licznik wyświetleń). Druga tabela przechowywałaby dane konkretnej wersji językowej (treść, stopka, tytuł). W drugiej koncepcji klikając w edycję np. strony mamy dane do uzupełnienia dla wszystkich wersji oraz taby zależne od wersji językowej a w nich odpowiednie formularze.
Która wersja według was jest lepsza na bazie waszych doświadczeń. Obie koncepcje mają swoje wady i zalety. Zaletą pierwszej jest to, że dla każdej z wersji językowych można zbudować praktycznie zupełnie inny kontent. Tylko pytanie czy jakaś firma będzie tego potrzebować ?
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Zaletą pierwszej jest to, że dla każdej z wersji językowych można zbudować praktycznie zupełnie inny kontent. Tylko pytanie czy jakaś firma będzie tego potrzebować ?

Kiedyś miałem taki projekt do wykonania i dla każdej podstrony miało być wykonywane tłumaczenie. Choć wiesz - stałe dla np. skinów, czy stałych elementów lepiej wrzucić do plików niż za każdym razem odpytywać bazę.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
SzamanGN
post
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

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


Ja robię to tak:
1. Tworzę pliki z tekstem danego języka, np.: powitanie_pl.txt, powitanie_en.txt.
2. W sesji przechowuję wybrany język, np.: en.
3. Mam "silnik", który wczytuje podstronę (przykładowe odwołanie: pokaz.php?art=powitanie).
4. Silnik sprawdza, czy plik o nazwie $_GET['art'].'_'.$_SESSION['jezyk'].'.txt' istnieje.
5. Jeżeli istnieje, to go ładuje.
6. Jeżeli nie istnieje, to ładuje $_GET['art'].'_pl.txt'.

Wiem, że nie jest to idealne rozwiązanie, ale jest proste i niezawodne (jak na razie).


--------------------
SzamanGN
Go to the top of the page
+Quote Post
freddd
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.04.2009

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


Cytat(SzamanGN @ 5.04.2009, 10:18:03 ) *
Ja robię to tak:
1. Tworzę pliki z tekstem danego języka, np.: powitanie_pl.txt, powitanie_en.txt.
2. W sesji przechowuję wybrany język, np.: en.
3. Mam "silnik", który wczytuje podstronę (przykładowe odwołanie: pokaz.php?art=powitanie).
4. Silnik sprawdza, czy plik o nazwie $_GET['art'].'_'.$_SESSION['jezyk'].'.txt' istnieje.
5. Jeżeli istnieje, to go ładuje.
6. Jeżeli nie istnieje, to ładuje $_GET['art'].'_pl.txt'.

Wiem, że nie jest to idealne rozwiązanie, ale jest proste i niezawodne (jak na razie).


Jak w ten sposób klient będzie edytował strony w panelu admina ?
To jest raczej rozwiązanie statyczne a nie do cms'a?

Cytat(erix @ 5.04.2009, 01:21:24 ) *
Kiedyś miałem taki projekt do wykonania i dla każdej podstrony miało być wykonywane tłumaczenie. Choć wiesz - stałe dla np. skinów, czy stałych elementów lepiej wrzucić do plików niż za każdym razem odpytywać bazę.


W jakim sensie stałe ?

Nie wiem czy się dobrze rozumiemy więc przedstawię jeszcze raz koncepcję na tabelach w bazie danych:
Wersja 1:
site(id, site_name, site_title, site_content, lang_id)
lang(id, lang_name)

Wersja 2:
site(id, site_name)
site_lang(id, site_id, lang_id, site_title, site_content)
lang(id, lang_name)

W pierwszej wersji klient ma możliwość stworzenia różnych stron dla różnych wersji językowych, ale ma więcej do wpisywania.
Go to the top of the page
+Quote Post
Lonas
post
Post #5





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Wersja pierwsza jest dobra. Skoro strona jest wielojezyczna to klient wporwadzajac nowy artykul nie bedzie chciial czesci miec po polsku a czesci po ang np.. Czyli tworzy to od nowa wpisujac do lang_id flage jezyka w ktorym jest dany art.


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
W jakim sensie stałe ?

Np. etykietki przycisków "powrót", "wyślij", etc.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
maniekl2
post
Post #7





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

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


Po co zakładasz dwa takie same tematy ? - Klik

Na pewno jakaś firma będzie tego potrzebować. Tu masz temat o wielojęzykowości - Klik

--
pozwoliłem sobie wydzielić

~erix
Go to the top of the page
+Quote Post
freddd
post
Post #8





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 3.04.2009

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


Cytat(maniekl2 @ 6.04.2009, 19:45:09 ) *
Po co zakładasz dwa takie same tematy ? - Klik


Dzięki za usunięcie tamtego. Nikt mi tam nie odpowiedział rzeczowo, więc stwierdziłem, że wybrałem zły dział.

Cytat(maniekl2 @ 6.04.2009, 19:45:09 ) *
Na pewno jakaś firma będzie tego potrzebować. Tu masz temat o wielojęzykowości - Klik


Ten link nie rozwiązuje mojego problemu. Tam jest poruszany temat statycznych tekstów na stronie, a mi chodzi o dynamiczną treść, którą klient sam uzupełnia w panelu administracyjnym.
Go to the top of the page
+Quote Post
Moli
post
Post #9





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


Jako że teraz robie spory wielojęzyczny system, to napiszę jak ja to u siebie zrobilem. Teksty na stronie pobierane są z tablicy, w której mogę zmieniać parametry. Zaś teksty z bazy (np. podstrony) rozwiazałem tak:
Cytat
ID | LANG | INNE POLA

i wpisy np.
Kod
1 | pl | ...
1 | en | ...

Zapytaniem pobieram wartość o ID = X i LANG = aktualny język. Dodatkowo mam tabelę "id" w której mam
Cytat
TABELA | ID

Proste, ale działa jak trzeba smile.gif

Ten post edytował Moli 12.04.2009, 12:52:51
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 Aktualny czas: 19.08.2025 - 21:58