Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Multilanguage site

[es] :: PHP :: Multilanguage site

[ Pregleda: 2408 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Multilanguage site10.08.2008. u 20:59 - pre 190 meseci
Naslov govori sve!
zamolio bih nekog tko je imao iskustva s tim da mimalo pojasni na koji način se to rješava!
Za početak tablica

word
id | hr | en | de

1 | Cijena | Price | Preis

2 | Telefon | Phone | Phone

I sad imamo npr. samo jednu stranicu!

Kako da sad to napravim?

Da mogu mijenjat jezik stranice?

Hvala unaprijed na pomoči

 
Odgovor na temu

taksistaZR
zrenjanin

Član broj: 124170
Poruke: 80
93.86.84.*



Profil

icon Re: Multilanguage site10.08.2008. u 21:38 - pre 190 meseci
Mozes definisati jezik preko $_GET gde bi u url-u prosledio ?jezik=hr ?jezik=en ?jezik=de
Umesto $_GET mozes koristiti cookie ili sesije.

Na stranici prihvatis taj parametar i iskoristis ga u upitu :
Code:

if(isset($_GET['jezik'])) {
$jezik =$_GET['jezik'];
} else {
$jezik = "hr"; //default jezik
}
.
.
.
SELECT $jezik FROM tabela;



Tabelu mozes kreirati i na drugi nacin

id | nesto | nesto drugo | jezik

1 | Cena | 100 | sr

2 | Telefon | 22222 | sr

3 | Price | 100 | en

3 | Phone | 22222 | en

Time dobijas prostor da dodas novi jezik bez izmene strukture baze a upit bi isao otprilike ovako:
SELECT * FROM tabela WHERE jezik = $jezik;
 
Odgovor na temu

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Re: Multilanguage site10.08.2008. u 21:42 - pre 190 meseci
Imam već napravljen site! I tako sam stavljao riječi unutra! TJ. tablica je već napravljena i ima puno riječi pa ne mogu sad to mijenjat!
Tako da mora biti posebno tablica za riječi kako sam stavio gore!

kako da stavim to u niz (znam osnovno o nizu i isprobavao sam samo sa jednostavnim nizovima), ...?

Niz je ako se ne varam višedimenzionalni u ovom slučaju!

Prvi ključ po kojem bi uzimao riječi je id, i onda mijenjam samo drugi ključ (hr, en i de)!
 
Odgovor na temu

icobh
Igor Pejašinović
Network Admin
Navigo SC d.o.o.
Banja Luka

Član broj: 18738
Poruke: 1319
*.inecco.net.

Sajt: www.nsc.ba


+4 Profil

icon Re: Multilanguage site10.08.2008. u 21:57 - pre 190 meseci
Ja bih prevode čuvao u nekom txt fajlu, po mogućnosti ini, onda se može sa njim lijepo rukovati...
I ♥ ♀

Ovaj post je zlata vrijedan!
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Multilanguage site10.08.2008. u 22:01 - pre 190 meseci
Slazem se, stavljanej recnika u bazu moze da postane veliki problem za resurse. Jednostavnije je recnik staviti u obicne datoteke koju ucitavas na pocetku. Zgodno resenje je da te datoteke budu u stvari predefinisani php nizovi, tako da je je manipulaciaj veoma jednostavna.

Pogledaj http://ult.datavoyage.com/. To ti je bespaltna biblioteka za visejezicnu podrsku. Lako se korsiti, definises prevode i onda smoa na pocetku skripte podesis koji jezik treba da se prikazes a skripta odradi ostalo sama.



 
Odgovor na temu

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Re: Multilanguage site10.08.2008. u 22:07 - pre 190 meseci
Hvala Vam na ovim savjetima ali budući da sam već napravio tablicu zamolio bih da savjete usmjerite u tom području!

mislim da sam blizu (nadam se):

Code:

$rs=db_query("SELECT * FROM word");
 while($reg=mysql_fetch_array($rs)){
 echo $reg['en']; //S tim dobijem sve riječi koje su u polju "en"



}


kako sad pristupiti određenoj riječi?

[Ovu poruku je menjao Wizard4U dana 10.08.2008. u 23:33 GMT+1]
 
Odgovor na temu

Mystery
Beograd

Član broj: 170918
Poruke: 76



+4 Profil

icon Re: Multilanguage site10.08.2008. u 22:45 - pre 190 meseci
Predraze, mislim da nema svrhe koristiti ult u mom slucaju.
Sajt mi je gotov i zelim da dodam nekoliko jezika. Na mnogim stranicama sam postavio razna objasnjenja, primere i sl. Na koji nacim da radim? Kada bi sve stavio u english.php, serbian.php fajlovi bi ubrzo postali veliki.
 
Odgovor na temu

Zmaj
Predrag Krstić
web developer
Zrenjanin

Član broj: 1035
Poruke: 382

Sajt: https://pkrstic.wordpress..


+4 Profil

icon Re: Multilanguage site10.08.2008. u 23:59 - pre 190 meseci
pa ti si pravio tablicu moras znati koji slog prdstavlja koju rec, i neces valjda za svaku rec vaditi celu tabelu?

ako tako radis onda to uradi na jednom mestu strpaj sve u niz koji ces prenositi preko globalne promenljive, tvoj pristup je izuzetno neefikasan (spor i trosi puno resursa)

Citat:
Wizard4U:
word
id | hr | en | de

1 | Cijena | Price | Preis

2 | Telefon | Phone | Phone




s ovom tabelom najlakse je ovako

Code:

$rs=db_query("SELECT id, ".$_GET[lang]." AS txt  FROM word");
while ($reg=mysql_fetch_array($rs))
    $lang[$reg['id']] = $reg['txt'];



i ako znas koji ID pripada kojem prevodu onda stampas taj tekst <?=$lang[1]?> gde god ti treba tekst za 'Cijena' (ovo je za slucaj tvog primera). Naravno moras imati na mu uvek da ako ti je ID autoincrement, i ako obrises neki tekst i ponovo ga dodas onda moras da znas koji je novi ID tog polja. Sledeci put radi sa smartijem otvorice ti se novi vidici ili koristi txt fajlove za svaki jezik, jer mnogo se brze ucitavaju nego stalno drndanje baze.
 
Odgovor na temu

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Re: Multilanguage site11.08.2008. u 08:49 - pre 190 meseci
Puno ti hvala na informaciji i savjetu!
Ovo ću definirati u header site-a, tako da bude u svakoj stranici!

Kao globalnu učitam tako:=> $GLOBALS[$lang[$reg['id']]];

A ispišem je na bilokojoj stranici :=> echo $lang['1'];...itd....

Ima možda koji bolji način ili je to ok?

A sad efikasniji način, što se tiče brzine i korištenja manje resursa i manjeg opterećivanja baze bi bio .txt file.

Može malo pojašnjenje, kako, zašto?
Hvala svima na pomoči

[Ovu poruku je menjao Wizard4U dana 11.08.2008. u 10:23 GMT+1]
 
Odgovor na temu

Zmaj
Predrag Krstić
web developer
Zrenjanin

Član broj: 1035
Poruke: 382

Sajt: https://pkrstic.wordpress..


+4 Profil

icon Re: Multilanguage site11.08.2008. u 10:30 - pre 190 meseci
dovoljno je da stavis $lang u globalne promenljive, zato sto je niz, nemoras da pises svaku stavku

ja licno u prvom fajlu ucitma jezik u promenljivu i onda u svakom fajlu napisem posle include headera, global $lang; i to je to.

sto se tice brzine, mozes da napravis i za svaki jezik po jedan fajl ko sto ti je predlozeno u kome bi bio niz sa prevodima, zbg lakseg koriscenja naravis da ti niz bude asocijativan, znaci nesto ovako

u recimo lang_hr.php napises
$lang['cijena']='Cijena';

onda u lang_en.php napises
$lang['cijena']='Price';

ovo je mnogo lakse kasnije nekom dati da ti prevede na neki novi jezik, jednostavno das mu osnovni jezik i on ti prevede na novi
e sad ovakav fajl samo na pocetku inkludujes i imas na svakoj strani sto ti treba (naravno koristis include_once) i resio si problem prevoda

kasnije u tvom kodu gde god da treba da se stampa cena ti napises <?= $lang['cijena'] ?> i resio si problem.

mali savet: ovo '<?= $x ?>' je isto sto '<?php echo $x ?>'.
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Multilanguage site11.08.2008. u 15:19 - pre 190 meseci
Citat:
Mystery: Predraze, mislim da nema svrhe koristiti ult u mom slucaju.
Sajt mi je gotov i zelim da dodam nekoliko jezika. Na mnogim stranicama sam postavio razna objasnjenja, primere i sl. Na koji nacim da radim? Kada bi sve stavio u english.php, serbian.php fajlovi bi ubrzo postali veliki.


Mnogi su urpvo upotrebili ULT da postojeci sajt prerade da bude visejezican, cak su ga ugradjivali u CMS-ove i blog-ove bez vecih problema. Pogledaj kako radi i videces da je to vrlo lako izvesti. Ako nista, posto je ULT vrlo jednostavan, videces kako on radi pa primeni slicnu tehniku u svom kodu.




 
Odgovor na temu

[es] :: PHP :: Multilanguage site

[ Pregleda: 2408 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.