-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
var defaultLang = "en";
var supportedLocales = ["en", "ru"];
var checkLanguage = function(locale){
var isSupportedLangIndex = false;
supportedLocales.map(function(supportedLocale, index){
if(locale.toLowerCase().indexOf(supportedLocale) == 0){
isSupportedLangIndex = index;
}
});
return isSupportedLangIndex ? supportedLocales[isSupportedLangIndex] : defaultLang;
}
var redirectStategy = function(locale, request, response){
var redirectUrl = 'http://' + config.site.global.host + ':' + config.site.global.port;
locale = checkLanguage(locale);
request.session.locale = locale;
if(locale != defaultLang){
redirectUrl += "/" + locale;
}
response.redirect(301, redirectUrl);
}
var sendFileStrategy = function(locale, request, response){
locale = checkLanguage(locale);
request.session.locale = locale;
response.sendFile(app.project_folder + '/public/index.'+ locale +'.html');
}
MainController.get(function(request, response, next){
if(request.session.locale){
sendFileStrategy(defaultLang, request, response);
}
else {
locale(request,response,next);
redirectStategy(request.locale, request, response);
}
});
MainController.get('/:locale', function(request, response, next){
if(request.params.locale !== defaultLang && checkLanguage(request.params.locale) == request.params.locale) {
sendFileStrategy(request.params.locale, request, response);
}
else{
redirectStategy(request.params.locale, request, response);
}
});Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels