Учебники

Laravel — Локализация

Функция локализации Laravel поддерживает другой язык, который будет использоваться в приложении. Вам нужно хранить все строки на разных языках в файле, и эти файлы хранятся в каталоге resources / views . Вы должны создать отдельный каталог для каждого поддерживаемого языка. Все языковые файлы должны возвращать массив строк с ключами, как показано ниже.

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

пример

Шаг 1 — Создайте 3 файла для языков — английский, французский и немецкий . Сохраните файл на английском языке в ресурсах / lang / en / lang.php

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

Шаг 2 — Сохраните французский файл в ресурсах / lang / fr / lang.php .

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

Шаг 3 — Сохраните немецкий файл в ресурсах / lang / de / lang.php .

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

Шаг 4 — Создайте контроллер с именем LocalizationController , выполнив следующую команду.

php artisan make:controller LocalizationController --plain

Шаг 5 — После успешного выполнения вы получите следующий вывод —

LocalizationController

Шаг 6 — Скопируйте следующий код в файл

приложение / Http / Контроллеры / LocalizationController.php

приложение / Http / Контроллеры / 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 / rout.php . Обратите внимание, что мы передаем аргумент {locale} после локализации /, который мы будем использовать, чтобы увидеть вывод на другом языке.

приложение / Http / routes.php

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

Шаг 8 — Теперь давайте посетим разные URL, чтобы увидеть все разные языки. Выполните приведенный ниже URL, чтобы увидеть вывод на английском языке.

http://localhost:8000/localization/en

Шаг 9 — Вывод будет выглядеть, как показано на следующем рисунке.

Интернационализация Ларавела

Шаг 10 — Выполните приведенный ниже URL, чтобы увидеть вывод на французском языке.

http://localhost:8000/localization/fr

Шаг 11 — Вывод будет выглядеть, как показано на следующем рисунке.

Французский пример

Шаг 12 — Выполните приведенный ниже URL, чтобы увидеть вывод на немецком языке

http://localhost:8000/localization/de

Шаг 13 — Вывод будет выглядеть, как показано на следующем рисунке.