我一直在尝试通过Webpack和Angular进行i18n本地化。
的cli工具中遇到了插件但是我没有让它起作用,有人知道如何设置吗?
我只是得到通常的“错误:无法解析'../aot/src/app/app.module.ngfactory'”,但纯粹运行aot,工作正常。
var helpers = require('./helpers');
var ngtools = require('@ngtools/webpack');
var AotPlugin = ngtools.AotPlugin;
var ExtractI18nPlugin = ngtools.ExtractI18nPlugin
module.exports = {
entry: {
'polyfills': './src/polyfills.ts',
'vendor': './src/vendor-aot.ts',
'app': './src/main-aot.ts'
},
module: {
rules: [
{
test: /\.ts$/,
use: ['@ngtools/webpack']
}
]
},
plugins: [
new ExtractI18nPlugin({
outFile: "src/i18n",
tsConfigPath: helpers.root('tsconfig-aot.json')
}),
new AotPlugin({
tsConfigPath: helpers.root('tsconfig-aot.json'),
entryModule: helpers.root('src/app/app.module#AppModule')
})
]
};
答案 0 :(得分:0)
我确实在其他地方看到了一条说明,你需要在AotPlugin之后放入ExtractI18nPlugin,如下所示:
"plugins": [
// ...
new AotPlugin({
"mainPath": "main.ts",
"i18nFile": "src/i18n/messages.fr.xlf",
"i18nFormat": "xlf",
"locale": "fr",
"replaceExport": false,
"missingTranslation": "error",
"hostReplacementPaths": {
"environments\\environment.ts": "environments\\environment.ts"
},
"exclude": [],
"tsConfigPath": "src\\tsconfig.app.json"
}),
new ExtractI18nPlugin({
"tsConfigPath": "src\\tsconfig.app.json",
"exclude": [],
"i18nFormat": "xlf",
"locale": "fr",
"outFile": "i18n/test.xlf",
})
// ...
]