Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Autorski CMS a wielojęzyczność
Forum PHP.pl > Forum > Przedszkole
bor1904
Witam,
Tworzę autorskiego CMSa i jestem na etapie wielojęzyczności. Piszę na CI w MVC.
Napiszę jak postanowiłem podejść do sprawy i będę wdzięczny jak ktoś mnie skontruje ...

1. Języki chcę tworzyć na osobnych subdomenach (choć rozważam podejście na podkatalogach)
2. W routerze lub gdzieś na wstępnym etapie chciałbym wykryć język poprzez badanie URL i to zapisać np w sesji lub jakiejś zmiennej
3. Stworzyć mapowanie kontrolerów (nie wiem jeszcze jak) i w momencie gdy pojawi się en.domena.pl/contact wykryje że to j. angielski i że macierzystym kontrolerem dla contact jest controllers/kontakt. (jest lepszy sposób?)

4. kontroler wiedząc jaki mamy język przekazuje tą informacje modelowi/lub on sam sobie ją pobiera/wykrywa i na tej podstawie wie które wpisy w bazie zmienić/pobrać/usunąć.
Chcę pozostać przy tej samej bazie i tabeli tylko dodać do każdej tabeli która związana jest z treścią kolumnę "lang" (chociaż w sumie i tak wszystko pobieram po id więc nie wime czy konieczny jest taki zabieg?)

5. Kontroler wybiera widok i wrzuca do niego treść z odpowiednim językiem. Sam plik widoku pobiera statyczne frazy z jakiegoś pliku txt z tłumaczeniami.


Czy takie podejście ma sens ? Analizowałem wiele podejść i myśle że coś takiego jak podałem wyżej ma niewiele wad...ale chętnie posłucham Waszej opinii...
SmokAnalog
Pomysł dobry, podoba mi się. Jeśli chodzi o kolumnę lang, to gdzieś powinna wystąpić. Najlepiej mieć tabelę z językami, tabelę z (np.) artykułami i osobną tabelę z treścią artykułów (np. id, article_id, lang_id, title, content). To jeśli chcesz wprowadzać treści z CMS-a. Teksty statyczne rzeczywiście można przechowywać w plikach z tłumaczeniami. Czystego .txt nie polecam, bo trochę kombinowania będziesz miał z parsowaniem treści. Na przykład zakładasz, że będziesz separować klucz od wpisu znakiem | - i tu problem, bo przy najprostszej implementacji nie możesz użyć tego znaku w treści. Lepiej skorzystaj z gotowych formatów, np. CSV idealnie tu pasuje: fgetcsv.
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.