Autor Zpráva
tomis
Profil *
Dobry den, chtel jsem se zeptat zda nekdo nema snadny tutorial a nebo by mi neporadil jak na vicejazycny web..
dejme tomu ze mam nejaky soubor index.php s timto obsahem:
<strong><? echo $l_jmeno; ?></strong>

dale mam soubor cz.php s timto obsahem:
<? $l_jmeno="Uživatelské jméno"; ?>

a posledni je soubor eng.php:
<? $l_jmeno="User name"; ?>

jestlize do souboru index.php includuju cz.php tak jazyk bude cesky, jestli includuju eng.php tak jazyk bude anglicky.. vse mi funguje, ale chtel bych udelat nasledujici:
nejake vysouvaci menu (dejme tomu v administraci pro admina) ve kterem by bylo na vyber: jazyk CZ, jazyk ENG. admin by vybral jazyk CZ a do databaze by se ulozilo ze chci stranky v cestine.. zda by vybral ENG tak by se ulozila druha moznost.. a pote se nejspise v souboru index.php zeptam databaze ktery jazyk je nastaven jako aktual a podle toho se mi stranky zobrazi bud v CZ nebo v ENG.. umel by nekdo neco takoveho vytvorit? verim ze to nebude velky problem pro nekoho kdo tomu rozumi. Chtel bych se na tomto prikladu naucit tuto vec ale nikde jsem nenalezl podobny tutorial a uz od rana docela ztracim nervy :) dekuji za kazde rady (berte ale nazretel ze nejsem zadny pokrocily expert, takze spise jednoduche a primitivni vysvetleni).

S pozdravem Tom
Fergi
Profil
chtelo by to tabulku v DB kam se bude ukladat jestli je to EN nebo CZ pak script ktery to bude do db ukladat ten by mohl vypadat takhle nejak
$jazyk=$_GET["jazyk"]; //pomoci get zjistime jestli EN nebo CZ , napr admin.php?jazyk=cz
if($jazyk!="en" or $jazyk!="cz"){echo"jazyk muze byt pouze EN nebo CZ"; //pokud se $jazyk nerovna cz nebo en do db se nic neulozi (mozno pridat dalsi jazyky)
}else{
 MySQL_Query("INSERT INTO nastaveni (jazyk) VALUES ('$jazyk')") or Die("Nastala chyba: ".MySQL_Error()); // ulozime do tabulky nastaveni s radkem jazyk
}

edit:
pak uz jen na indexu
$nacti=mysql_query("SELECT jazyk FROM nastaveni") or Die("Nastala chyba: ".MySQL_Error()); //vyberemu tabulku nastaveni radek jazyk
$zaznam=mysql_fetch_array($nacti); // načtení údajů z databáze do proměnných
$jazyk=$zaznam["jazyk"]; //tato promenna obsahuje bud en nebo cz 
tomis
Profil *
kdyz to clovek cte jiz hotove tak mi to prijde tak primitivni :) dekuju za radu, moc si mi pomohl, jdu si to zkusit po tom precteni napsat sam at se taky neco naucim... jeste jednou dekuju snat to pujde :)
breeta
Profil *
Nazdar já jsem to dělal bez databaze:

mám soubor s přepínání jazyků který odkazuje na soubory s proměnýma

<?php 

if (!isset ( $_GET[ 'jazyk' ] ))
($_GET[ 'jazyk'] = 'cs'); 
  
$jazyky = $_GET[ 'jazyk'];


	switch ( $jazyky )
	{
	case 'en':
		$text = include "jazyky/en.php";
		
		break;
		


	case 'de':
		$text = include "jazyky/de.php";
		break;
		

	
	case 'cs':
	default:
	  $text = include "jazyky/cs.php";
		break;
	}
?>


a aby byl při přepínání stránek vždy nastavený zvolený jazyk:

$infojazyk = $_GET[ 'jazyk'];

if ($_GET[ 'pg']!="uvod") { 
echo "<a href='$korenadres/$infojazyk/uvod/'>$menu_uvod</a><br />";} 
else{ echo "<span class='active'>$menu_uvod</span><br />"; }
tomis
Profil *
jee, mockrat diky, jdu si to projit a trochu tomu porozumet :o) dekuju moc
AM_
Profil
Pardon, ale to databázové řešení je hloupost, pochybuji, že chceš, že když nastavíš web anglicky, všichni ho uvidí anglicky a naopak. Každý uživatel by to měl mít individuálně. Tlačit to pouze přes GET také není ideální, musel bys při každém prokliku zachovávat daný parametr. Já bych osobně případné uživatelské nastavení dával do COOKIE s dlouhou dobou platnosti, tak si to prohlížeč uživatele zapamatuje na dlouho (pokud máš na stránce uživatelské účty, tak můžeš do databáze ke každému uživateli přidat preferovaný jazyk, ale ty COOKIE bych stejně použil pro ty, kteří nejsou registrovaní). Pak ještě existuje kouzlo jménem $_SERVER['HTTP_ACCEPT_LANGUAGE'], ze kterého můžeš vyčíst preferovaný jazyk uživatele, aniž by kdy předtím stránku navštívil (asi znáš třeba z youtube nebo google, který se také bez jakékoli uživatelské interakce rovnou zobrazí v jeho rodném jazyce).
A ještě jedna rada na závěr, každou jazykovou frázi bych neukládal do zvlášť proměnné, ale vytvořil bych asociativní pole, např.
$lang = array(
  'greet'=>'Ahoj',
  'bye'=>'Měj se pekně',
  'username'=>'Uživatelské jméno'
);

Tvořit totiž stovky proměnných nevede k ničemu dobrému, od nepřehlednosti kódu po to, že se ti za chvíli začnou plést s proměnnými programu, omylem definuješ jinde v programu stejnou a budeš se divit, proč to najednou nefunguje.
tomis
Profil *
to "$_SERVER['HTTP_ACCEPT_LANGUAGE']" me zajima, urcite to vyuziju, jdu se kouknout co mi o tom najde google... dekuju za radu, ty cookies jsou asi nejlepsi napad :) pres pole? ja jsem zvykly pres promenne a zatim v tom gulas nemam, pred kazdou promenou jazyku si davam l_nazevpromenne :o).. ale ty pole vypadaji jednoduseji, mohu se jeste zeptat jak bych pote vytahl mezi tagy < b > < b > ceskou hlasku uzivatelske jmeno? ktera je na 3.radku 2. sloupec?
AM_
Profil
<b><?php echo $lang['username']; ?></b>
Pokud jsi nikdy nedělal s asociativními poli, doporučuji se na ně trochu podívat, dá se s tím dělat spousta chytrých věcí. Rozdíl od normláního pole $pole[ciselny_index] je, že místo číselné indexace pole indexuješ vlastně jakýmkoliv objektem, široké využití má právě indexace řetězci.
tomis
Profil *
nene, zatim jsem spise zacatecnik, zkousim si vytvorit vlastni portalek abych se naucil nejake ty zaklady... neco jsem o tom v tutoriale cetl ale jeste jsem se k tomu poradne nedostal, kazdopadne na to mrknu dekuju za veskere rady a ja se jdu zas pilne ucit :)
Fergi
Profil
AM_
no tak jasny , ale ja pochopil ze chce v administracnim rozhrani nastavit defaultni jazyk... a ja osobne bych pak dodelal do db ke kazdemu uzivateli radek jazyk ktery by si nastavil v profilu... kdyby pak kdyby nebyl uzivatel prihlasen tak by se nacetlo nastaveni z DB a kdyby byl prihlasen nactlo by se jeho nastaveni...
AM_
Profil
a ja osobne bych pak dodelal do db ke kazdemu uzivateli radek jazyk ktery by si nastavil v profilu...
Ano, přesně takhle jsem to mínil, ale to jde jen za předpokladu, že na webu vůbec nějaké uživatelské účty jsou, a pro nepřihlášené uživatele bych http_accept_language popř. cookie řešení ponechal. A když by se přihlásil, projevilo by se nastavení účtu.
tomis
Profil *
ano ano, administraci mam vytvorenou a registrace uzivatelu mi uz take funguji, to co pisete tam bude, takze jste poradili na jednicku :) diky moc chlapi
rommy
Profil *
tady jsem použil gadget, ale určitě to není záruka kvalitního překladu
http://rbinfo.cz/
tomis
Profil *
nnn google translator neni vhodne reseni... jedna se o podobnou stranku jako forum, moc textu tam neni, spise jen fraze nebo dvouslovna spojeni, takze preklad neni problem :) ale diky za tip ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: