2016-03-23 21 views
0

Sorunum, ?lang=en sorgu parametresi URL'sini ziyaret ettiğimde hiç kullanılmamış. Ancak Macarca metin değişikliği iyi çalışıyor, varsayılan hu dilinde text to test on hungarian'u sorunsuz bir şekilde gösteriyor. Ne yanlış gitti?i18n çeviri kısmen gidon desteği ile node express uygulamasında çalışıyor

app.js:

var express  = require('express'), 
    bodyParser  = require('body-parser'), 
    cookieParser = require('cookie-parser'), 
    exphbs   = require('express-handlebars'), 
    i18n   = require('i18n'); 
var app = express(); 

app.engine('.hbs', exphbs({ 
    extname: '.hbs', 
    defaultLayout: 'main', 
    helpers: { 
    __: function() { return i18n.__.apply(this, arguments); }, 
    __n: function() { return i18n.__n.apply(this, arguments); } 
    } 
})); 
app.set('view engine', '.hbs'); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 

app.use('/', require('./routes/portfolio')); 

i18n.configure({ 
    locales: ['hu', 'en'], 
    fallbacks: {'en': 'hu'}, 
    defaultLocale: 'hu', 
    cookie: 'locale', 
    queryParameter: 'lang', 
    directory: __dirname + '/locales', 
    directoryPermissions: '755', 
    autoReload: true, 
    updateFiles: true, 
    api: { 
    '__': '__', //now req.__ becomes req.__ 
    '__n': '__n' //and req.__n can be called as req.__n 
    } 
}); 
app.use(i18n.init); 

görüntüleme/portfolio.hbs:

<span id="text">{{{__ "text to test"}}}</span> 

yerel ayarlar/hu.json:

{ 
    "text to test": "text to test on hungarian" 
} 

yerel ayarlar/en.json:

{ 
    "text to test": "text to test on english" 
} 
start

Tam konsol günlüğü:

i18n:debug will use C:\www\node\lantosistvan\locales\hu.json +0ms 
    i18n:debug read C:\www\node\lantosistvan\locales\hu.json for locale: hu +5ms 
    i18n:debug will use C:\www\node\lantosistvan\locales\en.json +3ms 
    i18n:debug read C:\www\node\lantosistvan\locales\en.json for locale: en +1ms 
    lantosistvan-portfolio:server Listening on port 3000 +16ms 
    i18n:warn WARN: No locale found - check the context of the call to __(). Using hu as current locale +5s 
GET /about-me?lang=en 304 90.678 ms - - 

Yardımlarınız için teşekkür ederiz!

cevap

2

Yönlendiricilerin ve i18n.configure öğelerinin sırasının değiştirilmesi çözülmüş gibi görünüyor, bu yüzden yönlendirici aramalarından önce i18n'yi yerleştirmeniz gerekiyor.

İlgili konular