WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Создание многоязычного веб-сайта на PHP с помощью Laravel Framework

576

Вы хотите создать многоязычный веб-сайт на PHP? Многоязычный веб-сайт помогает увеличить аудиторию из нескольких регионов. В этой статье мы изучаем, как создать многоязычный веб-сайт на PHP с помощью Laravel Framework.

Laravel имеет встроенную функцию локализации. Языковая локализация – это процесс перевода контента на разные языки. Используя эту встроенную функцию Laravel, мы можем добавить поддержку нескольких языков на веб-сайт Laravel.

В Laravel вы можете легко извлекать строки на разных языках, благодаря чему вы можете поддерживать несколько языков в приложении.

Есть два способа определить строки перевода в Laravel – использовать короткие ключи и использовать строки перевода в качестве ключей. Давайте посмотрим на это по порядку.

Перевод Laravel с использованием коротких ключей

Для начала вы должны сначала узнать структуры каталогов, используемые для перевода в Laravel.

Допустим, вам нужно добавить поддержку «немецкого» языка. Итак, создайте каталог de в папке resources / lang.

Создание многоязычного веб-сайта на PHP с помощью Laravel Framework

Рекомендуется использовать имя папки в соответствии с территорией в соответствии со значениями ISO. Вы можете получить список кодов для языков здесь.

Создайте файл messages.phpв папке de. Этот файл содержит массив строк с ключами. Ниже приведен пример, в котором мы используем немецкий перевод для английского слова «добро пожаловать».

<?php
 
return [
    'welcome' => 'Herzlich willkommen',
];

Здесь «добро пожаловать» – это определяемая пользователем клавиша. Этот ключ будет использоваться для получения строк перевода на немецком языке. Вы можете добавить столько ключей в этот файл. При добавлении ключей следует использовать уникальные ключи в массиве. Повторение ключей приведет к неправильному переводу.

Вышеописанный процесс прост, если на вашем веб-сайте мало контента. Но если ваш веб-сайт довольно богат по содержанию, то с сохранением уникальных ключей будет сложно справиться. В таких случаях используйте второй вариант передачи строк перевода в качестве ключей.

Использование строк перевода в качестве ключей

В этом подходе вам не нужно передавать уникальный ключ. Что вам нужно сделать, так это создать файл в каталоге de.jsonresources / 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. Пожалуйста, поделитесь своими мыслями и предложениями в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее