Отображение соответствующей локализации на основе местоположения

magento.stackexchange https://magento.stackexchange.com/questions/4

  •  16-10-2019
  •  | 
  •  

Вопрос

Я хотел бы настроить сайт Magento, чтобы иметь возможность распознать язык по умолчанию и местоположение пользователя и отобразить сайт на этом языке и с соответствующей локализацией.

Например:

Пользователь из России с российским языком в качестве дефолта пойдет непосредственно на веб -сайт русского языка с рублями в качестве валюты и цен по умолчанию.

Это возможно? Если да, то как?

Это было полезно?

Решение

Геоип и представления магазина помогут вам решить эту проблему.

ГеоипВы можете использовать такого поставщика Максминд Для вашей базы данных GEOIP (или загрузите ее как модуль веб -сервера, который добавляет страну в заголовок).

На основании IP -адреса вы можете перенаправить клиента на правильное представление магазина (проверьте ссылку, сгенерированную коммутатором вида магазина.

Виды магазина

Русский должен быть видом на магазин. Проверьте коммутатор представления магазина, чтобы увидеть, какую ссылку вам нужно использовать для своих клиентов.

После перенаправления вы можете установить файл cookie, чтобы связать клиента с видом на магазин.

Другие советы

Существует расширение Magento Geoip (написано мной), которое загружает последний файл данных MaxMind и периодически обновляет его.

Я предлагаю зацепить controller_front_init_before мероприятие. Вы можете использовать следующий код, чтобы проверить получение кода ISO 3166-1 страны посетителя, а затем перенаправить его в представление магазина Coreponsent, если у вас есть:

$geoIP = Mage::getSingleton('geoip/country');
$code = $geoIP->getCountry();

/*
 * Check if store view for this country/language exists and it is not a current store view. 
 * If so do a redirect.
 * You can also take a language from user agent into consideration.
 */

Подробную статью об использовании этого расширения можно найти здесь.

Еще одна вещь, на которую можно посмотреть, это Geo IP.

Пара строк кода даст вам код страны пользователей, который вы можете переключаться на это.

Но обратите внимание, что вы будете есть проблемы Использование любого кода на основе перенаправления, если вы Использование того же магазина с Enterprise Edition и полным страничным кешем, что и на первой странице кэшируется.

Взгляни на http://www.thefutureoftheweb.com/blog/use-accect-language-ghanderЕсли вы можете программировать. Вы можете сделать переключатель в index.php Загрузка Storeview подходит для языка.

Другой вариант - использовать PHP auto_prepend конфигурация. Это приведет к тому, что все сценарии обрабатываются PHP для запуска сценария до фактический запрошенный сценарий работает, но после .htaccess (если вы используете это).

Этот подход в сочетании с некоторыми другими предложениями (например, с использованием MaxMind для данных о местоположении GEO и видов хранилища для определенных регионов) может привести к довольно чистую подходу.

Если вы запускаете версию Magento> = 1.4, код магазина по умолчанию можно настроить, установив значение $ _server ['mage_run_code'].

В файле .htaccess или конфигурации Apache добавьте следующее:

php_value auto_prepend_file /var/www/mystore/path/to/script.php

В твоей script.php Выполните любую необходимую бизнес -логику и установите соответствующий код магазина:

<?php
if (get_ip_location($_SERVER['REMOTE_ADDR']) == 'uk') {
    $_SERVER['MAGE_RUN_CODE'] = 'store_code_uk';
} else {
    $_SERVER['MAGE_RUN_CODE'] = 'store_code_us';
}

Отнесее отметить, что это будет применяться для все Запрошенные файлы PHP, поэтому вам нужно помнить об этом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top