2017-12-05 22 views
-2

webpack(vue-loader)で処理された各ファイル.vueの翻訳ファイルをコンパイルする必要があります。 これらの翻訳ファイルが.vueで参照されていない、彼らは(当時のWebPACK直接それらを追跡することはできません)翻訳ファイルによってcompanionedさウェブパック翻訳モジュールをコンパイルファイルとして

例:

  • サーバー:SSRの文脈では

    myComponent1.vue 
    myComponent1.lang.en.yaml 
    myComponent1.lang.fr.yaml 
    ... 
    

    -side:すべてのコンパニオンファイルが起動時に読み込まれ、すべての言語でi18nシステムに供給されます

  • クライアント側:ファイルは要求時にロードされますimport()現在の言語で

を国際化システムを養う注記:
require.context()それが唯一の指定されたディレクトリ構造から動作しますので、適したノートです。

webpackはこのような可能性を提供していますか?

+0

あなたは別のエントリ・ポイント(あるいは別のファイル)を使用することができるかもしれない.vueと.yamlファイルの両方をインポートしています。参照:https://webpack.js.org/concepts/entry-points/#separate-app-and-vendor-entries – olore

答えて

0

専用のWebpackローダー/プラグインを使用せずに解決策を見つけました。 各コンポーネントは、その「言語パック」を宣言する必要があります。

registerMessages(locale => import(`json!yaml!./myComponent1.lang.${locale}.yaml`)); 

export default { 
    ... component definition 
} 
関連する問題