RaaapuLis Posted June 17, 2008 Report Share Posted June 17, 2008 (edited) kr4 iisuamaa pastaastiishu... vajadziigs ljoti vienkaarsh php skripts, kurš majas lapai ljauj izveleties valodas. Vajadziigaas valodas: eng, lv. Esmu meginajis daudzus veidus bet nekadigi nevaru salikt skriptu taa lai kopaa tas viss straadaa. Vajadziigs pats skripts. tad talak webaa buus jaapadood kkas tads ?lang=eng vai ?lang=lv. Tik daudz vismaz zinu XD ja nau gruuti buutu labi ja paskaidrotu ko kas dara. Tie kas neko nezin, bet tikai maak dirst rakstiit aizliegts Edited June 17, 2008 by RaaapuLis Link to comment Share on other sites More sharing options...
X ID Posted June 17, 2008 Report Share Posted June 17, 2008 <a href="?lang=lv">lv</a> <a href="?lang=en">en</a> Link to comment Share on other sites More sharing options...
Norek Posted June 17, 2008 Report Share Posted June 17, 2008 Forši, rakstīju garo replay un nospiedu tab un backspace. Nav gluži editplus, kur var šitā rīkoties. Ir miljons veidu, kā realizēt multilanguage supportu. Labi, īsumā : 1) vari taisīt manu variantu, kur html templeitos teksti aizstāti ar nemainīgām vērtībām (manā gadījumā <lang m_search> vai tml.). funkcija ņem šo sagatavi un atmiņā apstrādā, ieliekot mana <lang ..> vietā tekstu un iemet attiecīgajā direktorijā (manā gadījumā lang/LV lang/ENG). šis variants atstāj nemainīgu ielādes ātrumu, jo teksti jau ir vietā un sistēmai vairs nekas nav jāgremo. 2) vari ieviest divus failus lang_lv.php lang_en.php, kur katrā no tiem definēt nemainīgos tekstus : define("LANG_SEARCH", "Meklēt"); utt. iekš lang_en.php, protams anglisko variantu ar to pašu define("LANG_SEARCH", "Search"); un tad pēc usera izvēlētās valodas require`ot vajadzīgo failu. šie ir tikai divi no variantiem. programmēšana tak ir iespēja izplesties. var izdomāt vēl visu ko. Link to comment Share on other sites More sharing options...
X ID Posted June 17, 2008 Report Share Posted June 17, 2008 Ar define() man nepatīk tas, ka ja mainīgais netiek definēts, tad ... Pats dodu priekšroku valodas masīvam, taču neizsaucu pašu mainīgo, bet funkciju, krč vieglāk būs saprast: function lxvar($key){ global $lxv; return (array_key_exists($key,$lxv) && !empty($lxv[$key]))?$lxv[$key]:'LX{'.$key.'}'; } Tb ar domu, ka arī ja mainīgais masīvā netiks nodefinēts, funkcija atmetīs atpakaļ atslēgu, nevis tukšumu vai warningu. Pēctam vieglāk pašam strādāt. Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 17, 2008 Author Report Share Posted June 17, 2008 Varētu lūdzu pateikt kā šito panākt? vēl neesmu koda dievs, tikai programeetaajs-iesācējs :/ Link to comment Share on other sites More sharing options...
ry. Posted June 17, 2008 Report Share Posted June 17, 2008 Valodas reģistrētiem lietotājiem? Varētu tev sataisīt. Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 17, 2008 Author Report Share Posted June 17, 2008 vari izpaliidzeet? man nevaig tur kko krutu vnk parastu skriptu kas nomaina valodu majas lapai pilnigi visiem lietotajiem, nevis registretiem. Pashtaisita majas lapa Link to comment Share on other sites More sharing options...
Norek Posted June 17, 2008 Report Share Posted June 17, 2008 Tev te vnk skripts nelīdzēs. Ir tāda lieta kā freimworks. Ņemot vērā to, ka valodas maiņa ir globāla, tad arī šī valodas maiņa ir jāiestrādā sistēmā. Nevar tā vienkārši uzrakstīt skriptu, iemest kaut kādā direktorijā un cerēt, ka viņš Tev mainīs valodas. Tā tas nenotiek. Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 17, 2008 Author Report Share Posted June 17, 2008 xDxDxD nee nu n0r3k vismaz tik daudz jau es saprotu. Neesmu galiigs idinjsh bet nu es saku ka nevajag tur visu skriptu visu rakstiit, domaat pasham vnk ja kaads zin kaut vai kur kaads tuts kas kaut vai mazlietinj paliidzees tad luduzu pasakiet un viss Link to comment Share on other sites More sharing options...
Norek Posted June 17, 2008 Report Share Posted June 17, 2008 Redz, kur Tev būs pavisam vienkāršs skriptiņš. $sLang = $_SESSION["lang"] = empty($_REQUEST["lang"])?"lv":$_REQUEST["lang"]; switch($sLang) { default : $sLang = "lv"; case "lv": define("LANG_LANGUAGE", "latviešu"); define("LANG_SHIT", "sūds"); break; case "en": define("LANG_LANGUAGE", "english"); define("LANG_SHIT", "shit"); break; } echo LANG_LANGUAGE." ".LANG_SHIT; Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 18, 2008 Author Report Share Posted June 18, 2008 un maajas lapa vnk ?lang=lv/en ??? Link to comment Share on other sites More sharing options...
Norek Posted June 18, 2008 Report Share Posted June 18, 2008 Precīzi. Īsumā : lang glabājās sessijā, tapēc pirms tam uzstādam session_start(); ja sessijas lang mainīgais ir tukšs, tb nav uzstādīta valoda, tad defaultā ir lv. tos defainus vari mest failos lang_lv.php lang_en.php (kā jau minēju iepriekš) un ielādēt ar require(); vai tml. ja neizmanto templeitus (vlib, smarty, citus) un visu raksti *.php failos un inklūdo tos iekš index php, tad tev tikai tekstu vietā atliek mest definētās vērtības, kā minēts skripta beigās. nevajadzētu rasties problēmām. Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 18, 2008 Author Report Share Posted June 18, 2008 (edited) nu taa kopumaa 90% sapratu, bet nu tagad radaas probleemas liekot visu kopaa. root mape: index.php Lang(MAPE) lv.php en.php nu itkaa taa vajadzeetu visam buut, ja? index.php: <? session_start(); $sLang = $_SESSION["lang"] = empty($_REQUEST["lang"])?"lv":$_REQUEST["lang"]; switch($sLang) { default : $sLang = "lv"; case "lv": require('lang/lv.php'); break; case "en": require('lang/en.php'); break; } ?> taalaak webaa padodu: <a href="?lang=en"><img src="/bildes/eng.gif" border=0></a> <a href="?lang=lv"><img src="/bildes/lv.gif" border=0></a> lv.php saturs: <?php define("TITLE", "Pārmēmele"); define("NAVsak", "Sākums"); define("NAVfor", "Forums"); define("NAVzie", "Ziedot"); ?> vai kaut kas tur ir pareizs? --------------------------------------------- liekot to session_start(); rodas uzreis errors Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\index.php:1) in C:\AppServ\www\index.php on line 2 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\index.php:1) in C:\AppServ\www\index.php on line 2 Edited June 18, 2008 by RaaapuLis Link to comment Share on other sites More sharing options...
Norek Posted June 18, 2008 Report Share Posted June 18, 2008 Tu izmanto kādu open-source vai tas viss ir Tevis paša taisīts ? izņem ārā to session_start(); Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 18, 2008 Author Report Share Posted June 18, 2008 nau nekaada open source pilnigi viss pashtaisiits, kad iznjeemu aaraa sessions tad nerada bet tas valodas nemainas ne ar sessions ne bez sessions :/ Link to comment Share on other sites More sharing options...
X ID Posted June 18, 2008 Report Share Posted June 18, 2008 Tev pirms session_start(); notiek kautkādu datu izvade. Šis session_start(); jāliek pirms vispār kautkas tiek izvadīts. Iekš switch() "default" vispār vari vākt ārā. --- Nedaudz par sevis lietoto metodi: Strādāju ar mod_rewite un viss tiek padots cau url saiti, bez sesijām vai citām figņām. /lv/news - jaunumi latviski /en/news - jaunumi angliski Rewrite tiek liekts uz attiecīgo failu lv.php, kurā tiek norādīts valodas indeks (priekš datubāzes selektiem), inklūdots valodas fails un inklūdoti arī pārējie sistēmas faili, tur pat arī html templeits ar valodas mainīgajiem. Link to comment Share on other sites More sharing options...
Norek Posted June 18, 2008 Report Share Posted June 18, 2008 Nevar gan. ja adresbārā ievada "?lang=ru" vai "?lang=vienalgakas", tad lapa nobrūk un izspļauj, ka nepazīst defainus, bet ar defaultu rāda lv valodu. Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 18, 2008 Author Report Share Posted June 18, 2008 mans index.php lai jusm vieglak: <? $sLang = $_SESSION["lang"] = empty($_REQUEST["lang"])?"lv":$_REQUEST["lang"]; switch($sLang) { default : $sLang = "lv"; case "lv": require('lang/lv.php'); break; case "en": require('lang/en.php'); break; } ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title><?=TITLE?></title> <link rel="stylesheet" type="text/css" href="stili//style.css"> <link rel="bookmark icon" href="/bildes/favicon.png"> <link rel="shortcut icon" href="/bildes/favicon.png"> </head> <body background="/bildes/bg.jpg" background-repeat="repeat-x"> <table align="center" valign="top" width="890"> <tr><td height="100%" valign="top"> <table style="border-style: solid; border-width:5px; border-color: #996666;" align="center" bgcolor="#b7adad" width="100%"> <tr><td style="border-bottom-style: solid; border-bottom-width:1px; border-bottom-color: #505e57;" colspan="3" align="center" valign="middle"> <table width="100%"> <tr> <td width="35" align="center" style="border-right-style: solid; border-right-width: 1px; border-right-color: #505e57"> <a href="?lang=en"><img src="/bildes/eng.gif" border=0></a></td> <td width="35" align="center" style="border-right-style: solid; border-right-width: 1px; border-right-color: #505e57"> <a href="?lang=lv"><img src="/bildes/lv.gif" border=0></a></td> <td class="error" align="center"><b> </b></td> <td align="right"> <table align="right"><tr> <div id="info"> <b>Laiks:</b> <? print date("H:i:s")?> | <b>Datums: </b><? print date("d.m.Y")?> | <?php $ip = getenv("REMOTE_ADDR"); Echo "<b>IP:</b> " . $ip; ?> | <b>Vārdadienas: </b> <? include("inc/include_vardadienas.php");?> </div> </tr> </table> <td></tr> </table> </td></tr> <tr><td width="150" align="center" valign="top"> <table align="center" height="100%" width="120"> <tr><td height="20" colspan="2" align="center" class="subtitle">Navigācija</td></tr> <tr><td align="center"><b>?</b></td> <td align="left"><a href="/"><?=NAVsak?></a></td></tr> <tr><td align="center"><b>?</b></td> <td align="left"><a href="/"><?=NAVfor?></a></td></tr> <tr><td align="center"><b>?</b></td> <td align="left"><a href="/">1</a></td></tr> <tr><td align="center"><b>?</b></td> <td align="left"><a href="/">1</a></td></tr> <tr><td align="center"><b>?</b></td> <td align="left"><a href="/">1</a></td></tr> <tr><td align="center"><b>?</b></td> <td align="left"><a href="/"><?=NAVzie?></a></td></tr> </table><br><br> <table align="center" height="100%" width="120"> <tr><td height="20" colspan="2" align="center" class="subtitle">Draugi</td></tr> <tr> <td><div align="center"> <marquee onmouseover="this.setAttribute('scrollamount', 0, 0);" onmouseout="this.setAttribute('scrollamount', 1, 0);" direction=up scrollamount="1" scrolldelay="40"> <a href="" target="_blank"> <img src="" alt="" title="[-sB-] ' Klana WEB Lapa" border="0" /></a><br /> <img height="3" width="81" /><br /> <a href="" target="_blank"> <img src="" alt="" title="wreck" border="0" /></a><br /> <img height="3" width="81" /><br /> <a href="" target="_blank"> <img src="" alt="" title="" border="0" /></a><br /> <img height="3" width="81" /><br /> </marquee></div></td> </tr> </table><br><br> </td> <td class="news" align="center" valign="top"> <div align="justify"><center><h3>Jaunumi<h3></center> <table width="100%"> <tr><td align="left"><b>NOSAUKUMS</b> </b></td><td align="right">DATUMS LAIKS</td></tr> <tr><td colspan="2"><hr><div align="justify"> TEKSTS <br /> </div></td></tr> </table><br><br><br></div></td><td width="150" align="center" valign="top"> <table align="center" height="100%"> <tr><td height="20" colspan="2" align="center" class="subtitle">Statistika</td></tr> <tr><td align="center"><? include("inc/info.php");?></td></tr> </table> </td> </tr> </table> </td></tr> <tr><td height="20" align="center" valign="middle"> <center><font color="white"><b>© - 2008</b></font></center> </td></tr><tr><td height="20" align="center" valign="middle"> <center><font color="white"><b>Lapu veidoja -- </b></font></center></td></tr> </table> </body> </html> Link to comment Share on other sites More sharing options...
X ID Posted June 18, 2008 Report Share Posted June 18, 2008 (edited) Vieglāk būs tā: session_start(); $languages=array("lv","en"); if(empty($_SESSION['lang']) || !empty($_GET['lang'])){ if(!empty($_GET['lang']) && in_array($_GET['lang'],$languages)){ $_SESSION['lang']=$_GET['lang']; }elseif(empty($_SESSION['lang'])){ $_SESSION['lang']="lv"; } } include("lang/".$_SESSION['lang'].".php"); EDIT: Nu nestāsti gan, ka tu pats to visu rakstiji... Edited June 18, 2008 by X ID Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 18, 2008 Author Report Share Posted June 18, 2008 (edited) session_start(); $languages=array("lv","en"); if(empty($_SESSION['lang']) || !empty($_GET['lang'])){ if(!empty($_GET['lang']) && in_array($_GET['lang'],$languages)){ $_SESSION['lang']=$_GET['lang']; }elseif(empty($_SESSION['lang'])){ $_SESSION['lang']="lv"; } } include("lang/".$_SESSION['lang'].".php"); EDIT: Nu nestāsti gan, ka tu pats to visu rakstiji... šis variants saaka straadaat nezkapeec bet tikuntaa errors ir palicis :/ un kad piem es nomainu valodu viss itkaa nomainaas kam vajag mainiitiem bet kaa kko nospiezhu viss paarveershas atapakalj latviski Edited June 18, 2008 by RaaapuLis Link to comment Share on other sites More sharing options...
X ID Posted June 18, 2008 Report Share Posted June 18, 2008 Tapēc, ka tev nesaglabā sesijas mainīgos, bet gan kā parastus mainīgos. Varbūt lieto cupumus labāk? Tad tas iskatīsies kkā tā: $languages=array("lv","en"); if(empty($_COOKIE['lang']) || !empty($_GET['lang'])){ if(!empty($_GET['lang']) && in_array($_GET['lang'],$languages)){ $_COOKIE['lang']=$_GET['lang']; }elseif(empty($_COOKIE['lang'])){ $_COOKIE['lang']="lv"; } $exp=time()+60*60*24*7*4*12*666; // uzliksim cepumu uz piemēram 666 gadiem setcookie("lang",$_COOKIE['lang'],$exp,"/"); } // vēlreiz pārbaudam vai tiek pieprasīta eksistējoša valoda, jo kā zināms, cepumus var sarakstīt katrs pats if(!in_array($_COOKIE['lang'],$languages)){ $_COOKIE['lang']="lv"; } include("lang/".$_COOKIE['lang'].".php"); Link to comment Share on other sites More sharing options...
RaaapuLis Posted June 18, 2008 Author Report Share Posted June 18, 2008 Varbūt lieto cupumus labāk? Tad tas iskatīsies kkā tā: $languages=array("lv","en"); if(empty($_COOKIE['lang']) || !empty($_GET['lang'])){ if(!empty($_GET['lang']) && in_array($_GET['lang'],$languages)){ $_COOKIE['lang']=$_GET['lang']; }elseif(empty($_COOKIE['lang'])){ $_COOKIE['lang']="lv"; } $exp=time()+60*60*24*7*4*12*666; // uzliksim cepumu uz piemēram 666 gadiem setcookie("lang",$_COOKIE['lang'],$exp,"/"); } // vēlreiz pārbaudam vai tiek pieprasīta eksistējoša valoda, jo kā zināms, cepumus var sarakstīt katrs pats if(!in_array($_COOKIE['lang'],$languages)){ $_COOKIE['lang']="lv"; } include("lang/".$_COOKIE['lang'].".php"); nop, arii tas pats errors un nesaglabaajas valoda. Link to comment Share on other sites More sharing options...
X ID Posted June 18, 2008 Report Share Posted June 18, 2008 Šajā gadījumā tev session_start() vajadzēja novākt. Labāk iekopē to erroru pa jaunu. Un ja arī šis variants nestrādā tad tev kkas ne tā ar servera konfigurācija vai arī tevs brouzeris netur cepumus. Link to comment Share on other sites More sharing options...
Kavacky Posted June 18, 2008 Report Share Posted June 18, 2008 Tb ar domu, ka arī ja mainīgais masīvā netiks nodefinēts, funkcija atmetīs atpakaļ atslēgu, nevis tukšumu vai warningu. Pēctam vieglāk pašam strādāt. Ja normāli visu darba procesu organizē, tad nekam nav jāpaliek nedefinētam un lieki nenorij resursus ar nevajadzīgām pārbaudēm. Link to comment Share on other sites More sharing options...
X ID Posted June 18, 2008 Report Share Posted June 18, 2008 Tu man gribi teikt, ka programmējot mājaslapu tu uzreiz katru mainīgo savai valodai nodefinē? Vēl ar define() ir tāda figņa, piemērs: $lxv=array("level_1"=>"Kruts","level_2"=>"Nekruts"); while(...){ echo $row->nick.'<br />'.$lxv["level_".$row->level].'<br /><br />'; } Ar masīvu nav problēmu... Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now