最近私のウェブサイトの言語オプションを実装し始めました。これは基本的にどのように動作するかです:動的切り替え言語PHP、Javascript、jQuery UI
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ではないということです。これを行う方法に関する他のアイデア?
javascriptでCookieを読み取ってから、それに基づいて適切なローカリゼーションファイルをダウンロードするのはなぜですか? –
iは効果的な方法は、 'datepicker.js'と負荷に応じて – progrrammer
うーんによって' LANG cookie'情報を抽出することができると思い、クッキーをロードすることになりますオプション... – Dimitri