[ Zeroo @ 26.11.2007. 09:41 ] @
Imam neku jenostavnu stranicu u html-u...i sada sam mislio da prevedem site i na engleski.Kako da u PHP-u napravim stranice na 2 jezika, a da kod promjene jezika ne moram kreirati čitavu novu stranicu?I ako ima to rešenje bez MySql baze?

Hvala:)
[ feroc1ty @ 26.11.2007. 12:37 ] @
Mozes da koristis GET
Naprimer ako hoces da ti default bude na srpskom (www.example.com/index.php) a za engleski (www.example.com/index.php?lng=eng) da korstis GET
Code:

if ($_GET['lng'] == "eng") {    
    echo "Text na engleskom";    
} else {
    echo "Tekst na srpskom";    
}

Ili mozes da napravis pomocu includa
Code:

if ($_GET['lng'] == "eng") {    
include("/include/eng.inc");
} else {
include("/include/srp.inc");    
}

[ nezki @ 26.11.2007. 17:09 ] @
Code:

<?php 
if (($lang != "sr")) {
  $lang="sr";
  setcookie("lang", $change_lang, time()+31536000, "/"); 
}
$change_lang=$_GET['change_lang'];
if (!empty($change_lang)) {
  $lang = $change_lang;
  setcookie("lang", $change_lang, time()+31536000, "/"); 
}

if (!empty($QUERY_STRING)) {
  $query_array = split ("&", $QUERY_STRING);
  $query = "";
  foreach ($query_array as $value) {
    if (($value != "change_lang=en") && ($value != "change_lang=sr")) $query.="&".$value; 
  }
}
$lang_sr="<a href=\"index.php?change_lang=en\" class=\"menu\">Engleski</a>";
$lang_en="<a href=\"index.php?change_lang=sr\" class=\"menu\">Srpski</a>";
   
if ($lang == "sr") $lang_string = $lang_sr;
if ($lang == "en") $lang_string = $lang_en;
?>
[ Zeroo @ 26.11.2007. 23:01 ] @
Hvala obojici ...jer ste izdvojli vremena da mi pomognete...E sad malo i ne kuzim...da li trebam napraviti fajl languages i u njemu imati lang_en i lang_sr...i sta sad u nijima treba da se nalazi?? I kako onda da to sve povezem sa index.php ???Help
[ Nemke_BG @ 26.11.2007. 23:15 ] @
Ja sam radio dvojezicni sajt i zamenio sam sav text na stranicama sa jednim nizom $text['000'] do $text['100'] cije sam definicije smestio u posebne fajlove srpski.php i kineski.php. I samo sam na pocetku svake stranice dodao if koji odlucuje koji je jezik u pitanju i ucitava ili srpski.php ili kineski.php.
[ kazil @ 27.11.2007. 09:28 ] @
Ono nezkijevo cudo cu jos i ja da iskoristim :P

u srpski_lang.inc recimo imas:

$pozdravni_tekst = "Dobrodosli na moju stranicu!";

a u engleski_lang.inc imas istu promenljivu:

$pozdravni_tekst = "Welcome to my page!";

a u recimo index.php imas sledece (head i to sam naravno izostavio):

<body>
<p>
<?php echo "$pozdravni_tekst"; ?>
</p>
</body>

i onda ce u zavisnosti od podesavanja ispisivati na odgovarajucem jeziku.

Nemke, kako si ti radio je dosta zbunjujuce, jer je dosta tesko odrediti gde ide recim $text[000] a gde $text[025]
[ Miroslav Ćurčić @ 27.11.2007. 10:09 ] @
Još je bolje upotrebiti asocijativni niz, naprimer:
$Msg['PozdravniText']= "Dobrodosli na moju stranicu!";

Tako ćeš izbeći koliziju s nekim drugim promenljivama,
i ne moraš paziti na to koji su nazivi upotrebljeni za poruke.

Čak možeš istovremeno držati u memoriji dva jezika, recimo:
Code:

include("lang/sr.php"); // popuni $Msg
$AlterMsg= $Msg;
include("lang/en.php"); // popuni(pregazi) $Msg

Primer istovremene upotrebe dva jezika je pisanje logova, sajt prikazuje sadržaj korisniku u jeziku koji je odabrao ali logove piše u "default" jeziku.

Naravno, umesto asocijativnog niza mogu se upotrebiti i INI datoteke.
[ nezki @ 27.11.2007. 18:03 ] @
Izvinjavam, se sto kasnim sa objasnjenjem svog dela koda
Code:

<?php 
if (empty($lang)) {
  $lang="sr";
  setcookie("lang", 'sr', time()+31536000, "/"); 
}
$change_lang=$_GET['change_lang'];
if (!empty($change_lang)) {
  $lang = $change_lang;
  setcookie("lang", $change_lang, time()+31536000, "/"); 
}

$lang_sr="<a href=\"index.php?change_lang=en\" class=\"menu\">English</a>";
$lang_en="<a href=\"index.php?change_lang=sr\" class=\"menu\">Srpski</a>";
   
if ($lang == "sr") $lang_string = $lang_sr;
if ($lang == "en") $lang_string = $lang_en;
?>

Ovaj kod spakuj u jedan fajl lang.php i includuj ga na pocetak svoje stranice(z atvoju stranicu uzecemo u ovom slucaju index.php)
Na mestu gde hoces da stoji link na koji kada kliknes se promeni jezik stavi <?php echo $lang_string; ?>
I onda samo sada kada ispisujes sadrzaj stavis
<?php
if($lang=='sr')
pisi tekst na srpskom;
else
pisi na engleskom;
[ Zeroo @ 28.11.2007. 18:12 ] @
Decki hvala puno...mislim da ce mi sve gore navedeno pomoci...Svaka vam cast!!!
[ nezki @ 28.11.2007. 18:32 ] @
Ako zelis da na stranicama prikazujes sadrzaj iz baze, dvojezicne sajtove kreiras tako sto u tabelu sa sadrzajem ubacis polje lang i za sadrzaje za engleskom stavis da je en a na srpskom sr, i onda samo kada izvlacis podatke imas upit nalik ovom SELECT * FROM tebela WHERE lang='$lang'
[ Zeroo @ 28.11.2007. 22:03 ] @
@ nezki...da trenutno nemam podrsku za bazu al cu to da isprobam na localhostu na wampserver-u...hvala ti !!! car si:-)