Angular-Translate:翻译不会在浏览器随机刷新时显示



我有一个单独的语言json文件为每个部分/控制器。为了避免一次加载所有json文件,我在控制器中添加了addPart语句,而不是模块配置:

$translatePartialLoader.addPart('editName');

当我浏览到部分时,我看到只有在需要时才从服务器请求json文件。但是,当我通过单击功能键F5不断刷新部分时,随机时间,json文件不会从服务器请求,视图上显示的文本也不会翻译。不知道我能做些什么来弥补。非常感谢任何帮助。下面是代码:

angular.module('pp')
    .controller('informationList', [
        '$scope', '$rootScope', '$location', '$translatePartialLoader', '$translate',
            function($scope, $rootScope, $location, $translatePartialLoader, $translate) {
                $translatePartialLoader.addPart('informationList');
                $translate.refresh();
            }
    ]);

你的问题听起来和我的很相似。

这个(从app配置中调用)有效:

angular.module('myApp').config(function ($translateProvider, $translatePartialLoaderProvider) {
  $translateProvider.useLoader('$translatePartialLoader', {
    'urlTemplate': '{part}-{lang}.json'
  });
  $translateProvider.preferredLanguage('EN');
  $translatePartialLoaderProvider.addPart('headline');
  $translatePartialLoaderProvider.addPart('languages');
});

这个(从控制器调用)没有:

angular.module('myApp').controller('Ctrl', ['$scope', '$translate', '$translatePartialLoader', function ($scope, $translate, $translatePartialLoader) {
  $translatePartialLoader.addPart('headline');
  $translatePartialLoader.addPart('languages');
  $translate.refresh();
}]);

这里有一个柱塞来演示这个问题。http://plnkr.co/edit/sZC2XST8BMZcMCYbgtxt?p=preview

你能不能加一个

$translateProvider.use('EN'); 

放到"preferredLanguage('EN');"下面的config -部分——行吗?

这会解决你的问题。

实际上当前需要定义额外的行-尽管它可能听起来有点像"duplicate":-)。

最新更新