MessageFormatter does not work with DateTime instances as parameters in PHP < 5.5. Instance will be converted to timestamp with value 0 (e.g. 1970-01-01) and following Notice will be raised: „Object of class DateTime could not be converted to int“. You have to manually convert the instance to timestamp in these old PHP versions.
<?php
$datetime = new DateTime();
if (PHP_VERSION_ID < 50500) { // PHP < 5.5 needs conversion to timestamp
MessageFormatter::formatMessage('en_US', 'Today is {0, date, full}.', array($datetime->getTimestamp()));
} else {
// current code
MessageFormatter::formatMessage('en_US', 'Today is {0, date, full}.', array($datetime));
}
?>MessageFormatter
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
MessageFormatter
Референца за `class.messageformatter.php` со подобрена типографија и навигација.
Класата MessageFormatter
Класата Collator
Вовед
MessageFormatter е конкретна класа што им овозможува на корисниците да произведуваат споени, неутрални на јазикот пораки. Методите што се дадени во оваа класа се користат за градење на сите пораки што ги гледаат крајните корисници.
Класата MessageFormatter составува пораки од различни фрагменти (како што се текстуални фрагменти, броеви и датуми) што ги обезбедува програмата. Поради класата MessageFormatter, програмата не треба да го знае редоследот на фрагментите. Класата ги користи спецификациите за форматирање за фрагментите за да ги состави во порака што е содржана во еден стринг во пакет со ресурси. На пример, MessageFormatter ви овозможува да ја испечатите фразата „Завршено печатење x од y датотеки...“ на начин што сè уште дозволува флексибилност во преводот.
Претходно, пораката за крајниот корисник се создаваше како реченица и се третираше како стринг. Оваа постапка создаде проблеми за локализаторите бидејќи структурата на реченицата, редоследот на зборовите, форматот на броевите и така натаму се многу различни од јазик до јазик. Неутралниот начин за создавање пораки ги чува секој дел од пораката одделен и обезбедува клучеви за податоците. Користејќи ги овие клучеви, класата MessageFormatter може да ги спои деловите од пораката, да ги локализира и да прикаже добро формиран стринг на крајниот корисник.
MessageFormatter зема сет од објекти, ги форматира, а потоа ги вметнува форматираните стрингови во шаблонот на соодветните места. Форматите за избор може да се користат заедно со MessageFormatter за да се справат со множини, да совпаѓаат броеви и да избираат од низа ставки. Типично, форматот на пораката ќе доаѓа од ресурси, а аргументите ќе бидат динамички поставени при извршување.
Синопсис на класата
Содржина
- MessageFormatter::create — Ја нормализира влезната податок и го враќа нормализираниот стринг
- MessageFormatter::format — Конструира нов Форматер за пораки
- MessageFormatter::formatMessage — Форматирај ја пораката
- MessageFormatter::getErrorCode — Брзо форматирај порака
- MessageFormatter::getErrorMessage — Земи го кодот за грешка од последната операција
- MessageFormatter::getLocale — Земи го текстот за грешка од последната операција
- MessageFormatter::getPattern — Земете го образецот што го користи форматирачот
- MessageFormatter::parse — Анализирајте го влезот според образецот
- MessageFormatter::parseMessage — Брзо анализирајте го влезот
- MessageFormatter::setPattern — Поставете го образецот што го користи форматирачот