Autor | Zpráva | ||
---|---|---|---|
Ecko Profil * |
#1 · Zasláno: 15. 8. 2011, 09:42:12
Dobrý začal som robiť viac jazyčný web no prišiel som k prvému problému..
mám kód: <?php if(!isset($_SESSION['lang']) || $_GET['lang']!='') { switch($_GET['lang']) { case 'en': $lang = 'en'; break; default: $lang = 'sk'; break; } $_SESSION['lang'] = $lang; } $jazyk = ($_SESSION['lang']); //je fajn to osetrit, lebo co ked budeme chciet pouzit tu premennu aj niekde inde a zabudneme, ze sme ju neosetrili? echo $text[$jazyk]['skuska']; ?> <a href="/?lang=sk">SK</a> <a href="/?lang=en">EN</a> no potom v tom kóde (to je index) includujem obsah pomocou jednej triedy <?php $cont->showContent($_GET["action"]);?> tak to vyvolávam no potom v tom obsahu ak mám nie aké echo echo $text[$jazyk]['skuska']; tak mi nezobrazí žiadny text.. viete ako by som to vyriešil? |
||
Tori Profil |
#2 · Zasláno: 15. 8. 2011, 10:19:30 · Upravil/a: Tori
Když už jednou nastavíte jazyk, tak bych ho pak četla jen z jednoho místa (session, $cont->lang, ...), bez kopírování do dalších proměnných.
Jestli ta třída v $cont vybírá, co se zobrazí na stránce, pak by aktuální jazyk měl být její vlastnost. Předpokládám, že máte jeden index.php a podle URL se includuje obsah? Pak bych výběr jazyka dala na začátek index.php a konstruktoru ho předala v parametru: session_start(); $preklady = array('default'=>'sk', 'en'); // nebo include 'predvolby.php'; atd. if (!isset($_SESSION['lang'])) $_SESSION['lang'] = $preklady['default']; elseif (isset($_GET['lang']) && !empty($_GET['lang'])) $_SESSION['lang'] = in_array($_GET['lang'], $preklady) ? $_GET['lang'] : $preklady['default']; $cont = new MyClass($_SESSION['lang']); edit: Výběr jazyka by mohl obstarávat i router, nebo i ta třída v $cont - tedy buď ta část, která má na starosti nastavení a předvolby aplikace, anebo ta která obstarává zobrazení obsahu. Nevím, co je u vás vhodnější, jak přesně je ten web udělaný. Jestli používáte jednu šablonu + vložené překlady textů (=>do nastavení), anebo pro každý jazyk jinou šablonu (=>do $cont), anebo framework (=> do routeru). |
||
Časová prodleva: 13 let
|
0