Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Strona w 7 jezykach jak zrobic baze?
Forum PHP.pl > Forum > PHP
wozniak
Witam, robie strone w 7 jezykach i zastanawiam sie jak rozwiazac sprawe jezyków.Ma byc ich 7 i nie wiem czy robic np. w newsach:
Nazwa PL:
Zawartosc PL:
Nazwa EN:
Zawartosc EN:
Nazwa DE:
Zawartosc DE:
itd. a w bazie robic:
Nazwa_pl, Nazwa_de, Nazwa_En itd?

Proszę o pomoc
revyag
Możesz dodać do tabeli kolumnę język i na tej podstawie wyciagać interesujące Cie rekordy.
wozniak
No ja wiem o tym ale np. zobacz w newsach bede miał 21 kolumn. Moze tak byc?Nie zwolni to serwera?
lenczewski
z nie możesz zrobić dla keżdego języka oddzielnej tabeli np:
pl_news
de_news
ru_news
es_news
itp...
wtedy w zależności od jezyka wybierasz tabele

  1. <?php
  2. $table = $lang . "_news";
  3. ?>
anas
Hej.

Wydaje mi sie, ze revyag mial na mysli abys nie dodwal dla kazdego pola osobnej wersji jezykowej, a znacznik ktory mowilby że dany rekord identyfikowany bylby jako np. polski, niemiecki, itd - np kolumna jezyk, a w niej wrzucasz de, pl itd.

pozniej jak bedziesz wyciagal newsy to dla de w zapytaniu dolozysz tylko:

where jezyk = 'de'

jako kodowanie ustawiasz wtedy sobie utf-8 i po sprawie.

pozdrowka

anas
son
Najlepszym rozwiązaniem będzie zbudowanie strony na smarty. W celu rozjaśnienia tematu polecam Ci ten topic.
mike
languages
Kod
id | shortCode | longCode


newses
Kod
id | lang_id | title | content


Dodanie kolejnego języka to kwestia wrzycenia rekordy do tabeli languages

A pobranie newsów w danym języku to wkestia:
  1. SELECT *
  2. FROM newses
  3. WHERE lang_id = 1;


---
1. ~son no ale dane gdzieś trzeać trzymać, Smarty tylko w wizualizacji;
2. Dwa najgorsze rozwiązania to budowanie wielu tabel lub faszerowanie jednej tabeli wieloma kolumnami;
pawel_k
to ja moze zeby nie tworzyć nowego tematu zapytam się tutaj...
problem podobny, z tym że nie chodzi o newsy a o opisy różnych rzeczy (przykładowo opis produktu w sklepie), które muszą być uwzględnione w każdym języku... edycja plików dla smartyml odpada, wszystko ma być w bazie... i pytanie na jakiej zasadzie zaprojektować tabele w bazie?
son
Cytat
son no ale dane gdzieś trzeać trzymać, Smarty tylko w wizualizacji;

Zgadza się, ale dodałem to tylko tak btw, bo wydawało mi się, że revyag podał najlepszy sposób na przechowanie danych w bazie.
chomiczek
A czy tekstu jest tak dużo, że musi on być w bazie?
Ja często stosuje rozwiązanie polegające na tym, że includuje plik z definicjami dla danego języka.
  1. <?php
  2. @include 'includes/lng/'.$_SESSION['lng'].'.lng.php';
  3. ?>

Przy wejściu na strone określam język jaki powinnien byc i includuje odpowiedni plik, np. zawartosc includes/lng/pol.lng.php
  1. <?php
  2. define ('PISZ_WELCOME','Witamy serdecznie na naszej stronie');
  3. ?>

a plik includes/lng/eng.lng.php
  1. <?php
  2. define ('PISZ_WELCOME','Welcome to our web site');
  3. ?>


a na stronie index.php mamy:
  1. <?php
  2. @include 'includes/lng/'.$_SESSION['lng'].'.lng.php';
  3. echo PISZ_WELCOME;
  4.  
  5. ?>


rozwiazanie doskonale się sprawdza w sytuacja kiedy niezbyt często zmienia się częśc opisowa, natomiast w przypadku kiedy np. wrzucasz nowe produkty i opisy do nich w innych językach to wtedy najlepiej zastosowac bazę danych.

Najrozsądniejszym będzie nazwanie pól np: POL_opis; ENG_opis
i pobierać tylko ten język, który nas interesuje. Dodatkowo można zrobić opcję, ze jeśli np. nie istnieje opis w języku ENG (jeśli taka sytuacja może mieć miejsce) to wrzucamy opis polski.
nospor
@chomiczek przeczytaj uważnie pierwszy post winksmiley.jpg
Masz tam napisane, ze chodzi np. o newsy. Nie chodzi o opisy stron, jakies stale teksty. Gdyby tak bylo to Twoje rozwiązanie jest dobre. W przypadku jednak systemu newsów, to tabelka lepsza winksmiley.jpg

edit:
Co do Twojego rozwiązania. Lepiej uzywac tablic nie stalych. stale sa wolniejsze
wozniak
Dzieki wszystkim za pomoc.
php programmer
Cytat(son @ 2006-02-26 20:19:28)
Najlepszym rozwiązaniem będzie zbudowanie strony na smarty. W celu rozjaśnienia tematu polecam Ci ten topic.

Zdecydowanie nie polecam smarty,
Używałem go tylko raz i uważam że to było jest bez sensu

Zreszta ja nie widze tu żadnego problemu, w tabeli
z np z akualnosciami robisz dodatkowe pola dla każdego języka.
kszychu
Koniec o smarty w tym wątku! Nie to jest tu tematem.
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.