Laravel - Localizzazione

La funzione di localizzazione di Laravel supporta diverse lingue da utilizzare nell'applicazione. È necessario memorizzare tutte le stringhe di una lingua diversa in un file e questi file vengono archiviati inresources/viewsdirectory. È necessario creare una directory separata per ciascuna lingua supportata. Tutti i file di lingua dovrebbero restituire un array di stringhe con chiave come mostrato di seguito.

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

Esempio

Step 1 - Crea 3 file per le lingue - English, French, e German. Salva il file inglese inresources/lang/en/lang.php

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

Step 2 - Salva il file francese in resources/lang/fr/lang.php.

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

Step 3 - Salva il file tedesco in resources/lang/de/lang.php.

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

Step 4 - Crea un controller chiamato LocalizationController eseguendo il seguente comando.

php artisan make:controller LocalizationController --plain

Step 5 - Dopo aver eseguito con successo, riceverai il seguente output -

Step 6 - Copia il seguente codice su file

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 - Aggiungi un percorso per LocalizationController in app/Http/routes.phpfile. Si noti che stiamo passando l'argomento {locale} dopo la localizzazione / che useremo per vedere l'output in una lingua diversa.

app/Http/routes.php

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

Step 8- Ora, visitiamo i diversi URL per vedere tutte le diverse lingue. Esegui l'URL seguente per visualizzare l'output in lingua inglese.

http://localhost:8000/localization/en

Step 9 - L'output apparirà come mostrato nell'immagine seguente.

Step 10 - Esegui l'URL seguente per visualizzare l'output in lingua francese.

http://localhost:8000/localization/fr

Step 11 - L'output apparirà come mostrato nell'immagine seguente.

Step 12 - Esegui l'URL seguente per visualizzare l'output in lingua tedesca

http://localhost:8000/localization/de

Step 13 - L'output apparirà come mostrato nell'immagine seguente.