0

这是我的 JavaScript 对象:

   {
    "login" : {
        "title" : "title1"
        "content1" : "content1"
        }
    "Menu" : {
        "title" : "title2"  
        }
    }

如何使用函数getvalue("login","title")orgetvalue("login","content1")和 return title1or获取 JavaScript 对象的属性值content1?我这样做是为了制作一个多语言的 phonegap 应用程序,所以当调用的函数与langhtml 中的属性进行比较时,我使用 xui 和纯 javascript 而没有 jquery,因为我认为它对于 phonegap 来说太重了..有人能帮我吗?或者有没有最好的多语言方法?

4

3 回答 3

0

你的 JSON

myJSON = { 
  'login' : { 'title' : 'title1'},
  'menu' : { 'title' : 'title2'} 
};

您可以这样调用该值:

alert(myJSON.login.title);

它将输出:title1。

于 2013-07-03T08:33:21.617 回答
0

所以假设这是一个标准变量中的标准json:var myJson。为什么回不来

myJson.login.title(按此语法)

在上面的示例中,登录不是一个数组,因此您将无法返回登录值列表

关于国际化,我会做一些更简单的事情(我已经在我的应用程序中成功地做到了这一点)。只需在文件中创建一组名称-值对调用 language.en.xml(或 json 等,具体取决于您是否可以使用框架轻松解析 json 或 xml)和一个名为 language.it.xml 的文件,如果假设您想要的话意大利语也是如此。然后每个文件的每个键(例如登录)都是相同的,值是您希望在每种语言中拥有的标题。与您的非常相似,但您不需要层次结构。

然后,您可以创建一个名为 Internationalize('Login') 的静态方法,该方法将返回用户选择的语言的 login 值。因此,在您的方法中,您将检查用户语言设置并从所需文件中读取值。如果语言是 IT 则检查 language.it.xml(或 json 等)中的值,如果默认或 NULL 或 en 然后检查英文文件。

诸如将语言文件内容预加载到内存中的优化也是您应该考虑的事情。

于 2013-07-03T08:34:33.613 回答
0

我终于找到了答案,这里是:

var data = {
"login" : {
    "title" : "title1"
    "content1" : "content1"
    }
"Menu" : {
    "title" : "title2"  
    }
}

function getvalue(resource, paramA, ParamB) 
{
   return resource[paramA][paramB];
}

结束然后只是调用:

getvalue(data,"login","content1")

它会回来content1

呵呵,终于找到了这个:)

于 2013-07-04T05:26:50.033 回答