Содержание
Основы
Локализация это процесс перевода вашего приложения на другие языки. Класс Lang предлагает простой механизм организации и запроса текста мультиязычного приложения.
Все языковые файлы находятся в директории application/language. В самой директории application/language вы создаете директорию для каждого языка. Например, если у вас предусмотрен английский и испанский языки, то в директории language вы создаете поддиректории en и sp.
Каждая языковая директория может иметь много разных языковых файлов. Каждый языковый файл содержит массив со строками на определенном языке. Фактически, у языковых файлов такая же структура, как и у конфигурационных файлов. Например, в application/language/en вы можете создать файл marketing.php такого вида:
Создание языкового файла:
return array(
'welcome' => 'Welcome to our website!',
);
Теперь, создадим корреспондирующий файл marketing.php в application/language/sp:
return array(
'welcome' => 'Bienvenido a nuestro sitio web!',
);
Прекрасно! Теперь вы знаете, как устанавливать языковые файлы. Начнем локализацию!
Запрос языковой строки
Запрос языковой строки:
echo Lang::line('marketing.welcome')->get();
Запрос языковой строки с использованием хелпера "__":
echo __('marketing.welcome');
Обратили внимание, что "marketing" и "welcome" разделены точкой? Текст перед точкой корреспондирует с языковым файлом, ну а строка после точки определяет саму строку в этом файле.
Требуется запросить строку на другом, отличном от настроенного по умолчанию? Нет проблем. Просто укажите язык с помощью get метода:
Получение языковой строки на определенном языке:
echo Lang::line('marketing.welcome')->get('sp');
Заполнители и замены
Теперь давайте поработаем с нашим приветственным сообщением. "Добро пожаловать на наш сайт!" - это довольно стандартное сообщение. Было бы полезно указать имя пользователя, которого мы встречаем. Но, создавать языковую строку для каждого пользователя нашего приложения будет длительным и просто смешно. К счастью, вам не придется этого делать. Вы можете указать заполнитель в языковой строке. Заполнителю предшествует двоеточие:
Создание языковой строки с заполнителем:
'welcome' => 'Welcome to our website, :name!'
Запрос языковой строки с заменой:
echo Lang::line('marketing.welcome', array('name' => 'Taylor'))->get();
Запрос языковой строки с заменой и использованием "__":
echo __('marketing.welcome', array('name' => 'Taylor'));
Комментарии (1)
Если Вы заинтересованы в локализации ПО, я рекомендую Вам использовать этот инструмент на базе web: https://poeditor.com/