Recentemente ho iniziato a implementare le opzioni di lingua per il mio sito web. Ecco come funziona in pratica:Cambio lingua in modo dinamico PHP, Javascript, interfaccia utente jQuery
if(isset($_GET['lang']))
{
$langr= $_GET['lang'];
$_SESSION['lang'] = $langr;
setcookie('lang', $langr, time() + (3600 * 24 * 30));
}
elseif(isset($_SESSION['lang']))
{
$langr = $_SESSION['lang'];
}
elseif(isset($_COOKIE['lang']))
{
$langr = $_COOKIE['lang'];
}
else
{
$langr = 'en';
}
switch ($langr)
{
case 'en':
$lang_file = $_SERVER['DOCUMENT_ROOT']."/includes/lang/en.php";
break;
case 'fr':
setlocale (LC_ALL, 'fr_FR.utf8','fra');
$lang_file = $_SERVER['DOCUMENT_ROOT']."/includes/lang/fr.php";
break;
default:
$lang_file = $_SERVER['DOCUMENT_ROOT']."/includes/lang/en.php";
}
include_once $lang_file;
Carica il file della lingua appropriato nella parte superiore di ogni pagina del mio sito web. Tuttavia, i problemi che iniziano a venire fuori quando si utilizza datepicker dell'interfaccia utente di jQuery. Ho trovato un file di impostazioni regionali per la DatePicker on-line e hanno creato un file separato per esso:
///jquery.ui.datepicker-fr.js file
jQuery(function($){
$.datepicker.regional['fr'] = {
closeText: 'Fermer',
prevText: 'Précédent',
nextText: 'Suivant',
currentText: 'Aujourd\'hui',
monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin',
'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
dayNamesMin: ['D','L','M','M','J','V','S'],
weekHeader: 'Sem.',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''};
$.datepicker.setDefaults($.datepicker.regional['fr']);
});
Il problema è che ho bisogno di caricare dinamicamente jquery.ui.datepicker-fr.js
ogni volta che viene rilevata una modifica di lingua in modo che i miei interruttori DatePicker a Francese. Quello che stavo pensando è la creazione di una funzione PHP che avrei inserito nel mio file <head>
che avrebbe echo il mio file, ma il problema è che non tutte le mie pagine web sono PHP e non trovo questo un metodo molto efficace. Qualche altra idea su come farlo?
Perché non leggere il cookie in javascript e quindi, in base a ciò, scaricare il file di localizzazione corretto? –
penso che un metodo efficace possa estrarre le informazioni '' lang cookie' dal 'datepicker.js' e carichi di conseguenza – progrrammer
Hmm, il caricamento del cookie sarebbe un'opzione .. – Dimitri