Angular 翻译,使用 staticFilesLoader 不起作用

Angular translate, Using staticFilesLoader not working

我正在尝试使用 angular 翻译来本地化我的应用程序。

这是我的模块:

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>

我用变量中的 table 测试了它,它运行良好,问题似乎是我的 .json 没有找到或忽略,因为它显示

TITLE

而不是

hello

我目前正在处理同样的问题。似乎是摘要周期 运行 太早了,因为外部 file/s 正在异步加载。

解决方法:在您的 HTML 中改用属性指令。

示例:

<p data-translate="TITLE"></p>

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

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

这是一个完整的示例: 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.

希望对大家有所帮助:)!