angular-translate不会与加载的静态文件进行转换

时间:2014-08-20 01:35:10

标签: angular-translate

我使用以下角度文件进行翻译:

  • angular-translate.min.js(v2.2.0)
  • angular-translate-loader-static-files.min.js(v2.2.0)
  • angular-translate-storage-cookie.min.js(v2.2.0)
  • angular-translate-storage-local.min.js(v2.2.0)
  • angular-cookies.min.js(v1.2.22)

angular-translate 在我执行以下操作时有效:

$translateProvider.translations('en_us', {
    "label.test": "It works."
});

但是当我尝试使用静态文件时......

我的HTML:

<html data-ng-app="myApp">
...
{{"label.test" | translate}}

我的app.js:

var myApp = angular.module('myApp', ['ngCookies', 'pascalprecht.translate']).config(['$translateProvider', function($translateProvider) {
    $translateProvider.preferredLanguage('en_us');
    $translateProvider.useStaticFilesLoader({
        prefix: '/app/resources/messages/i18n_',
        suffix: '.json'
    });
    $translateProvider.useLocalStorage();
    $translateProvider.storageKey('lang');
}]);

我的响应(Content-Type设置为:application / json):

{
    "label.test":"It works from JSON."
};

呈现的HTML页面显示:label.test

此外,我的控制台中没有错误。我也尝试将密钥重命名为TEST,但这也不起作用。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

检查.json的路径是否正确。如果找不到,则在您的模板中,它将打印出label.test而不是实际翻译It works from JSON.,就像它一样。

您的应用根很可能是应用,因此如果您的翻译文件位于/app/resources/messages/i18n_en_us.json,请尝试:

$translateProvider.useStaticFilesLoader({
    prefix: '/resources/messages/i18n_',
    suffix: '.json'
});

还要确保您的JSON是有效的JSON。最后删除分号。

{
    "label.test":"It works from JSON."
}