Je viens de commencer à mettre en œuvre des options de langue pour mon site web. Voici comment cela fonctionne en gros :
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;
Il charge le fichier de langue approprié en haut de chaque page de mon site web. Cependant, des problèmes sont apparus lors de l'utilisation du datepicker de l'interface utilisateur de jQuery. J'ai trouvé un fichier de paramètres régionaux pour le datepicker en ligne et j'ai créé un fichier séparé pour cela :
///fichier jquery.ui.datepicker-fr.js
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']);
});
Le problème est que j'ai besoin de charger dynamiquement jquery.ui.datepicker-fr.js
chaque fois qu'un changement de langue est détecté afin que mon datepicker passe en français. Ce que je pensais faire est de créer une fonction PHP que je mettrais dans mon qui écrirait mon fichier, mais le problème est que toutes mes pages web ne sont pas en PHP et je ne trouve pas cela méthode très efficace. Avez-vous d'autres idées sur la manière de faire cela ?