svn: /phpdoc/bg/trunk/reference/strings/functions/ sprintf.xml

[email protected] (Stanislav Yordanov) Fri, 11 Mar 2016 11:14:33 +0000
Newsgroups php.doc.bg
Message-ID <[email protected]>
stanprog                                 Fri, 11 Mar 2016 11:14:33 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=338735

Log:
sync to EN

Changed paths:
    U   phpdoc/bg/trunk/reference/strings/functions/sprintf.xml
svn-diffs-338735.txt (text/x-diff, 17.1 KB)
Modified: phpdoc/bg/trunk/reference/strings/functions/sprintf.xml
===================================================================
--- phpdoc/bg/trunk/reference/strings/functions/sprintf.xml	2016-03-11 10:59:43 UTC (rev 338734)
+++ phpdoc/bg/trunk/reference/strings/functions/sprintf.xml	2016-03-11 11:14:33 UTC (rev 338735)
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: n/a Maintainer: stanprog Status: ready -->
-<refentry xml:id="function.sprintf" xmlns="http://docbook.org/ns/docbook">
+<!-- EN-Revision: 336416 Maintainer: stanprog Status: ready -->
+<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.sprintf">
  <refnamediv>
   <refname>sprintf</refname>
   <refpurpose>Връща форматиран низ</refpurpose>
  </refnamediv>
-
+
  <refsect1 role="description">
   &reftitle.description;
   <methodsynopsis>
@@ -20,7 +20,7 @@
    <parameter>format</parameter>.
   </para>
  </refsect1>
-
+
  <refsect1 role="parameters">
   &reftitle.parameters;
   <para>
@@ -43,31 +43,29 @@
        <orderedlist>
         <listitem>
          <simpara>
-          Незадължителен <emphasis>описател на знака</emphasis>, който
-          задължава използването на знак (- или +) за числата.
-          По подразбиране се използва само знака минус при числата,
-          ако те са отрицателни. Този описател задължава положителните
-          числа да имат знак плюс и беше добавен в PHP 4.3.0.
+          Незадължителен <emphasis>описател на знака</emphasis>, който задължава използването на знак
+          (- или +) за числата. По подразбиране се използва само знака минус
+          при числата, ако те са отрицателни. Този описател задължава положителните числа
+          да имат знак плюс и беше добавен в PHP 4.3.0.
          </simpara>
         </listitem>
         <listitem>
          <simpara>
-          Незадължителен <emphasis>описател на уплътнението</emphasis>,
-          който указва кой знак ще бъде използван за уплътнение на
-          резултата до размера на съответния низ. Това може да е знак
-          за интервал или <literal>0</literal> (нула).
-          По подразбиране уплътнението се извършва с интервали.
-          Алтернативен знак за уплътнение може да бъде указан, като
-          се сложи пред него единична кавичка (<literal>'</literal>).
+          Незадължителен <emphasis>описател на уплътнението</emphasis>, който указва
+          кой знак ще бъде използван за уплътнение на резултата до
+          размера на съответния низ. Това може да е знак за интервал или
+          <literal>0</literal> (нула). По подразбиране уплътнението се извършва
+          с интервали. Може да бъде указан алтернативен знак за уплътнение,
+          като се сложи пред него единична кавичка (<literal>'</literal>).
           Вижте примера по-долу.
          </simpara>
         </listitem>
         <listitem>
          <simpara>
-          Незадължителен <emphasis>описател на подравняването</emphasis>,
-          който указва дали резултатът ще бъде ляво подравнен или дясно
-          подравнен. По подразбиране подравняването е дясно; Знакът
-          <literal>-</literal> ще го направи ляво подравнен.
+          Незадължителен <emphasis>описател на подравняването</emphasis>, който указва
+          дали резултатът ще бъде ляво или дясно подравнен.
+          По подразбиране подравняването е дясно; Знакът <literal>-</literal>
+          ще го направи ляво подравнен.
          </simpara>
         </listitem>
         <listitem>
@@ -79,11 +77,14 @@
         </listitem>
         <listitem>
          <simpara>
-          Незадължителен <emphasis>описател на точността</emphasis>,
+          Незадължителен <emphasis>описател на точността</emphasis>, във вид на
+          точка (<literal>.</literal>) последвана от незадължителен десетичен цифров низ
           който указва колко десетични знака ще бъдат показани при
-          числа с плаваща запетая. Използването на този описател
-          при низове указва точката на прекъсване, дефинирайки
-          максималната дължина в брой знакове.
+          числа с плаваща запетая. Използването на този описател при низове
+          указва точката на прекъсване, дефинирайки максималната дължина в брой
+          знакове. Освен това, знакът, използван за уплътняване на
+          числото може да (незадължително) да бъде указан между точката и
+          цифрата.
          </simpara>
         </listitem>
         <listitem>
@@ -109,13 +110,14 @@
            <member>
             <literal>e</literal> - аргументът се разглежда като число в
             научна нотация (например 1.2e+2).
-            От PHP 5.2.1, описателят на точността представлява броя на цифрите след десетичната
-            запетая. В по-ранни версии, той представлява броя на значещите цифри (с една по-малко).
+            От PHP 5.2.1, описателят на точността представлява броя на цифрите
+            след десетичната запетая. В по-ранни версии, той представлява
+            броя на значещите цифри (с една по-малко).
            </member>
            <member>
-            <literal>u</literal> - аргументът се разглежда като цяло число,
-            а се представя във вид на десетично число без знак.
-           </member>
+            <literal>E</literal> - като <literal>%e</literal>, но използва
+            буква в горен регистър (например 1.2E+2).
+           </member>
            <member>
             <literal>f</literal> - аргументът се разглежда като число с
             плаваща запетая и се представя като число с плаваща запетая
@@ -128,6 +130,14 @@
             Достъпно от PHP 4.3.10 и PHP 5.0.3.
            </member>
            <member>
+            <literal>g</literal> - по-кратко от <literal>%e</literal> и
+            <literal>%f</literal>.
+           </member>
+           <member>
+            <literal>G</literal> - по-кратко от <literal>%E</literal> и
+            <literal>%f</literal>.
+           </member>
+           <member>
             <literal>o</literal> - аргументът се разглежда като цяло число,
             а се извежда във вид на осмично число.
            </member>
@@ -136,6 +146,10 @@
             като низ.
            </member>
            <member>
+            <literal>u</literal> - аргументът се разглежда като цяло число,
+            а се представя във вид на десетично число без знак.
+           </member>
+           <member>
             <literal>x</literal> - аргументът се разглежда като цяло число,
             а се представя във вид на шестнадесетично число
             (с букви в долен регистър).
@@ -151,6 +165,54 @@
        </orderedlist>
       </para>
       <para>
+       Променливите ще бъдат преобразувани към съответния тип на описателя:
+       <table xml:id="sprintf.coercion">
+        <title>Обработка на типовете</title>
+        <tgroup cols="2">
+         <thead>
+          <row>
+           <entry>Тип</entry>
+           <entry>Описатели</entry>
+          </row>
+         </thead>
+         <tbody>
+          <row>
+           <entry><literal>string</literal></entry>
+           <entry><literal>s</literal></entry>
+          </row>
+          <row>
+           <entry><literal>integer</literal></entry>
+           <entry>
+            <literal>d</literal>,
+            <literal>u</literal>,
+            <literal>c</literal>,
+            <literal>o</literal>,
+            <literal>x</literal>,
+            <literal>X</literal>,
+            <literal>b</literal>
+           </entry>
+          </row>
+          <row>
+           <entry><literal>double</literal></entry>
+           <entry>
+            <literal>g</literal>,
+            <literal>G</literal>,
+            <literal>e</literal>,
+            <literal>E</literal>,
+            <literal>f</literal>,
+            <literal>F</literal>
+           </entry>
+          </row>
+         </tbody>
+        </tgroup>
+ </table>
+      </para>
+      <warning>
+       <para>
+        Опитът да се използва комбинация от низове и описатели на ширината с набор от знаци, който използва повече от един байт за знак, може да доведе до неочаквани резултати
+       </para>
+      </warning>
+      <para>
        Низът за форматиране поддържа номериране (промяна на реда) на параметрите.
        Ето един пример:
        <example>
@@ -158,13 +220,13 @@
         <programlisting role="php">
 <![CDATA[
 <?php
-$format = 'There are %d monkeys in the %s';
+$format = 'Има %d маймуни на %s';
 printf($format, $num, $location);
 ?>
 ]]>
         </programlisting>
        </example>
-       Това може да изведе "There are 5 monkeys in the tree".
+       Това може да изведе "Има 5 маймуни на дървото".
        Но представете си, че създаваме форматиращият низ в отделен файл,
        обикновено защото искаме да го интернационализираме и го
        презаписваме в следния вид:
@@ -173,13 +235,13 @@
         <programlisting role="php">
 <![CDATA[
 <?php
-$format = 'The %s contains %d monkeys';
+$format = 'На %s има %d маймуни';
 printf($format, $num, $location);
 ?>
 ]]>
         </programlisting>
        </example>
-       Възникна проблем. Редът на полетата във форматиращият низ
+       Възниква проблем. Редът на полетата във форматиращият низ
        не съвпада с реда на параметрите в кода. Бихме искали
        да оставим кода както си е и просто да укажем във форматиращия
        низ за кое поле е съответният параметър. Следователно
@@ -189,28 +251,78 @@
         <programlisting role="php">
 <![CDATA[
 <?php
-$format = 'The %2$s contains %1$d monkeys';
+$format = 'На %2$s има %1$d маймуни';
 printf($format, $num, $location);
 ?>
 ]]>
         </programlisting>
        </example>
        Другото предимство на този метод е, че можем да повтаряме
-       полетата без да добавяме повече параметри в кода.
-       Например:
+       полетата без да добавяме повече параметри в кода. Например:
        <example>
         <title>Промяна на реда на параметрите</title>
         <programlisting role="php">
 <![CDATA[
 <?php
-$format = 'The %2$s contains %1$d monkeys.
-           That\'s a nice %2$s full of %1$d monkeys.';
+$format = 'На %2$s има %1$d маймуни.
+           На %2$s се намират %1$d маймуни.';
 printf($format, $num, $location);
 ?>
 ]]>
         </programlisting>
        </example>
+       Когато използваме промяна на реда на параметрите <emphasis>описателя на реда</emphasis>
+       <literal>n$</literal> трябва да бъде веднага
+       след знака за процент (<literal>%</literal>), преди всеки друг
+       описател, както е показано в примера по-долу.
+       <example>
+        <title>Указване на знак за уплътнение</title>
+        <programlisting role="php">
+<![CDATA[
+<?php
+echo sprintf("%'.9d\n", 123);
+echo sprintf("%'.09d\n", 123);
+?>
+]]>
+        </programlisting>
+        &example.outputs;
+        <screen>
+<![CDATA[
+......123
+000000123
+]]>
+        </screen>
+       </example>
+       <example>
+        <title>Описател на позицията с други описатели</title>
+        <programlisting role="php">
+<![CDATA[
+<?php
+$format = 'На %2$s има %1$04d маймуни';
+echo sprintf($format, $num, $location);
+?>
+]]>
+        </programlisting>
+        &example.outputs;
+        <screen>
+<![CDATA[
+На дървото има 0005 маймуни
+]]>
+        </screen>
+       </example>
       </para>
+      <note>
+       <para>
+        При опитът да се използва описател на позицията, по-голям от
+        <constant>PHP_INT_MAX</constant> функция
+        <function>sprintf</function> ще генерира предупреждение.
+       </para>
+      </note>
+      <warning>
+       <para>
+        Описателя на типове <literal>c</literal> игнорира тези за уплътнението и дължината
+       </para>
+      </warning>
      </listitem>
     </varlistentry>
     <varlistentry>
@@ -230,7 +342,7 @@
    </variablelist>
   </para>
  </refsect1>
-
+
  <refsect1 role="returnvalues">
   &reftitle.returnvalues;
   <para>
@@ -238,31 +350,7 @@
    <parameter>format</parameter>.
   </para>
  </refsect1>
-
- <refsect1 role="changelog">
-  &reftitle.changelog;
-  <para>
-   <informaltable>
-    <tgroup cols="2">
-     <thead>
-      <row>
-       <entry>&Version;</entry>
-       <entry>&Description;</entry>
-      </row>
-     </thead>
-     <tbody>
-      <row>
-       <entry>4.0.6</entry>
-       <entry>
-        Добавена е поддръжка на номериране (промяна на реда) на аргументите
-       </entry>
-      </row>
-     </tbody>
-    </tgroup>
-   </informaltable>
-  </para>
- </refsect1>
-
+
  <refsect1 role="examples">
   &reftitle.examples;
   <example>
@@ -316,8 +404,8 @@
    <programlisting role="php">
 <![CDATA[
 <?php
-$s = 'monkey';
-$t = 'many monkeys';
+$s = 'маймуна';
+$t = 'много маймуни';

 printf("[%s]\n",      $s); // стандартно извеждане на низ
 printf("[%10s]\n",    $s); // подравняване в дясно и уплътняване с интервали
@@ -331,12 +419,12 @@
    &example.outputs;
    <screen>
 <![CDATA[
-[monkey]
-[    monkey]
-[monkey    ]
-[0000monkey]
-[####monkey]
-[many monke]
+[маймуна]
+[   маймуна]
+[маймуна   ]
+[000маймуна]
+[###маймуна]
+[много майм]
 ]]>
    </screen>
   </example>
@@ -378,7 +466,7 @@
    </programlisting>
   </example>
  </refsect1>
-
+
  <refsect1 role="seealso">
   &reftitle.seealso;
   <para>
@@ -391,7 +479,7 @@
    </simplelist>
   </para>
  </refsect1>
-
+
 </refentry>

 <!-- Keep this comment at the end of the file