Autor | Zpráva | ||
---|---|---|---|
panmagor Profil * |
Něco jsem si tady na diskusi o tom dohledal, pak Google... A moje řešení (tedy návrh) je udělat to takto. Otázkou je, jestli je to nejlepší řešení..
<a href="jazyk.php?lang=en" title="anglicky">Anglicky</a> <a href="jazyk.php?lang=de" title="Deutsche">Německy</a> <a href="jazyk.php?lang=ru" title="Rusky">Rusky</a> <p> <?php session_start(); if ( $_GET['lang'] == "en" ) {$_SESSION['lang'] = 'en';} if ( $_GET['lang'] == "de" ) {$_SESSION['lang'] = 'de';} if ( $_GET['lang'] == "ru" ) {$_SESSION['lang'] = 'ru';} //if ( !$_GET['lang'] ) {session_start(); $_SESSION['lang'] = 'cz';} //if ($_SESSION['lang'] == 'cz'){ echo "AHOJ!";} if ($_SESSION['lang'] == 'en'){ echo "Hello!";} if ($_SESSION['lang'] == 'de'){ echo "Willkomen!";} if ($_SESSION['lang'] == 'ru'){ echo "Rusky!";} ?> |
||
Taps Profil |
#2 · Zasláno: 26. 6. 2008, 20:49:29
panmagor
no myslím si ž to není ideální. Přeci jen vždy bude zvolený jen jeden jazyk, proto bych navrhoval in_array popř. switch |
||
joe Profil |
#3 · Zasláno: 26. 6. 2008, 20:54:07
A proč to ukládáš do sessions? Když máš parametr v adrese, tak je to zbytečné.
|
||
panmagor Profil * |
#4 · Zasláno: 26. 6. 2008, 20:56:31
Jak to tedy nejideálněji vyřešit?
|
||
panmagor Profil * |
#5 · Zasláno: 26. 6. 2008, 20:57:47
Takto?
<?php if ( $_GET['lang'] == "en" ) { Anglická verze} if ( $_GET['lang'] == "de" ) {Německá verze} if ( $_GET['lang'] == "ru" ) {Ruská verze} ?> |
||
ShiraNai7 Profil |
#6 · Zasláno: 26. 6. 2008, 20:59:12 · Upravil/a: ShiraNai7
panmagor
switch($_SESSION['lang']){ case 'cz': echo 'cesky'; break; case 'en': echo 'anglicky'; break; case 'de': echo 'nemecky'; break; case 'ru': echo 'rusky'; break; } Samozřejmě tohle je jenom taková hračka, na reálných stránkách s delšími texty by se to dělalo na 100% jinak. |
||
panmagor Profil * |
#7 · Zasláno: 26. 6. 2008, 21:01:14
A jak by se to dělalo na stránkách s delšími texty? :-)
|
||
ShiraNai7 Profil |
#8 · Zasláno: 26. 6. 2008, 21:09:04
panmagor
~ pro krátké popisky formulářů, tlačítek, obecných nadpisů, hlášek apod. by se vytvořilo pole popisků pro každý jazyk v externím souboru a to by se vkládalo po zjištění nastaveného jazyka, na načítání popisků by se udělala funkce ~ samotný obsah stránek by byl buď uložen ve více souborech pro každý jazyk zvlášť nebo ve více sloupcích v databázi (pokud by web používal databázi) ~ nastavení jazyka by se ukládalo do session (např po kliknutí na vlajku) |
||
panmagor Profil * |
#9 · Zasláno: 26. 6. 2008, 21:11:54
nastavení jazyka by se ukládalo do session (např po kliknutí na vlajku)
Takže moje řešení pomocí session by se dalo použít na webu.... |
||
srigi Profil |
#10 · Zasláno: 26. 6. 2008, 21:14:24 · Upravil/a: srigi
Ja to riesim vo svojom mini frameworku pomocou triedy ROUTER, kde z URL vyextrahujem lang a ten nasledne ulozim do triedy REGISTRY. V controlleroch si potom tuto premennu citam a podla toho sa zariadim. Ak by si mal zaujem, mozem zabalit kostru frameworku do zipka, ale znamenalo by to, ze by si opustil svoj kod.
|
||
srigi Profil |
#11 · Zasláno: 26. 6. 2008, 21:16:51
ShiraNai7
~ nastavení jazyka by se ukládalo do session (např po kliknutí na vlajku) Ale to nie je moc mudre z hladiska SEO, nakolko sa pod jenou URL moze objavit niekolko verzii webu. Lang je vhodne ukladat do URL. |
||
ShiraNai7 Profil |
#12 · Zasláno: 26. 6. 2008, 21:20:06
srigi
Jo, to je fakt. Takže bych to řešil virtuálním umístěním webu do podadresářů podle jazyku (example.com/cz/ pro češtinu, example.com/en/ pro angličtinu atd.) - a přes .htaccess bych vše směroval na společné skripty, které by dále fungovaly způsobem mnou popsaným výše. |
||
srigi Profil |
#13 · Zasláno: 26. 6. 2008, 21:27:25
Takže bych to řešil virtuálním umístěním webu do podadresářů podle jazyku
jj, tak to mam vyriesene v tom spominanom FW. Navyse som implementoval na indexovej stranke detekciu jazyka z UA stringu, takze poliak moze byt automaticky presmerovany na polsku verziu (po zadani URL www.example.com sa prevedie detekcia a ak je jazyk podporovany, je presmerovany na www.example.com/pl). |
||
joe Profil |
#14 · Zasláno: 26. 6. 2008, 22:13:52 · Upravil/a: joe
Jak to tedy nejideálněji vyřešit?
Tak, že pomocí $_REQUEST / $_GET přečteš parametr lang z adresy a podle toho vytvoříš dotaz na db, kde jsou uložené texty. |
||
panmagor Profil * |
#15 · Zasláno: 26. 6. 2008, 22:31:21
joe
Tak přesně tohle jsem chtěl slyšet :-) |
||
Časová prodleva: 17 let
|
0