对于根据当前系统语言打开网站自动使用对应语言和货币的功能,系统本身有类似的功能,只不过系统只是对语言有这样的功能,可以自己研究下代码,改下。 此部分代码在opencart的入口文件index.php中,代码如下: if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && $request->server['HTTP_ACCEPT_LANGUAGE']) { $browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']); foreach ($browser_languages as $browser_language) { foreach ($languages as $key => $value) { if ($value['status']) { $locale = explode(',', $value['locale']); if (in_array($browser_language, $locale)) { $detect = $key; } } } } } if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) { $code = $session->data['language']; } elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) { $code = $request->cookie['language']; } elseif ($detect) { $code = $detect; } else { $code = $config->get('config_language'); } if (!isset($session->data['language']) || $session->data['language'] != $code) { $session->data['language'] = $code; } if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) { setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']); } 其中,首先以session中的设置为最优先,其次以cookie。如果没有session和cookie的设置,才取浏览器(可以认为是操作系统语言)的语言设置,来设置网站打开的语言。 对于货币可以参考语言的这种思路自己来进行修改。 |
本帖最后由 haha008 于 2013-8-17 16:43 编辑 你这需求很麻烦诶 首先,要考虑语言包和货币如何关联。 如:中文-人民币 、 中文-港币 、 中文-美元、 英文-英镑、英文-美元等等。但OC内部并没有这样的关联机制,所以要自己定义。
|
|手机版|OpenCart - 中文官方网站 ( 蜀ICP备09033774号 ) |
GMT+8, 2024-12-23 00:53 , Processed in 0.062255 second(s), 29 queries , Gzip On.