CascadiaPHP 2024

MessageFormatter::setPattern

msgfmt_set_pattern

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

MessageFormatter::setPattern -- msgfmt_set_patternУстанавливает шаблон, используемый средством форматирования

Описание

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

public MessageFormatter::setPattern(string $pattern): bool

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

msgfmt_set_pattern(MessageFormatter $formatter, string $pattern): bool

Устанавливает шаблон, используемый средством форматирования.

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

formatter

Объект MessageFormatter

pattern

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

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

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Примеры

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

<?php
$fmt
= msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo
"Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo
"Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo
"New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo
"Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

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

<?php
$fmt
= new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo
"Default pattern: '" . $fmt->getPattern() . "'\n";
echo
"Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo
"New pattern: '" . $fmt->getPattern() . "'\n";
echo
"Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

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

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

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

  • msgfmt_create() - Создаёт средство форматирования сообщений
  • msgfmt_get_pattern() - Возвращает шаблон, используемый средством форматирования

add a note

User Contributed Notes 1 note

up
0
neil dot smith at vouchercloud dot com
9 years ago
A correct example would be to transpose the placeholders in pattern 2.

This is typical where changing messages from one language to another changes the word order, to result in a sensible translation.

Let's imagine it's localised as Spanish or Russian instead of English.
So really you want to have pattern 2 provided by your human translator to read like this :

New pattern: '{1,number} trees hosting {0,number} monkeys'
Formatted number: 456 trees hosting 123 monkeys

That is - the order of arguments is always the same, but your translated message content has the placeholders transposed for non English languages.
To Top