İki dilde bir çok temel bir sayfalık web sitesi oluşturmak için, yudum ile gulp-jade ve gulp-data Yeşim şablon motoru kullanıyorum. Sonuç, sunucu tarafında veya istemci tarafında işlem yapılmayan statik HTML belgeleri olmalıdır. index.jade
'umda tanımladığım bir dile bağlı olarak bir JSON dosyasından web sitesi içeriği yüklemek mümkün mü ve bunu yapmanın en iyi yolu ne olurdu?Çok Dilli Jade şablonları?
gulpfile.js:
gulp.task('views', function() {
return gulp.src('app/**/*.jade')
.pipe($.data(function(file) {
return require('./app/data/text.json'); // load language file
}))
.pipe($.jade({pretty: true, basedir: 'app/'}))
.pipe(gulp.dest('.tmp'));
});
text.json:
{
"de": {
"foo": "deutsch"
},
"en": {
"foo": "english"
}
}
index_en.jade:
Bulunduğum girişimi hataya neden oluyor
extends /_layouts/default.jade
var lang = "en"
block content
h1 #{lang.foo} // load text from json
ben yudum çalıştırdığınızda bu aşağıdaki hatası: Dil başına farklı dosyalar halinde JSON
Cannot read property 'foo' of undefined
Ben bölme kadar umursamıyorum o şeyler daha kolay yaparsa, ama hiçbir fikrim yok nasıl Uygun dosyayı index_en.jade
içinden içerir.
Bazı bağlam:
Ben kendisini mümkün olduğunca KURU şablon sistemini korumak için header.jade
ve footer.jade
gibi şeyler bir demet içeren varsayılan bir düzen dosyası (default.jade
), uzatıyorum belirtmeliyiz. Bu dosyaların çok dilli olması gerekiyordu, bu yüzden index_en.jade
, lang="de"
lang="de"
benim index_de.jade
içinde tanımlamak istiyorum ve sadece bunları çoğaltmak zorunda kalmadan tüm diğer kısmi (örneğin header_de.jade
veya gibi).
Ayrıca, bu özellikleri benim yeoman generator içine birleştiriyorum, bu yüzden daha sonra başka bir dil eklemek için gulpfile.js
ayarlamak zorunda kalmadan bir sistem bulmak istiyorum.
Mükemmel, teşekkürler. Hem dize hem de blok kapsamı bir problemdi. –