2017-06-26 11 views
0

私のプロジェクトはAngular CLIで設定されているので、webpackで構築されていますが、webpack設定ファイルは表示されません。json言語ファイルが見つかりません。ngx-translate angular-cli

私はそれが正しいフォルダに起こっているように見えるにもかかわらず、2つのファイルnl.jsonfr.jsonを得たが、両方のための404を得る:http://localhost:4200/i18n/nl.json

{ 
    "SEARCH_PAGE": { 
    "searchPerson": "Zoek een persoon", 
    "search": "Zoek" 
    } 
} 

app.moduleで:

... 
TranslateModule.forRoot({ 
     loader: { 
      provide: TranslateLoader, 
      useFactory: HttpLoaderFactory, 
      deps: [Http] 
     } 
    }), 
... 

export function HttpLoaderFactory(http: Http) { 
    return new TranslateHttpLoader(http, "/i18n/", ".json"); 
} 

私はまた、私は[しよう]ここで、私のサブモジュールにおけるこれらの使用

彼らは、このような構造を持っています翻訳の差異は.forRootの代わりに.forChildです。私のコンポーネントで

constructor(translate: TranslateService) { 
    translate.addLangs(["nl", "fr"]); 
    translate.setDefaultLang('nl'); // this language will be used as a fallback when a translation isn't found in the current language 

    let browserLang: string = translate.getBrowserLang(); 
    translate.use(browserLang.match(/nl|fr/) ? browserLang : 'nl'); 
    } 

それはngx-translateに何かリンクされていないことだろうか? 私はパイプ<h1>{{ 'SEARCH_PAGE.searchPerson' | translate}}</h1>を使用すると画面上に何も表示されません。指示文<h1 translate]="'SEARCH_PAGE.searchPerson'"></h1>を使用すると文字通り文字列が表示されます。

答えて

1

ただ答えが#122で見つかりました。

あなたが assets配列に i18nを含める必要が angular-cli.json

"apps": [ 
    { 
    ... 
    "assets": [ 
    "assets", 
    "favicon.ico", 
    "i18n" 
    ], 
    ... 

あなたi18nディレクトリはassetsディレクトリ内にない場合でも、これが動作します。

EDIT:パイプとディレクトリの両方が機能するようになりました。

関連する問題