首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有子域的Laravel change语言

问带有子域的Laravel change语言
EN

Stack Overflow用户
提问于 2016-04-26 01:00:49
回答 1查看 1.2K关注 0票数 2

我有一个laravel项目,我必须改变语言系统,但它应该是与子域。

例如:

http://en.site.com/portal

http://de.site.com/portal

我使用这个命令来获得像"trans("home.title")“这样的语言文本,我也有一个中间件来改变语言,比如:

代码语言:javascript
复制
    if($lang = Session::get('lang')){
      Lang::setLocale($lang);
    }
   return $next($request);

我想从子域名决定语言的路由。我该怎么做呢?我就是可以这样做

代码语言:javascript
复制
Route:get("/lang/{lang}","LanguageController@change");

子域名应该是怎样的?

如果你能帮我,谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2018-11-17 20:44:57

你只需要一个中间件,仅此而已。在Laravel中实现这一点非常简单。

代码语言:javascript
复制
<?php
namespace AppHttpMiddleware;

use Closure;
use IlluminateSupportFacadesApp;

class LangMiddleware
{
    public function handle($request, Closure $next)
    {
        $url_array = explode('.', parse_url($request->url(), PHP_URL_HOST));
        $subdomain = $url_array[0];

        $languages = ['en', 'de'];

        if (in_array($subdomain, $languages)) {
            App::setLocale($subdomain);
        }

        return $next($request);
    }
}

然后将中间件添加到Kernel.php中

确保您在resource/lang中有所需子域的文件夹

我在这里找到了解决方案:https://kovah.me/en/laravel-5-localization-based-on-the-subdomain/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36846722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档