MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

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

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_create β€” Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ срСдство форматирования сообщСний

ОписаниС

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ (ΠΌΠ΅Ρ‚ΠΎΠ΄)

public static function MessageFormatter::create(string $locale, string $pattern): ?MessageFormatter

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ (конструктор):

public function MessageFormatter::__construct(string $locale, string $pattern)

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ

function msgfmt_create(string $locale, string $pattern): ?MessageFormatter

Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ срСдство форматирования сообщСний.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

locale

Π›ΠΎΠΊΠ°Π»ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

pattern

Π‘Ρ‚Ρ€ΠΎΠΊΠ° (string) шаблона для вставки Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’ шаблонС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ "друТСствСнный ΠΊ апострофам" синтаксис; ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ смотритС Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ » Quoting/Escaping.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ MessageFormatter ΠΈΠ»ΠΈ null Π² случаС возникновСния ошибки.

Ошибки

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π² качСствС конструктора Π² случаС возникновСния ошибки выбрасываСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IntlException.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования msgfmt_create()

<?php
$fmt
= msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo
msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} BΓ€umen sind {2,number} Affen pro Baum");
echo
msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ стилС

<?php
$fmt
= new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo
$fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} BΓ€umen sind {2,number} Affen pro Baum");
echo
$fmt->format(array(4560, 123, 4560/123));
?>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

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

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • msgfmt_format() - Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ сообщСниС
  • msgfmt_parse() - Π Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ строку согласно ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ
  • msgfmt_get_error_code() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ошибки послСднСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
  • msgfmt_get_error_message() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ тСкст ошибки послСднСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
6
ezarko at synacor dot com ΒΆ
16 years ago
Beware: passing an empty string for format returns null, not a formatter which returns empty strings.

$ php -r "print_r(new MessageFormatter('en_US',' '));"
MessageFormatter Object
(
)
$ php -r "print_r(new MessageFormatter('en_US',''));"