1

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

  • 角度翻译.min.js (v2.2.0)
  • angular-translate-loader-static-files.min.js (v2.2.0)
  • 角翻译存储cookie.min.js(v2.2.0)
  • 角度翻译-存储-local.min.js (v2.2.0)
  • angular-cookies.min.js (v1.2.22)

当我执行以下操作时,角度翻译有效:

$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,但这也不起作用。

有任何想法吗?

谢谢。

4

1 回答 1

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."
}
于 2014-08-20T07:08:39.250 回答