2017-09-14 12 views
0

장고 응용 프로그램이 있고 장고의 i18n 모듈을 사용하여 문자열 번역에 도움이됩니다. 자바 스크립트를 번역 할 때 나는 표시된 문자열을 모두 .po 파일에 추가하여Webpack TypeScript 및 xgettext 번역

python manage.py makemessages -d djangojs 

을 실행합니다. 이것은 내 정적 폴더의 모든 지루한 .js 파일에 대해 아주 잘 작동합니다. 그러나 webpack을 사용하여 일부 타이프 스크립트 (.tsx 파일)를 bundle.js 파일로 압축하기 시작했습니다. 이 파일은 빌드 후 정적 폴더에 복사되므로 Djangos makemessages에서 문자열을 가져올 것으로 예상됩니다. 그러나 bundle.js의 코드 대부분이 eval()에 래핑 된 문자열이기 때문에 문자열이 올바르게 구문 분석되지 않는 것으로 보입니다. bundle.js 파일에 추가 - -

나는 이것이 내가에 웹팩을해야한다는 것을 의미 믿습니다 장고의 makemessages가 제대로 구문 분석 할 수 있도록 eval() 넌센스의 모든없이 각 .tsx 파일은 .js 파일을 만듭니다. 그러나 나는 이것을 어떻게하는지 모른다. 나의 현재 설정은 어떻게 내가 웹팩이 파일을 뱉어 할 수 있습니다이

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

웹 팩의 "감시"기능을 사용하여 모든 평가 헛소리가 생성되었습니다. 스크립트 작성을 위해 webpack을 단순히 실행하면 예상대로 작동합니다.