mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
118 lines
5.6 KiB
XML
118 lines
5.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 14767af0f05dffa6fdb9b49e1a1f4e9ca7022a60 Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<reference xml:id="class.messageformatter" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||
<title>Класс MessageFormatter</title>
|
||
<titleabbrev>MessageFormatter</titleabbrev>
|
||
|
||
<partintro>
|
||
|
||
<!-- {{{ MessageFormatter intro -->
|
||
<section xml:id="messageformatter.intro">
|
||
&reftitle.intro;
|
||
<simpara>
|
||
MessageFormatter - это класс, позволяющий создавать склеиваемые,
|
||
независимые от языка сообщения. Методы этого класса используются для
|
||
создания всех сообщений, показываемых пользователю.
|
||
</simpara>
|
||
<simpara>
|
||
Класс MessageFormatter собирает сообщение из разных фрагментов
|
||
(таких как текст, числа и даты), поставляемых программой. Данный класс
|
||
позволяет программе не задумываться о том, в каком порядке эти фрагменты надо склеивать.
|
||
Класс использует спецификации форматирования для сборки этих фрагментов
|
||
в сообщение, хранящееся в виде одной строки в хранилище ресурсов.
|
||
К примеру, MessageFormatter позволит напечатать фразу
|
||
"Finished printing x out of y files..." таким образом, чтобы обеспечить
|
||
гибкость перевода.
|
||
</simpara>
|
||
<simpara>
|
||
Ранее сообщение для конечного пользователя создавалось как законченная
|
||
фраза и обрабатывалась как строка. Такая процедура приводила к проблемам
|
||
локализации, поскольку структура фразы, порядок слов, формат чисел и прочее
|
||
сильно отличались в разных языках. Нейтральная к языку процедура создания
|
||
сообщений держит каждую часть сообщения отдельно и предоставляет ключи к данным.
|
||
Используя эти ключи, класс MessageFormatter может склеивать части сообщения,
|
||
преобразовывать их в соответствии с локалью и отображать в виде грамотного сообщения
|
||
конечному пользователю.
|
||
</simpara>
|
||
<simpara>
|
||
MessageFormatter берет набор объектов, форматирует их и вставляет
|
||
в шаблон в нужных местах. Совместно с MessageFormatter полезно использовать
|
||
средства форматирования выбора (choice formatter) для обработки
|
||
множественного/единственного числа, сравнения чисел и выбора из массива элементов.
|
||
Обычно формат сообщения берётся из ресурсов, а аргументы передаются во
|
||
время выполнения.
|
||
</simpara>
|
||
</section>
|
||
<!-- }}} -->
|
||
|
||
<section xml:id="messageformatter.synopsis">
|
||
&reftitle.classsynopsis;
|
||
|
||
<!-- {{{ Synopsis -->
|
||
<classsynopsis class="class">
|
||
<ooclass>
|
||
<classname>MessageFormatter</classname>
|
||
</ooclass>
|
||
|
||
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
|
||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.messageformatter')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='MessageFormatter'])">
|
||
<xi:fallback/>
|
||
</xi:include>
|
||
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.messageformatter')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='MessageFormatter'])">
|
||
<xi:fallback/>
|
||
</xi:include>
|
||
</classsynopsis>
|
||
<!-- }}} -->
|
||
|
||
</section>
|
||
|
||
<section xml:id="messageformatter.seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member>
|
||
<link xlink:href="&url.icu.formatparse;">
|
||
ICU. Документация по форматированию.
|
||
</link>
|
||
</member>
|
||
<member>
|
||
<link xlink:href="&url.icu.formatmsg;">
|
||
ICU. Описание форматирования сообщений.
|
||
</link>
|
||
</member>
|
||
<member>
|
||
<link xlink:href="&url.icu.msgformat;">ICU. Средства форматирования сообщений</link>
|
||
</member>
|
||
<member>
|
||
<link xlink:href="&url.icu.choiceformat;">ICU. Средства форматирования выбора</link>
|
||
</member>
|
||
</simplelist>
|
||
</para>
|
||
</section>
|
||
</partintro>
|
||
|
||
&reference.intl.entities.messageformatter;
|
||
|
||
</reference>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|