Angular translate,使用staticFilesLoader不起作用

时间:2015-11-29 13:41:19

标签: meteor angular-translate

我尝试使用角度翻译本地化我的应用。

这是我的模块:

angular.module('myapp', [
'angular-meteor',
'ui.router',
'ngMaterial',
'ngMessages',
'ngAnimate',
'ngCookies',
    'pascalprecht.translate'
]);

然后是我的配置:

angular.module('myapp').config(['$translateProvider', function ($translateProvider) {

  $translateProvider.useStaticFilesLoader({
        prefix: 'client/lib/translation/',
        suffix: '.json'
    });

        $translateProvider.preferredLanguage('en-US');
    }]);

我的en-US.json文件内容:

{
  "TITLE" : "hello"
}

我正在用这个html测试它:

    <h1> {{"TITLE" | translate}}</h1>

我用变量中的表测试它并且效果很好,问题似乎是找不到或忽略我的.json,因为它显示

  

标题

而不是

  

您好

3 个答案:

答案 0 :(得分:0)

我目前正在处理同样的问题。看起来是由于外部文件被异步加载,摘要周期运行得太早。

解决方法:在HTML中使用属性指令。

示例:

.git

免责声明:这可能不是最好的解决方案,我自己还在学习AngularJS!

答案 1 :(得分:0)

实际上我发现了这个问题,我不得不将我的语言环境文件放在公共文件夹中。所以这是固定的。

答案 2 :(得分:0)

这是一个完全有效的例子: http://plnkr.co/edit/Ibq4EaFcvyUPGpqb81Jo?p=preview 要使用翻译,也可以使用类似

的内容
{{"TITLE" | translate}}

或:

<h2 translate="TITLE"></h2>

我也有加载文件的问题,我最终发现起始路径似乎是www文件夹。 然后在配置开始时没有正斜杠,所以这在我的应用程序配置中对我有用:

.config(function ($translateProvider) {
  //$translateProvider.fallbackLanguage("en");
  $translateProvider.determinePreferredLanguage();

  $translateProvider.useStaticFilesLoader({
    prefix: 'js/translations/locale-',
    suffix: '.json'
  });
  $translateProvider.use('en_US');
  $translateProvider.preferredLanguage('en_US');
})

我通过使用chrome调试器(chrome:// inspect)找到它,它显示控制台中的错误,当使用-lc运行离子时,通常终端中没有显示错误。

我希望能帮助任何人:)!