Как реализовать обнаружение браузера в Magento для загрузки нужного языка.Magento: обнаружение браузера для загрузки правильного языка
Пример: Если США Пользователь серфинг в моем магазин Magento, Magento должен загрузить путь: ..myshop ../ США/ США = Если код филиал японского пользователя серфинг в моем магазин Magento, Magento должны загрузить путь: ..myshop ../ JP/ Jp = и код филиала так далее
Я предполагаю, что я должен адаптировать .htaccess с перезаписи URL-адресов, но я никогда не делал этого раньше. Как мне это сделать?
Как выглядит код обнаружения браузера и где его можно разместить? В header.phtml?
спасибо очень много заранее!
Edit: index.php в CE 1.7.0.2 выглядит как этот
/**
* Error reporting
*/
error_reporting(E_ALL | E_STRICT);
/**
* Compilation includes configuration file
*/
define('MAGENTO_ROOT', getcwd());
$compilerConfig = MAGENTO_ROOT . '/includes/config.php';
if (file_exists($compilerConfig)) {
include $compilerConfig;
}
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
$maintenanceFile = 'maintenance.flag';
if (!file_exists($mageFilename)) {
if (is_dir('downloader')) {
header("Location: downloader");
} else {
echo $mageFilename." was not found";
}
exit;
}
if (file_exists($maintenanceFile)) {
include_once dirname(__FILE__) . '/errors/503.php';
exit;
}
require_once $mageFilename;
#Varien_Profiler::enable();
if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
Mage::setIsDeveloperMode(true);
}
#ini_set('display_errors', 1);
umask(0);
/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
Mage::run($mageRunCode, $mageRunType);
Но это Link описывает follwing код, который вы не можете просто заменить:
require_once 'app/Mage.php';
/* Determine correct language store based on browser */
function getStoreForLanguage()
{
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
foreach (explode(",", strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE'])) as $accept) {
if (preg_match("!([a-z-]+)(;q=([0-9.]+))?!", trim($accept), $found)) {
$langs[] = $found[1];
$quality[] = (isset($found[3]) ? (float) $found[3] : 1.0);
}
}
// Order the codes by quality
array_multisort($quality, SORT_NUMERIC, SORT_DESC, $langs);
// get list of stores and use the store code for the key
$stores = Mage::app()->getStores(false, true);
// iterate through languages found in the accept-language header
foreach ($langs as $lang) {
$lang = substr($lang,0,2);
if (isset($stores[$lang]) && $stores[$lang]->getIsActive()) return $stores[$lang];
}
}
return Mage::app()->getStore();
}
/* Auto redirect to language store view if request is for root */
if ($_SERVER['REQUEST_URI'] === '/') {
header('Location: '.getStoreForLanguage()->getBaseUrl());
exit;
}
#Varien_Profiler::enable();
#Mage::setIsDeveloperMode(true);
#ini_set('display_errors', 1);
umask(0);
Mage::run();
Может кто-нибудь помочь мне узнать, где его поставить или где можно адаптировать index.php
Еще раз спасибо!
в этой связи пурпурного он не объясняет, куда положить код. Я боюсь, что я переоцениваю то, что мне все еще нужно. Я использую CE 1.7.0.2, поэтому я редактирую свой первоначальный вопрос. Было бы неплохо получить еще один намек, потому что я уже пробовал это, и произошла ошибка. Очевидно, причина, по которой я переписывал smthg, полезный в index.php – furba