Статический класс JText используется для перевода строки на различные языки. JText имеет три метода для перевода строки: _(), sprintf() и printf(). Самый часто используемый метод _(). Этот метод является самым основным, так как он переводит строку.
В данном примере, мы переведем слово Monday (если перевод не найден, то вернется строка Monday):
echo JText::_('Monday');Метод JText::sprintf() аналогичен PHP-функции sprintf(). Мы передаем одну строку для перевода и любое количество дополнительных параметров, которые нужно включить в перевод строки. Дополнительные параметры переводиться не будут.
В данном примере, если перевод для SAVED_ITEMS является Save %d items. То переводом будет "Сохранено 3 шт".
$value = JText::sprintf('SAVED_ITEMS', 3);Или мы можем использовать метод JText::printf(). Этот метод аналогичен PHP-функции printf(). Этот метод возвращает длину результирующей строки перевода.
$length = JText::printf('SAVED_ITEMS', 3);Если мы хотим создать перевод для наших расширений, то нужно создавать ini файлы переводов.
Обработчики UTF-8 строк
Для того чтобы Joomla! в полной мере поддерживать многоязычные требования, Joomla! использует кодировку Unicode или UTF-8 (Unicode Transformation Format-8). Unicode - это набор символов, включающий все известные языки.В Joomla! нам предоставляется статический класс JString; этого класса позволяет нам выполнять большинство из обычных строковых функций только в кодировке UTF-8.
Этот пример показывает, как мы можем использовать JString, чтобы преобразовать строку в верхний регистр. Заметим, что имя метода совпадает с аналогичной php-функцией:
$string = JString::strtoupper($string);
PHP функция | JString метод | Описание |
strpos | strpos | Находит первое совпадение строки в строке |
substr | substr | Возвращает часть строки |
strtolower | strtolower | Возвращает строку в нижнем регистре |
strtoupper | strtoupper | Возвращает строку в верхнем регистре |
strlen | strlen | Колличество символов в строке |
str_ireplace | str_ireplace | Возвращает строку, в которой все вхождения search (без учета регистра символов) заменены на replace |
str_split | str_split | Разбивает строку в массив по заданному символу |
strcasecmp | strcasecmp | Сравнивает строки |
strcspn | strcspn | Возвращает длину участка в начале строки, не соответствующего маске |
stristr | stristr | Находит первое совпадение строки в строке (нечуствительно к регистру) |
strrev | strrev | Переворачивает строку задом наперед |
strspn | strspn | Находит самый длинный сегмент строки заключенный в заданные символы |
substr_replace | substr_replace | Производит замену символов в строке |
ltrim | ltrim | Удаляет пробелы слевой части строки |
rtrim | rtrim | Удаляет пробелы с правой части строки |
trim | trim | Удаляет пробелы слева и справа |
ucfirst | ucfirst | Переводит первый символ в верхний регистр |
ucwords | ucwords | Переводит первый символ каждого слова в верхний регистр. |
transcode | Переводит строку из одной кодировки в другую. Требует iconv |