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!