如何使用localize.js翻译跨js文件.例如SweetAlert2.js

vas*_*zis 5 javascript jquery json localization sweetalert

我想在另一个js文件中使用jquery.localize.js(i18n json文件).让我们说sweetalerts2.

localize根据您选择的语言(EN,FR,GR)提供json文件中的翻译.(https://github.com/coderifous/jquery-localize)

Sweet Alert2是性感的弹出警报,不能被浏览器阻止,如常见警报,并为您提供全套选择,以使其看起来用户友好.(https://limonte.github.io/sweetalert2/)

但问题是如何根据用户选择的语言翻译Sweet Alert弹出窗口.

vas*_*zis 2

Localize 为我们提供了回调,但您还必须找到用户选择的语言才能使用您必须使用的语言的 json 文件。为此,请转到 jquery.localize.js 文件并在文件顶部将变量设为 global

var globallanguage;
Run Code Online (Sandbox Code Playgroud)

之后,转到包含以下代码的第 185 行,并在“globallanguage”处输入“lang”变量的输入。

lang = normaliseLang(options.language ? options.language : $.defaultLanguage);
globallanguage=lang;
Run Code Online (Sandbox Code Playgroud)

现在您可以将用户的选择保存在“globallanguage”中。您可以转到任何您想要的文件并使用下面的代码来检索翻译。

var message;
var messagetitle;
$("[data-localize]").localize("i18n/site", 
      { language: globallanguage, //taking from localize.jquery
        callback: function(data, defaultCallback) 
        {message = data.alert.incidentalert.LEAVE;
        defaultCallback(data);
      }});

$("[data-localize]").localize("i18n/site", 
      { language: globallanguage, //taking from localize.jquery
        callback: function(data, defaultCallback) 
        {messagetitle = data.alert.incidentalert.LEAVEHEADER;
        defaultCallback(data);
      }});
Run Code Online (Sandbox Code Playgroud)

现在,您从用户选择的 JSON 文件中检索了所需的消息。
之后,您可以简单地调用 SweetAlert2 SWAL 并显示消息。

swal({
          title : messagetitle,
          text : message,
          type : "warning",
          showCancelButton : true,
          confirmButtonColor : "#e54747",
          confirmButtonText : button,
          closeOnConfirm : false
        }).then(function () { //function when Leave is pressed
Run Code Online (Sandbox Code Playgroud)

这并不是什么超级令人兴奋的事情,但是知道您可以使用 SweetAlerts 或任何其他 JS 库,以任何您想要的语言,这是非常有帮助的......