Показать сообщение отдельно
  #1 (permalink)  
Старый 17.05.2011, 12:40
Интересующийся
Отправить личное сообщение для Himmler Посмотреть профиль Найти все сообщения от Himmler
 
Регистрация: 02.12.2009
Сообщений: 10

Многоязычный сайт (редирект)
Доброго времени суток.

Есть необходимость перенаправлять пользователя в часть сайта с его языком. по средствам js.
Нашел приемлемы скрипт, который прекрасно с этим справляется:
var myLngHost = 'site1.ru'; //сюда водим адрес сайта без www.
var myDefSubDomain = ''; // www or empty - тут если сайт работает как [url]www.site1.ru[/url] то пишем www, иначе пусто.
var myLngDef = 'ru'; //определяем какой сайт грузить если язык браузера например японский, т.е. язык по умолчанию для неописаного домена.
var myLngArray = {
	'ru': myDefSubDomain,
	'by': myDefSubDomain,
	'ua': myDefSubDomain,
	'de': 'de',
	'fr': 'fr',
	'es': 'es',
	'en': 'en'
}; // настройки куда что редиректить, в данном случае русский/беларусский/украинский на основной сайт редиректит. 'de':'de','fr':'fr','es':'es' - это если есть еще какие то поддомены
var myLngSite = myGetCookie('myLngSite');
if (!myLngSite && location.pathname == '/') {
	myCheckLng();
}
function myCheckLng() {
	var myLngBrowser = (navigator && navigator.language) ? navigator.language.replace(/(\w{2})(.*)/, '$1') : myLngDef;
	var myLngSubDomain = myLngArray[myLngBrowser] || myLngArray[myLngDef];
	var myLngNeedDomain = (myLngSubDomain ? myLngSubDomain + '.': '') + myLngHost;
	mySetCookie('myLngSite', 'init', 30);
	if (location.hostname != myLngNeedDomain) {
		window.location = 'http://' + myLngNeedDomain;
	}
 
}
function mySetCookie(name, value, expdays) {
	var today = new Date();
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expdays);
 
	document.cookie = name + "=" + escape(value) + (expdays ? "; expires=" + exdate.toUTCString() : "") + ";path=/;domain=" + location.hostname;
}
function myGetCookie(name) {
	var prefix = name + "="
	var cookieStartIndex = document.cookie.indexOf(prefix)
	if (cookieStartIndex == -1) return null
	var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
	if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length
	return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}



Только вот он перенаправляет на субдомен, т.е. ru.site.ru, en.site.ru,.. и т.д.
А мне нужно в раздел сайта - site.ru/ru, site.ru/en,..
И что-то до меня не как не доходит, что в нем надо изменить, для получение желаемого результата

Может кто то, уже делал подобное?
Ответить с цитированием