php - 动态切换语言 PHP,Javascript, jQuery UI

标签 php javascript jquery 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 日期选择器时开始出现问题。我在网上找到了日期选择器的区域设置文件,并为它创建了一个单独的文件:

///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每当检测到语言更改时,我的日期选择器就会切换为法语。我在想的是创建一个 PHP 函数,我会把它放在我的 <head> 中。这会回显我的文件,但问题是并非我的所有网页都是 PHP,而且我认为这不是一种非常有效的方法。关于如何做到这一点还有其他想法吗?

最佳答案

你需要在你的 header.php 中检查一下,它会像这样:

<script type="text/javascript>" src="/js/<?php if($_SESSION['lang'] == "en"){ echo 'datepicker-en.js'}else echo 'datepicker-fr.js'; ?>"></script>

所以它会根据你的语言参数自动检测datepicker文件。

关于php - 动态切换语言 PHP,Javascript, jQuery UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17015809/

相关文章:

php - 同时在 Windows 和 Linux 机器上开发

php - 使用 PhpStorm 在 docker 中调试 PHP cli 应用程序

javascript - 处理 "Cannot read property ' addEventListener' of null"错误的最佳方法

javascript - jQuery无限滚动不触发

javascript - 最初关闭第一个开关

php - Ion Auth (Codeigniter) 中的元表?

javascript - 无法重现 TypeError : 'undefined' is not an object

javascript - 输入一定数量的字符后,阻止用户在文本区域字段中输入文本

javascript - 它是 AJAX 调用还是异步 JavaScript 调用?

jquery bbq - 检测用户何时单击后退按钮