我有一个语言设置,问题是我不能改变语言点击,只有两(2)个文件包含语言设置,下面是代码选择EN语言
// ENGLISH TRANSLATION
select('APP_LANG', 'en');
setlocale(LC_ALL, 'en_EN');
// FRENCH TRANSLATION
// define('APP_LANG', 'fr');
// setlocale(LC_ALL, 'fr_FR');
所以我想把语言设置更改为注释掉的法语翻译,有没有可能的方法来切换这些语言?
我不会为此使用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>