在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的国际化功能。