Створіть багатомовний веб-сайт у PHP за допомогою Laravel Framework
Ви хочете створити багатомовний веб-сайт у PHP? Багатомовний веб-сайт допомагає збільшити аудиторію з кількох регіонів. У цій статті ми вивчаємо створення багатомовного веб-сайту в PHP за допомогою Laravel Framework.
Laravel має вбудовану функцію локалізації. Локалізація мови – це процес перекладу вмісту на різні мови. Використовуючи цю вбудовану функцію Laravel, ми можемо додати підтримку багатомовності на веб-сайті Laravel.
У Laravel ви можете легко отримувати рядки різними мовами, за допомогою яких ви можете надавати підтримку декільком мовам програми.
Існує 2 способи визначення рядків перекладу в Laravel – використання коротких клавіш та використання рядків перекладу як ключів. Давайте подивимось на це по одному.
Переклад Laravel за допомогою коротких клавіш
Для початку слід спочатку знати структури каталогів, що використовуються для перекладу в Laravel.
Скажімо, вам потрібно додати підтримку німецької мови. Отже, створіть каталог ‘de’ у папці ‘resources / lang’.
Рекомендується використовувати назву папки відповідно до території відповідно до значень ISO. Список кодів для мов ви можете отримати тут.
Створіть файл messages.php
у папці ‘de’. Цей файл містить масив рядків із ключем. Нижче наведено приклад, коли ми використовуємо німецький переклад для англійського слова „welcome".
<?php
return [
'welcome' => 'Herzlich willkommen',
];
Тут "ласкаво просимо" – це визначений користувачем ключ. Цей ключ використовуватиметься для отримання рядків перекладу німецькою мовою. Ви можете додати стільки клавіш у цей файл. Додаючи ключі, ви повинні використовувати унікальні ключі в масиві. Повторення ключів призведе до неправильного перекладу.
Вищезазначений процес є простим, якщо на вашому веб-сайті мало вмісту. Але якщо ваш веб-сайт досить багатий на вміст, то зберігати унікальні ключі буде важко. У таких випадках виберіть другий варіант передачі рядків перекладу як ключів.
Використання рядків перекладу як ключів
При такому підході вам не потрібно передавати унікальний ключ. Що вам потрібно зробити, це створити файл у каталозі de.json
‘resources / lang’. Далі, у цьому файлі JSON, передайте рядок перекладу як ключі.
Наприклад, вам потрібен німецький переклад англійського речення "How are you?" потім у de.json
файл додайте нижченаведену пару.
{
"How are you?": "Wie geht es dir?"
}
Ключ рядка перекладу має бути саме тим, для чого ви хочете перекласти. Це буде набагато простіше, оскільки в коді вам потрібно передавати рядок перекладу безпосередньо.
Встановіть мову для веб-сайту Laravel
Коли ми встановлюємо Laravel, мовою за замовчуванням є "en". Щоб змінити мову за замовчуванням, відкрийте config/app.php
файл. Знайдіть ключ "локаль" і встановіть код мови. У нашому випадку це буде '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