Laravel 5 基于子域的本地化

标签 laravel laravel-5

如何进行基于子域的本地化?

www.example.com ==> 语言环境 = 默认本地 = en
ar.example.com ==> local = ar

经过网上研究,我不确定它应该是一个中间件还是在routes文件中。

最佳答案

我认为你可以这样做:

Route::group(['domain' => '{lang}.myapp.com'], function()
{

    Route::get('/', function($lang)
    {
        App::setLocale($lang);
    });

});

或者在 Controller 中使用App::setLocale

该组允许您使用通配符,ar.example.com en.example.comit.example.com all会被集团捕获。在 de group 内,您可以定义所需的所有路由并传递 $lang

也许您可以添加一个中间件来限制语言,也许是一个检查该语言是否存在的中间件

关于Laravel 5 基于子域的本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858499/

相关文章:

php - 组相关产品属性

mysql - 在 laravel 中连接表创建重复条目

laravel - 为什么laravel eloquent模型保存后没有id?

php - 如何将 vue Prop 数据附加到图像源的基本路径

php - 用户的 Laravel 通配符子域

ajax - 即使 token 匹配,Laravel ajax 422 也无法处理实体

php - Laravel 模型是使用 id = 0 创建的

php - Laravel 5.4 上传原文件名和扩展名

PHP Laravel - HTML 表单值数组

mysql - SQL 查询将我的数字返回为字符串而不是整数