MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_messageБыстро форматирует сообщение

Описание

Объектно-ориентированный стиль

public static MessageFormatter::formatMessage(string $locale, string $pattern, array $values): string|false

Процедурный стиль

msgfmt_format_message(string $locale, string $pattern, array $values): string|false

Функция быстрого форматирования, которая форматирует строку без необходимости явно создавать объект форматирования. Используйте эту функцию, когда операция форматирования выполняется только один раз и не требует сохранения параметров или состояния, а также когда необходимо настроить вывод, предоставив дополнительный контекст непосредственно для ICU.

Список параметров

locale

Локаль, используемая для форматирования частей, зависящих от локали

pattern

Строка (string) шаблона для вставки аргументов. В шаблоне используется "дружественный к апострофам" синтаксис; подробнее смотрите в разделе » Quoting/Escaping.

values

Массив значений (array) для вставки в строку формата (string).

Возвращаемые значения

Строка отформатированного шаблона или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования msgfmt_format_message()

<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo
msgfmt_format_message("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
echo
msgfmt_format_message("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo
msgfmt_format_message("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}"
,
[
'apple' => 0]
),
"\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
echo MessageFormatter::formatMessage("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo
MessageFormatter::formatMessage("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
echo
MessageFormatter::formatMessage("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo
MessageFormatter::formatMessage("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}"
,
[
'apple' => 0]
),
"\n";
?>

Результат выполнения приведённого примера:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum
You finished 3rd!
There are no apples

Пример #3 Пример использования ICU для форматирования валюты с общим и с узким символом валюты

Requires ICU ≥ 67.

<?php
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD}", array(123.45));
echo
msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD unit-width-narrow}", array(123.45));

Результат выполнения приведённого примера:

123,45 CA$
123,45 $

Смотрите также

  • msgfmt_create() - Создаёт средство форматирования сообщений
  • msgfmt_parse() - Разбирает строку согласно шаблону
  • msgfmt_get_error_code() - Возвращает код ошибки последней операции
  • msgfmt_get_error_message() - Возвращает текст ошибки последней операции