在CentOS系統中配置Laravel的國際化(i18n)功能,可以按照以下步驟進行:
首先,確保你的CentOS系統已經安裝了PHP和Laravel。如果還沒有安裝,可以參考以下步驟:
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
composer create-project --prefer-dist laravel/laravel your-project-name
cd your-project-name
打開Laravel項目的.env
文件,找到APP_LANG
和APP_LOCALE
配置項,設置默認語言和區域:
APP_LANG=en
APP_LOCALE=en_US
Laravel的語言文件通常存放在resources/lang
目錄下。你可以手動創建這些文件,或者使用Artisan命令生成:
mkdir -p resources/lang/en
mkdir -p resources/lang/zh-CN
然后在每個語言目錄下創建相應的翻譯文件,例如:
touch resources/lang/en/messages.php
touch resources/lang/zh-CN/messages.php
編輯這些文件,添加翻譯內容:
resources/lang/en/messages.php
<?php
return [
'welcome' => 'Welcome to Our Application',
// 其他翻譯內容
];
resources/lang/zh-CN/messages.php
<?php
return [
'welcome' => '歡迎使用我們的應用程序',
// 其他翻譯內容
];
在你的路由文件(通常是routes/web.php
)中,可以設置語言前綴:
Route::group([
'prefix' => '{locale}',
'where' => ['locale' => App\Http\Middleware\SetLocale::LOCALE_REGEX],
], function () {
Route::get('/', 'HomeController@index')->name('home');
// 其他路由
});
創建一個中間件來設置語言:
php artisan make:middleware SetLocale
編輯app/Http/Middleware/SetLocale.php
文件:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\App;
class SetLocale
{
public function handle($request, Closure $next)
{
$locale = $request->segment(1);
if (in_array($locale, config('app.locales'))) {
App::setLocale($locale);
}
return $next($request);
}
}
在app/Http/Kernel.php
中注冊中間件:
protected $routeMiddleware = [
// 其他中間件
'locale' => \App\Http\Middleware\SetLocale::class,
];
啟動Laravel應用并訪問不同語言的URL,例如:
http://your-domain.com/en/
http://your-domain.com/zh-CN/
你應該能夠看到相應語言的翻譯內容。
在你的視圖文件中,可以使用__()
或trans()
函數來獲取翻譯內容:
{{ __('messages.welcome') }}
或者在控制器中使用:
use Illuminate\Support\Facades\Lang;
$welcomeMessage = Lang::get('messages.welcome');
通過以上步驟,你就可以在CentOS系統中成功配置Laravel的國際化功能。