Gần đây, tôi đã bắt đầu triển khai các tùy chọn ngôn ngữ cho trang web của mình. Đây là cách hoạt động cơ bản:Tự động chuyển đổi ngôn ngữ 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;
Nó tải tệp ngôn ngữ thích hợp ở đầu mỗi trang trong trang web của tôi. Tuy nhiên, các vấn đề bắt đầu phát sinh khi sử dụng trình chỉnh sửa ngày tháng UI của jQuery. Tôi tìm thấy một tập tin thiết lập khu vực cho datepicker trực tuyến và đã tạo ra một tập tin riêng biệt cho nó:
///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']);
});
Vấn đề là tôi cần phải tự động tải jquery.ui.datepicker-fr.js
bất cứ khi nào có sự thay đổi ngôn ngữ được phát hiện do đó công tắc datepicker tôi để Pháp. Những gì tôi đã nghĩ là tạo ra một hàm PHP mà tôi sẽ đặt trong <head>
của tôi sẽ lặp lại tệp của tôi, nhưng vấn đề là không phải tất cả các trang web của tôi đều là PHP và tôi không thấy đây là một phương pháp rất hiệu quả. Bất kỳ ý tưởng nào khác về cách thực hiện điều này?
Tại sao javascript không đọc cookie và sau đó dựa trên đó, tải xuống tệp bản địa hóa chính xác? –
tôi nghĩ rằng phương pháp hiệu quả có thể được trích xuất thông tin 'lang cookie' bởi' datepicker.js' và tải tương ứng – progrrammer
Hmm, tải cookie sẽ là một tùy chọn .. – Dimitri