Локалізація, laravel по-російськи

Можливості для локалізації в Laravel надають зручний спосіб отримання мовних рядків, дозволяючи вашому додатку кількома мовами інтерфейсу. Мовні рядки зберігаються в папці resources / lang. Всередині неї повинні розташовуватися папки для всіх мов, підтримуваних додатком:

Всі мовні файли (скрипти) просто повертають масив пар ключ / значення. наприклад:

Налаштування мови

Мова за замовчуванням вказано у файлі налаштувань config / app.php. Само собою, ви можете змінити це значення для вашого застосування при необхідності. Ви також можете змінити поточну мову під час роботи вашого додатка методом PHP setLocale () фасаду App:

Ви можете налаштувати «запасний мову». який буде використовуватися, коли в файлі поточної мови немає відповідного рядка. Як і мова за замовчуванням, запасний мову також налаштовується у файлі config / app.php:

Визначення поточної мови

Ви можете використовувати методи PHP getLocale () і PHP isLocale () фасаду App для визначення поточної мови і для перевірки на збіг поточного мови з переданим значенням:

Отримання мовних рядків

Ви можете отримати рядки з мовного файлу за допомогою функції PHP trans (). Метод PHP trans () приймає файл і ключ мовної рядки першим аргументом. Наприклад, давайте отримаємо мовну рядок welcome з файлу resources / lang / messages.php:

Звичайно, якщо ви використовуєте шаблонизатор Blade. то для отримання мовної рядки можете використовувати синтаксис> або директиву PHP @ lang (для версії 5.2 і вище):

Якщо рядок не знайдена, то метод PHP trans () поверне її ім'я (ключ). У нашому прикладі це буде messages.welcome.

Отримання рядків з мовного файлу

Перший аргумент методу PHP get () - ім'я мовного файлу, а потім вказується ім'я рядка, яку потрібно отримати.

Якщо рядок не знайдена, то метод PHP get () поверне її ім'я (ключ).

Заміна частин в рядках

Якщо хочете, задайте місце для заміни в мовної рядку. Всі місця для заміни починаються з двокрапки (:). Наприклад, ви можете задати повідомлення вітання з використанням заміни для імені:

Для підстановки значення при отриманні мовної рядки передайте масив замін другим аргументом методу PHP trans ():

Підставляти значення буде перетворено відповідно до того, як задано місце для заміни (всі символи заголовні або тільки перший):

Перевірка існування мовної рядки

Множина

Форми множини - проблема для багатьох мов, так як всі вони мають різні складні правила формування множини. Однак ви можете легко впоратися з нею в ваших мовних файлах використовуючи символ | для поділу форм однини і множини:

Після визначення мовної рядки з варіантами для різних чисел, ви можете використовувати функцію PHP trans_choice () для отримання рядка в потрібному числі. В даному прикладі повернеться варіант у множині, так як вказано число більше 1:

Ви також можете передати аргумент локалі, щоб вказати мову. Наприклад, якщо ви хочете використовувати російську (ru) мова:

Завдяки тому, що Laravel використовує компонент Symfony Translation ви можете легко створити більш точні правила, які вказуватимуть мовні рядки для декількох числових проміжків:

Перекриття мовних файлів пакета

Багато пакети поставляються з власними мовними файлами. Замість того, щоб розкривати файли всередині пакету, щоб налаштувати рядки в них, ви можете перекрити їх, розмістивши файли в каталозі resources / lang / vendor // (для версії Laravel 5.0 - resources / lang / packages //).

Наприклад, якщо вам необхідно змінити рядки англійської мови в messages.php для пакета skyrim / hearthfire. вам треба помістити мовної файл в resources / lang / vendor / hearthfire / en / messages.php. У цьому файлі вам треба задати тільки ті рядки, які ви хочете перекрити. Решта всіх рядків, які вам не треба перекривати, будуть завантажуватися з мовних файлів самого пакета.

Локалізація, laravel по-російськи

Чи є готові російські файли для validation.php? Розумію, що це можна зробити самому, але навіщо робити те, що можливо вже є

Локалізація, laravel по-російськи

Локалізація, laravel по-російськи

І не слово про перемикання мов і вибірки контенту з БД ((((((((((

Локалізація, laravel по-російськи

Локалізація, laravel по-російськи

Схожі статті