Laravel 前端和后端使用不同的多语言
Laravel frontend and backend with different multilanguage
同时 Laravel 我需要在站点前端和后端(管理)中有不同的 language/locale。前端需要4种语言(en,de,fr,it),后端需要3种语言(en,lt,es)。
示例:在浏览器中,我有两个打开的选项卡 - 1 个选项卡前端 (lang: de),2 个选项卡后端 (lang: en)。怎么做 ?与 setLocale?或者我需要不同的数组,例如后端?
与其在同一浏览器中打开两个不同的选项卡,也许您应该考虑打开两个不同的浏览器会话,以避免具有不同语言设置的后端和前端会话相互覆盖。
可以轻松处理此问题的一种方法是为前端和后端控制器创建两个 BaseController
类。
然后您可以使用 App::setLocale
方法从右侧 BaseController
构造函数为您的前端和后端设置不同的语言。
示例:
<?php
class FrontendBaseController extends Controller
{
public function __construct()
{
App::setLocale(Session::get('frontend-locale'));
}
}
class BackendBaseController extends Controller
{
public function __construct()
{
App::setLocale(Session::get('backend-locale'));
}
}
class HomeController extends FrontendBaseController
{
public function __construct()
{
}
}
class BackendDashboardController extends BackendBaseController
{
public function __construct()
{
}
}
在上面的示例中,我从会话中检索当前语言环境。
您可以将语言文件放在 app/lang
文件夹中。我会建议您为前端和后端语言文件设置单独的文件夹。
示例文件夹结构:
/app
/lang
/en
backend/
dashboard.php
frontend/
home.php
/de
backend/
dashboard.php
frontend/
home.php
app/lang/en/backend/dashboard.php
的示例内容:
<?php
return array(
'welcome' => 'Welcome to Backend!'
);
您可以输出 welcome
键的值,例如
echo Lang::get('backend/dashboard.welcome');
.
我希望你明白了。有关更多详细信息,请随时查看 official documentation.
同时 Laravel 我需要在站点前端和后端(管理)中有不同的 language/locale。前端需要4种语言(en,de,fr,it),后端需要3种语言(en,lt,es)。
示例:在浏览器中,我有两个打开的选项卡 - 1 个选项卡前端 (lang: de),2 个选项卡后端 (lang: en)。怎么做 ?与 setLocale?或者我需要不同的数组,例如后端?
与其在同一浏览器中打开两个不同的选项卡,也许您应该考虑打开两个不同的浏览器会话,以避免具有不同语言设置的后端和前端会话相互覆盖。
可以轻松处理此问题的一种方法是为前端和后端控制器创建两个 BaseController
类。
然后您可以使用 App::setLocale
方法从右侧 BaseController
构造函数为您的前端和后端设置不同的语言。
示例:
<?php
class FrontendBaseController extends Controller
{
public function __construct()
{
App::setLocale(Session::get('frontend-locale'));
}
}
class BackendBaseController extends Controller
{
public function __construct()
{
App::setLocale(Session::get('backend-locale'));
}
}
class HomeController extends FrontendBaseController
{
public function __construct()
{
}
}
class BackendDashboardController extends BackendBaseController
{
public function __construct()
{
}
}
在上面的示例中,我从会话中检索当前语言环境。
您可以将语言文件放在 app/lang
文件夹中。我会建议您为前端和后端语言文件设置单独的文件夹。
示例文件夹结构:
/app
/lang
/en
backend/
dashboard.php
frontend/
home.php
/de
backend/
dashboard.php
frontend/
home.php
app/lang/en/backend/dashboard.php
的示例内容:
<?php
return array(
'welcome' => 'Welcome to Backend!'
);
您可以输出 welcome
键的值,例如
echo Lang::get('backend/dashboard.welcome');
.
我希望你明白了。有关更多详细信息,请随时查看 official documentation.