Laravel - 本地化


Laravel 的本地化功能支持在应用程序中使用不同的语言。您需要将所有不同语言的字符串存储在一个文件中,这些文件存储在resources/views目录中。您应该为每种支持的语言创建一个单独的目录。所有语言文件都应返回一个键控字符串数组,如下所示。

<?php
return [
   'welcome' => 'Welcome to the application'
];

例子

步骤 1 - 创建 3 个语言文件 -英语、法语德语。将英文文件保存在resources/lang/en/lang.php

<?php
   return [
      'msg' => 'Laravel Internationalization example.'
   ];
?>

步骤 2 - 将法语文件保存在resources/lang/fr/lang.php

<?php
   return [
      'msg' => 'Exemple Laravel internationalisation.'
   ];
?>

步骤 3 - 将德语文件保存在resources/lang/de/lang.php

<?php
   return [
      'msg' => 'Laravel Internationalisierung Beispiel.' 
   ];
?>

步骤 4 -通过执行以下命令创建一个名为LocalizationController的控制器。

php artisan make:controller LocalizationController --plain

步骤 5 - 成功执行后,您将收到以下输出 -

本地化控制器

步骤 6 - 将以下代码复制到文件

应用程序/Http/Controllers/LocalizationController.php

应用程序/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');
   }
}

步骤 7 - 在app/Http/routes.php文件中添加 LocalizationController 的路由。请注意,我们在本地化/之后传递 {locale} 参数,我们将使用它来查看不同语言的输出。

应用程序/Http/routes.php

Route::get('localization/{locale}','LocalizationController@index');

步骤 8 - 现在,让我们访问不同的 URL 以查看所有不同的语言。执行以下 URL 以查看英语输出。

http://localhost:8000/localization/en

步骤 9 - 输出将如下图所示。

Laravel 国际化

步骤 10 - 执行以下 URL 以查看法语输出。

http://localhost:8000/localization/fr

步骤 11 - 输出将如下图所示。

法语范例

步骤 12 - 执行以下 URL 以查看德语输出

http://localhost:8000/localization/de

步骤 13 - 输出将如下图所示。

德国例子