Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Serwis i 3 jezyki
Forum PHP.pl > Forum > Przedszkole
kielich
Witam tworze serwis i gdzie musze miec 3 jezyki.Chciałbym zobaczyc wasze sugestie jak mozna to fajnie i szybko wykonac przy małym projekcie zrobiłbym w bazie osobne kolumny jak i w panelu .Ale to jest troszke wiekszy projekt wiec czy to jest dobre rozwiązanie questionmark.gif

czekam na odp
Z góry dzieki za wypowiedzi
MateuszS
Sesje + $_GET, w MySQL rozne pola do roznych jezykow
Kszyhuu
Ja u siebie robiąc kilka wersji językowych zrobiłem po prostu kilka katalogów na serwie i każdy z nich przechowywał pliki w danym języku. Dla przykładu:
  1. Polski- www.xxx.pl/pl/index.php
  2. Angielski- www.xxx.pl/en/index.php
  3. Niemiecki- www.xxx.pl/de/index.php
  4. Rosyjski- www.xxx.pl/rus/index.php


I tak dalej. Moim zdaniem to w miarę wygodne rozwiązanie. Przynajmniej dla mnie jest wystarczająco dobre. winksmiley.jpg
vokiel
Struktura bazy jest zależna od ilości języków, a najbardziej, od możliwości rozszerzenia o kolejne.

Jeśli liczba języków jest ustalona i niezmienna, IMHO można po prostu utworzyć tabelę w której będą dodatkowe kolumny dla poszczególnych języków (tytuł, treść etc).

W przypadku wielu języków oraz możliwości rozbudowy o kolejne skłaniałbym się do opcji, że wpis w kolejnym języku będzie kolejnym rekordem w tabeli. Pola pozostają te same dla każdego języka.

edit up:
A co w przypadku, gdy ktoś stronę ma na bazie a nie na plikach? Wnioskując po tagach tematu o takie rozwiązanie chyba chodzi...
Kildyt
Zastosowanie CSS-a niestety na razie jest raczej nierealne, dzięki wielkiemu wsparciu IE. smile.gif
Sądzę, że praca na plikach tekstowych będzie bardziej wydajna. Wystarczy na początku załadować dane do tablicy i później na niej działać.
kielich
no tak czyli jest kazdy bedzie w osobnym katalogu to np. wystawiajac przedmiot musze np. wystawic go 3 razy kazdy w innym jezyku a to torszke meczace np przy ilosc 20 tys przedmiotów do kazdego inny opis to tak troche ...

questionmark.gif

Ma ktoś jeszcze jakieś rozwiażania questionmark.gif

.
potreb
Nie wiem, jeżeli masz wszelkie dane w bazie danych, wystarczy że dla jakiejś tabeli np news będzie dodatkowe pole lang gdzie zapisujesz np nr albo skrót języka. Katalogi też możesz dodać jednak możesz to zrobić mod_rewrite dla języków o ile taki moduł posiadasz. Dane o języku zapisać w sesji i nie ma problemu, lub w ciachu.
vokiel
Cytat(kielich @ 18.10.2009, 16:22:09 ) *
no tak czyli jest kazdy bedzie w osobnym katalogu to np. wystawiajac przedmiot musze np. wystawic go 3 razy kazdy w innym jezyku a to torszke meczace np przy ilosc 20 tys przedmiotów do kazdego inny opis to tak troche ...


A jak sobie wyobrażasz wstawić przedmiot w trzech językach nie robiąc tego 3 razy? (mam na myśli nie pisząc trzech opisów)
Możesz co jedyne dać link do google translate, jednak jakość takiego tłumaczenia może zniechęcić...

Jeśli, masz zdjęcia niezależne od produktu, nazwę również (z tym już może być gorzej), to właściwie produkt w każdym języku różni się tylko opisem.

Czyli tabela produktów w bazie będzie jedna, tylko albo dodatkowe pola na opisy (lub opisy i nazwy) w różnych językach, bądź oddzielna tabela na same opisy i/lub nazwy.
kielich
NO tak ale i tak bede musiał to wstawic 2 razy raz w pl a raz w np. en czyli np. mam w panelu dodaj newsa i mam dwa textarea pl i en i tu musze napisac w pl i doac i nastepnie w en i dodac czy to jest dobre questionmark.gif
potreb
Panie jak dwa textarea, możesz zrobić 256 textarea dla wszystkich swiatowych języków.
masz normalny formularz + opcjami select pl en fra i dodajesz tekst do bazy przypisanego dla konktretnego języka.
kielich
OK czyli juz wszytsko rozumiem wiec mam jeszcze jedna kwestie napisze tu zeby nie zakłądac nowego tematu:
Wiec powiedz mam kategorie i produkty w kazdym produkcie jest nazwa_kategorii i wyciagam ... WHERE nazwa_kategorii=GET no ale co bedzie jak mam przypisane do tej kategorii z 5 tys produktów i zminie nazwe kategoii wtedy w tabeli z produktami nie bedzie dobrej nazwa_kategorii bo ja zminiłem co za tym idzie wszystkie produkty (5tys) wystawiac raz jeszcze ;/ albo zmienic ich nazwa_kategorii ;/
potreb
Nie robisz where nazwa_kategorii tylko where id_kategorii. Operuj na kluczach id. Jeżeli chodzi o samą tabelę categorii, możesz utworzyć dodatkową dla en. Wg ogólnie przejrzanych cms-ów to większość stosuję metodę nowych tabel dla języków, bo wtedy operować jest o wiele łatwiej.
Jeżeli chcesz mieć rozbudowany sklep to lepiej jak zrobisz dla każdego z języków własne tabele, lub prefixy do nich i zarządzanie nimi będzie tez łatwe.
vokiel
Zrób sobie tabelę: CATEGORIES z polami ID, NAME
Czyli
Kod
ID | NAME
1  | Kategoria 1
2  | Kategoria 2


Teraz w produktach np tak: PRODUCTS: ID, CATEGORY_ID, NAME_PL, NAME_EN, DESC_PL, DESC_EN....
Kod
ID, CATEGORY_ID, NAME_PL, NAME_EN, DESC_PL, DESC_EN
1  | 1   | Nazwa polska | English name | Polski opis danego produktu | English description of the product
2  | 1   | Nazwa pol druga | Second English name | Polski opis drugiego produktu | English description of the second product


Teraz zmieniając nazwę w tabeli CATEGORIES nic nie zmieniasz w tabeli z produktami, one dalej są aktualne.

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.