【发布时间】:2017-09-03 17:07:09
【问题描述】:
我有一个项目,我正在使用 Angular 1.6,并且我正在使用 angular-translate 使项目国际化。
Angular-translate 已安装、配置和工作,如果我添加一些文本,例如:
{{'Test' | translate}}
<span translate>Test</span>
和手动将key“测试”添加到文件es.json和en.json中,角度翻译键没有问题。
现在我正在尝试自动化从 HTML 和 JS 文件中提取所有已翻译键的过程。
我一直在挖掘,发现了这两个包:
- gulp-angular-translate-extract
- gulp-angular-translate-extractor
我的 gulpfile.js 有一个名为“watch”的任务,这个任务是监视 JS 和 HTML 文件的变化。我的想法是在监视任务中调用另一个任务“翻译”。
我尝试使用上述 2 个库创建任务“翻译”。我用这些库尝试了几种配置,但这些库都没有提取翻译并将它们添加到 en.json 和 es.json 中。
这是我尝试过的小例子:
gulp-angular-translate-extract
var angularTranslate = require('gulp-angular-translate-extract');
gulp.task('translate', function () {
return gulp.src(['./src/app/**/*.html', './src/app/**/*.js'])
.pipe(angularTranslate({
lang: ['en', 'es'],
dest: 'src/app/locale/',
suffix: '.json',
prefix: '',
}))
});
gulp-angular-translate-extractor
var extractTranslate = require('gulp-angular-translate-extractor');
gulp.task('taskName', function () {
var i18nsrc = ['./src/app/**/*.html', './src/app/**/*.js']; // your source files
var i18ndest = './src/app/locale'; //destination directory
return gulp.src(i18nsrc)
.pipe(extractTranslate({
defaultLang: 'en',
lang: ['en', 'es'],
dest: i18ndest,
prefix: '',
suffix: '.json',
safeMode: false,
stringifyOptions: true,
}))
.pipe(gulp.dest(i18ndest));
});
通过上述配置,每次修改HTML或JS文件时都会调用翻译任务,但是翻译键没有提取,我的意思是翻译的键不会自动添加到es.json 和 en.json
- 我在这里缺少什么?我是否缺少一些额外的 gulp 配置?
【问题讨论】:
标签: javascript angularjs json gulp angular-translate