Traduzione lingue pagina web

Marco_88

Utente Attivo
4 Dic 2014
150
0
0
Roma
batwebit.blogspot.it
Ciao a tutti, ammetto che sto incontrando non poche difficoltà nel capire il php, soprattuto per quanto riguarda il codice scritto da programmatori esperti.

Comunque....mi servirebbe una mano per produrre l'output del testo della pagina in romeno (il file con le traduzioni già è pronto in "ro_RO").

Se magari qualcuno gentilmente mi può spiegare come funziona questo script gliene sarei grato.





PHP:
<div class="lingue">
					<?php
					
						if ($_SESSION['www']['lang'] == "it_IT")
						{
							$lang_url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
							$lang_url = str_replace("it_IT", "en_GB", $lang_url);
							
					
							
							
							?>
					<img src="images/United-Kindom.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo $lang_url ?>">English</a>
					    
					 
					    
					<img src="images/rumania.gif" align="absmiddle" style="margin-bottom:4px; margin-left: 2px;display:inline;" /> <a href="<?php echo $lang_url ?>">Romanian</a>
					<?php
					
						}
						else
						{
							$lang_url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
							$lang_url = str_replace("en_GB", "it_IT", $lang_url);
					?>
					<img src="images/it_IT_mini.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo $lang_url ?>">Italiano</a>
					<?php
					
						}
					
					?>
					
				
					
					
					
					
					 
				</div>
 
Ciao,
Ecco la spiegazione per ogni parte del codice:
PHP:
if ($_SESSION['www']['lang'] == "it_IT")
Se nella sessione $_SESSION['www']['lang'] è salvato il valore it_IT,
PHP:
$lang_url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; 
$lang_url = str_replace("it_IT", "en_GB", $lang_url);
Prendi l'url completo corrente e sostituisci it_IT con en_GB; salva il risultato in $lang_url.
PHP:
<img src="images/United-Kindom.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo $lang_url ?>">English</a>
Mostra un'immagine (suppongo della bandierina del Regno Unito?) con accanto la parola "English" cliccabile che porta all'url salvato in $lang_url
PHP:
else
Altrimenti (se il valore della sessione è diverso da it_IT)
PHP:
$lang_url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; 
$lang_url = str_replace("en_GB", "it_IT", $lang_url);
Prendi l'url completo corrente e sostituisci en_GB con it_IT; salva il risultato in $lang_url
PHP:
<img src="images/it_IT_mini.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo $lang_url ?>">Italiano</a>
Mostra un'immagine (la bandierina dell'Italia?) con accanto la parola "Italiano" cliccabile che porta all'url salvato in $lang_url.
 
Ricapitolando (e ditemi se mi sbaglio):
Se, la variabile globale di sessione, www lang è uguale a it_IT , prendi il nome del server [$_SERVER] e [REQUEST_URI] che dovrebbe essere index.html e sostituisci it_IT con en_GB.....e mostra la bandierina inglese
Altrimenti se la variabile globale di sessione www lang è diversa da it_IT, sostituisci en_GB con it_IT....e mostra la bandierina italiana

A questo punto mi pare di capire che per inserire una terza lingua mi è sufficiente inserire un ulteriore condizione....
Se , variabile di sessione globale è diversa da it_IT e da en_GB.... Prendi le variabili globali del server e sostituisci it_IT e en_GB con ro_RO e mostra la bandierina romena.

Quindi per aggiungere la terza condizione si usa elseif? E per mettere insieme it_IT e en_GB nella funzione str_replace si usa && (and) o || (or)?
 
Ciao,
Potresti postare il codice che hai provato?

Ciao! ho risolto proprio poco fa in un altro modo perché tramite if/else le condizioni erano ripetute di conseguenza mi si complicava la faccenda....
per la cronaca ho fatto così:

PHP:
<div class="lingue">
					<?php 
					
					$lang_url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
					
					?>
					<img src="http://forum.mrwebmaster.it/images/it_IT_mini.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo str_replace($_SESSION['www']['lang'], "it_IT", $lang_url) ?>">Italiano</a>
					<img src="http://forum.mrwebmaster.it/images/United-Kindom.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo str_replace($_SESSION['www']['lang'], "en_GB", $lang_url) ?>">English</a>
					<img src="http://forum.mrwebmaster.it/images/rumania.gif" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo str_replace($_SESSION['www']['lang'], "ro_RO", $lang_url) ?>">Romanian</a>
					<img src="http://forum.mrwebmaster.it/images/poland.gif" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo str_replace($_SESSION['www']['lang'], "pl_PL", $lang_url) ?>">Poland</a>
E ho escluso lo script in php...
PHP:
[ <?php
					/*
						if ($_SESSION['www']['lang'] == "it_IT")
						{
							$lang_url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
							$lang_url = str_replace("it_IT", "en_GB", $lang_url);
							
					?>
					<img src="http://forum.mrwebmaster.it/images/United-Kindom.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo $lang_url ?>">English</a>
					<?php
					
						}
						else if ($_SESSION['www']['lang'] == "en_GB")
						{
							$lang_url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
							$lang_url = str_replace("en_GB", "it_IT", $lang_url);
					?>
					<img src="http://forum.mrwebmaster.it/images/it_IT_mini.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo $lang_url ?>">Italiano</a>
					<?php
					
						}
						else
						{
							$lang_url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
							$lang_url = str_replace("en_GB", "it_IT", $lang_url);
							?>
											<img src="http://forum.mrwebmaster.it/images/it_IT_mini.png" align="absmiddle" style="margin-bottom:4px;" /> <a href="<?php echo $lang_url ?>">Italiano</a>
											<?php
											
												}
					*/
					?>

Le bandierine rimangono 3 in tutte le pagine, ma va bene così :beer:
 
Ultima modifica:

Discussioni simili