本地化(Localization)
Laravel的本地化功能支持在应用程序中使用不同的语言。 您需要将不同语言的所有字符串存储在一个文件中,这些文件存储在resources/views目录中。 您应该为每种支持的语言创建一个单独的目录。 所有语言文件都应返回一个键控字符串数组,如下所示。
<?php
return [
'welcome' => 'Welcome to the application'
];
例子 (Example)
Step 1 - 为语言创建3个文件 - English, French和German 。 在resources/lang/en/lang.php保存英文文件
<?php
return [
'msg' => 'Laravel Internationalization example.'
];
?>
Step 2 - 在resources/lang/fr/lang.php保存法语文件。
<?php
return [
'msg' => 'Exemple Laravel internationalisation.'
];
?>
Step 3 - 在resources/lang/de/lang.php保存德语文件。
<?php
return [
'msg' => 'Laravel Internationalisierung Beispiel.'
];
?>
Step 4 - 通过执行以下命令创建一个名为LocalizationController的控制器。
php artisan make:controller LocalizationController --plain
Step 5 - 成功执行后,您将收到以下输出 -
Step 6 - 将以下代码复制到文件
app/Http/Controllers/LocalizationController.php
app/Http/Controllers/LocalizationController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class LocalizationController extends Controller {
public function index(Request $request,$locale){
//set’s application’s locale
app()->setLocale($locale);
//Gets the translated message and displays it
echo trans('lang.msg');
}
}
Step 7 - 在app/Http/routes.php文件中为LocalizationController添加路由。 请注意,我们在本地化之后传递{locale}参数,我们将使用它来查看不同语言的输出。
app/Http/routes.php
Route::get('localization/{locale}','LocalizationController@index');
Step 8 - 现在,让我们访问不同的URL以查看所有不同的语言。 执行以下URL以查看英语输出。
http://localhost:8000/localization/en
Step 9 - 输出将如下图所示。
Step 10 - 执行以下URL以查看法语输出。
http://localhost:8000/localization/fr
Step 11 - 输出将如下图所示。
Step 12 - 执行以下URL以查看德语输出
http://localhost:8000/localization/de
Step 13 - 输出将如下图所示。