Может Nunjucks выводить файлы на нескольких языках
Я пытаюсь создать мультиязычную страницу, я надеялся использовать разные файлы json для разных языков и gulp выводил файлы с языковым суффиксом в имени файла.
Пока что я загрузил файл данных и не могу вывести ни одного объекта из этого файла, я могу пройти через все это с помощью nunjuks {for item in obj}
,
Что мне нужно сделать, это вывести каждый объект отдельно и вывести два разных файла для каждого языка.
Это английский файл, французский - тот же, только с французским текстом:
{
"hello": "Hello",
"title": "Awesome Website"
}
Это глоток:
gulp.task('nunjucks', function() {
return gulp.src('source/pages/**/*.nunjucks')
.pipe(data(function() {
return require('./source/en.json');
}))
.pipe(nunjucksRender({
path: ['source/templates'],
manageEnv: manageEnvironment
}))
.on('error', onError)
// output files in app folder
.pipe(gulp.dest(''));
});
И вот как я думал, что я могу вывести значение "привет" в файлах шаблонов, но это не работает:
{{hello}}
1 ответ
Вывести два разных html-файла для каждого языка при использовании одного и того же файла шаблона просто, вам просто нужно создать две задачи Gulp для рендеринга html-файлов из nunjucks, по одной задаче для каждого языка.
Используя gulp-rename, вы можете просто добавить суффикс с кодом языка к имени файла:
gulp.task('nunjucks-en', function() {
return gulp.src('source/pages/**/*.nunjucks')
.pipe(data(function() {
return require('./source/en.json');
}))
.pipe(nunjucksRender({
path: ['source/templates'],
manageEnv: manageEnvironment
}))
.on('error', onError)
// output files in app folder
.pipe(gulp.dest(''));
});
gulp.task('nunjucks-fr', function() {
return gulp.src('source/pages/**/*.nunjucks')
.pipe(data(function() {
return require('./source/fr.json');
}))
.pipe(nunjucksRender({
path: ['source/templates'],
manageEnv: manageEnvironment
}))
.pipe(rename(function (path) {
path.basename += '-fr'
}))
.on('error', onError)
// output files in app folder
.pipe(gulp.dest(''));
});