在没有网络服务器的Chrome浏览器上使用JS访问语言JSON文件

问题描述 投票:0回答:1

tl / dr:我怎么能

  • 在html5 / javascript应用程序中国际化字符串
  • 使用json文件或类似的键/值对(易于翻译)
  • 不使用每个语言字符串的javascript变量(丑陋)
  • 如果可能的话,没有复杂的框架或包
  • 在Chrome上(或具有同源策略的内容)
  • 没有(本地)网络服务器
  • 没有互联网连接

细节:

我正在为嵌入式IE系统上的旧版本开发html5触摸游戏,很快就会改为嵌入式Chrome系统。目前使用网络服务器是没有选择的,我不能假设我一直都有互联网连接。由于应用程序应该使用不同的语言,我目前有一个像这样访问的json文件(不相关的东西遗漏):

//...
var language = "en"; //the language we want, same as the json file name
var key = "key"; //the key to the value we like to obtain

var languageMap;
var langFile = $.getJSON(language + ".json", function(data){
    languageMap = data;
});
var langFileStatus = $.when(langFile);
langFileStatus.done(function () {
    var value = languageMap[key];
    //use the value of "key" here for awsome stuff
});
//...

语言文件(例如“en.json”)如下所示:

  {
  "key":"value",
  "otherKey":"otherValue",
  }

这对于IE和FF非常有效,但在Chrome上却没有,因为同源策略。我读到了绕过here的一个很棒的技巧,但在这种情况下我无法使它工作。我之前从未使用JSON与JS相关,所以也许这是一个简单的问题。整个问题的不同解决方案也非常受欢迎(这就是我发布完整问题的原因)。提前致谢!

javascript json html5 internationalization same-origin-policy
1个回答
0
投票

Web Server for Chrome下载here应用程序。这不是一个服务器,而是一个方便的模拟,允许您在本地运行您的文件,就像它们在服务器上运行一样。

它没有任何Internet连接工作。更重要的是,由于最近的更新,它有CORS请求的配置选项安装它,选择文件所在的文件夹,然后就绪!这是在Chrome上本地测试代码的一种非常好的方法。

© www.soinside.com 2019 - 2024. All rights reserved.