Сайт на Drupal7 на 3х языках: Русский-по умолчанию, Английский, Китайский.
Цель: После захода посетителя (в т.ч. не авторизованного) на сайт, автоматически определить его страну и если это Россия, автоматический переключить сайт на русский, если Китай - на китайский, для всех остальных на английский.
Сейчас для определения страны сайта используется модуль ip2country (может быть любой другой, не принципиально).
Подскажите как решить вопрос?
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
по личному опыту, никогда не решайте за юзера
оптимальное решение, это определения языка на уровне браузера, а не на уровне локации
сделал шрифт меньше
Спасибо за ответ, попробую предложить заказчику этот вариант.
И если позволите, дополнительный вопрос.
Сайт, это интернет магазин, где для всех товаров будет указываться куда товар может быть доставлен (только 3 варианта): Россия, Китай, Европа.
Соответственно нужно при показе товаров отфильтровать их по стране пользователя, чтобы не получилось так что пользователь из России оплатит товар доставка которого осуществляется только в Китае.
Как лучше реализовать такую фильтрацию товаров? Если товар доставляется в любую страну Европы, не хочется заставлять пользователя для каждого из таких товаров выбирать из списка стран все Европейские.
А как же Беларусь, Казахстан, Украина? И что если пользователь в опере включит режим "турбо"? Определение страны по айпи - затея не совсем надёжная. После определения региона нужно как минимум уведомить об этом пользователя и предложить переопределить вручную, если регион определён неверно. А чтобы пользователь из России не оплатил товар, доставляемый только в Китай, необходимо проводить валидацию на стадии оформления заказа.
https://www.drupal.org/project/global_filter
«Спасибо за ответ, попробую предложить заказчику этот вариант.»
- посредник манагер? фу фу фу. бедный заказчик
спасибо! изучу
-
И все таки, подскажите если кто то знает, модуль ip2country определяет страну, как добраться до этого значения при настройке views?
никак, у этого модуля нет поддержки views. только если писать свой handler
Спасибо. Вы могли бы это сделать за оговоренную сумму?
если вас устроит рейт в 2000 руб час и ~ 3-5 часов. велком
спасибо за информацию, при необходимости свяжусь с вами.
https://www.drupal.org/project/i18n
kolyuchy.org спасибо за ваш комментарий, какую из возможностей данного модуля вы имели ввиду для решения моего вопроса?
а никаких, это сугубо перевод контента.
Вообще-то там есть "фишка" определения языка по браузеру. admin/config/regional/language/configure
Determine the language from the browser's language settings.
http://drupal.ru/files/field/comment_node_blog/bez_imeni-1.jpg
В зависимсти от языка браузера, пользователю будет предоставлена подходящая версия.
З.Ы. "это сугубо перевод контента." - неправильное пояснение. Контент/содержание сайта этот модель не переводит.
эта "фишка" вообще идет по умолчнию в друпале
http://c2n.me/3HOg6WZ.jpg
В языковых настройках включите определение языка по настройкам языка в браузере. По умолчанию поставьте английский язык. И будет Вам счастье.
Да, я знаю. Но изначальное требование было " После захода посетителя (в т.ч. не авторизованного) на сайт, автоматически определить его страну (по IP) и если это Россия, автоматический переключить сайт на русский, если Китай - на китайский, для всех остальных на английский.". К счастью с помощью всех прокомментировавших этот пост удалось изменить это требование.
я вам уже ответил, никогда не считайте себя умнее юзеров и не принимайте решение за них. В идеале, попап "ваша страна такая то, переключить?". но, переключать жестко.... я поеду в китай по работе и вы меня ВСЕГДА будет на китайскую версию будете редиректить, угадайте мою реакцию?
все правильно. поэтому переключать надо не по стране, а языку браузера. плюс кнопочки переключения языка.
ну, тут дело ваше, но по моему опыту, лучше спрашивать сначала
Вы абсолютно правы. Поэтому в результате сделали как вы порекомендовали. Правда вопрос о том как во вьюс добраться до определенной по IP страны пользователя остался открытым (
Передавайте в контекстный фильтр переменную из сессии
щас чел подключит php_views и будет беда печаль
В контекстный фильтр можно писать код прямо в браузер даже без пхп вьюс))
без включения пхп фильтра, нельзя
Можно.
а да, ты прав
@ Tinnka
Я просто визуально покажу мой вечно незаконченный эксперементальный мультиязычный сайт на 65 языках c использованием Internationalization Smile
Radionete.com
Тут тыщи на 3 работы
стукнул в скайп
не вижу стука Smile
Отписал в личку