在角度应用中实现本地化。 在app.js中,编写下面的代码来支持后备语言,如果需要.json文件不在特定的{{de-DE}} \文件夹中。 (以德语为例)
function configure($routeProvider, $locationProvider, $translateProvider, $httpProvider, $compileProvider) {
$routeProvider
.when('/instructions', {
templateUrl: "app/instructions/Instructions.html",
resolve: {
translatePartialLoader: ['$translate', '$translatePartialLoader', function ($translate, $translatePartialLoader) {
$translatePartialLoader.addPart('instructions');
$translatePartialLoader.addPart('common');
//$translatePartialLoader.addPart('instructions').then(function (data) {
//console.log(data);
//});
//$translatePartialLoader.addPart('common').then(function (data) {
// console.log(data);
//});
$translateProvider.fallbackLanguage("en-US");
return $translate.refresh();
}]
}
})
.otherwise(
{
redirectTo: redirectTo
});
$httpProvider.useApplyAsync(true);
//$locationProvider.html5Mode(true);
$translateProvider.preferredLanguage($("#CultureCode").val());
$translateProvider.fallbackLanguage('en-US');
}
将我的浏览器设置更改为德语(谷歌浏览器)后。找不到文件,所以它不得不回退。使用上面的代码,我的后备语言是英语。所以app从{{en-US}} \文件夹下载了.json文件。
但实际问题是。
一旦所有代码都出类拔萃,就在我写过的一个地方。
$rootScope.$broadcast("SHIFT_CHANGED");
订阅下面的活动。
$scope.$on("SHIFT_CHANGED", function() {
loadInstructions();
});
这里加载我的main方法中的指令。哪个没有被执行因为。 Shift_changed事件没有被解雇。
在我将这些.json文件粘贴到德语文件夹中时,用于测试目的。应用开始工作。但我正在尝试实施后备。
我尝试了几个代码,上面注释了这些代码。 addpart试图解决承诺。
但他们都没有工作。
我错过了一些东西。在控制台中没有错误。
无法弄明白。任何进一步排除故障的想法/确实缺少某些代码。
请帮忙。
先谢谢