項目下輸入: composer require mcamara/laravel-localization
在 config/app.php
'providers' => [
// [...]
Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class,
],
'aliases' => [
// [...]
'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class,
],
然後輸入指令:
~ php artisan vendor:publish –provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider"
然後 在 config/laravellocalization.php 配置你的語言配置,把zh 注釋打開。
你也可以使用另一種方式,單獨配置語言檔案conf
建立 app/providers/ConfigServicePovider.php 檔案
輸入如下内容,并添加到config/app.php ( App\Providers\ConfigServiceProvider::class )
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ConfigServiceProvider extends ServiceProvider {
public function register()
{
config([
'laravellocalization.supportedLocales' => [
'en' => array( 'name' => 'English', 'script' => 'Latn', 'native' => 'English' ),
'zh' => ['name' => 'Chinese (Simplified)', 'script' => 'Hans', 'native' => '簡體中文', 'regional' => 'zh'],
],
'laravellocalization.useAcceptLanguageHeader' => true,
'laravellocalization.hideDefaultLocaleInURL' => true
]);
}
然後在配置路由,在routes/web.php增加:
Route::group(['prefix' => LaravelLocalization::setLocale()], function()
{
Route::get('/', function()
{
return trans('welcome.name');
});
});
在resources增加對應zh目錄,建立welcome.php
内容為:
return [‘name’=>’你好’];
在resources增加對應en目錄,建立welcome.php
内容為:
return [‘name’=>’hello’];
然後通路
域名.com/en
域名.com/cn
域名.com
就可以看到翻譯檔案生效了
中間件形式
在 app/Http/Kernel.php 添加如下内容
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel {
protected $routeMiddleware = [
'localize' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class,
'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
'localeViewPath' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class
// REDIRECTION MIDDLEWARE
];
}
路由檔案這樣寫:
// app/Http/routes.php
Route::group(
[
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ]
],
function()
{
Route::get('/', function()
{
return View::make('hello');
});
Route::get('test',function(){
return View::make('test');
});
});