提问者:小点点

我如何更改php中定义,或者是什么来代替


我有一个语言设置,问题是我不能改变语言点击,只有两(2)个文件包含语言设置,下面是代码选择EN语言

// ENGLISH TRANSLATION
select('APP_LANG', 'en');
setlocale(LC_ALL, 'en_EN');

// FRENCH TRANSLATION
// define('APP_LANG', 'fr');
// setlocale(LC_ALL, 'fr_FR');

所以我想把语言设置更改为注释掉的法语翻译,有没有可能的方法来切换这些语言?


共2个答案

匿名用户

我不会为此使用defined。 我宁愿将语言选择保存在如下会话中:

session_start();
$lang = filter_input(INPUT_GET, "lang");

if (!empty($lang)) {
    $_SESSION["lang"] = $lang;
}

if (!empty($_SESSION["lang"])) {
    $_SESSION["lang"] = "en"; // set default
}

现在可以像这样调用php文件:

index.php?lang=en或

index.php?lang=fr

匿名用户

您可以使用Jquery并将语言字符串保存在一个常量中,同时将语言选项保存在另一个常量中。 定义索引,然后将当前语言设置为choices[index]定义一个全局数组,以便通过choices和language迭代索引,调用一个函数,该函数使用数据属性在单击时显示所需的语言。

null

const french = "Bonjour comment vas tu aujourd'hui? Voici une liste de textes que nous souhaitons traduire.";
const english = "Hello, how are you today? Here is a list of text we wish to translate.";
const languages = {'languages': {'en': english, 'fr': french} };
const choices = ['en', 'fr'];
let index = 0;
let currentLanguage = choices[index];

window.changeLanguage = function() {
    index = ++index % 2;
    currentLanguage = choices[index];
    translateLanguage();
}

function translateLanguage() {
    $("[data-lang]").each(function(){
        let key = $(this).data('lang');
        $(this).html(languages[key][currentLanguage] || "N/A");
    });
}

translateLanguage();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="changeLanguage()">Translate to French</button>
<div data-lang="languages"></div>