javascript - 如何使用 javascript json 保存语言

标签 javascript json multilingual

我在 main.js 和 index.html 中使用以下代码来更改语言。按下按钮后,它可以更改所有三种语言的内容。但是,每次用户更改页面时,语言都会返回为“ENG”。有没有办法保留用户上次选择的语言?谢谢。

main.js

/* Lang.json newly added */
$.getJSON("Lang.json", function(json) {
    console.log(json); // this will show the info it in firebug console
});

$(document).ready(function() {
// The default language is English
  var lang = "ENG";
  $(".lang").each(function(index, element) {
    $(this).text(arrLang[lang][$(this).attr("key")]);
  });
});

// get/set the selected language
$(".translate").click(function() {
  var lang = $(this).attr("id");
  $(".lang").each(function(index, element) {
    $(this).text(arrLang[lang][$(this).attr("key")]);
  });
});

index.html

<button class="translate" id="ENG">
    <a style="cursor: pointer;"><img src="assets/img/eng.png" /></a> 
</button>
<button class="translate" id="CHT">
    <a style="cursor: pointer;"><img src="assets/img/cht.png" /></a>
</button>
<button class="translate" id="CHS">
    <a style="cursor: pointer;"><img src="assets/img/chs.png" /></a>
</button>

最佳答案

您可以使用 localStorage 来保存值。检查下面我添加的评论。

$(document).ready(function() {
// The default language is English
  // Get the lang value from localStorage, if not set use the default value 'ENG'
  var lang = window.localStorage.getItem('lang') || "ENG";
  $(".lang").each(function(index, element) {
    $(this).text(arrLang[lang][$(this).attr("key")]);
  });

   // get/set the selected language
  $(".translate").click(function() {
    var lang = $(this).attr("id");
    // Save the lang value to localStorage to preserve
    window.localStorage.setItem('lang', lang);
    $(".lang").each(function(index, element) {
      $(this).text(arrLang[lang][$(this).attr("key")]);
    });
  });
});

关于javascript - 如何使用 javascript json 保存语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59550090/

相关文章:

javascript - 如何确保在执行脚本之前包含某些库?

javascript - JSON 响应作为文件打开,但我无法使用 JavaScript 访问它

javascript - 在 mongo 响应 JSON 中添加数组对象

javascript - 如何检查 JSON 数组是否等于

javascript 多语言元描述

php - 在 Laravel 中将 @lang 作为 @section 参数传递

ajax - 最前沿的最佳 SEO 实践的最佳多语言 Wordpress 解决方案

javascript - Javascript 对象中的函数数组

javascript - 观察者未检测到数组推送

javascript - VS Code 如何将 HTML 合并到 .JS 文件中?