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

Promjena jezika bez vraćanja na početnu stranicu

[es] :: PHP :: Promjena jezika bez vraćanja na početnu stranicu

[ Pregleda: 2630 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

damakii

Član broj: 136925
Poruke: 58
*.dynamic.telemach.ba.



Profil

icon Promjena jezika bez vraćanja na početnu stranicu13.02.2012. u 21:06 - pre 148 meseci
Zdravo,

imam web stranicu urađenu na 4 jezika. Napravljena je tako da promjena jezika uvijek vraca na 01.php (početna stranica), međutim ja želim da mi se promjena jezika uradi tako da ostane na id-u na kojem se trenutno posjetilac nalazi, odnosno da se ne vraća uvijek na 01.php.

Kako da to napravim?

Molim pomoć.
damaki
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
*.dynamic.sbb.rs.

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu13.02.2012. u 21:20 - pre 148 meseci
Moraces da das malo vise informacija o tome kako se menja jezik, i po mogucstvu okacis relevantan deo koda.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.dynamic.telemach.ba.



Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu13.02.2012. u 21:35 - pre 148 meseci
Ovo mi se nalazi u body-u index.php stranice:

Code:

$jezik='bs';
$tmp=$_GET['jezik'];
if (($tmp=='hr')|($tmp=='sr')|($tmp=='en'))
$jezik=$tmp;


A ovako mijenjam jezik na id-u:

<?php if ($jezik=='bs'){?>
kod stranice
<?php } elseif ($jezik=='hr'){?>
kod stranice
<?php } elseif ($jezik=='sr'){?>
kod stranice
<?php } else {?>
kod stranice
<?php } ?>
damaki
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.dynamic.telemach.ba.



Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu13.02.2012. u 21:52 - pre 148 meseci
Nekako na linku za promjenu jezika treba staviti da on dinamicki kupi jezik i id stranice. Sada mi je na tim linkovima početna stranica.
damaki
 
Odgovor na temu

namesnik
Nikola Boričić
Niš

Član broj: 165677
Poruke: 33
*.dsl.teksavvy.com.



Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu13.02.2012. u 22:14 - pre 148 meseci
daj kako generises taj id element. (html + php)
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
109.92.0.*



+44 Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu13.02.2012. u 22:22 - pre 148 meseci
Pitanje: ti za svaki jezik pišeš poseban kod?
To si mogao i uz pomoć čistog HTML. Osnovna namenta php-a je za generisanje dinamičkih stranica.
Znači potrebno je da napraviš posebne fajlove sa definicijama za svaki jezik i pozivaš ga u zavisnosti od toga koji je jezik izabran.

Na primer sr.php
Code:
DEFINE("L_HOME",         "Početna");
DEFINE("L_KATEGORIJE",   "Kategorije");
DEFINE("L_VESTI",        "Vesti");

...
en.php
Code:
DEFINE("L_HOME",         "Home");
DEFINE("L_KATEGORIJE",  "Categories");
DEFINE("L_VESTI",        "News");
...itd.


Jezike možeš da "čuvaš" i prenosiš na druge stranice preko sesije, cookies-a, iz baze podataka itd.
Na primer imaš link za engleski jezik:
Code:
<a href="index.php?lang=en">English</a>

Kada korisnik klikne na link potrebno je da setuješ sesiju za izabrani jezik (ako se radi o sesijama):
Code:
if (isset($_GET["lang"]) ) {
   if ($_GET["lang"]=="en") $_SESSION["lang"] = "en"; //ako je korisnik kliknuo na engleski
   if ($_GET["lang"]=="sr") $_SESSION["lang"] = "sr";  //ako je korisnik kliknuo na srpski
}


Zatim pozivaš određeni fajl (jezički):

Code:
if (isset($_SESSION["lang"]) ) {
   if ($_SESSION["lang"] == "en" AND file_exists("PUTANJA/en.php") require("PUTANJA/en.php"); 
   if ($_SESSION["lang"] == "sr" AND file_exists("PUTANJA/sr.php")   require("PUTANJA/sr.php"); 
} else {
 $_SESSION["lang"] = "sr"; //Postavljanje default jezika, ukoliko nije izabran
 require("PUTANJA/sr.php"); 
}

U HTML delu koristiš definicije iz jezičkih fajlova. Npr:

Code:
<a href="index.php"><?php echo L_HOME; ?></a>
<a href="kategorije.php"><?php echo L_KATEGORIJE; ?></a>
<a href="vesti.php"><?php echo L_VESTI; ?></a>

Nema potrebe da kucaš ceo kod ponovo za svaki jezik.
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.dynamic.sbb.rs.



+33 Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu14.02.2012. u 11:31 - pre 148 meseci
Na stranu to što nema smisla da za svaki jezik pišeš iznova ceo kod, umesto da koristiš taj neki mehanzam literala sa prevodima, kao što ti je i objašnjeno u prethodnom post-u, mislim da je problem zbog kojeg si i otvorio ovu temu samo to što ti URL-ovi za promenu jezika nisu na pravi način generisani, u smilu da uvek vode na tu 01.php stranicu. Oni bi trebalo uvek da vode na tekuću stranicu, i da pritom imaju još taj dodatni lang URL parametar, npr.:
Code:
<?php 
    $currentPage = $_SERVER['REQUEST_URI']; 
    $currentPage .= (strpos($currentPage, '?') === false) ? '?' : '&';
    $currentPage .=  'jezik=';
?>
<a href="<?php echo $currentPage . 'en'; ?>">English</a> | <a href="<?php echo $currentPage . 'sr'; ?>">Serbian</a>
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.javnenabavke.gov.ba.



Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu15.02.2012. u 14:27 - pre 148 meseci
Da ne bih sada radio tolike izmjene potrebno mi je samo da na linku za promjenu jezika ubacim da kupi id. Ako napravim ovako:

<a href="<? "index.php?id=$id&jezik=sr" ?>" title="Srpski jezik">SRP</a>

savršeno dobro radi preuzimanje id, ali mi jezik ne kupi. Da li je sintaksa ovdje dobra?


Ali ako napravim ovako:

<a href="index.php?id=<? echo $id ?>&jezik=sr" ?>" title="Srpski jezik">SRP</a>

onda mi kupi id ali ne baš onako kako bih ja htio i kupi jezik naravno. U ovom drugom slučaju ukoliko imam link index.php?id=03vij&vij=39&jezik=sr kada hoću da promijenim jezik kupi mi samo index.php?id=03vij&jezik=sr, znači nedostaje &vij=39. U prvom slučaju ovo radi ok.


U body-u index.php imam definisano i ovo. Možda je tu neki problem:

$jezik='en';
$tmp=$_GET['jezik'];
if (($tmp=='fr')|($tmp==de'')|($tmp=='sr'))
$jezik=$tmp;


Hvala.
damaki
 
Odgovor na temu

namesnik
Nikola Boričić
Niš

Član broj: 165677
Poruke: 33
*.dsl.teksavvy.com.



Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu15.02.2012. u 20:48 - pre 148 meseci
Ja mislim da sam sad ukapirao sta hoces da postignes.
Pokazujes neku stranicu tako sto citas neki GET parametar (vij) i hoces da ti klik na link promeni samo jedan GET parametar (u ovom slucaju jezik), ostale da ne dira.

Code:

//odredjivanje jezika
if (isset($_GET['jezik']) && in_array($_GET['jezik'], array('en', 'sr', 'de'))) {
    $jezik = $_GET['jezik'];
} else {
    //default jezik
    $jezik = 'en';
}

//generisanje linkova
?> 
<a href="index.php?<?php echo http_build_query(array_merge($_GET, array('jezik' => 'sr'))); ?>">Srpski</a>
<a href="index.php?<?php echo http_build_query(array_merge($_GET, array('jezik' => 'en'))); ?>">Engleski</a>
<a href="index.php?<?php echo http_build_query(array_merge($_GET, array('jezik' => 'de'))); ?>">Nemacki</a>


u array_merge za prvi argument mozes da zamenis $_GET sa nekim nizom koji hoces da prenosis, ovako ce da prenosi sve GET parametre.

Uzas ali zakrpice.
 
Odgovor na temu

damakii

Član broj: 136925
Poruke: 58
*.dynamic.telemach.ba.



Profil

icon Re: Promjena jezika bez vraćanja na početnu stranicu15.02.2012. u 21:30 - pre 148 meseci
To je to, hvala ti puno radi sve kako treba.
damaki
 
Odgovor na temu

[es] :: PHP :: Promjena jezika bez vraćanja na početnu stranicu

[ Pregleda: 2630 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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