Многоязычный сайт (редирект)
Доброго времени суток.
Есть необходимость перенаправлять пользователя в часть сайта с его языком. по средствам 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,.. И что-то до меня не как не доходит, что в нем надо изменить, для получение желаемого результата :help: :cray: Может кто то, уже делал подобное? |
20-я строчка, отвечает за нужный функционал.
|
Это я понял :) Только я понять не могу, как именно ее изменить.
По идее должно быть так: var myLngNeedDomain = myLngHost + ('/' + myLngSubDomain ? myLngSubDomain); На так скрипт просто перестает работать. |
Часовой пояс GMT +3, время: 04:04. |