![]() |
![]() ![]() |
![]() |
-Guest- |
![]() ![]()
Post
#1
|
Goście ![]() |
Witam.
Jestem "BARDZO POCZATKUJACY" jesli chodzi o php. W ramach nauki postanowilem przerobic strone m.in. na wielojezykowa. Podczas przerabiania natrafilem na taki problem. Opis kategorii musze przechowywac w tablicy bazy danych. Na poczatku tablica byla taka: re2_categories CategoryID CategoryName Ja przerobilem ja na taka: re2_categories CategoryID CategoryNamepl CategoryNameen CategoryNamees Kod tworzacy menu poczatkowo wygladal tak: Kod $qi = "select * from re2_categories order by CategoryID"; $ri = mysql_query($qi) or die(mysql_error()); $Account = "<table width=200>\n"; if(mysql_num_rows($ri) > '0') { while($ai = mysql_fetch_array($ri)) { $Categories .= "<tr>\n\t<td bgcolor=#ECECEC><a class=BlackLinkB href=\"search.php?c=$ai[CategoryID]\">[COLOR=Red]$ai[CategoryName]</[/COLOR]a></td>\n</tr>\n"; Informacje na temat jezyka sa przechowane w zmiennej $lang ktora odpowiednio ma wartosci: pl, en i es. "Poprawilem" skrypt i teraz wyglada tak: Kod $qi = "select * from re2_categories order by CategoryID"; $ri = mysql_query($qi) or die(mysql_error()); $Account = "<table width=200>\n"; [COLOR=Red]//Multilanguage category description if($lang ='pl') { $langcat = $ai[CategoryNamepl]; } elseif ($lang ='en') { $langcat = $ai[CategoryNameen]; } elseif ($lang ='es') { $langcat = $ai[CategoryNamees]; }[/COLOR] if(mysql_num_rows($ri) > '0') { while($ai = mysql_fetch_array($ri)) { $Categories .= "<tr>\n\t<td bgcolor=#ECECEC><a class=BlackLinkB href=\"search.php?c=$ai[CategoryID]\">[COLOR=Red]$langcat</[/COLOR]a></td>\n</tr>\n"; ... i bydle nie dziala :-( . Jesli ktos wie co zrobilem zle lub wie jak to rozwiazac w inny sposob to bardzo prosze o pomoc. Dziekuje Roovio |
|
|
-roovio- |
![]()
Post
#2
|
Goście ![]() |
Przepraszam za zamieszanie ale do cytowanego skryptu wkradly sie tagi [COLOR]
Jeszcze raz zamieszczam kody:
i "popraviony"
Dziekuje --- do umieszczania kodu php służy tag [php] ![]() ![]() alek |
|
|
![]()
Post
#3
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Nie pisz posta pod postem, tylko edytuj poprzedni.
Nie lepiej (prościej) przekazywać langi zmienną tablicową? -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował bigZbig 7.04.2005, 07:22:11 -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
IMO nie ma co się bawić w trzymanie tłumaczeń w bazie danych.
Ja robie podobnie jak jest w phpBB. pozdrawiam |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
phpBB trzyma w tablicy teksty interfejsu, a tresc strony pozostaje w orginale. Jesli twoim celem jest wyswietlanie newsow w trzech wersjach jezykowych to rozwiazanie zastosowane w phpBB na nic sie nie zda.
W takim wypadku jestes zmuszony albo utworzyc trzy tabele w bazie np. newsy_pl, newsy_en, newsy_es, co uwazam za lepsze rozwiazanie, albo jak to widac wyzej potroic wszystkie pola tekstowe w danej tabeli. -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
No tak, tylko czy za każdym razem chciało by Ci się pisać newsy w 3-ech językach ? Lepiej napisać w jednym (np. w angielskim).
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 31.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
-Roovio- |
![]() ![]()
Post
#9
|
Goście ![]() |
To prawdopodobnie racja (jak zdobede troche doswiadczenia to bede pewny :-), bo jak napisalem jestem poczatkujacy). Jedna jesli chodzi o (w przypadaku mojej strony) kategorie i podkategorie, wydaje mi sie to wygodniejsze, bo wystarczy ze dodajac (pod)kategorie podam jej nazwe w 3 jezykach poprzez formularz i wtedy nie musze jeszcze dodatkowo wpisywac tej nazwy do description w kazdym z plikow jezykowych. Pozostale tlumaczenia trzymam w takich wlasnie plikach.
bigZbig bardzo dziekuje za rozwiazanie problemu. Z jakiegos powodu nazwy kategorii zmienialy sie na odpowiedni jezyk dpoiero po 2 kliknieciu na ikone z linkiem index.php?lang=xx dodalem jeszcze cos takiego przed twoim kodem
i teraz dziala super. Jeszcze raz wielkie dzieki Roovio |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(bigZbig @ 2005-04-07 15:24:27) phpBB trzyma w tablicy teksty interfejsu, a tresc strony pozostaje w orginale. Jesli twoim celem jest wyswietlanie newsow w trzech wersjach jezykowych to rozwiazanie zastosowane w phpBB na nic sie nie zda. W takim wypadku jestes zmuszony albo utworzyc trzy tabele w bazie np. newsy_pl, newsy_en, newsy_es, co uwazam za lepsze rozwiazanie, albo jak to widac wyzej potroic wszystkie pola tekstowe w danej tabeli. a co jak po roku bedziesz chcial dodac kolejny jezyk? bedziesz dodawal kolejna tabele lub kolumny? wg. mnie lepszym rozwiazaniem bedzie zbudowanie dwoch tabel: jezyki jezyk_id jezyk_nazwa (...) oraz: wiadomosci wiadomosc_id jezyk_id wiadomosc_tytul (...) |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zamiast
Daj poprostu.
Albo bardziej elegancko zapisane ale rownoznaczne powyzszemu.
Chodzi przeciez o to aby sprawdzic czy zmienna $_GET['lang'] ma wartosc ustalona, a jak nie to nalezy zmiennej $lang nadac jakas wartosc domyslna. -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 7.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zbig jestes naprawde BIG - Dzieki.
Mam jeszcze jedno pytanie. W tej chwili aby zmienic jezyk mam na gorze strony obrazek flagi (ktory wyglada inczej ponajechaniu myszka na niego) i link do index.php z okresleniem wartosci zmiennej $lang. W zwiazku z tym przy kazdej zmianie jezyka strona wraca do index-u. Czy jest mozliwe zrobienie tak zeby przycisk wysylal wartosc $lang od index.php, ale zostawal na aktualnej stronie (nie wracal do index)? Tak wyglada html jednego z przyciskow: Dzieki |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zamiast: index.php?lang=pl
-------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:47 |