Не работает переключатель языков с относительной ссылкой

голоса: 0
Делаю двуязычный сайт, на поддоменах. Не работает переключатель языков с относительной ссылкой. Тоесть с любой страницы, при выборе языка, переключается все равно на главную. Вот переключатель:   <a href= http://salonmak.com/NO NUMERIC NOISE KEY 1001>UA</a>/<a href= http://ru.salonmak.com/NO NUMERIC NOISE KEY 1000>RU</a>  что я делаю не правильно?
Адрес сайта http://www.salonmak.com/
| Автор: | Категория: Вопросы новичков

Ответов: 1

голоса: 0
  1. Это два разных сайта, здесь нет необходимости использовать операторы для обрезки урлов. Используйте полный урл, не создавайте себе проблему.
  2. Особой автоматизации здесь точно не выйдет так как сайты разные, было бы это в пределах одного сайта, тогда бы операторы можно было применять, но не для разных сайтов.
| Автор:

пытался сделать по инструкции, как в Официальом блоге UCOZ: https://blog.ucoz.ru/blog/dvujazychnyj_site/2010-07-20-153, чтобы "отправлять пользователя не на главную страницу локализации, а на иноязычный аналог текущей страницы. "

Александр Сколота,

Решение не идеальное и подходит не всем. Как пишется в статье, два сайта должны быть в копии идентичными, страница в страницу, если делать неправильно, соответственно ничего не получится. Изучите материал https://www.ucoz.ru/qa/index.php/210269 думаю вам это так же может подойти.

Yuri_Geruk,
Переводчик - не вариант, к тому же два идентичных сайта уже почти готовы .
Александр Сколота,

Не знаю на сколько вы настроили поддомен, но он не доступен http://www.ru.salonmak.com/

Yuri_Geruk,
Поддомен работал, потом перестал. Не пойму в чем дело. Написал в техподдержку, пока ответ не получил
Yuri_Geruk,
Поддомен http://ru.salonmak.com/ уже работает
Александр Сколота,
Опишите в деталях и с примерами, что вы с своей стороны проделали чтобы все работало как положено.
Yuri_Geruk,

Поддомен не работал из-за неправильной настройки:  в настройках сайта стояло "Домен www.ru.salonmak.com является приоритетным:" , снял в настройках этот чекбокс и сайт по указанному сайту открывается. Нашел рабочее решение: чтобы переключаться между сайтами в верхней части сайта  поставил переключательтакого вида:

<a href="javascript://" onclick="window.location.href='http://site.com'+window.location.pathname">UA</a>/<a href="javascript://" onclick="window.location.href='http://ru.site.com'+window.location.pathname">RU</a>

 

site.com, нужно заменить на адрес своего сайта.

Александр Сколота,
Проверил, сейчас как вижу все правильно работает у вас.
Александр Сколота,

Оставьте комментарий с этим решением к материалу https://blog.ucoz.ru/blog/dvujazychnyj_site/2010-07-20-153#var1 думаю кому-нибудь будет полезно и вам пользователи будут благодарны.

Yuri_Geruk,
Да! теперь хотел- бы найти решение как автоматически направлять пользователя на нужную языковую версию в зависимости от языка браузера.
Александр Сколота,
По поводу направлять пользователя автоматически, в тексте статьи приведет скрипт пример который это делает.
Yuri_Geruk,

Пробовал вставить скрипт, описанный в статье 

 <script> var myLngHost = 'salonmak.com';  var myDefSubDomain = '';   var myLngDef = 'uk';  var myLngArray = {	 	'uk': myDefSubDomain, 	'ru': 'ru',	 };  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)) } </script>

после head в "страницы сайта" - не работает!

Yuri_Geruk,
Ок! сейчас сделаю
Александр Сколота,
Значит устарел скрипт так как статья давняя.
Yuri_Geruk,

Заменил в коде 

 var myLngDef = 'uk';

на

 var myLngDef = 'salonmak.com';

Теперь все работает! Если язык пользователя русский - открывается русская версия, иначе - украинская

...