![]() |
![]() ![]() |
![]() |
![]() ![]()
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ć ? ![]() |
|
|
![]()
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! |
|
|
![]()
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
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 3.04.2009 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). Jak w ten sposób klient będzie edytował strony w panelu admina ? To jest raczej rozwiązanie statyczne a nie do cms'a? 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. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
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.
-------------------- |
|
|
![]()
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! |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 162 Pomógł: 29 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 3.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
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ł. 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. |
|
|
![]()
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 ![]() Ten post edytował Moli 12.04.2009, 12:52:51 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 21:58 |