2017-09-14 8 views
0

私はDjangoのアプリケーションを持っていて、Djangoのi18nモジュールを使って文字列を翻訳しています。 JavaScriptを翻訳するために、私はすべてのマーク文字列を.poファイルに追加するWebpack TypeScriptとxgettextの翻訳

python manage.py makemessages -d djangojs 

を実行します。これは私の静的フォルダ内のすべての私の退屈な.jsファイルのために非常にうまく動作します。しかし、webpackを使用していくつかのタイプスクリプト(.tsxファイル)をbundle.jsファイルにパックし始めています。このファイルはビルド後に静的フォルダにコピーされるので、Djangos makemessagesも同様にその文字列を受け取ることを期待しました。しかし、bundle.jsのコードの大部分が単にeval()にラップされた文字列であるため、文字列が正しく解析されないようです。

私は、これは私がにWebPACKの必要があることを意味すると考えている - bundle.jsファイルに加えて - Djangoのmakemessagesそれを正しく解析できるように、eval()ナンセンスのすべてのことなく、各.tsxファイルの.jsファイルを作成します。しかし、これをどうやって行うのか分かりません。私の現在の設定は、どのように私はWebPACKのは、これらのファイルを吐き出すことができます。この

var path = require("path"); 
var WebpackShellPlugin = require('webpack-shell-plugin'); 

var config = { 
    entry: ["./src/App.tsx"], 

    output: { 
     path: path.resolve(__dirname, "build"), 
     filename: "bundle.js" 
    }, 

    devtool: 'source-map', 

    resolve: { 
     extensions: [".ts", ".tsx", ".js"] 
    }, 

    module: { 
     rules: [ 
      { 
       test: /\.tsx?$/, 
       loader: "ts-loader", 
       exclude: /node_modules/ 
      }, 
      { 
      test: /\.scss$/, 
       use: [{ 
        loader: "style-loader" // creates style nodes from JS strings 
       }, { 
        loader: "css-loader" // translates CSS into CommonJS 
       }, { 
        loader: "sass-loader" // compiles Sass to CSS 
       }] 
      }, 
      { 
       test: /\.css$/, 
       loader: 'style-loader!css-loader' 
      } 
     ] 
    }, 

    plugins: [ 
     new WebpackShellPlugin({ 
      onBuildEnd:['./cp_to_static.sh'], 
      dev: false // Needed to trigger on npm run watch 
     }) 
    ] 
}; 

module.exports = config; 
  • のように見えますか?
  • これは正しいことですか、Djangoのbundle.jsを正しく解析する方法はありますか?

答えて

0

evalナンセンスはすべて、webpacks「watch」機能によって生成されたことが分かります。スクリプトをビルドするために単にwebpackを実行すると、正常に動作します

関連する問題