JText класс для обработки текста.
Позволяет разработчику использовать фрагменты текста на своём языке и они будут динамически переведены на язык сайта.
Определен в
/libraries/joomla/methods.php
Переменные:
-
array $strings = array()
Строки javascript.
Методы
-
alt
- преобразовывает строку в текущем языке.
строка для замены составляется по схеме: $string.'_'.$alt и вставляется в метод _
string alt(string $string, string $alt, [mixed $jsSafe = false], [boolean $interpretBackSlashes = true], [boolean $script = false])
- string $string - строка для преобразования
- string $alt - альтернативная настройка для глобальной строки
- mixed $jsSafe - Возвращает результат выполнения javascript в безопасном режиме, массив из массива опций, как описано в функции sprintf
- boolean $interpretBackSlashes - для интерпретации слеша (\\ ->\, \n ->возврат корретки, \t -> табуляция)
- boolean $script - указывает, что в строку будет вставлен javascript код.
-
plural
- тоже самое, что и sprintf, только делает множественную форму
Примеры:
`<script>alert(Joomla.JText._('<?php echo JText::plural("COM_PLUGINS_N_ITEMS_UNPUBLISHED", 1, array("script"=>true)); ?>'));</script>`
сгенерирует предупреждающее сообщение, содержащее '1 плагин успешно отключен'
`<?php echo JText::plural('COM_PLUGINS_N_ITEMS_UNPUBLISHED', 1); ?>`
будет генерировать строкe '1 плагин успешно отключен'
string plural (string $string, integer $n, mixed 2, array 3)
- string $string -формат строки
- integer $n - число пунктов
- mixed 2 - Смешанное число аргументов для функции sprintf, первый аргумент должен быть целым числом
- array 3 - дополнительный массив опций
-
printf
- прохождение строки через printf
mixed sprintf (format $string, mixed 1)
- mixed 1 - смешанное число аргументов для функции sprintf
- format $string - формат строки
-
script
- преобразует строку в текущем языке и сохраняет его как JavaScript
void script ([string $string = null], [ $jsSafe = false], [ $interpretBackSlashes = true])
- string $string - Ключ JText
- $jsSafe
- $interpretBackSlashes
-
sprintf
- прохождение строки через sprintf
string sprintf (string $string, mixed 1, array 2)
- string $string - формат строки
- mixed 1 - смешанное число аргументов для sprintf
- array 2 - дополнительный массив опций
-
_
- преобразование строки в текущем языке
string _(string $string, [mixed $jsSafe = false], [boolean $interpretBackSlashes = true], [boolean $script = false])
- string $string - строка для преобразования
- mixed $jsSafe - Возвращает результат выполнения javascript в безопасном режиме, массив из массива опций, как описано в функции sprintf
- boolean $interpretBackSlashes - для интерпретации слеша (\\ ->\, \n ->возврат корретки, \t -> табуляция
- boolean $script - указывает, что в строку будет вставлен javascript код
Подключение
jimport( 'joomla.methods' );
Описание функций php
sprintf
sprintf -- Возвращает отформатированную строку
Описание
string sprintf ( string format [, mixed args] )
Возвращает строку, созданную с использованием строки формата format.
Строка формата состоит из директив: обычных символов (за исключением %), которые копируются в результирующую строку, и описатели преобразований, каждый из которых заменяется на один из параметров. Это относится также к printf().
Каждый описатель прреобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):
- Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью '. См. примеры ниже.
- Необязательный описатель выравнивания, определяющий выранивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.
- Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.
- Необязательный описатель точности, определяющий, сколько десятичных разрядов отображать для чисел с плавающей точкой. Имеет смысл только для числовых данных типа float. (Для форматирования чисел удобно также использовать функцию number_format().)
- Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:
% - символ процента. Аргумент не используется. b - аргумент трактуется как целое и выводится в виде двоичного числа. c - аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII. d - аргумент трактуется как целое и выводится в виде десятичного числа со знаком. e - аргумент трактуется как float и выводится в научной нотации (например 1.2e+2). u - аргумент трактуется как целое и выводится в виде десятичного числа без знака. f - аргумент трактуется как float и выводится в виде десятичного числа с плавающей точкой. o - аргумент трактуется как целое и выводится в виде восьмеричного числа. s - аргумент трактуется как строка. x - аргумент трактуется как целое и выводится в виде шестнадцатиричного числа (в нижнем регистре букв). X - аргумент трактуется как целое и выводится в виде шестнадцатиричного числа (в верхнем регистре букв).
Пример 1. Изменение порядка параметров <?php $format = "There are %d monkeys in the %s"; printf($format, $num, $location); ?> |
Этот код выведет "There are 5 monkeys in the tree". Теперь представьте, что строка формата содержится в отдельном файле, который потом будет переведен на другой язык, и мы переписываем ее в таком виде:
Пример 2. Изменение порядка параметров <?php $format = "The %s contains %d monkeys"; printf($format, $num, $location); ?> |
Появляется проблема: порядок описателей преобразования не соответствует порядку аргументов. Мы не хотим менять код, и нам нужно указать, какому аргументу соответствует тот или иной описатель преобразования.
Пример 3. Изменение порядка параметров <?php $format = "The %2\$s contains %1\$d monkeys"; JText::printf($format, $num, $location); ?> |
Нумерация аргументов имеет еще одно применение: она позволят вывести один и тот же аргумент несколько раз без передачи функции дополнительных параметров.
Пример 4. Изменение порядка параметров <?php $format = "The %2\$s contains %1\$d monkeys. That's a nice %2\$s full of %1\$d monkeys."; JText::printf($format, $num, $location); ?> |
Примеры
Пример 5. sprintf(): заполнение нулями <?php $isodate = JText::sprintf("%04d-%02d-%02d", $year, $month, $day); ?> |
Пример 6. sprintf(): форматирование денежных величин <?php $money1 = 68.75; $money2 = 54.35; $money = $money1 + $money2; // echo $money выведет "123.1"; $formatted = JText::sprintf("%01.2f", $money); // echo $formatted выведет "123.10" ?> |
Пример 7. sprintf(): научная нотация <?php $number = 362525200; echo JText::sprintf("%.3e", $number); // выведет 3.63e+8 ?> |