Angular-Translate:翻译不会出现在随机浏览器刷新上

时间:2014-06-25 06:03:33

标签: json angularjs

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

$translatePartialLoader.addPart('editName');

当我浏览到partial时,我看到只在需要时才从服务器请求json文件。但是当我通过单击功能键 F5 来随时刷新部分时,不会从服务器请求json文件,并且不会翻译视图上显示的文本。不知道我能做些什么来解决这个问题。任何帮助是极大的赞赏。这是代码:

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

2 个答案:

答案 0 :(得分:1)

您的问题听起来与我的相似。

这(从app config调用)有效:

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

答案 1 :(得分:1)

你能添加一个

吗?
$translateProvider.use('EN'); 

到config - 部分正好位于“preferredLanguage('EN')的正下方;” - 行?

这可以解决您的问题。

事实上,目前需要定义额外的行 - 即使它听起来有点像“重复”:-)。