Jump to content
php.lv forumi

Valodu pārslēgs


Robis

Recommended Posts

Sveiki!

Man ir jautājums par valodu pārslēgu! Esmu uztaisījis tādu valodu pārslēgu, ka pārslēdzoties uz konkrētu valodu, tiek pārlādēta index.php lapa un tiek nodots caur $_GET['lang'] attiecīgās valodas kods, piemēram, en! Taču, dažreiz tiek ieiets kaut kur dziļāk saitā, piemēram, index.php?lang=lv&page=110&ref=2034 - jautājums ir tāds - kā lai es tagad pārslēdzu valodu, ka lai pārlādējas index.php nezaudējot pārējos $_GET, varbūt arī $_POST mainīgos, piemēram, lai nevis pārslēdzas uz index.php?lang=en , bet gan index.php?lang=en&page=110&ref=2034 !!! ???

Tāds lūk ir pašreizējais jautājums! :huh:

Link to comment
Share on other sites

me dāžreiz izmanto ko tādu:

 

//pirmā valoda iekš iekavām ir defaulta

$langs=array('lv','ru','en','de');

 

//ja tikko ienācām lapā, vai ievadīta kāda šurum-burum valoda, ieslēdzam defaulto

if (!isset($_GET['l']) || !in_array($_GET['l'],$langs))

$_GET['l']=$langs[0];

 

function l() //tas lai īsāk rakstītu

{

return 'l='.$_GET['l'];

}

 

pie linkiem echo 'index.php?'.l().'&citi variābļi';

 

un valodu pārslēgam

foreach($langs as $tmp)

echo '<a href="'.$_SERVER['QUERY_STRING'].'&l='.$tmp.'">'.$tmp.'</a>';

Link to comment
Share on other sites

koroch baigais sviests tev tur uzrakstīts :) :D ! Tavs skripts vienkārsī pie valodu pārslēga noliek valodu beigās query stringam, man tas galīgi nesaista! :) Es gribētu tā, lai viš apzinās pašreizējo url un vienkārši nomaina $_GET['lang'] vērtību uz attiecīgo, kur ir nepieciešams, jo man taisīt kaut kādu stulbu funkciju iekš faila functions (man viss sakārtots) negribas un pēc tam vēl likt visos linkos funkciju manuprāt ir absolūti stulbi! linkus domāju nodefinēt jau config failā! Es cenšos taisīt elastīgi! Sak, es domāju, varbūt ir iespējams aizstāt lang=lv piemēram ar lang=en ar eregi vai preg_replace palīdzību, ko es mēģināju jau darīt, bet atmetu ar roku...

Varbūt kādam ir vēl kāda pieredze ar šo vajadzīgo lietu, kas tiek izmantota daudzās lapās???

Link to comment
Share on other sites

Nu, man jau būtībā ir fukncija obl() //obligatory, kurā ir ierakstīts, kādi vispār var būt variābļi - lang, page, chapter utt. funkcija attiecīgi pārbauda, kādi mainīgi ir nodefinēti (un ja nav - piešķir tiem defaulta nozīmi) un pievieno pie tekošā dokumenta PHP_SELF, vai nodotā parametra linkā, kā parametru viņai var iebarot variābļu nosaukumus, kurus šoreiz būtu jāzilaiž.

 

piem., ja gribu uzlikt jaunu valodu, saglabājot sadaļu, echoju a href="'.obl('lang').'〈=new", kad gribu linku uz citu sadaļu - obl('chapter').'&chapter=new

kad gribu uztaisīt, lai forma postotos uz to pašu lapu - action="'.obl().'" utt.

 

Bet ja tiešām tiek izmantotas sessijas, tad var taisīt, lai GET mainīgais stipetos adresē tikai tad, kad viņu vajag nomainīt, resp. if ($_SESSION['lang']!=$_GET['lang']) $_SESSION['lang']=$_GET['lang']; ar att. pārbaudēm.

Link to comment
Share on other sites

×
×
  • Create New...