我在我的应用程序中使用 angular-translate 并使用 angular-translate-loader-partial 根据需要加载资源模块。如果我尝试在资源服务中的初始加载中使用 $translatePartialLoader.addPart(resource),则正在加载的“部分”不会在页面上进行翻译,尽管它使用 $translatePartialLoader.isPartAvailable(resource) 将其显示为可用。
在下面的代码中,“菜单”资源得到了很好的翻译。'people' 资源已“加载”,但翻译不会发生。
这是 angular.config 中的代码块 -
$translatePartialLoaderProvider.addPart('menus');
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: '/resources/files/{part}/{lang}.json'
});
$translateProvider.preferredLanguage('en-US');
这个调用是由我的资源服务在初始加载时进行的 -
$translatePartialLoader.addPart('people');
我在 angular.run 中进行了刷新-
run(function ($rootScope, $translate) {
$rootScope.$on('$translatePartialLoaderStructureChanged', function () {
$translate.refresh();
});
}).
加载网站后,调用 $translatePartialLoader.addPart({part}); 将按设计工作。