1
我有一些Laravel5的問題。 我有多個鏈接到單個應用程序的域,但每個域可以有多種語言。區域設置字符串不應出現,直到爲域選擇不同的語言。Laravel5多語言域名
也許有人有這方面的經驗。 等:
domain.com/home
domain.net
domain.lt/pagrindinis
domain.lt/en/home
我有一些Laravel5的問題。 我有多個鏈接到單個應用程序的域,但每個域可以有多種語言。區域設置字符串不應出現,直到爲域選擇不同的語言。Laravel5多語言域名
也許有人有這方面的經驗。 等:
domain.com/home
domain.net
domain.lt/pagrindinis
domain.lt/en/home
我終於找到了解決辦法:
在app.php我爲位置自定義數組:
'domains' => [
'domain_1' => [
'locales' => ['en', 'lt'],
'locale' => 'lt' // default locale for this domain
],
'domain_2' => [
'locales' => ['ru', 'en']
'locale' => 'ru',
],
];
和路線服務提供商。
/**
* Handle app requests
*
* @param Router $router
* @param Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function map(Router $router, Request $request)
{
$locale = $this->getLocaleByDomain($request);
$requestLocale = $request->segment(1);
$options = [
'namespace' => $this->namespace
];
if (in_array($requestLocale, Config::get('app.domains')[$request->getHost()]['locales'])) {
$locale = $requestLocale;
$options = array_merge(
$options,
[
'prefix' => $locale
]
);
}
app()->setLocale($locale);
$router->group($options, function ($router) {
require app_path('Http/routes.php');
});
}
/**
* Retrieve locale by domain
*
* @param $request
* @return mixed
*/
protected function getLocaleByDomain($request)
{
$locale = Config::get('app.fallback_locale');
if (array_key_exists($request->getHost(), Config::get('app.domains'))) {
$locale = Config::get('app.domains')[$request->getHost()]['locale'];
}
return $locale;
}
routes.php文件文件包含:
所以我達到的多個域,多語言和相當不錯的搜索引擎優化的URL的各個地區。也許任何人都可以提出其他想法?