我们目前的项目仅在瑞士,如
示例:yourfirm.com - 主要语言;德语 - 第二语言:英语&土耳其 - 货币:瑞士法郎
当用户默认进入页面时,他会获得德语,瑞士法郎
我们想将其添加如下: 新国家: 土耳其,主要语言:土耳其语,货币:土耳其里拉 德国&奥地利,主要语言:德语,货币:欧元 欧洲其他地区:主要语言:英语,货币:欧元 世界其他地区:主要语言:英语,货币:美元
所以我们想为每个国家做一些事情: 当用户访问yourfirm.com时,我们可以通过他的IP确定正确的位置(国家,时区,语言,货币),我们可以为他的国家显示正确的页面。 我们也考虑过管理它:对于来自yourfirm.com的每个国家,例如德国(DE) - > yourfirm.com/de 语言:德语,货币:€
但是我们不知道如何解决它:我们做了一些研究但找不到合适的解决方案。 如果有人可以帮助我们并且也可能尝试给我们提供示例代码,那将会很棒。
答案 0 :(得分:1)
您可以创建一个中间件来检测访问者IP地址的地理位置,建议整合的一个包是GeoIP for Laravel 5(Documentation)。
应用/ HTTP /中间件/ DetectGeoLocation.php 强>
public function handle($request, Closure $next, $guard = null)
{
// check if already detect current session country
if (!session('country')) {
$location = geoip();
session([
'country' => $location->country,
'currency' => $location->currency
]);
}
}
然后将中间件安装到http kernel:
应用/ HTTP / Kernel.php 强>
protected $middlewareGroups = [
'web' => [
...
\App\Http\Middleware\DetectGeoLocation,
...
]
现在,您可以在任何地方获取当前的会话国家/地区和货币:
$country = session('country');
$currency = session('currency');