Spec-Zone.ru › CodeIgniter 3

Класс языка

Класс языка предоставляет функции для получения языковых файлов и строк текста для целей интернационализации.

В папке вашего CodeIgniter system вы найдете подпапку language, содержащую набор языковых файлов для английского языка. Файлы в этом каталоге (system/language/english/) определяют стандартные сообщения, сообщения об ошибках и другие общеупотребительные термины или выражения для различных частей фреймворка CodeIgniter.

Вы можете создавать или включать свои собственные языковые файлы по мере необходимости, чтобы предоставлять сообщения об ошибках и другие сообщения, специфичные для приложения, или предоставлять переводы основных сообщений на другие языки. Эти переводы или дополнительные сообщения будут храниться в каталоге application/language/, с отдельными подкаталогами для каждого языка (например, ‘французский’ или ‘немецкий’).

Фреймворк CodeIgniter поставляется с набором языковых файлов для «английского» языка. Дополнительные утвержденные переводы для различных языков можно найти в репозиториях переводов CodeIgniter 3. Каждый репозиторий обрабатывает один язык.

При загрузке языковых файлов CodeIgniter сначала загрузит файл в system/language/, а затем проверит наличие переопределения в каталоге application/language/.

Примечание

Каждый язык должен храниться в отдельной папке. Например, английские файлы расположены по адресу: system/language/english

  • Обработка нескольких языков
    • Примеры языковых файлов
    • Пример переключения языков
  • Интернализация
  • Использование класса языка
    • Создание языковых файлов
    • Загрузка языкового файла
    • Получение строки текста
      • Использование языковых строк в качестве меток форм
    • Автозагрузка языков
  • Справочник по классу

Обработка нескольких языков

Если вы хотите поддерживать несколько языков в своем приложении, вы должны создать папки внутри каталога application/language/ для каждого из них, и вы должны указать язык по умолчанию в файле application/config/config.php.

Каталог application/language/english/ будет содержать любые дополнительные языковые файлы, необходимые вашему приложению, например, для сообщений об ошибках.

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

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

Примеры языковых файлов

system/
        language/
                english/
                        ...
                        email_lang.php
                        form_validation_lang.php
                        ...

application/
        language/
                english/
                        error_messages_lang.php
                french/
                        ...
                        email_lang.php
                        error_messages_lang.php
                        form_validation_lang.php
                        ...

Пример переключения языков

$idiom = $this->session->get_userdata('language');
$this->lang->load('error_messages', $idiom);
$oops = $this->lang->line('message_key');

Интернализация

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

Мы используем термин «язык» для обозначения языка по его общепринятому названию, а не используя какие-либо международные стандарты, такие как «en», «en-US» или «en-CA-x-ca» для английского и некоторых его вариантов.

Примечание

Ничто не мешает вам использовать эти сокращения в вашем приложении!

Использование класса языка

Создание языковых файлов

Языковые файлы должны иметь расширение файла _lang.php. Например, если вы хотите создать файл с сообщениями об ошибках, вы можете назвать его: error_lang.php

Внутри файла вы назначите каждую строку текста массиву, названному $lang с этим прототипом:

$lang['language_key'] = 'The actual message to be shown';

Примечание

Рекомендуется использовать общее префикс для всех сообщений в данном файле, чтобы избежать коллизий с именами аналогичных элементов в других файлах. Например, если вы создаете сообщения об ошибках, вы можете использовать префикс error_

$lang['error_email_missing'] = 'You must submit an email address';
$lang['error_url_missing'] = 'You must submit a URL';
$lang['error_username_missing'] = 'You must submit a username';

Загрузка языкового файла

Чтобы получить строку из конкретного файла, необходимо сначала загрузить этот файл. Загрузка языкового файла выполняется следующим кодом:

$this->lang->load('filename', 'language');

Где filename — это имя файла, который вы хотите загрузить (без расширения), а language — это набор языков, содержащий его (например, english). Если второй параметр отсутствует, будет использован язык по умолчанию из файла application/config/config.php.

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

$this->lang->load(array('filename1', 'filename2'));

Примечание

Параметр language может содержать только буквы.

Получение строки текста

После загрузки необходимого языкового файла вы можете получить доступ к любой строке текста с помощью этой функции:

$this->lang->line('language_key');

Где language_key — это ключ массива, соответствующий строке, которую вы хотите отобразить.

Вы можете необязательно передать FALSE в качестве второго аргумента этого метода, чтобы отключить ведение журнала ошибок, в случае если вы не уверены, существует ли данная строка:

$this->lang->line('misc_key', FALSE);

Примечание

Этот метод просто возвращает строку. Он не выводит ее.

Использование языковых строк в качестве меток форм

Эта функция устарела в библиотеке языка и перенесена в функцию lang() помощника Language Helper.

Автозагрузка языков

Если вы обнаружите, что вам нужен определенный язык во всем приложении, вы можете указать CodeIgniter на автозагрузку его во время инициализации системы. Это делается путем открытия файла application/config/autoload.php и добавления языка(ов) в массив autoload.

Справочник по классу

class CI_Lang
load($langfile[, $idiom = ''[, $return = FALSE[, $add_suffix = TRUE[, $alt_path = '']]]])
Параметры:
  • $langfile (mixed) – Загружаемый языковой файл или массив с несколькими файлами
  • $idiom (string) – Название языка (например, ‘english’)
  • $return (bool) – Возвращать ли загруженный массив переводов
  • $add_suffix (bool) – Добавлять ли суффикс ‘_lang’ к имени языкового файла
  • $alt_path (string) – Альтернативный путь для поиска языкового файла
Возвращает:

Массив языковых строк, если $return установлено в TRUE, в противном случае пусто

Тип возвращаемого значения:

mixed

Загружает языковой файл.

line($line[, $log_errors = TRUE])
Параметры:
  • $line (string) – Название ключа языковой строки
  • $log_errors (bool) – Выполнять ли ведение журнала ошибок, если строка не найдена
Возвращает:

Строка языковой строки или FALSE при ошибке

Тип возвращаемого значения:

string

Получает отдельную строку перевода из уже загруженных языковых файлов на основе имени строки.

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/libraries/language.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API