最近、Web サイトに言語オプションの実装を開始しました。基本的な仕組みは次のとおりです。
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;
私のウェブサイトのすべてのページの上部に適切な言語ファイルをロードします。ただし、jQuery の UI 日付ピッカーを使用すると問題が発生し始めます。datepicker の地域設定ファイルをオンラインで見つけ、別のファイルを作成しました。
///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']);
});
jquery.ui.datepicker-fr.js
問題は、日付ピッカーがフランス語に切り替わるように、言語の変更が検出されるたびに動的にロードする必要があることです。私が考えてい<head>
たのは、ファイルをエコーアウトするPHP関数を作成することですが、それに関する問題は、すべてのWebページがPHPであるとは限らず、これが非常に効果的な方法だとは思わない. これを行う方法に関する他のアイデアはありますか?