Просмотр исходного кода

Initial whole translation of Zend_Locale-Introduction.xml

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21840 44c647ce-9c0f-0410-b52a-842ac1e357ba
tomeks 15 лет назад
Родитель
Сommit
d14f56a5b6
1 измененных файлов с 596 добавлено и 0 удалено
  1. 596 0
      documentation/manual/pl/module_specs/Zend_Locale-Introduction.xml

+ 596 - 0
documentation/manual/pl/module_specs/Zend_Locale-Introduction.xml

@@ -0,0 +1,596 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 21816 -->
+<!-- Reviewed: no -->
+<sect1 id="zend.locale.introduction">
+    <title>Wprowadzenie</title>
+
+    <para>
+        <classname>Zend_Locale</classname> to odpowiedź frameworka na pytanie: "Jak jedna aplikacja
+        może być używana na całym świecie?". Większość odpowie: "To proste. Wystarczy przetłumaczyć
+        wszystkie napisy na inne języki.". Jednak użycie prostych tabel mapujących frazy jednego
+        języka na drugi nie jest wystarczające. Różne regiony mogą mieć różne konwencje dotyczące
+        imion, nazwisk, zwrotów grzecznościowych, formatu liczb, dat, czasu, waluty itp.
+    </para>
+
+    <para>
+        Niezbędna jest
+        <ulink url="http://en.wikipedia.org/wiki/Internationalization_and_localization">Lokalizacja
+        i internacjonalizacja</ulink>. Zwroty te często są przedstawiane skrótowo jako odpowiednio
+        <emphasis>L10n</emphasis> oraz <emphasis>I18n</emphasis>. Internacjonalizacja zakłada
+        przystosowanie do użycia systemu niezależnie od specjalnych wymogów
+        charakterystycznych dla użytkowników
+        w zakresie języka, regionu, sposobu zapisu liczb, konwencji finansowych, dat i czasu.
+        Lokalizacja określa dodanie do systemu funkcjonalności obsługujących określone wymogi
+        dotyczące języka, konwencji dat, czasu, waluty, nazw, symboli, sortowania itp.
+        <code>L10n</code> i <code>I18n</code> uzupełniają się nawzajem. Zend Framework udostępnia
+        ich obsługę poprzez szereg komponentów. M. in.:
+        <classname>Zend_Locale</classname>, <classname>Zend_Date</classname>,
+        <classname>Zend_Measure</classname>, <classname>Zend_Translate</classname>,
+        <classname>Zend_Currency</classname>, and <classname>Zend_TimeSync</classname>.
+    </para>
+
+    <tip>
+        <title>Zend_Locale i setlocale()</title>
+
+        <para>
+            W <ulink url="http://php.net/setlocale">dokumentacji PHP</ulink> można przeczytać, że
+            funkcja <methodname>setlocale()</methodname> nie jest bezpieczna wątkowo (threadsafe)
+            ponieważ działa w zasięgu procesu a nie wątku. To oznacza, że w środowisku
+            wielowątkowym może dojść do sytuacji w której locale ulegnie zmianie pomimo braku
+            odwołań do funkcji <methodname>setlocale()</methodname> w skrypcie.
+            To, z kolei, może prowadzić do nieoczekiwanych rezultatów działania programu.
+        </para>
+
+        <para>
+            Podczas używania <classname>Zend_Locale</classname> takie ograniczenia nie występują
+            ponieważ klasa <classname>Zend_Locale</classname> jest całkowicie niezależna od funkcji
+            <acronym>PHP</acronym> <methodname>setlocale()</methodname>.
+        </para>
+    </tip>
+    
+    <sect2 id="zend.locale.whatislocalization">
+        <title>Co to jest lokalizacja</title>
+
+        <para>
+            Lokalizacja oznacza, że aplikacja (lub strona) może być używana przez różnych
+            użytkowników, którzy mówią w różnych językach. Jednak przetłumaczenie napisów
+            to tylko jedno z wielu zagadnień z tym związanych. W Zend Framework składają
+            się na nią:
+        </para>
+
+        <itemizedlist mark='opencircle'>
+            <listitem>
+                <para>
+                    <classname>Zend_Locale</classname> - Główna klasa wspierająca locale dla
+                    pozostałych komponentów Zend Framework.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Translate</classname> - Tłumaczenie łąńcuchów znaków.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Date</classname> - Lokalizacja dat, czasów.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Calendar</classname> - Lokalizacja kalendarzy (ze wsparciem
+                    dla systemów kalendarzy innych niż Gregoriański)
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Currency</classname> - Lokalizacja walut.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Locale_Format</classname> - Przetwarzanie i generowanie
+                    zlokalizowanych liczb.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <classname>Zend_Locale_Data</classname> - Pozyskiwanie zlokalizowanej formy
+                    standardowych łańcuchów znaków - nazw państw, języków i
+                    <ulink url="http://unicode.org/cldr/">innych z <acronym>CLDR</acronym></ulink>.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <code>TODO</code> - Lokalizacja porządków sortowania
+                </para>
+            </listitem>
+        </itemizedlist>
+    </sect2>
+
+    <sect2 id="zend.locale.whatis">
+        <title>Czym jest locale</title>
+
+        <para>
+            Każdy użytkownik komputera używa locale, nawet wtedy gdy o tym nie myśli. Aplikacje
+            nie posiadające obsługujące wielu zestawów językowych przeważnie wspierają
+            jedno określone locale (locale autora). Kiedy klasa lub funkcja używają lokalizacji,
+            mówi się że jest świadoma locale. W jaki sposób kod "wie" jakiego locale użytkownik
+            się spodziewa?
+        </para>
+
+        <para>
+            Łańcuch znaków lub obiekt identyfikujący locale daje klasie
+            <classname>Zend_Locale</classname> i jej klasom pochodnym dostęp do informacji
+            dotyczących języka oraz regionu, których użytkownik się spodziewa.
+            Na podstawie tych informacji dokonywane jest poprawne formatowanie, normalizacja
+            oraz konwersje.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.locale.representation">
+        <title>Jak locale są reprezentowane</title>
+
+        <para>
+            Identyfikatory locale składają się z informacji dotyczących języka użytkownika oraz
+            preferowanego/podstawowego regionu geograficznego (np. stan, województwo, land).
+            Łańcuchy identyfikatorów locale używane w Zend Framework przestrzegają międzynarodowych
+            standardów dotyczących skrótów języków i regionów. Zapisane są jako
+            <code>język_REGION</code>. Obie części są utworzone z liter znaków wchodzących w skład
+            <acronym>ASCII</acronym>.
+        </para>
+
+        <note>
+            <para>
+                W przeciwieństwie do popularnego osądu istnieją identyfikatory locale składające
+                się z więcej niż 2 liter. Dodatkowo istnieją języki i regiony których skróty
+                również są zawarte w więcej niż 2 literach. Mając to na uwadze, należy wystrzegać
+                się własnoręcznego wydobywania oznaczenia języka czy regionu z pełnego\
+                identyfikatora locale. Zamiast tego należy skorzystać z
+                <classname>Zend_Locale</classname>. W przeciwnym przypadku efekty działania kodu
+                mogą okazać się niespodziewane.
+            </para>
+        </note>
+
+        <para>
+            Użytkownik z USA może spodziewać się języka angielskiego (<code>English</code>)
+            oraz regionu <constant>USA</constant>. Daje to identyfikator locale: "en_US".
+            Użytkownik w Niemczech będzie się spodziewał języka niemieckiego
+            (<code>Deutsch</code>) oraz regionu Niemcy (<code>Deutschland</code>) co da
+            locale "de_DE". Aby zasięgnąć szczegółowych informacji o konkretnym
+            identyfikatorze locale do użytku w Zend Framework należy zapoznać się z <ulink
+           url="http://unicode.org/cldr/data/diff/supplemental/languages_and_territories.html">listą
+            identyfikatorów locale</ulink>.
+        </para>
+
+        <example id="zend.locale.representation.example-1">
+            <title>Wybranie konkretnego locale</title>
+
+            <programlisting language="php"><![CDATA[
+$locale = new Zend_Locale('de_DE'); // Język niemiecki _ Niemcy
+]]></programlisting>
+        </example>
+
+        <para>
+            Użytkownik z Niemiec przebywający w Ameryce mógłby oczekiwać języka
+            <code>Deutsch</code> i regionu <constant>USA</constant> ale podobne niestandardowe
+            połączenia nie są wspierane w takim stopniu jak pełnoprawne locale. Jeśli podana
+            zostanie nieprawidłowa kombinacja to nastąpi automatyczne odrzucenie kodu regionu.
+            Dla przykładu, "de_IS" zostałoby ograniczone do "de" a "xh_RU" - do "xh" ponieważ
+            żadna z tych kombinacji nie jest poprawna. Dodatkowo, jeśli język podanej kombinacji
+            nie jest wspierany (np. "zz_US") lub nie istnieje to zostanie użyte domyślne locale
+            "root", które ma domyślny zestaw definicji międzynarodowych oznaczeń dat, czasów,
+            liczb, walut itp. Proces odrzucania kodu regionu zależy również od żądanych informacji.
+            Niektóre kombinacje języków i regionów mogą być odpowiednie dla określonego
+            rodzaju danych (np. dat) ale nie dla innych (np. format waluty).
+        </para>
+
+        <para>
+            Należy mieć na uwadze zmiany historyczne ponieważ komponenty Zend Framework mogą nie
+            być "świadome" częstych zmian stref czasowych na przestrzeni lat w wielu regionach.
+            Przykładowo, <ulink url="http://www.statoids.com/tus.html"> pod tym linkiem widać
+            historyczną listę szeregu zmian</ulink> jakich dokonywały rządy w stosunku do
+            występowania tzw. czasu letniego a nawet obowiązującej strefy czasowej. Przez to,
+            podczas obliczeń na datach, komponenty Zend Framework nie będą brały tych zmian pod
+            uwagę. Zamiast tego zwrócony zostanie rezultat wynikający z użycia strefy czasowej
+            wg. obecnych zasad dotyczących czasu letniego i strefy czasowej konkretnego regionu.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.locale.selection">
+        <title>Wybranie odpowiedniego locale</title>
+
+        <para>
+            W większości przypadków <code>new Zend_Locale()</code> automatycznie wybierze poprawne
+            locale zachowując uprzywilejowanie w stosunku do danych udostępnionych przez
+            przeglądarkę użytkownika. W przypadku użycia
+            <code>new Zend_Locale(Zend_Locale::ENVIRONMENT)</code> pierwszym źródłem informacji
+            o locale stanie się konfiguracja serwera hostingowego tak jak opisano niżej.
+        </para>
+
+        <example id="zend.locale.selection.example-1">
+            <title>Automatyczny wybór locale</title>
+
+            <programlisting language="php"><![CDATA[
+$locale  = new Zend_Locale();
+
+// domyślne zachowanie, tak samo jak wyżej
+$locale1 = new Zend_Locale(Zend_Locale::BROWSER);
+
+// preferencja ustawień serwera
+$locale2 = new Zend_Locale(Zend_Locale::ENVIRONMENT);
+
+// perferencja ustawień frameworka
+$locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK);
+]]></programlisting>
+        </example>
+
+        <para>
+            Algorytm automatycznego szukania locale używany przez <classname>Zend_Locale</classname>
+            używa trzech źródeł danych:
+
+            <orderedlist>
+                <listitem>
+                    <para>
+                        const <constant>Zend_Locale::BROWSER</constant> - Przeglądarka użytkownika
+                        przy każdym żądaniu, dostarcza informacji, które przekładane są na zmienną
+                        globalną <acronym>PHP</acronym> o nazwie
+                        <varname>$_SERVER['HTTP_ACCEPT_LANGUAGE']</varname>.
+                        Jeśli brak jest odpowiedniego locale to następnym źródłem branym pod
+                        uwagę jest <constant>ENVIRONMENT</constant> i w ostateczności
+                        <constant>FRAMEWORK</constant>.
+                    </para>
+                </listitem>
+
+                <listitem>
+                    <para>
+                        const <constant>Zend_Locale::ENVIRONMENT</constant> - <acronym>PHP</acronym>
+                        udostępnia locale serwera hostingowego poprzez wewnętrzną funkcję
+                        <methodname>setlocale()</methodname>. Jeśli brak jest odpowiedniego locale
+                        to kolejnym źródłem branym pod uwagę staje się
+                        <constant>FRAMEWORK</constant> i w ostateczności
+                        <constant>BROWSER</constant>.
+                    </para>
+                </listitem>
+
+                <listitem>
+                    <para>
+                        const <constant>Zend_Locale::FRAMEWORK</constant> - W momencie, w którym
+                        Zend Framework będzie miał wystandaryzowany sposób określania
+                        domyślnych wartości komponentów (cecha jeszcze niedostępna) wtedy użycie
+                        tej stałej spowoduje wybranie locale na podstawie tych domyślnych wartości.
+                        W przypadku braku odpowiedniego locale kolejnym źródłem branym pod uwagę
+                        będzie <constant>ENVIRONMENT</constant> i na końcu
+                        <constant>BROWSER</constant>.
+                    </para>
+                </listitem>
+            </orderedlist>
+        </para>
+    </sect2>
+
+    <sect2 id="zend.locale.selection.automatic">
+        <title>Użycie automatycznego locale</title>
+
+        <para>
+            <classname>Zend_Locale</classname> oferuje trzy dodatkowe locale. Nie należą one
+            do żadnego języka ani regionu. Są to locale "automatyczne" co oznacza, że działają
+            na podobnej zasadzie co metoda <methodname>getDefault()</methodname> ale bez potrzeby
+            tworzenia instancji. Locale "automatyczne" mogą być użyte w każdym momencie, w którym
+            możliwe byłoby zdefiniowanie locale w standardowy sposób. Dzięki temu można ich używać
+            w łatwy sposób np. w sytuacji pracy z locale udostępnianym przez przeglądarkę.
+        </para>
+
+        <para>
+            Istnieją trzy rodzaje takich locale, których zachowanie nie jest standardowe:
+            <orderedlist>
+                <listitem>
+                    <para>
+                        <code>'browser'</code> - klasa <classname>Zend_Locale</classname> powinna
+                        użyć informacji dostarczanych przez przeglądarkę użytkownika. Te dane są
+                        udostępniane przez <acronym>PHP</acronym> w globalnej zmiennej
+                        <varname>$_SERVER['HTTP_ACCEPT_LANGUAGE']</varname>.
+                    </para>
+
+                    <para>
+                        Jeśli przeglądarka użytkownika informuje o więcej niż jednym locale
+                        <classname>Zend_Locale</classname> użyje pierwszego z listy. W przypadku
+                        nie podania żadnego locale przez przeglądarkę (lub gdy skrypt jest
+                        uruchomiony z linii poleceń) zostanie użyte "automatyczne" locale
+                        <code>'environment'</code>.
+                    </para>
+                </listitem>
+
+                <listitem>
+                    <para>
+                        <code>'environment'</code> - klasa <classname>Zend_Locale</classname>
+                        powinna brać pod uwagę informacje przekazane przez serwer hostingowy.
+                        Są one udostępnione przez <acronym>PHP</acronym> poprzez wewnętrzną funkcję
+                        <methodname>setlocale()</methodname>.
+                    </para>
+
+                    <para>
+                        Jeśli środowisko serwera informuje o więcej niż jednym locale
+                        <classname>Zend_Locale</classname> użyje pierwszego z listy. W przypadku
+                        nie podania żadnego locale zostanie użyte "automatyczne" locale
+                        <code>'browser'</code>.
+                    </para>
+                </listitem>
+
+                <listitem>
+                    <para>
+                        <code>'auto'</code> - klasa <classname>Zend_Locale</classname> powinna
+                        automatycznie wykryć locale, które nadaje się do użycia. W pierwszej
+                        kolejności będzie próbować znaleźć locale użytkownika, w przypadku
+                        niepowodzenia pod uwagę brane będzie środowisko serwera hostingowego.
+                    </para>
+
+                    <para>
+                        Jeśli nie uda się wykryć locale, klasa rzuci wyjątek i powiadomi o
+                        niepowodzeniu.
+                    </para>
+                </listitem>
+            </orderedlist>
+        </para>
+
+        <example id="zend.locale.selection.automatic.example-1">
+            <title>Użycie automatycznego locale</title>
+
+            <programlisting language="php"><![CDATA[
+// bez automatycznej detekcji
+//$locale = new Zend_Locale(Zend_Locale::BROWSER);
+//$date = new Zend_Date($locale);
+
+// z automatyczną detekcją
+$date = new Zend_Date('auto');
+]]></programlisting>
+        </example>
+    </sect2>
+
+    <sect2 id="zend.locale.defaultlocale">
+        <title>Użycie domyślnego locale</title>
+
+        <para>
+            W niektórych środowiskach automatyczna detekcja locale nie jest możliwa. Można się tego
+            spodziewać w przypadku uruchomienia skryptu z linii poleceń lub gdy przeglądarka
+            użytkownika nie ma zdefiniowanego języka a domyślnym locale serwera hostingowego
+            jest 'C' lub inne niestandardowe locale.
+        </para>
+
+        <para>
+            W takim przypadku <classname>Zend_Locale</classname> rzuci wyjątek z informacją o
+            niepowodzeniu w automatycznym wykryciu locale. Istnieją dwa wyjścia z tej sytuacji.
+            Pierwszym jest ręczne ustawienie nowego locale, drugim - zdefiniowanie domyślnego
+            locale.
+        </para>
+
+        <example id="zend.locale.defaultlocale.example-1">
+            <title>Obsługa wyjątków locale</title>
+
+            <programlisting language="php"><![CDATA[
+// w pliku bootstrap
+try {
+    $locale = new Zend_Locale('auto');
+} catch (Zend_Locale_Exception $e) {
+    $locale = new Zend_Locale('de');
+}
+
+// w modelu/kontrolerze
+$date = new Zend_Date($locale);
+]]></programlisting>
+        </example>
+
+        <para>
+            To podejście ma jedną wadę. Wymusza ustawienie obiektu locale poprzez
+            <classname>Zend_Locale</classname> w każdej klasie. W przypadku używania wielu klas
+            może to stanowić duży problem.
+        </para>
+
+        <para>
+            Od Zend Framework 1.5 istnieje o wiele lepszy sposób na obsługę takiej sytuacji.
+            Można ustawić domyślne locale za pomocą statycznej metody
+            <methodname>setDefault()</methodname>. Oczywiście każde nieznane lub źle sformułowane
+            locale również spowoduje rzucenie wyjątku. <methodname>setDefault()</methodname>
+            powinna być wywołana przed uruchomieniem dowolnej klasy używającej
+            <classname>Zend_Locale</classname>. Tak jak w poniższym przykładzie:
+        </para>
+
+        <example id="zend.locale.defaultlocale.example-2">
+            <title>Ustawienie domyślnego locale</title>
+
+            <programlisting language="php"><![CDATA[
+// w pliku bootstrap
+Zend_Locale::setDefault('de');
+
+// w modelu/kontrolerze
+$date = new Zend_Date();
+]]></programlisting>
+        </example>
+
+        <para>
+            W przypadku niepowodzenia automatycznego wykrycia locale użyte zostanie locale
+            <emphasis>de</emphasis>. W przeciwnym przypadku - klasa użyje wykrytego locale.
+        </para>
+    </sect2>
+
+    <sect2 id="zend.locale.interoperate">
+        <title>Klasy ZF "świadome" locale</title>
+
+        <para>
+            Klasy, które są "świadome" locale w Zend Framework polegają na
+            <classname>Zend_Locale</classname> w kwestii automatycznego wybrania locale na
+            zasadach opisanych wcześniej. Np. w aplikacji webowej Zend Framework, utworzenie
+            obiektu klasy <classname>Zend_Date</classname> bez podania locale spowoduje, że
+            powstały obiekt będzie miał locale ustawione na podstawie przeglądarki użytkownika.
+        </para>
+
+        <example id="zend.locale.interoperate.example-1">
+            <title>Format daty domyślnie dostosowuje się do przeglądarki</title>
+
+            <programlisting language="php"><![CDATA[
+$date = new Zend_Date('2006',Zend_Date::YEAR);
+]]></programlisting>
+        </example>
+
+        <para>
+            Aby zmienić domyślne zachowanie i zmusić komponenty Zend Framework "świadome" locale
+            do użytku określonego locale (obojętnie od ustawień przyglądarki użytkownika) należy
+            podać nazwę locale w trzecim argumencie konstruktora.
+        </para>
+
+        <example id="zend.locale.interoperate.example-2">
+            <title>Zmiana domyślnego wykrywania locale</title>
+
+            <programlisting language="php"><![CDATA[
+$usLocale = new Zend_Locale('en_US');
+$date = new Zend_Date('2006', Zend_Date::YEAR, $usLocale);
+$temp = new Zend_Measure_Temperature('100,10',
+                                     Zend_Measure::TEMPERATURE,
+                                     $usLocale);
+]]></programlisting>
+        </example>
+
+        <para>
+            Jeśli jest wiadomo, że wiele obiektów powinno użyć określonego locale to należy się
+            upewnić, że będą miały to locale określone. Dzięki temu można uniknąć dodatkowego
+            czasu pracy skryptu wynikającego z wyszukiwania odpowiedniego locale.
+        </para>
+
+        <example id="zend.locale.interoperate.example-3">
+            <title>Optymalizacja wydajności dzięki określeniu locale</title>
+
+            <programlisting language="php"><![CDATA[
+$locale = new Zend_Locale();
+$date = new Zend_Date('2006', Zend_Date::YEAR, $locale);
+$temp = new Zend_Measure_Temperature('100,10',
+                                     Zend_Measure::TEMPERATURE,
+                                     $locale);
+]]></programlisting>
+        </example>
+    </sect2>
+
+    <sect2 id="zend.locale.frameworkwidelocale">
+        <title>Locale obowiązujące w całej aplikacji</title>
+
+        <para>
+            Zend Framework umożliwia zdefiniowanie locale obowiązującego w całej aplikacji.
+            Polega to na wywołaniu obiektu klasy <classname>Zend_Locale</classname> i umieszczeniu
+            go w rejestrze z kluczem 'Zend_Locale'. Dzięki temu ta instancja będzie używana we
+            wszystkich klasach "świadomych" locale Zend Framework. Ten sposób umożliwia
+            ustawienie locale w rejestrze i uwolnienie się od potrzeby zwracania uwagi na to
+            zagadnienie. Ustawione locale zostanie automatycznie użyte we wszystkich przypadkach.
+            Przykładowe użycie znajduje się w poniższym przykładzie:
+        </para>
+
+        <example id="zend.locale.frameworkwidelocale.example">
+            <title>Użycie locale obowiązującego w całej aplikacji</title>
+
+            <programlisting language="php"><![CDATA[
+// w pliku bootstrap
+$locale = new Zend_Locale('de_AT');
+Zend_Registry::set('Zend_Locale', $locale);
+
+// w modelu lub kontrolerze
+$date = new Zend_Date();
+// print $date->getLocale();
+echo $date->getDate();
+]]></programlisting>
+        </example>
+    </sect2>
+
+    <sect2 id="zend.locale.formatoptions">
+        <title>Zend_Locale_Format::setOptions(array $options)</title>
+
+        <para>
+            Opcja 'precision' służy do obcięcia lub wydłużenia liczby. Wartość '-1' wyłącza
+            możliwość modyfikacji ilości liczb po przecinku. Opcja 'locale' jest pomocna podczas
+            przetwarzania liczb i dat z użyciem separatorów oraz nazw miesięcy.
+            Opcja formatów dat 'format_type' umożliwia wybór pomiędzy standardem
+            <acronym>CLDR</acronym>/ISO oraz wyrażeniami funkcji <acronym>PHP</acronym> date().
+            Opcja 'fix_date' umożliwia podanie formatu liczb do użytku z metodą
+            <methodname>toNumber()</methodname> (więcej informacji znajduje się w rozdziale
+            <xref linkend= "zend.locale.number.localize"/>).
+        </para>
+
+        <para>
+            Opcja 'date_format' może być użyta do określenia domyślnego formatu daty ale należy
+            zachować ostrożność przy używaniu <methodname>getDate()</methodname>,
+            <methodname>checkdateFormat()</methodname> and <methodname>getTime()</methodname>.
+            Aby ich pomyślnie używać należy umieścić w ich opcjach następującą tablicę:
+            array('date_format' => null, 'locale' => $locale).
+        </para>
+
+        <example id="zend.locale.formatoptions.example-1">
+            <title>Daty przyjmują domyślny format przeglądarki</title>
+
+            <programlisting language="php"><![CDATA[
+Zend_Locale_Format::setOptions(array('locale' => 'en_US',
+                                     'fix_date' => true,
+                                     'format_type' => 'php'));
+]]></programlisting>
+        </example>
+
+        <para>
+            Aby uzyskać standardowe definicje locale można użyć stałej
+            <constant>Zend_Locale_Format::STANDARD</constant>. Ustawienie w opcji
+            <code>date_format</code> na <constant>Zend_Locale_Format::STANDARD</constant> spowoduje
+            użycie standardowej definicji formatu zawartej w bieżącym locale. Umieszczenie tej
+            stałej w opcji <code>number_format</code> spowoduje użycie standardowego
+            formatu liczb z bieżącego locale. Ustawienie stałej w opcji <code>locale</code>
+            spowoduje użycie standardowego locale dla środowiska bądź przeglądarki.
+        </para>
+
+        <example id="zend.locale.formatoptions.example-2">
+            <title>Użycie standardowych definicji w metodzie setOptions()</title>
+
+            <programlisting language="php"><![CDATA[
+Zend_Locale_Format::setOptions(array('locale' => 'en_US',
+                                     'date_format' => 'dd.MMMM.YYYY'));
+// nadpisanie globalnego formatu daty
+$date = Zend_Locale_Format::getDate('2007-04-20',
+                                    array('date_format' =>
+                                              Zend_Locale_Format::STANDARD);
+
+// globalne ustawienie standardowego locale
+Zend_Locale_Format::setOptions(array('locale' => Zend_Locale_Format::STANDARD,
+                                     'date_format' => 'dd.MMMM.YYYY'));
+]]></programlisting>
+        </example>
+    </sect2>
+
+    <sect2 id="zend.locale.cache">
+        <title>Przyspieszenie Zend_Locale i jej klas pochodnych</title>
+
+        <para>
+            Można przyspieszyć działanie klasy <classname>Zend_Locale</classname> i jej klas
+            pochodnych poprzez użycie <classname>Zend_Cache</classname>. W przypadku używania
+            <classname>Zend_Locale</classname> osiągnąć to można za pomocą statycznej
+            metody <methodname>Zend_Locale::setCache($cache)</methodname>.
+            Klasę <classname>Zend_Locale_Format</classname> można przyspieszyć używając opcji
+            <code>cache</code> w
+            <classname>Zend_Locale_Format::setOptions(array('cache' => $adapter));</classname>.
+            Jeśli używane są obie klasy należy ustawić cache jedynie dla
+            <classname>Zend_Locale</classname>. W przeciwnym przypadku ostatni ustawiony cache
+            nadpisze wcześniejszy. Dla ułatwienia istnieją również statyczne metody
+            <methodname>getCache()</methodname>, <methodname>hasCache()</methodname>,
+            <methodname>clearCache()</methodname> oraz <methodname>removeCache()</methodname>.
+        </para>
+
+        <para>
+            Jeśli deweloper nie ustawi własnoręcznie cache'u <classname>Zend_Locale</classname>
+            automatycznie zrobi to za niego. W niektórych sytuacjach może zajść potrzeba rezygnacji
+            z użycia cache'u, nawet za cenę wydajności. Wtedy należy użyć statycznej metody
+            <methodname>disableCache(true)</methodname>. Oprócz wyłączenia ewentualnego wcześniej
+            ustawionego cache'u (bez usuwania jego zawartości) metoda ta zapobiega generowaniu
+            cache'u (jeśli nie był wcześniej ustawiony).
+        </para>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->