1

翻訳には次の角度ファイルを使用しています。

  • 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');
}]);

My Get Response (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 に答える