2017-01-24 14 views
3

私は、最新の角度CLIにアップグレードしていたし、今、私はこのエラーを取得:angular2は、シンボル値を解決遭遇静的

Error encountered resolving symbol values statically. Reference to a local (non-exported) symbol 'dictionary'. Consider exporting the symbol (position 12:7 in the original .ts file), resolving symbol TRANSLATION_PROVIDERS in C:/xampp/htdocs/milesofmusic/src/app/translate/translation.ts, resolving symbol AppModule in C:/xampp/htdocs/milesofmusic/src/app/app.module.ts, resolving symbol AppModule in C:/xampp/htdocs/milesofmusic/src/app/app.module.ts

それがあるために参照するコードをこの:

// all traslations 
const dictionary = { 
    [LANG_EN_NAME]: LANG_EN_TRANS, 
    [LANG_HE_NAME]: LANG_HE_TRANS, 
}; 

// providers 
export const TRANSLATION_PROVIDERS = [ 
    { provide: TRANSLATIONS, useValue: dictionary }, 
]; 

と私のアプリケーションモジュールでは、私は、インポートをインポートします。 {TRANSLATION_PROVIDERS}から './translate/translation'; とそれをプロバイダの配列に持っています

どのように修正するのですか?

答えて

0

私はあなたがワールドワイドウェブのどこかの古いガイドからこの例を得たと信じています。私が覚えている限り、これは時代遅れであり、angular2内の翻訳を処理するための適切な方法ではありません。私はあなたが角度の料理の i18n internationalizationを見てみることをお勧めします。

+0

コーディングハッピーお楽しみください、それは私が試した最初のものでした。しかし、私はまだ:シンボル値を静的に解決する際にエラーが発生しました。式形式はサポートされていません(元の.tsファイルの位置13:2)。C:/xampp/htdocs/milesofmusic/src/app/translate/translation.tsのシンボル辞書を解決し、C:/ xampp/htdocsのTRANSLATION_PROVIDERSシンボルを解決します。 /milesofmusic/src/app/translate/translation.ts、C:/xampp/htdocs/milesofmusic/src/app/app.module.tsのAppModuleを解決し、C:/ xampp/htdocs/milesofmusic/srcのAppModuleを解決します。 /app/app.module.ts – Ron

+0

答えに感謝します。私はi18nの組み込みを使用するように変換する必要があります。しかし、この答えは私のために働いた[リンク](http://stackoverflow.com/a/40643715/587579) – Ron

+0

私はそれを探していた!私は前に同じ質問を見たことを思い出しました:) nice find。 – PierreDuc

1
const dictionary = { 
    [LANG_EN_NAME]: LANG_EN_TRANS, 
    [LANG_FR_NAME]: LANG_FR_TRANS, 

}; 

同じエラーが発生するため、1つのことを行います。ブラケットの代わりに言語値を直接書きます。

const dictionary = { 
    "en-US": LANG_EN_TRANS, 
    "fr-FR": LANG_FR_TRANS, 
}; 

はええ