16

Angular-translate (PascalPrecht モジュール) を使用しています。

http://www.ng-newsletter.com/posts/angular-translate.htmlの例に従って動作させることに成功しました。

ただし、loader-static-files を使用してすべての翻訳を異なる json ファイルに入れたいのですが、これはうまくいきません。私はここで何をしているのか確信が持てません。

私のAngularモジュールでは、動作するコード(現在はコメントされています)をloader-static呼び出しに置き換えました:

angular.module('myApp.i18n', ['pascalprecht.translate'])
    .config(['$translateProvider', function ($translateProvider) {
        /*$translateProvider.translations('en', {
            HOME: 'Home',
            COMPANIES: 'Companies',
            WHAT_TO_DO: 'What to do',
            ABOUT: 'About us',
            CONTACT: 'Contact'
        })
        .translations('es', {
            HOME: 'Inicio',
            COMPANIES: 'Empresas',
            WHAT_TO_DO: 'Qué hacer',
            ABOUT: 'Nosotros',
            CONTACT: 'Contacto'
        });*/
        $translateProvider.preferredLanguage('es');

        $translateProvider.useStaticFilesLoader({
          prefix: '/languages/',
          suffix: '.json'
        });
}]);

アプリフォルダーにファイルを追加しました:

/app/languages/en_US.json /app/languages/es.json

ホーム サイトをロードすると、コンソールに次のエラーが表示されます。

http://localhost:1234/languages/es.json 404 (Not Found)

次のように、プレフィックスの最初の「/」を削除すると:

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

次に、コンソールに次のエラーが表示されます。

予期しないトークン H

申し訳ありませんが、これがどのように機能するのか理解できません。

4

2 に答える 2

9

.jsonサーバーがプレーンテキストではなく json として送信することを確認してください。また、.json ファイルの名前が対応する言語キーに依存していることを確認してください。

ここで読むことができるように: http://angular-translate.github.io/docs/#/guide/12_asynchronous-loading (「staticFilesLoader の使用」)

コードは私には良さそうに見えるので、サーバーが json を json として送信しないという問題を修正すれば、うまくいくはずです。

于 2013-10-14T11:12:44.160 に答える