Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Angular JS上使用$translateProvider在JSON文件中的语言之间进行动态切换_Javascript_Json_Angularjs_Angular Translate - Fatal编程技术网

Javascript 在Angular JS上使用$translateProvider在JSON文件中的语言之间进行动态切换

Javascript 在Angular JS上使用$translateProvider在JSON文件中的语言之间进行动态切换,javascript,json,angularjs,angular-translate,Javascript,Json,Angularjs,Angular Translate,我有一个包含6个不同JSON文件的文件夹 en.json es.json fr.json it.json ja.json zh.json 每个文件中的内容示例如下(本例适用于en.json): 我目前正在我的配置文件中使用它 $translateProvider.translations ( 'en', { SomeText: 'Test in English' } ) .translations ( 'zh', { So

我有一个包含6个不同JSON文件的文件夹

en.json
es.json
fr.json
it.json
ja.json
zh.json
每个文件中的内容示例如下(本例适用于en.json):

我目前正在我的配置文件中使用它

$translateProvider.translations
(
    'en',
    {
        SomeText: 'Test in English'
    }
)
.translations
(
    'zh',
    {
        SomeText: 'Test in Chinese'
    }
)
.translations
(
    'it',
    {
        SomeText: 'Test in Italian'
    }
)
.translations
(
    'fr',
    {
        SomeText: 'Test in French'
    }
)
.translations
(
    'ja',
    {
        SomeText: 'Test in Japanese'
    }
)
.translations
(
    'es',
    {
        SomeText: 'Test in Spanish'
    }
);
最后一个例子非常适合我想要完成的任务,即完成英语的初始加载,然后如果我切换语言,它将自动刷新它

var example = 'ja';
$translate.use(example);
然而,现在我想使用JSON文件来获得更好的结构,但我认为我不能使用相同的语法

如何将所有6个文件添加到配置中,并使它们从上述示例中的任何函数切换过来?

将其视为数组(javascript中的示例):

那么它会是这样的:

var language = "en";
var translations[language].SomeText;
这将提供“英语测试”

我不是100%确定应用程序的结构,但我认为它提供了基本概念

javascript示例


这样就很容易在不同语言之间进行更改,比如说您有两个短语,这是jQuery和javascript中的一个示例。使用Angualar,可以以不同的方式绑定事件和值

你能举一个JSON文件中内容的例子吗?您想加载所有文件并将内容添加到$translationProvider.translations?我更新了帖子,展示了文件的外观示例。您是否尝试使用$http获取文件$然后(函数(数据){//addcontents},函数(error){alert(error);});顺便说一句,您使用的是什么后端?请查看这个公认的答案:(在AngularJS中加载带$http的.json)。
var translations = 
{ 
    "en" : { "SomeText" : "Test in English" },
    "zh" : { "SomeText" : "Test in Chinese" },
    "it" : { "SomeText" : "Test in Italian" },
    "fr" : { "SomeText" : "Test in French" },
    "ja" : { "SomeText" : "Test in Japanese" },
    "es" : { "SomeText" : "Test in Spanish" }
});
var language = "en";
var translations[language].SomeText;