Создание многоязычного веб-сайта на PHP с помощью Laravel Framework
Вы хотите создать многоязычный веб-сайт на PHP? Многоязычный веб-сайт помогает увеличить аудиторию из нескольких регионов. В этой статье мы изучаем, как создать многоязычный веб-сайт на PHP с помощью Laravel Framework.
Laravel имеет встроенную функцию локализации. Языковая локализация – это процесс перевода контента на разные языки. Используя эту встроенную функцию Laravel, мы можем добавить поддержку нескольких языков на веб-сайт Laravel.
В Laravel вы можете легко извлекать строки на разных языках, благодаря чему вы можете поддерживать несколько языков в приложении.
Есть два способа определить строки перевода в Laravel – использовать короткие ключи и использовать строки перевода в качестве ключей. Давайте посмотрим на это по порядку.
Перевод Laravel с использованием коротких ключей
Для начала вы должны сначала узнать структуры каталогов, используемые для перевода в Laravel.
Допустим, вам нужно добавить поддержку «немецкого» языка. Итак, создайте каталог de в папке resources / lang.
Рекомендуется использовать имя папки в соответствии с территорией в соответствии со значениями ISO. Вы можете получить список кодов для языков здесь.
Создайте файл messages.php
в папке de. Этот файл содержит массив строк с ключами. Ниже приведен пример, в котором мы используем немецкий перевод для английского слова «добро пожаловать».
<?php
return [
'welcome' => 'Herzlich willkommen',
];
Здесь «добро пожаловать» – это определяемая пользователем клавиша. Этот ключ будет использоваться для получения строк перевода на немецком языке. Вы можете добавить столько ключей в этот файл. При добавлении ключей следует использовать уникальные ключи в массиве. Повторение ключей приведет к неправильному переводу.
Вышеописанный процесс прост, если на вашем веб-сайте мало контента. Но если ваш веб-сайт довольно богат по содержанию, то с сохранением уникальных ключей будет сложно справиться. В таких случаях используйте второй вариант передачи строк перевода в качестве ключей.
Использование строк перевода в качестве ключей
В этом подходе вам не нужно передавать уникальный ключ. Что вам нужно сделать, так это создать файл в каталоге de.json
resources / lang. Затем в этом файле JSON передайте строку перевода в качестве ключей.
Например, вам нужен немецкий перевод английского предложения «Как дела?» затем в de.json
файл добавьте следующую пару.
{
"How are you?": "Wie geht es dir?"
}
Ключ строки перевода должен быть именно тем, для чего вы хотите переводить. Это будет намного проще, так как в коде вам нужно передать строку перевода напрямую.
Установите язык для веб-сайта Laravel
Когда мы устанавливаем Laravel, по умолчанию используется язык en. Чтобы изменить язык по умолчанию, откройте config/app.php
файл. Найдите ключ «locale» и установите код языка. В нашем случае так и будет 'locale' => 'de'
.
В качестве альтернативы вы можете установить языковую среду выполнения, используя setLocale
метод App
фасада. В приведенном ниже коде я установил язык в конструкторе.
use App;
public function __construct() {
App::setLocale('de');
}
Получить строки перевода и заменить их
Чтобы получить переведенный текст из языковых файлов, Laravel предоставил вспомогательный метод ”. В приведенном ниже коде я извлекаю строки перевода как из файла лезвия, так messages.php
и de.json
из него.
{{ __('messages.welcome') }} //Output, Herzlich willkommen
{{ __('How are you?') }} //Output, Wie geht es dir?
В контроллере вы можете получить строку перевода с помощью echo
функции.
echo __('messages.welcome');
echo __('How are you?');
Заполнители в строках перевода
Laravel также исследует функции перевода, где вы можете передавать заполнители в строках перевода.
'welcome' => 'Welcome, :name',
Или в de.josn
файле,
{
"How are you?": "Wie geht es dir, :name?"
}
Чтобы заменить заполнители в приложении, нам нужно написать следующий код.
{{ __('messages.welcome', ['name' => 'John']) }}
{{ __('How are you?', ['name' => 'John']) }}
Если мы напишем заполнитель как «: NAME», на выходе будет «JOHN», а для «: Name» – «John».
Надеюсь, вы понимаете, как создать многоязычный веб-сайт на PHP с помощью фреймворка Laravel. Пожалуйста, поделитесь своими мыслями и предложениями в разделе комментариев ниже.
Статьи по Теме
- Руководство по загрузке и сжатию изображений в Laravel
- Как установить и использовать CKEditor в Laravel
- Как использовать Laravel Tinker