Laravel - 本地化

  • 简述

    Laravel 的本地化功能支持在应用程序中使用不同的语言。您需要将所有不同语言的字符串存储在一个文件中,这些文件存储在resources/views目录。您应该为每种支持的语言创建一个单独的目录。所有语言文件都应返回一个键控字符串数组,如下所示。
    
    <?php
    return [
       'welcome' => 'Welcome to the application'
    ];
    
  • 例子

    步骤 1− 为语言创建 3 个文件 −English, French, 和German。英文文件保存于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- 将以下代码复制到文件中
    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');
       }
    }
    
    步骤 7- 添加 LocalizationController 的路由app/Http/routes.php文件。请注意,我们在本地化/之后传递 {locale} 参数,我们将使用它来查看不同语言的输出。
    app/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− 输出将如下图所示。
    德国例子