Zend_Locale-Functions.xml 89 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 21864 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.locale.functions">
  5. <title>Użycie Zend_Locale</title>
  6. <para>
  7. <classname>Zend_Locale</classname> udostępnia zlokalizowane informacje o innych locale.
  8. Włączając w to nazwy innych locale, dni tygodnia, miesięcy itp.
  9. </para>
  10. <sect2 id="zend.locale.copying">
  11. <title>Kopiowanie, klonowanie oraz serializowanie obiektów locale</title>
  12. <para>
  13. Aby pomyślnie zduplikować obiekt locale należy użyć
  14. <ulink url="http://php.net/language.oop5.cloning">klonowania obiektów</ulink>.
  15. Większość metod świadomych locale przyjmują w argumencie nazwę locale, taką jaka
  16. jest zwracana przez <code>$locale->toString()</code>.
  17. </para>
  18. <example id="zend.locale.copying.example-1">
  19. <title>Klonowanie</title>
  20. <programlisting language="php"><![CDATA[
  21. $locale = new Zend_Locale('ar');
  22. // Serializacja oraz zapisanie obiektu $locale
  23. $serializedLocale = $locale->serialize();
  24. // odtworzenie oryginalnego obiektu
  25. $localeObject = unserialize($serializedLocale);
  26. // Uzyskanie identyfikatora locale
  27. $stringLocale = $locale->toString();
  28. // Utworzenie kopii obiektu $locale
  29. $copiedLocale = clone $locale;
  30. print "copied: ", $copiedLocale->toString();
  31. // PHP automatycznie wywołuje toString() poprzez __toString()
  32. print "copied: ", $copiedLocale;
  33. ]]></programlisting>
  34. </example>
  35. </sect2>
  36. <sect2 id="zend.locale.equals">
  37. <title>Równość</title>
  38. <para>
  39. <classname>Zend_Locale</classname> udostępnia wygodną funkcję służącą do porównania
  40. dwóch locale. Wszystkie klasy świadome locale powinny umożliwiać podobną funkcjonalność.
  41. </para>
  42. <example id="zend.locale.equals.example-1">
  43. <title>Sprawdzenie równoważnych locale</title>
  44. <programlisting language="php"><![CDATA[
  45. $locale = new Zend_Locale();
  46. $mylocale = new Zend_Locale('en_US');
  47. // Sprawdzenie równoważności
  48. if ($locale->equals($mylocale)) {
  49. print "Locales are equal";
  50. }
  51. ]]></programlisting>
  52. </example>
  53. </sect2>
  54. <sect2 id="zend.locale.getdefault">
  55. <title>Domyślne locale</title>
  56. <para>
  57. Metoda <methodname>getDefault()</methodname> zwraca tablicę identyfikatorów locale
  58. na podstawie informacji udostępnianych przez przeglądarkę użytkownika (jeśli
  59. jest dostępna), informacji pochodzących ze środowiska serwera hostingowego lub z
  60. ustawień Zend Framework. Pierwszy parametr określa preferencję źródła
  61. (<link linkend="zend.locale.selection">(<constant>BROWSER</constant>,
  62. <constant>ENVIRONMENT</constant>, or <code>FRAMEWORK</code></link>).
  63. Drugi parametr określa czy mają być zwrócone wszystkie locale wyszczególnione w
  64. źródle czy tylko pierwsze z nich. Komponenty świadome locale używają przeważnie
  65. jedynie pierwszego locale, w zależności od oceny ich preferencji (jeśli jest dostępna).
  66. </para>
  67. <example id="zend.locale.getdefault.example-1">
  68. <title>Zwrócenie domyślnego locale</title>
  69. <programlisting language="php"><![CDATA[
  70. $locale = new Zend_Locale();
  71. // Zwrócenie wszystkich domyślnych locale
  72. $found = $locale->getDefault();
  73. print_r($found);
  74. // Zwrócenie jedynie locale domyślnego dla przeglądarki
  75. $found2 = $locale->getDefault(Zend_Locale::BROWSER,TRUE);
  76. print_r($found2);
  77. ]]></programlisting>
  78. </example>
  79. <para>
  80. Aby uzyskać locale domyślne dla określonego źródła:
  81. <link linkend="zend.locale.selection"><constant>BROWSER</constant>,
  82. <constant>ENVIRONMENT</constant> lub <constant>FRAMEWORK</constant></link>, należy
  83. skorzystać z odpowiedniej metody:
  84. <itemizedlist>
  85. <listitem>
  86. <para>
  87. <methodname>getEnvironment()</methodname>
  88. </para>
  89. </listitem>
  90. <listitem>
  91. <para>
  92. <methodname>getBrowser()</methodname>
  93. </para>
  94. </listitem>
  95. </itemizedlist>
  96. </para>
  97. </sect2>
  98. <sect2 id="zend.locale.setlocale">
  99. <title>Ustawienie nowego locale</title>
  100. <para>
  101. Nowe locale może zostać ustawione za pomocą metody <methodname>setLocale()</methodname>.
  102. Przyjmuje ona łańcuch znaków identyfikatora locale jako parametr. Jeśli argument
  103. nie zostanie podany to nastąpi próba
  104. <link linkend="zend.locale.selection">automatycznego wyboru</link>.
  105. Ponieważ obiekty <classname>Zend_Locale</classname> są "lekkie" metoda ta istnieje
  106. głównie po to aby wykluczyć efekty uboczne w kodzie, który odnosi się do
  107. już istniejącej instancji.
  108. </para>
  109. <example id="zend.locale.setlocale.example-1">
  110. <title>Metoda setLocale()</title>
  111. <programlisting language="php"><![CDATA[
  112. $locale = new Zend_Locale();
  113. // Obecne locale
  114. print $locale->toString();
  115. // Nowe locale
  116. $locale->setLocale('aa_DJ');
  117. print $locale->toString();
  118. ]]></programlisting>
  119. </example>
  120. </sect2>
  121. <sect2 id="zend.locale.getlocale">
  122. <title>Zwrócenie języka i regionu</title>
  123. <para>
  124. Aby uzyskać skrót języka z identyfikatora locale należy skorzystać z metody
  125. <methodname>getLanguage()</methodname>. Do uzyskania skrótu regionu służy
  126. metoda <methodname>getRegion()</methodname>.
  127. </para>
  128. <example id="zend.locale.getlocale.example-1">
  129. <title>getLanguage oraz getRegion</title>
  130. <programlisting language="php"><![CDATA[
  131. $locale = new Zend_Locale();
  132. // jeśli locale to 'de_AT' wtedy 'de' zostanie zwrócone jako język
  133. print $locale->getLanguage();
  134. // jeśli locale to 'de_AT' wtedy 'AT' zostanie zwrócone region
  135. print $locale->getRegion();
  136. ]]></programlisting>
  137. </example>
  138. </sect2>
  139. <sect2 id="zend.locale.getdata">
  140. <title>Uzyskanie zlokalizowanych łańcuchów znaków</title>
  141. <para>
  142. Metoda <methodname>getTranslationList()</methodname> umożliwia dostęp do zlokalizowanych
  143. danych różnego rodzaju. Te informacje są przydatne jeśli zajdzie potrzeba
  144. zaprezentowania użytkownikowi zlokalizowanych danych. W takiej sytuacji nie ma
  145. potrzeby własnoręcznego tłumaczenia - odpowiednie dane są dostępne do użytku.
  146. </para>
  147. <para>
  148. Lista żądanych danych jest zawsze zwracana w postaci tablic asocjacyjnych.
  149. Jeśli istnieje potrzeba przekazania więcej niż jednego parametru do określonego
  150. typu, z którego chce się pobrać wartości to należy przekazać te parametry w
  151. postaci tablicy.
  152. </para>
  153. <example id="zend.locale.getdata.example-1">
  154. <title>getTranslationList</title>
  155. <programlisting language="php"><![CDATA[
  156. $list = Zend_Locale::getTranslationList('language', 'de_AT');
  157. print_r ($list);
  158. // przykładowe pary klucz -> wartość
  159. // [de] -> Deutsch
  160. // [en] -> Englisch
  161. // użycie jednego ze zwróconych kluczy jako parametru metody getTranslation()
  162. // dla innego języka
  163. print Zend_Locale::getTranslation('de', 'language', 'zh');
  164. // zwraca tłumaczenie nazwy języka określonego jako 'de' w języku chińskim
  165. ]]></programlisting>
  166. </example>
  167. <para>
  168. Podobne informacje można uzyskać dla wszystkich języków ale w niektórych przypadkach
  169. nie wszystkie dane są dostępne. Aby ułatwić dostęp do nich, pewne typy
  170. informacji są również dostępne poprzez dedykowane metody. Niżej znajduje
  171. się obszerniejszy opis.
  172. </para>
  173. <table id="zend.locale.getdata.table-1">
  174. <title>
  175. Szczegóły użycia metody getTranslationList($type = null, $locale = null, $value = null)
  176. </title>
  177. <tgroup cols="2">
  178. <thead>
  179. <row>
  180. <entry>Typ</entry>
  181. <entry>Opis</entry>
  182. </row>
  183. </thead>
  184. <tbody>
  185. <row>
  186. <entry><emphasis>Language</emphasis></entry>
  187. <entry>
  188. Zwraca zlokalizowaną listę wszystkich języków. Część identyfikatora
  189. locale wskazująca na język jest zwracana w kluczu a pełna nazwa w
  190. wartości
  191. </entry>
  192. </row>
  193. <row>
  194. <entry><emphasis>Script</emphasis></entry>
  195. <entry>
  196. Zwraca zlokalizowaną listę systemów pisma. Identyfikator systemu
  197. zwracany jest w kluczu, przetłumaczona nazwa - w wartości
  198. </entry>
  199. </row>
  200. <row>
  201. <entry><emphasis>Territory</emphasis></entry>
  202. <entry>
  203. Zwraca zlokalizowaną listę wszystkich terytoriów. Zawiera kraje,
  204. kontynenty i inne terytoria. Aby uzyskać jedynie terytoria i
  205. kontynenty należy przekazać jako wartość 1. Aby uzyskać kraje - 2.
  206. Tam gdzie jest to możliwe część locale wskazująca na kraj jest zwracana
  207. w kluczu, w pozostałych przypadkach podany jest oficjalny kod ISO
  208. danego terytorium. Przetłumaczona nazwa terytorium zwracana jest w
  209. wartości
  210. </entry>
  211. </row>
  212. <row>
  213. <entry><emphasis>Variant</emphasis></entry>
  214. <entry>
  215. Zwraca zlokalizowaną listę odmian systemów pisma. Identyfikator odmiany
  216. w kluczu a przetłumaczona nazwa w wartości
  217. </entry>
  218. </row>
  219. <row>
  220. <entry><emphasis>Key</emphasis></entry>
  221. <entry>
  222. Zwraca zlokalizowaną listę znanych kluczy. Są to generyczne wartości
  223. używane w tłumaczeniu. Są to kalendarz, sortowanie i waluta. W kluczu
  224. zwracany jest klucz a przetłumaczona nazwa w wartości
  225. </entry>
  226. </row>
  227. <row>
  228. <entry><emphasis>Type</emphasis></entry>
  229. <entry>
  230. Zwraca zlokalizowaną listę typów kluczy. Są to rodzaje kalendarzy oraz
  231. porządków sortowania. Jeśli poda się parametr 'collation' to zostanie
  232. zwrócona lista porządków sortowania. Dla parametru 'calendar' -
  233. rodzajów kalendarzy. Jeśli parametr nie zostanie podany to lista
  234. zwrotna będzie zawierała oba rodzaje danych. Rodzaj jest podany w
  235. kluczu a przetłumaczona nazwa w wartości
  236. </entry>
  237. </row>
  238. <row>
  239. <entry><emphasis>Layout</emphasis></entry>
  240. <entry>
  241. Zwraca listę zasad formatowania specjalnych znaków
  242. tekstowych
  243. </entry>
  244. </row>
  245. <row>
  246. <entry><emphasis>Characters</emphasis></entry>
  247. <entry>Zwraca listę dozwolonych znaków w ramach danego locale</entry>
  248. </row>
  249. <row>
  250. <entry><emphasis>Delimiters</emphasis></entry>
  251. <entry>Zwraca listę dozwolonych znaków służących do umieszczania
  252. w cudzysłowu dla danego locale</entry>
  253. </row>
  254. <row>
  255. <entry><emphasis>Measurement</emphasis></entry>
  256. <entry>
  257. Zwraca listę znanych jednostek miary. Lista jest nieaktualna
  258. </entry>
  259. </row>
  260. <row>
  261. <entry><emphasis>Months</emphasis></entry>
  262. <entry>
  263. Zwraca listę nazw miesięcy w danym locale. Zwracanych jest kilka
  264. różnych form reprezentacji miesięcy - każda w oddzielnej tablicy
  265. zagnieżdżonej. Jeśli nie poda się parametru to zostanie zwrócona pełna
  266. lista miesięcy z kalendarza gregoriańskiego. Można podać inną, znaną
  267. nazwę kalendarza aby uzyskać jego nazwy miesięcy.
  268. Z uwagi na prostotę można zamiast tego używać
  269. <link linkend="zend.date.introduction">Zend_Date</link>
  270. </entry>
  271. </row>
  272. <row>
  273. <entry><emphasis>Month</emphasis></entry>
  274. <entry>
  275. Zwraca zlokalizowaną listę miesięcy. Bez podania parametru zwracana
  276. jest zwykła lista pełnych nazw miesięcy wg. kalendarza gregoriańskiego.
  277. Numer porządkowy miesiąca znajduje się w kluczu a przetłumaczona
  278. nazwa w wartości. Można uzyskać nazwy miesięcy z innego kalendarza
  279. jeśli poda się tablicę w parametrze. Pierwszą wartością tej tablicy
  280. powinna być nazwa kalendarza, drugą - kontekst, trzecią - szerokość
  281. zwracanych danych. Z uwagi na prostotę można zamiast tego używać
  282. <link linkend="zend.date.introduction">Zend_Date</link>
  283. </entry>
  284. </row>
  285. <row>
  286. <entry><emphasis>Days</emphasis></entry>
  287. <entry>
  288. Zwraca listę nazw dni tygodnia w danym locale. Zwracanych jest kilka
  289. różnych form reprezentacji dni - każda w oddzielnej tablicy
  290. zagnieżdżonej. Jeśli nie poda się parametru to zostanie zwrócona pełna
  291. lista dni tygodnia z kalendarza gregoriańskiego. Można podać inną, znaną
  292. nazwę kalendarza aby uzyskać jego nazwy dni tygodnia.
  293. Z uwagi na prostotę można zamiast tego używać
  294. <link linkend="zend.date.introduction">Zend_Date</link>
  295. </entry>
  296. </row>
  297. <row>
  298. <entry><emphasis>Day</emphasis></entry>
  299. <entry>
  300. Zwraca zlokalizowaną listę dni tygodnia. Bez podania parametru zwracana
  301. jest zwykła lista pełnych nazw dni tygodnia wg. kalendarza
  302. gregoriańskiego ze skrótem angielskiej nazwy dnia tygodnia w kluczu
  303. i przetłumaczoną pełną nazwą dnia w wartości.
  304. Można uzyskać nazwy dni z innego kalendarza
  305. jeśli poda się tablicę w parametrze. Pierwszą wartością tej tablicy
  306. powinna być nazwa kalendarza, drugą - kontekst, trzecią - szerokość
  307. zwracanych danych. Z uwagi na prostotę można zamiast tego używać
  308. <link linkend="zend.date.introduction">Zend_Date</link>
  309. </entry>
  310. </row>
  311. <row>
  312. <entry><emphasis>Week</emphasis></entry>
  313. <entry>
  314. Zwraca listę wartości używanych przy obliczeniach dotyczących wygodni
  315. w ramach danego locale. Dla uproszczenia można korzystać z
  316. <link linkend="zend.date.introduction">Zend_Date</link>
  317. </entry>
  318. </row>
  319. <row>
  320. <entry><emphasis>Quarters</emphasis></entry>
  321. <entry>
  322. Zwraca zlokalizowaną listę wszystkich nazw kwartałów dla podanego
  323. locale. Istnieje szereg różnych zestawów nazw kwartałów - każdy z nich
  324. zwracany jest w osobnej tablicy zagnieżdżonej.
  325. Jeśli w parametrze nie zostanie podana wartość to zwrócona
  326. lista będzie dotyczyć kalandarza gregoriańskiego. Można uzyskać
  327. listę dla innego systemu kalendarza jeśli przekaże się jego nazwę w
  328. parametrze.
  329. </entry>
  330. </row>
  331. <row>
  332. <entry><emphasis>Quarter</emphasis></entry>
  333. <entry>
  334. Zwraca zlokalizowaną listę nazw kwartałów dla danego locale.
  335. Jeśli w parametrze nie zostanie podana wartość to zwrócona lista będzie
  336. dotyczyć kalandarza gregoriańskiego, gdzie numer porządkowy kwartału
  337. jest przechowywany w kluczu tablicy a przetłumaczona
  338. nazwa - w wartości. Można uzyskać listę dla innego systemu kalendarza
  339. jeśli przekaże się w parametrze tablicę zawierającą jego nazwę
  340. oraz szerokość łańcucha z nazwą żądanego kwartału.
  341. </entry>
  342. </row>
  343. <row>
  344. <entry><emphasis>Eras</emphasis></entry>
  345. <entry>
  346. Zwraca zlokalizowaną listę wszystkich nazw er (okresów) dla podanego
  347. locale. Jeśli w parametrze nie zostanie podana wartość to zwrócona
  348. lista będzie dotyczyć kalandarza gregoriańskiego. Można uzyskać
  349. listę dla innego systemu kalendarza jeśli przekaże się jego nazwę w
  350. parametrze.
  351. </entry>
  352. </row>
  353. <row>
  354. <entry><emphasis>Era</emphasis></entry>
  355. <entry>
  356. Zwraca zlokalizowaną listę nazw er (okresów) dla podanego locale.
  357. Jeśli w parametrze nie zostanie podana wartość to zwrócona lista będzie
  358. dotyczyć kalandarza gregoriańskiego, gdzie numer ery jest przechowywany
  359. w kluczu tablicy a przetłumaczona nazwa - w wartości. Można uzyskać
  360. listę dla innego systemu kalendarza jeśli przekaże się w parametrze
  361. tablicę zawierającą jego nazwę oraz szerokość łańcucha z nazwą żądanej
  362. ery.
  363. </entry>
  364. </row>
  365. <row>
  366. <entry><emphasis>Date</emphasis></entry>
  367. <entry>
  368. Zwraca zlokalizowaną listę wszystkich znanych formatów daty dla
  369. podanego locale. Nazwa formatu jest umieszczona w kluczu tablicy a
  370. sam format - w wartości. Jeśli w parametrze nie zostanie podana
  371. wartość to zwrócona lista będzie
  372. dotyczyć kalandarza gregoriańskiego. Można uzyskać listę dla innego
  373. systemu kalendarza jeśli przekaże się jego nazwę w parametrze.
  374. Dla uproszczenia można korzystać z
  375. <link linkend="zend.date.introduction">Zend_Date</link>.
  376. </entry>
  377. </row>
  378. <row>
  379. <entry><emphasis>Time</emphasis></entry>
  380. <entry>
  381. Zwraca zlokalizowaną listę wszystkich znanych formatów czasu dla
  382. podanego locale. Nazwa formatu jest umieszczona w kluczu tablicy a
  383. sam format - w wartości. Jeśli w parametrze nie zostanie podana
  384. wartość to zwrócona lista będzie
  385. dotyczyć kalandarza gregoriańskiego. Można uzyskać listę dla innego
  386. systemu kalendarza jeśli przekaże się jego nazwę w parametrze.
  387. Dla uproszczenia można korzystać z
  388. <link linkend="zend.date.introduction">Zend_Date</link>.
  389. </entry>
  390. </row>
  391. <row>
  392. <entry><emphasis>DateTime</emphasis></entry>
  393. <entry>
  394. Zwraca zlokalizowaną listę wszystkich znanych formatów daty i czasu dla
  395. podanego locale. Nazwa formatu jest umieszczona w kluczu tablicy a
  396. sam format - w wartości. Jeśli w parametrze nie zostanie podana
  397. wartość to zwrócona lista będzie
  398. dotyczyć kalandarza gregoriańskiego. Można uzyskać listę dla innego
  399. systemu kalendarza jeśli przekaże się jego nazwę w parametrze.
  400. Dla uproszczenia można korzystać z
  401. <link linkend="zend.date.introduction">Zend_Date</link>.
  402. </entry>
  403. </row>
  404. <row>
  405. <entry><emphasis>DateItem</emphasis></entry>
  406. <entry>
  407. Zwraca listę domyślnych formatów dla danej części daty lub czasu
  408. </entry>
  409. </row>
  410. <row>
  411. <entry><emphasis>DateInterval</emphasis></entry>
  412. <entry>
  413. Zwraca listę formatów daty i czasu, które są używane w przypadku
  414. wyświetlania różnic dat. Zwracana lista to wielowymiarowa tablica,
  415. gdzie pierwszym wymiarem jest format, drugim - składnik formatu o
  416. największej różnicy.
  417. </entry>
  418. </row>
  419. <row>
  420. <entry><emphasis>Field</emphasis></entry>
  421. <entry>
  422. Zwraca listę zlokalizowanych nazw części daty, które mogą zostać użyte
  423. do wyświetlenia kalendarza lub wyrazów takich jak 'miesiąc' czy 'rok'
  424. w odpowiednim języku. Jeśli nie zostanie podana wartość to zwrócona
  425. lista będzie
  426. dotyczyć kalandarza gregoriańskiego. Można uzyskać listę dla innego
  427. systemu kalendarza jeśli przekaże się jego nazwę w parametrze
  428. </entry>
  429. </row>
  430. <row>
  431. <entry><emphasis>Relative</emphasis></entry>
  432. <entry>
  433. Zwraca listę zlokalizowanych określeń relatywnych dat, których można
  434. użyć do wyświetlenia zwrotów typu 'wczoraj' czy 'jutro' w odpowiednim
  435. języku. Jeśli nie zostanie podana wartość to zwrócona lista będzie
  436. dotyczyć kalandarza gregoriańskiego. Można uzyskać listę dla innego
  437. systemu kalendarza jeśli przekaże się jego nazwę w parametrze
  438. </entry>
  439. </row>
  440. <row>
  441. <entry><emphasis>Symbols</emphasis></entry>
  442. <entry>
  443. Zwraca listę zlokalizowanych znaków używanych przy formatowaniu liczb.
  444. </entry>
  445. </row>
  446. <row>
  447. <entry><emphasis>NameToCurrency</emphasis></entry>
  448. <entry>
  449. Zwraca listę zlokalizowanych nazw walut. Kod waluty jest umieszczony w
  450. kluczu tablicy a przetłumaczona nazwa - w wartości. Dla uproszczenia
  451. można korzystać z
  452. <link linkend="zend.currency.introduction">Zend_Currency</link>
  453. </entry>
  454. </row>
  455. <row>
  456. <entry><emphasis>CurrencyToName</emphasis></entry>
  457. <entry>
  458. Zwraca listę kodów walut wg. zlokalizowanych nazw walut. Przetłumaczona
  459. nazwa jest umieszczona w kluczu a kod waluty - w wartości. Dla
  460. uproszczenia można używać
  461. <link linkend="zend.currency.introduction">Zend_Currency</link>
  462. </entry>
  463. </row>
  464. <row>
  465. <entry><emphasis>CurrencySymbol</emphasis></entry>
  466. <entry>
  467. Zwraca listę zlokalizowanych symboli walut. Kod waluty jest umieszczony
  468. w kluczu tablicy a symbol - w wartości. Dla uproszczenia można używać
  469. <link linkend="zend.currency.introduction">Zend_Currency</link>
  470. </entry>
  471. </row>
  472. <row>
  473. <entry><emphasis>Question</emphasis></entry>
  474. <entry>
  475. Zwraca listę zlokalizowanych odpowiedzi oznaczających zgodę ('yes')
  476. oraz zaprzeczenie ('no'). Dla uproszczenia można używać
  477. <link linkend="zend.locale.getquestion">metody getQuestion</link>
  478. </entry>
  479. </row>
  480. <row>
  481. <entry><emphasis>CurrencyFraction</emphasis></entry>
  482. <entry>
  483. Zwraca listę ilości miejsc po przecinku dla walut. Kod waluty
  484. jest umieszczony w kluczu tablicy a ilość miejsc po przecinku - w
  485. wartości. Dla uproszczenia można używać
  486. <link linkend="zend.currency.introduction">Zend_Currency</link>
  487. </entry>
  488. </row>
  489. <row>
  490. <entry><emphasis>CurrencyRounding</emphasis></entry>
  491. <entry>
  492. Zwraca listę sposobów zaokrąglenia dla walut. Kod waluty
  493. jest umieszczony w kluczu tablicy a ilość miejsc po przecinku do
  494. zaokrąglenia - w wartości. Dla uproszczenia można używać
  495. <link linkend="zend.currency.introduction">Zend_Currency</link>
  496. </entry>
  497. </row>
  498. <row>
  499. <entry><emphasis>CurrencyToRegion</emphasis></entry>
  500. <entry>
  501. Zwraca listę walut wg. regionu, w którym obowiązują. Kod regionu
  502. <constant>ISO3166</constant> jest umieszczony w kluczu tablicy a
  503. kod waluty <constant>ISO4217</constant> - w wartości.
  504. Dla uproszczenia można używać
  505. <link linkend="zend.currency.introduction">Zend_Currency</link>
  506. </entry>
  507. </row>
  508. <row>
  509. <entry><emphasis>RegionToCurrency</emphasis></entry>
  510. <entry>
  511. Zwraca listę regionów wg. obowiązującej waluty. Kod waluty
  512. <constant>ISO4217</constant> umieszczony jest w kluczu tablicy a
  513. kod regionu <constant>ISO3166</constant> - w wartości. Jeśli dana
  514. waluta jest używana w wielu regionach to są one oddzielone spacją.
  515. Dla uproszczenia można używać
  516. <link linkend="zend.currency.introduction">Zend_Currency</link>
  517. </entry>
  518. </row>
  519. <row>
  520. <entry><emphasis>RegionToTerritory</emphasis></entry>
  521. <entry>
  522. Zwraca listę terytoriów z krajami lub subterytoriami, które są zawarte
  523. w nich. Kod <acronym>ISO</acronym> terytorium jest używany jako klucz
  524. tablicy a kod <constant>ISO3166</constant> kraju/subterytorium - jako
  525. wartości. Jeśli terytorium zawiera więcej niż jedno
  526. państwo/subterytorium to są one oddzielone spacją.
  527. </entry>
  528. </row>
  529. <row>
  530. <entry><emphasis>TerritoryToRegion</emphasis></entry>
  531. <entry>
  532. Zwraca listę krajów lub subterytoriów z terytoriami w których są
  533. zawarte. Kod <constant>ISO3166</constant> kraju/subterytorium jest
  534. używany jako klucz tablicy a kod <acronym>ISO</acronym> terytorium -
  535. jako wartości. Jeśli państwo/subterytorium wchodzi w skład więcej niż
  536. jednego terytorium to są one oddzielone spacją.
  537. </entry>
  538. </row>
  539. <row>
  540. <entry><emphasis>ScriptToLanguage</emphasis></entry>
  541. <entry>
  542. Zwraca listę systemów pisma, jakie są używane w ramach języka. Kod
  543. języka jest umieszczony w kluczu tablicy a kod systemu pisma - w
  544. wartości. Jeśli język posługuje się wieloma systemami to są one
  545. oddzielone spacją.
  546. </entry>
  547. </row>
  548. <row>
  549. <entry><emphasis>LanguageToScript</emphasis></entry>
  550. <entry>
  551. Zwraca listę języków i systemów pisma, jakie są używane w jego ramach.
  552. Kod systemu jest umieszczony w kluczu tablicy a kod języka - w
  553. wartości. Jeśli system jest używany w wielu językach to są one
  554. oddzielone spacją.
  555. </entry>
  556. </row>
  557. <row>
  558. <entry><emphasis>TerritoryToLanguage</emphasis></entry>
  559. <entry>
  560. Zwraca listę państw używających określonego języka. Kod państwa jest
  561. umieszczany w kluczu tablicy a kod języka - w wartości. Jeśli dany
  562. język jest używany w więcej niż jednym państwie to zostają one
  563. oddzielone spacją.
  564. </entry>
  565. </row>
  566. <row>
  567. <entry><emphasis>LanguageToTerritory</emphasis></entry>
  568. <entry>
  569. Zwraca listę języków i państw używających określonego języka.
  570. Kod języka jest umieszczany w kluczu tablicy a kod państwa - w wartości.
  571. Jeśli dane państwo używa więcej niż jednego języka zostają one
  572. oddzielone spacją.
  573. </entry>
  574. </row>
  575. <row>
  576. <entry><emphasis>TimezoneToWindows</emphasis></entry>
  577. <entry>
  578. Zwraca listę stref czasowych Windows i odpowiadających im stref
  579. czasowych <acronym>ISO</acronym>. Strefa Windows jest umieszczona w
  580. kluczu a strefa <acronym>ISO</acronym> - w wartości.
  581. </entry>
  582. </row>
  583. <row>
  584. <entry><emphasis>WindowsToTimezone</emphasis></entry>
  585. <entry>
  586. Zwraca listę stref czasowych <acronym>ISO</acronym> i odpowiadających
  587. im stref czasowych Windows. Strefa <acronym>ISO</acronym> jest
  588. umieszczona w kluczu a strefa Windows - w wartości.
  589. </entry>
  590. </row>
  591. <row>
  592. <entry><emphasis>TerritoryToTimezone</emphasis></entry>
  593. <entry>
  594. Zwraca listę terytoriów i związanych z nimi stref czasowych
  595. <acronym>ISO</acronym>. Strefa czasowa jest umieszczona w kluczu a
  596. kod terytorium (regionu) - w wartości.
  597. </entry>
  598. </row>
  599. <row>
  600. <entry><emphasis>TimezoneToTerritory</emphasis></entry>
  601. <entry>
  602. Zwraca listę stref czasowych <acronym>ISO</acronym> i związanych z nimi
  603. terytoriów. Kod terytorium (regionu) jest umieszczony w kluczu a
  604. strefa czasowa - w wartości.
  605. </entry>
  606. </row>
  607. <row>
  608. <entry><emphasis>CityToTimezone</emphasis></entry>
  609. <entry>
  610. Zwraca zlokalizowaną listę nazw miast, które mogą zostać użyte przy
  611. tłumaczeniu nazw stref czasowych. Lista nie jest dostępna dla
  612. wszystkich stref ale dla użytkownika może być ważniejsze wyszukanie
  613. przetłumaczonej nazwy konkretnego miasta niż nazwy
  614. <acronym>ISO</acronym> strefy czasowej. Nazwa <acronym>ISO</acronym>
  615. strefy jest umieszczona w kluczu a
  616. przetłumaczona nazwa miasta - w wartości.
  617. </entry>
  618. </row>
  619. <row>
  620. <entry><emphasis>TimezoneToCity</emphasis></entry>
  621. <entry>
  622. Zwraca zlokalizowaną listę nazw nazw stref czasowych i przetłumaczonych
  623. nazw miast. Miasto jest umieszczone w kluczu a strefa czasowa
  624. <acronym>ISO</acronym> - w wartości.
  625. </entry>
  626. </row>
  627. <row>
  628. <entry><emphasis>PhoneToTerritory</emphasis></entry>
  629. <entry>
  630. Zwraca listę telefonicznych kodów kierunkowych i terytoriów w których
  631. obowiązują. Nazwa terytorium (regionu) umieszczona jest w kluczu a
  632. kod kierunkowy - w wartości.
  633. </entry>
  634. </row>
  635. <row>
  636. <entry><emphasis>TerritoryToPhone</emphasis></entry>
  637. <entry>
  638. Zwraca listę terytoriów i ich telefonicznych kodów kierunkowych.
  639. Kod jest umieszczony
  640. w kluczu tablicy a nazwa terytorium (regionu) - w wartości. Jeśli dany
  641. kod jest używany w więcej niż jednym regionie są one oddzielone spacją.
  642. </entry>
  643. </row>
  644. <row>
  645. <entry><emphasis>NumericToTerritory</emphasis></entry>
  646. <entry>
  647. Zwraca listę 3-cyfrowych kodów odpowiadających terytoriom. Terytorium
  648. (region) jest umieszczany w kluczu a 3-cyfrowy kod - w wartości.
  649. </entry>
  650. </row>
  651. <row>
  652. <entry><emphasis>TerritoryToNumeric</emphasis></entry>
  653. <entry>
  654. Zwraca listę terytoriów z ich 3-cyfrowym kodem. 3-cyfrowy kod jest
  655. umieszczony w kluczu a nazwa terytorium (regionu) w wartości.
  656. </entry>
  657. </row>
  658. <row>
  659. <entry><emphasis>Alpha3ToTerritory</emphasis></entry>
  660. <entry>
  661. Zwraca listę 3-literowych kodów odpowiadających terytoriom. Terytorium
  662. (region) jest umieszczany w kluczu a 3-literowy kod - w wartości.
  663. </entry>
  664. </row>
  665. <row>
  666. <entry><emphasis>TerritoryToAlpha3</emphasis></entry>
  667. <entry>
  668. Zwraca listę terytoriów z ich 3-literowym kodem. 3-literowy kod jest
  669. umieszczony w kluczu a nazwa terytorium (regionu) w wartości.
  670. </entry>
  671. </row>
  672. <row>
  673. <entry><emphasis>PostalToTerritory</emphasis></entry>
  674. <entry>
  675. Zwraca listę terytoriów z wyrażeniem regularnym sprawdzającym poprawność
  676. kodu pocztowego w danym terytorium. Kod <acronym>ISO</acronym>
  677. terytorium jest umieszczony w kluczu z regex - w wartości.
  678. </entry>
  679. </row>
  680. <row>
  681. <entry><emphasis>NumberingSystem</emphasis></entry>
  682. <entry>
  683. Zwraca listę systemów pisma z cyframi używanymi w danym systemie.
  684. </entry>
  685. </row>
  686. <row>
  687. <entry><emphasis>FallbackToChar</emphasis></entry>
  688. <entry>
  689. Zwraca listę znaków specjalnych i ich odpowiedników w unicode. Dzięki
  690. temu można np. zamienić "©" na "(C)".
  691. </entry>
  692. </row>
  693. <row>
  694. <entry><emphasis>CharToFallback</emphasis></entry>
  695. <entry>
  696. Zwraca listę znaków unicode dla często zastępowanych znaków. Dzięki
  697. temu można np. zamienić "(C)" na "©"
  698. </entry>
  699. </row>
  700. <row>
  701. <entry><emphasis>LocaleUpgrade</emphasis></entry>
  702. <entry>
  703. Zwraca listę zależności locale, co może zostać wykorzystane do
  704. rozwinięcia podanego języka do pełnego identyfikatora locale
  705. </entry>
  706. </row>
  707. <row>
  708. <entry><emphasis>Unit</emphasis></entry>
  709. <entry>
  710. Zwraca listę zlokalizowanych jednostek kalendarzowych. Dzięki temu można
  711. automatycznie przetłumaczyć łańcuchy takie jak "day", "month" itp.
  712. </entry>
  713. </row>
  714. </tbody>
  715. </tgroup>
  716. </table>
  717. <para>
  718. Jeśli potrzebna jest pojedyncza przetłumaczona wartość można skorzystać z metody
  719. <methodname>getTranslation()</methodname>. Zawsze zwracany jest łańcuch znaków zaś
  720. przyjmowane argumenty są różne od tych przyjmowanych przez
  721. <methodname>getTranslationList()</methodname>.
  722. Parametr wartości jest taki sam jak wcześniej z jedną różnicą - identyfikator
  723. żądanego detalu musi zostać przekazany jako dodatkowy parametr.
  724. </para>
  725. <note>
  726. <para>
  727. Ponieważ wartość prawie zawsze musi być przekazana to staje się ona pierwszym
  728. parametrem. Jest to różnica w stosunku do metody
  729. <methodname>getTranslationList()</methodname>.
  730. </para>
  731. </note>
  732. <para>
  733. Poniżej przedstawiono tabelę zawierającą bardziej szczegółowe informacje:
  734. </para>
  735. <table id="zend.locale.getdata.table-2">
  736. <title>
  737. Szczegóły użycia metody getTranslation($value = null, $type = null, $locale = null)
  738. </title>
  739. <tgroup cols="2">
  740. <thead>
  741. <row>
  742. <entry>Typ</entry>
  743. <entry>Opis</entry>
  744. </row>
  745. </thead>
  746. <tbody>
  747. <row>
  748. <entry><emphasis>Language</emphasis></entry>
  749. <entry>
  750. Zwraca tłumaczenie nazwy języka. Aby uzyskać żądane tłumaczenie należy
  751. w parametrze wartości przekazać kod języka
  752. </entry>
  753. </row>
  754. <row>
  755. <entry><emphasis>Script</emphasis></entry>
  756. <entry>
  757. Zwraca tłumaczenie nazwy systemu pisma. Aby uzyskać żądane
  758. tłumaczenie należy w parametrze wartości przekazać kod systemu pisma
  759. </entry>
  760. </row>
  761. <row>
  762. <entry>
  763. <emphasis>Territory</emphasis> lub <emphasis>Country</emphasis>
  764. </entry>
  765. <entry>
  766. Zwraca tłumaczenie nazwy terytorium. Mogą to być kraje, kontynenty
  767. i inne terytoria. Aby uzyskać żądane tłumaczenie należy w parametrze
  768. wartości przekazać kod terytorium
  769. </entry>
  770. </row>
  771. <row>
  772. <entry><emphasis>Variant</emphasis></entry>
  773. <entry>
  774. Zwraca tłumaczenie nazwy odmiany systemu pisma. Aby uzyskać żądane
  775. tłumaczenie należy w parametrze wartości przekazać kod żądanej odmiany
  776. </entry>
  777. </row>
  778. <row>
  779. <entry><emphasis>Key</emphasis></entry>
  780. <entry>
  781. Zwraca tłumaczenie nazw znanych kluczy. Są to generyczne wartości
  782. używane w tłumaczeniach oznaczające system kalendarza, porządek
  783. sortowania, walutę. Aby uzyskać żądane tłumaczenie należy w
  784. parametrze wartości przekazać kod klucza
  785. </entry>
  786. </row>
  787. <row>
  788. <entry><emphasis>DefaultCalendar</emphasis></entry>
  789. <entry>
  790. Zwraca domyślny system kalendarza dla podanego locale. Dla większości
  791. będzie to 'gregorian'. Dla uproszczenia można używać
  792. <link linkend="zend.date.introduction">Zend_Date</link>
  793. </entry>
  794. </row>
  795. <row>
  796. <entry><emphasis>MonthContext</emphasis></entry>
  797. <entry>
  798. Zwraca domyślny kontekst miesięcy, który jest używany w ramach podanego
  799. systemu kalendarza. Jeśli nie poda się nazwy kalendarza to zostanie
  800. użyta domyślna nazwa - 'gregorian'. Dla uproszczenia można korzystać z
  801. <link linkend="zend.date.introduction">Zend_Date</link>
  802. </entry>
  803. </row>
  804. <row>
  805. <entry><emphasis>DefaultMonth</emphasis></entry>
  806. <entry>
  807. Zwraca domyślny format miesięcy, który jest używany w ramach podanego
  808. systemu kalendarza. Jeśli nie poda się nazwy kalendarza to zostanie
  809. użyta domyślna nazwa - 'gregorian'. Dla uproszczenia można korzystać z
  810. <link linkend="zend.date.introduction">Zend_Date</link>
  811. </entry>
  812. </row>
  813. <row>
  814. <entry><emphasis>Month</emphasis></entry>
  815. <entry>
  816. Zwraca tłumaczenie nazwy miesiąca. Należy podać numer miesiąca w postaci
  817. liczby (w zakresie 1-12). Jeśli występuje potrzeba pobrania danych dla
  818. innego kalendarza, kontekstu czy formatu to przekazany argument musi
  819. być tablicą zawierającą oczekiwane dane. Tablica musi mieć następującą
  820. strukturę:
  821. <code>array( 'calendar', 'context', 'format', 'month number')</code>.
  822. W przypadku podania jedynie numeru miesiąca domyślnymi wartościami
  823. są kalendarz - 'gregorian', contekst - 'format', format - 'wide'.
  824. Dla uproszczenia można korzystać z
  825. <link linkend="zend.date.introduction">Zend_Date</link>
  826. </entry>
  827. </row>
  828. <row>
  829. <entry><emphasis>DayContext</emphasis></entry>
  830. <entry>
  831. Zwraca domyślny kontekst dni, który jest używany w ramach podanego
  832. systemu kalendarza. Jeśli nie poda się nazwy kalendarza to zostanie
  833. użyta domyślna nazwa - 'gregorian'. Dla uproszczenia można korzystać z
  834. <link linkend="zend.date.introduction">Zend_Date</link>
  835. </entry>
  836. </row>
  837. <row>
  838. <entry><emphasis>DefaultDay</emphasis></entry>
  839. <entry>
  840. Zwraca domyślny format dni, który jest używany w ramach podanego
  841. systemu kalendarza. Jeśli nie poda się nazwy kalendarza to zostanie
  842. użyta domyślna nazwa - 'gregorian'. Dla uproszczenia można korzystać z
  843. <link linkend="zend.date.introduction">Zend_Date</link>
  844. </entry>
  845. </row>
  846. <row>
  847. <entry><emphasis>Day</emphasis></entry>
  848. <entry>
  849. Zwraca tłumaczenie nazwy dnia tygodnia. Należy podać angielski skrót
  850. żądanego dnia tygodnia w postaci łańcucha znaków ('sun', 'mon', itp.).
  851. Jeśli występuje potrzeba pobrania danych dla
  852. innego kalendarza, kontekstu czy formatu to przekazany argument musi
  853. być tablicą zawierającą oczekiwane dane. Tablica musi mieć następującą
  854. strukturę:
  855. <code>array( 'calendar', 'context', 'format','day abbreviation')</code>.
  856. W przypadku podania jedynie skrótu dnia domyślnymi wartościami
  857. są kalendarz - 'gregorian', contekst - 'format', format - 'wide'.
  858. Dla uproszczenia można korzystać z
  859. <link linkend="zend.date.introduction">Zend_Date</link>
  860. </entry>
  861. </row>
  862. <row>
  863. <entry><emphasis>Quarter</emphasis></entry>
  864. <entry>
  865. Zwraca tłumaczenie nazwy kwartału. Należy podać numer kwartału w postaci
  866. liczby całkowitej (w zakresie 1-4).
  867. Jeśli występuje potrzeba pobrania danych dla
  868. innego kalendarza, kontekstu czy formatu to przekazany argument musi
  869. być tablicą zawierającą oczekiwane dane. Tablica musi mieć następującą
  870. strukturę:
  871. <code>array( 'calendar', 'context', 'format','quarter number')</code>.
  872. W przypadku podania jedynie numeru kwartału domyślnymi wartościami
  873. są kalendarz - 'gregorian', contekst - 'format', format - 'wide'
  874. </entry>
  875. </row>
  876. <row>
  877. <entry><emphasis>Am</emphasis></entry>
  878. <entry>
  879. Zwraca tłumaczenie 'AM' dla podanego locale. Jeśli występuje potrzeba
  880. pobrania danych dla innego kalendarza, należy podać jego nazwę w
  881. argumencie. Bez podania nazwy zostanie użyty kalendarz gregoriański.
  882. Dla uproszczenia można korzystać z
  883. <link linkend="zend.date.introduction">Zend_Date</link>
  884. </entry>
  885. </row>
  886. <row>
  887. <entry><emphasis>Pm</emphasis></entry>
  888. <entry>
  889. Zwraca tłumaczenie 'AM' dla podanego locale. Jeśli występuje potrzeba
  890. pobrania danych dla innego kalendarza, należy podać jego nazwę w
  891. argumencie. Bez podania nazwy zostanie użyty kalendarz gregoriański.
  892. Dla uproszczenia można korzystać z
  893. <link linkend="zend.date.introduction">Zend_Date</link>
  894. </entry>
  895. </row>
  896. <row>
  897. <entry><emphasis>Era</emphasis></entry>
  898. <entry>
  899. Zwraca tłumaczenie nazwy ery. Należy podać numer ery w postaci
  900. liczby całkowitej. Jeśli występuje potrzeba pobrania danych dla
  901. innego kalendarza czy formatu to przekazany argument musi
  902. być tablicą zawierającą oczekiwane dane. Tablica musi mieć następującą
  903. strukturę:
  904. <code>array('calendar', 'format','era number')</code>.
  905. W przypadku podania jedynie numeru kwartału domyślnymi wartościami
  906. są kalendarz - 'gregorian', format - 'abbr'
  907. </entry>
  908. </row>
  909. <row>
  910. <entry><emphasis>DefaultDate</emphasis></entry>
  911. <entry>
  912. Zwraca domyślny format daty używany w ramach danego kalendarza.
  913. Bez podania nazwy zostanie użyty kalendarz gregoriański.
  914. Dla uproszczenia można korzystać z
  915. <link linkend="zend.date.introduction">Zend_Date</link>
  916. </entry>
  917. </row>
  918. <row>
  919. <entry><emphasis>Date</emphasis></entry>
  920. <entry>
  921. Zwraca format daty dla danego kalendarza lub format w ramach locale.
  922. Bez podania nazwy zostanie użyty kalendarz gregoriański z formatem
  923. 'medium'. Jeśli zostanie podana nazwa w łańcuchu wtedy użyty będzie
  924. kalendarz gregoriański z formatem o podanej nazwie. Można podać również
  925. tablicę o strukturze:
  926. <methodname>array('calendar','format')</methodname>.
  927. Dla uproszczenia można korzystać z
  928. <link linkend="zend.date.introduction">Zend_Date</link>
  929. </entry>
  930. </row>
  931. <row>
  932. <entry><emphasis>DefaultTime</emphasis></entry>
  933. <entry>
  934. Zwraca domyślny format czasu w ramach danego kalendarza.
  935. Bez podania nazwy zostanie użyty kalendarz gregoriański.
  936. Dla uproszczenia można korzystać z
  937. <link linkend="zend.date.introduction">Zend_Date</link>
  938. </entry>
  939. </row>
  940. <row>
  941. <entry><emphasis>Time</emphasis></entry>
  942. <entry>
  943. Zwraca format czasu dla danego kalendarza lub format w ramach locale.
  944. Bez podania nazwy zostanie użyty kalendarz gregoriański z formatem
  945. 'medium'. Jeśli zostanie podana nazwa w łańcuchu wtedy użyty będzie
  946. kalendarz gregoriański z formatem o podanej nazwie. Można podać również
  947. tablicę o strukturze:
  948. <methodname>array('calendar','format')</methodname>.
  949. Dla uproszczenia można korzystać z
  950. <link linkend="zend.date.introduction">Zend_Date</link>
  951. </entry>
  952. </row>
  953. <row>
  954. <entry><emphasis>DateTime</emphasis></entry>
  955. <entry>
  956. Zwraca format daty i czasu dla danego locale, co wskazuje na sposób
  957. reprezentowania daty z czasem w jednym łańcuchu znaków w ramach
  958. danego kalendarza. Bez podania nazwy zostanie użyty kalendarz
  959. gregoriański. Dla uproszczenia można korzystać z
  960. <link linkend="zend.date.introduction">Zend_Date</link>
  961. </entry>
  962. </row>
  963. <row>
  964. <entry><emphasis>DateItem</emphasis></entry>
  965. <entry>
  966. Zwraca domyślny format dla podanej części daty lub czasu
  967. </entry>
  968. </row>
  969. <row>
  970. <entry><emphasis>DateInterval</emphasis></entry>
  971. <entry>
  972. Zwraca format różnicy dla podanego formatu daty lub czasu. Pierwszą
  973. wartością jest nazwa kalendarza, przeważnie 'gregorian'. Drugą
  974. wartością format daty lub czasu a trzecią - część formatu o największej
  975. różnicy. Dla przykładu: array('gregorian', 'yMMMM', 'y') zwróci
  976. format różnicy dla formatu daty 'yMMMM' gdzie 'y' ma największą różnicę.
  977. </entry>
  978. </row>
  979. <row>
  980. <entry><emphasis>Field</emphasis></entry>
  981. <entry>
  982. Zwraca zlokalizowany element daty, co może zostać wykorzystane do
  983. wyświetlania łańcuchów takich jak 'miesiąc' czy 'rok' przetłumaczonych
  984. na podany język. Element, który ma zostać przetłumaczony musi być
  985. podany w argumencie. Domyślnie użyty będzie kalendarz gregoriański.
  986. Aby skorzystać z innego systemu kalendarza należy podać tablicę o
  987. poniższej strukturze:
  988. <methodname>array('calendar', 'date field')</methodname>
  989. </entry>
  990. </row>
  991. <row>
  992. <entry><emphasis>Relative</emphasis></entry>
  993. <entry>
  994. Zwraca przetłumaczoną, relatywną datę w stosunku do obecnej chwili.
  995. Wynik może zawierać łańcuchy znaków takie jak 'wczoraj' czy 'jutro'
  996. w podanym języku. W argumencie należy podać ilość dni w stosunku
  997. do bieżącego dnia. Dla dnia poprzedniego będzie to '-1', dla
  998. następnego - '1' itp. Domyślnie użyty będzie kalendarz gregoriański.
  999. Aby skorzystać z innego systemu kalendarza należy podać tablicę o
  1000. poniższej strukturze:
  1001. <methodname>array('calendar', 'relative days')</methodname>
  1002. Dla uproszczenia można korzystać z
  1003. <link linkend="zend.date.introduction">Zend_Date</link>
  1004. </entry>
  1005. </row>
  1006. <row>
  1007. <entry><emphasis>DecimalNumber</emphasis></entry>
  1008. <entry>
  1009. Zwraca format liczb dziesiętnych obowiązujący w danym locale.
  1010. Dla uproszczenia można korzystać z
  1011. <link linkend="zend.date.introduction">Zend_Locale_Format</link>
  1012. </entry>
  1013. </row>
  1014. <row>
  1015. <entry><emphasis>ScientificNumber</emphasis></entry>
  1016. <entry>
  1017. Zwraca naukowy format liczb obowiązujący w danym locale
  1018. </entry>
  1019. </row>
  1020. <row>
  1021. <entry><emphasis>PercentNumber</emphasis></entry>
  1022. <entry>
  1023. Zwraca format liczb procentowych obowiązujący w danym locale
  1024. </entry>
  1025. </row>
  1026. <row>
  1027. <entry><emphasis>CurrencyNumber</emphasis></entry>
  1028. <entry>
  1029. Zwraca format używany do reprezentacji kwot walut obowiązujący
  1030. w danym locale. Dla uproszczenia można korzystać z
  1031. <link linkend="zend.date.introduction">Zend_Currency</link>
  1032. </entry>
  1033. </row>
  1034. <row>
  1035. <entry><emphasis>NameToCurrency</emphasis></entry>
  1036. <entry>
  1037. Zwraca przetłumaczoną nazwę podanej waluty. Waluta musi być podana w
  1038. formacie <acronym>ISO</acronym>. Np.: 'EUR' dla waluty 'euro'.
  1039. Dla uproszczenia można korzystać z
  1040. <link linkend="zend.date.introduction">Zend_Currency</link>
  1041. </entry>
  1042. </row>
  1043. <row>
  1044. <entry><emphasis>CurrencyToName</emphasis></entry>
  1045. <entry>
  1046. Zwraca walutę dla podanej zlokalizowanej nazwy
  1047. Dla uproszczenia można korzystać z
  1048. <link linkend="zend.date.introduction">Zend_Currency</link>
  1049. </entry>
  1050. </row>
  1051. <row>
  1052. <entry><emphasis>CurrencySymbol</emphasis></entry>
  1053. <entry>
  1054. Zwraca symbol waluty używanej w ramach podanego locale. Nie wszystkie
  1055. waluty mają swój symbol. Dla uproszczenia można korzystać z
  1056. <link linkend="zend.date.introduction">Zend_Currency</link>
  1057. </entry>
  1058. </row>
  1059. <row>
  1060. <entry><emphasis>Question</emphasis></entry>
  1061. <entry>
  1062. Zwraca zlokalizowane łańcuchy znaków oznaczające potwierdzenie lub
  1063. zaprzeczenie. Należy podać 'yes' lub 'no' jako parametr aby otrzymać
  1064. odpowiednie tłumaczenie. Dla uproszczenia można korzystać z
  1065. <link linkend="zend.locale.getquestion">Zend_Locale::getQuestion</link>
  1066. </entry>
  1067. </row>
  1068. <row>
  1069. <entry><emphasis>CurrencyFraction</emphasis></entry>
  1070. <entry>
  1071. Zwraca część składową danej waluty. Waluta musi być podana w
  1072. formacie <acronym>ISO</acronym>. Np.: 'EUR' dla waluty 'euro'.
  1073. Dla uproszczenia można korzystać z
  1074. <link linkend="zend.date.introduction">Zend_Currency</link>
  1075. </entry>
  1076. </row>
  1077. <row>
  1078. <entry><emphasis>CurrencyRounding</emphasis></entry>
  1079. <entry>
  1080. Zwraca format zaokrąglenia danej waluty. Waluta musi być podana w
  1081. formacie <acronym>ISO</acronym>. Np.: 'EUR' dla waluty Euro. Jeśli
  1082. nie poda się nazwy to zostanie użyte zaokrąglenie 'DEFAULT'.
  1083. Dla uproszczenia można korzystać z
  1084. <link linkend="zend.date.introduction">Zend_Currency</link>
  1085. </entry>
  1086. </row>
  1087. <row>
  1088. <entry><emphasis>CurrencyToRegion</emphasis></entry>
  1089. <entry>
  1090. Zwraca walutę dla podanego regionu. Kod regionu musi być podany w formie
  1091. łańcucha znaków <constant>ISO3166</constant>. Np.: 'AT' dla Austrii.
  1092. Dla uproszczenia można korzystać z
  1093. <link linkend="zend.date.introduction">Zend_Currency</link>
  1094. </entry>
  1095. </row>
  1096. <row>
  1097. <entry><emphasis>RegionToCurrency</emphasis></entry>
  1098. <entry>
  1099. Zwraca listę regionów, gdzie dana waluta jest używana. Kod waluty
  1100. musi być podany w formie łańcucha znaków <constant>ISO4217</constant>.
  1101. Np.: 'EUR' dla Euro. Jeśli waluta jest używana w wielu regionach to
  1102. zostaną one oddzielone spacją.
  1103. Dla uproszczenia można korzystać z
  1104. <link linkend="zend.date.introduction">Zend_Currency</link>
  1105. </entry>
  1106. </row>
  1107. <row>
  1108. <entry><emphasis>RegionToTerritory</emphasis></entry>
  1109. <entry>
  1110. Zwraca listę regionów danego terytorium. Terytorium powinno być podane
  1111. jako łańcuch znaków standardu <constant>ISO4217</constant> (np. '001'
  1112. oznacza 'cały świat'). Nazwy zwracanych regionów są oddzielone spacją
  1113. </entry>
  1114. </row>
  1115. <row>
  1116. <entry><emphasis>TerritoryToRegion</emphasis></entry>
  1117. <entry>
  1118. Zwraca terytoria lokalizacji podanego regionu. Region powinien być
  1119. podany jako łańcuch znaków standardu <constant>ISO3166</constant>
  1120. (np. 'AT' - Austria). Jeśli region rozciąga się na wiele terytoriów
  1121. to ich nazwy oddzielone są spacją
  1122. </entry>
  1123. </row>
  1124. <row>
  1125. <entry><emphasis>ScriptToLanguage</emphasis></entry>
  1126. <entry>
  1127. Zwraca systemy pisma używane w ramach danego locale. Język musi być
  1128. podany w formie kodu <acronym>ISO</acronym> (np. 'en' - angielski).
  1129. Jeśli dany język używa więcej niż jednego systemu pisma to ich nazwy
  1130. oddzielone są spacją
  1131. </entry>
  1132. </row>
  1133. <row>
  1134. <entry><emphasis>LanguageToScript</emphasis></entry>
  1135. <entry>
  1136. Zwraca języki używające danego systemu pisma. System pisma musi być
  1137. podany w formie kodu <acronym>ISO</acronym> (np. 'Latn' - Łacina).
  1138. Jeśli systemu pisma jest używany przez więcej niż jeden język to ich
  1139. nazwy oddzielone są spacją
  1140. </entry>
  1141. </row>
  1142. <row>
  1143. <entry><emphasis>TerritoryToLanguage</emphasis></entry>
  1144. <entry>
  1145. Zwraca terytoria gdzie dany język jest używany. Język musi być
  1146. podany w formie kodu <acronym>ISO</acronym> (np. 'en' - angielski).
  1147. Jeśli dany język jest używany przez więcej niż jedno terytorium
  1148. to ich nazwy oddzielone są spacją
  1149. </entry>
  1150. </row>
  1151. <row>
  1152. <entry><emphasis>LanguageToTerritory</emphasis></entry>
  1153. <entry>
  1154. Zwraca listę języków danego terytorium. Terytorium powinno być podane
  1155. jako łańcuch znaków standardu <constant>ISO3166</constant> (np. 'IT'
  1156. oznacza Włochy). Jeśli na danym terytorium używa się więcej niż
  1157. jednego języka to ich nazwy oddzielone są spacją
  1158. </entry>
  1159. </row>
  1160. <row>
  1161. <entry><emphasis>TimezoneToWindows</emphasis></entry>
  1162. <entry>
  1163. Zwraca strefę czasową <acronym>ISO</acronym> odpowiadającą strefie
  1164. czasowej Windows
  1165. </entry>
  1166. </row>
  1167. <row>
  1168. <entry><emphasis>WindowsToTimezone</emphasis></entry>
  1169. <entry>
  1170. Zwraca strefę czasową Windows odpowiadającą strefie
  1171. czasowej <acronym>ISO</acronym>
  1172. </entry>
  1173. </row>
  1174. <row>
  1175. <entry><emphasis>TerritoryToTimezone</emphasis></entry>
  1176. <entry>
  1177. Zwraca terytorium odpowiadające danej strefie czasowej
  1178. <acronym>ISO</acronym>
  1179. </entry>
  1180. </row>
  1181. <row>
  1182. <entry><emphasis>TimezoneToTerritory</emphasis></entry>
  1183. <entry>
  1184. Zwraca strefę czasową <acronym>ISO</acronym> odpowiadającą danemu
  1185. terytorium
  1186. </entry>
  1187. </row>
  1188. <row>
  1189. <entry><emphasis>CityToTimezone</emphasis></entry>
  1190. <entry>
  1191. Zwraca zlokalizowaną nazwę miasta odpowiadającą danej strefie czasowej
  1192. <acronym>ISO</acronym>. Nie wszystkie strefy mają przypisaną
  1193. przetłumaczoną nazwę miasta
  1194. </entry>
  1195. </row>
  1196. <row>
  1197. <entry><emphasis>TimezoneToCity</emphasis></entry>
  1198. <entry>
  1199. Zwraca strefę czasową <acronym>ISO</acronym> odpowiadającą podanej,
  1200. zlokalizowanej nazwie miasta. Nie wszystkie miasta mają przypisaną
  1201. strefę czasową
  1202. </entry>
  1203. </row>
  1204. <row>
  1205. <entry><emphasis>PhoneToTerritory</emphasis></entry>
  1206. <entry>
  1207. Zwraca kod telefoniczny odpowiadający podanemu terytorium (regionowi).
  1208. Kod terytorium musi być podany w standardzie
  1209. <constant>ISO3166</constant> (np. 'AT' - Austria)
  1210. </entry>
  1211. </row>
  1212. <row>
  1213. <entry><emphasis>TerritoryToPhone</emphasis></entry>
  1214. <entry>
  1215. Zwraca terytorium (region) na którym obowiązuje podany kod telefoniczny.
  1216. Kod musi być podany w postaci cyfr (np. '43' zamiast '+43'). Jeśli
  1217. dany kod jest używany na wielu terytoriach to ich nazwy oddzielone są
  1218. spacją
  1219. </entry>
  1220. </row>
  1221. <row>
  1222. <entry><emphasis>NumericToTerritory</emphasis></entry>
  1223. <entry>
  1224. Zwraca 3-cyfrowy kod podanego terytorium (regionu). Nazwa terytorium
  1225. musi być podana w standardzie <constant>ISO3166</constant> (np. 'AT'
  1226. oznacza Austrię)
  1227. </entry>
  1228. </row>
  1229. <row>
  1230. <entry><emphasis>TerritoryToNumeric</emphasis></entry>
  1231. <entry>
  1232. Zwraca terytorium (region) odpowiadający podanemu 3-cyfrowemu kodowi.
  1233. Kod musi być podany w postaci samych cyfr (np. '43')
  1234. </entry>
  1235. </row>
  1236. <row>
  1237. <entry><emphasis>Alpha3ToTerritory</emphasis></entry>
  1238. <entry>
  1239. Zwraca 3-znakowy kod podanego terytorium (regionu). Nazwa terytorium
  1240. musi być podana w standardzie <constant>ISO3166</constant> (np. 'AT'
  1241. dla Austrii)
  1242. </entry>
  1243. </row>
  1244. <row>
  1245. <entry><emphasis>TerritoryToAlpha3</emphasis></entry>
  1246. <entry>
  1247. Zwraca terytorium (region) odpowiadający danemu 3-znakowemu kodowi
  1248. </entry>
  1249. </row>
  1250. <row>
  1251. <entry><emphasis>PostalToTerritory</emphasis></entry>
  1252. <entry>
  1253. Zwraca wzór wyrażenia regularnego odpowiadającego kodowi pocztowemu
  1254. dla podanego terytorium. Nazwa terytorium musi być podana w standardzie
  1255. <constant>ISO4217</constant> (np. '001' - Świat)
  1256. </entry>
  1257. </row>
  1258. <row>
  1259. <entry><emphasis>NumberingSystem</emphasis></entry>
  1260. <entry>
  1261. Zwraca znaki oznaczające cyfry w ramach podanego systemu pisma
  1262. </entry>
  1263. </row>
  1264. <row>
  1265. <entry><emphasis>FallbackToChar</emphasis></entry>
  1266. <entry>
  1267. Zwraca znaki zastępujące często używany specjalny znak unicode. Można
  1268. tego użyć do zastąpienia "©" za pomocą "(C)"
  1269. </entry>
  1270. </row>
  1271. <row>
  1272. <entry><emphasis>CharToFallback</emphasis></entry>
  1273. <entry>
  1274. Zwraca specjalny znak unicode dla podanego łańcucha zastępującego.
  1275. Można tego użyć do zastąpienia "(C)" za pomocą "©"
  1276. </entry>
  1277. </row>
  1278. <row>
  1279. <entry><emphasis>LocaleUpgrade</emphasis></entry>
  1280. <entry>
  1281. Zwraca nazwę zależnego locale, dla locale podanego. Dzięki temu można
  1282. uzyskać pełną nazwę poprawnego locale
  1283. </entry>
  1284. </row>
  1285. <row>
  1286. <entry><emphasis>Unit</emphasis></entry>
  1287. <entry>
  1288. Zwraca zlokalizowaną nazwę jednostki kalendarza. Dzięki temu można
  1289. automatycznie uzyskać tłumaczenie łańcuchów "dzień", "miesiąc" itp.
  1290. Pierwszym parametrem musi być typ a drugim - liczba
  1291. </entry>
  1292. </row>
  1293. </tbody>
  1294. </tgroup>
  1295. </table>
  1296. <note>
  1297. <para>
  1298. Z nadejściem Zend Framework 1.5 wiele starszych typów zostało przemianowanych.
  1299. Zostało to wymuszone przez wprowadzenie szeregu nowych typów i występowanie błędów
  1300. w starych nazwach. Zmiany te zwiększają użyteczność powyższych metod. Poniżej
  1301. znajduje się lista zmian:
  1302. </para>
  1303. </note>
  1304. <table id="zend.locale.getdata.table-3">
  1305. <title>Różnica pomiędzy Zend Framework 1.0 oraz 1.5</title>
  1306. <tgroup cols="2">
  1307. <thead>
  1308. <row>
  1309. <entry>Stary typ</entry>
  1310. <entry>Nowy typ</entry>
  1311. </row>
  1312. </thead>
  1313. <tbody>
  1314. <row>
  1315. <entry>Country</entry>
  1316. <entry>Territory (z wartością '2')</entry>
  1317. </row>
  1318. <row>
  1319. <entry>Calendar</entry>
  1320. <entry>Type (z wartością 'calendar')</entry>
  1321. </row>
  1322. <row>
  1323. <entry>Month_Short</entry>
  1324. <entry>Month (z tablicą array('gregorian', 'format', 'abbreviated')</entry>
  1325. </row>
  1326. <row>
  1327. <entry>Month_Narrow</entry>
  1328. <entry>Month (z tablicą array('gregorian', 'stand-alone', 'narrow')</entry>
  1329. </row>
  1330. <row>
  1331. <entry>Month_Complete</entry>
  1332. <entry>Months</entry>
  1333. </row>
  1334. <row>
  1335. <entry>Day_Short</entry>
  1336. <entry>Day (z tablicą array('gregorian', 'format', 'abbreviated')</entry>
  1337. </row>
  1338. <row>
  1339. <entry>Day_Narrow</entry>
  1340. <entry>Day (z tablicą array('gregorian', 'stand-alone', 'narrow')</entry>
  1341. </row>
  1342. <row>
  1343. <entry>DateFormat</entry>
  1344. <entry>Date</entry>
  1345. </row>
  1346. <row>
  1347. <entry>TimeFormat</entry>
  1348. <entry>Time</entry>
  1349. </row>
  1350. <row>
  1351. <entry>Timezones</entry>
  1352. <entry>CityToTimezone</entry>
  1353. </row>
  1354. <row>
  1355. <entry>Currency</entry>
  1356. <entry>NameToCurrency</entry>
  1357. </row>
  1358. <row>
  1359. <entry>Currency_Sign</entry>
  1360. <entry>CurrencySymbol</entry>
  1361. </row>
  1362. <row>
  1363. <entry>Currency_Detail</entry>
  1364. <entry>CurrencyToRegion</entry>
  1365. </row>
  1366. <row>
  1367. <entry>Territory_Detail</entry>
  1368. <entry>TerritoryToRegion</entry>
  1369. </row>
  1370. <row>
  1371. <entry>Language_Detail</entry>
  1372. <entry>LanguageToTerritory</entry>
  1373. </row>
  1374. </tbody>
  1375. </tgroup>
  1376. </table>
  1377. <para>
  1378. Poniższy przykład pokazuje sposób pozyskania określonych nazw w żądanym języku.
  1379. </para>
  1380. <example id="zend.locale.getdata.example-3">
  1381. <title>getTranslationList</title>
  1382. <programlisting language="php"><![CDATA[
  1383. // wyświetla nazwy wszystkich krajów w języku niemieckim
  1384. print_r(Zend_Locale::getTranslationList('country', 'de'));
  1385. ]]></programlisting>
  1386. </example>
  1387. <para>
  1388. Następny przykład pokazuje sposób odnalezienia nazwy locale w innym języku, jeśli
  1389. nieznany jest kod ISO kraju.
  1390. </para>
  1391. <example id="zend.locale.getdata.example-4">
  1392. <title>Zamiana nazwy kraju z jednego języka na drugi</title>
  1393. <programlisting language="php"><![CDATA[
  1394. $code2name = Zend_Locale::getLanguageTranslationList('en_US');
  1395. $name2code = array_flip($code2name);
  1396. $frenchCode = $name2code['French'];
  1397. echo Zend_Locale::getLanguageTranslation($frenchCode, 'de_AT');
  1398. // na wyjściu znajduje się nazwa języka francuskiego po niemiecku
  1399. ]]></programlisting>
  1400. </example>
  1401. <para>
  1402. Aby wygenerować listę wszystkich języków znanych przez
  1403. <classname>Zend_Locale</classname>, z każdą nazwą w oryginalnej formie można skorzystać
  1404. z poniższego przykładu. Podobnie metody
  1405. <methodname>getCountryTranslationList()</methodname> oraz
  1406. <methodname>getCountryTranslation()</methodname> mogą zostać użyte do utworzenia tabeli
  1407. mapującej nazwy regionów w języku użytkownika do nazw regionów w innym języku.
  1408. Aby wyłapać wyjątki spowodowane przez nieistniejące locale należy użyć konstrukcji
  1409. <code>try .. catch</code>.
  1410. Nie wszystkie języki stanowią locale. W poniższym przykładzie wyjątki są ignorowane
  1411. aby zapobiec przedwczesnemu zakończeniu skryptu.
  1412. </para>
  1413. <example id="zend.locale.getdata.example-6">
  1414. <title>Nazwy wszystkich języków w oryginalnym brzmieniu</title>
  1415. <programlisting language="php"><![CDATA[
  1416. $list = Zend_Locale::getLanguageTranslationList('auto');
  1417. foreach($list as $language => $content) {
  1418. try {
  1419. $output = Zend_Locale::getLanguageTranslation($language, $language);
  1420. if (is_string($output)) {
  1421. print "\n<br>[".$language."] ".$output;
  1422. }
  1423. } catch (Exception $e) {
  1424. continue;
  1425. }
  1426. }
  1427. ]]></programlisting>
  1428. </example>
  1429. </sect2>
  1430. <sect2 id="zend.locale.getquestion">
  1431. <title>Uzyskanie tłumaczenia dla "yes" oraz "no"</title>
  1432. <para>
  1433. Często może dochodzić do sytuacji, w której niezbędne jest uzyskanie od użytkownika
  1434. odpowiedzi "tak" lub "nie". Aby uzyskać tablicę zawierającą odpowiednie słowa
  1435. lub wyrażenia regularne w zależności od określonego locale (domyślnie jest to locale
  1436. bieżącego obiektu) należy użyć metody <methodname>getQuestion()</methodname>. Tablica
  1437. zwrotna zawiera następujące dane:
  1438. </para>
  1439. <itemizedlist>
  1440. <listitem>
  1441. <para>
  1442. <emphasis>yes and no</emphasis>: Generyczny łańcuch znaków z odpowiedziami
  1443. oznaczającymi zgodę oraz odmowę. Będzie to najprostszy element tablicy
  1444. yesarray oraz noarray.
  1445. </para>
  1446. <para>
  1447. <emphasis>yesarray and noarray</emphasis>: Tablica ze wszystkimi znanymi
  1448. odpowiedziami oznaczającymi zgodę oraz odmowę. Wiele języków posiada więcej niż
  1449. jeden zestaw odpowiedzi. Generalnie zawarte są tu pełne odpowiedzi oraz skróty.
  1450. </para>
  1451. <para>
  1452. <emphasis>yesexpr and noexpr</emphasis>: Wyrażenie regularne ułatwiające
  1453. odpowiednie zakwalifikowanie odpowiedzi dostarczonej przez użytkownika oraz
  1454. wyszukanie odpowiedzi oznaczających zgodę oraz odmowę.
  1455. </para>
  1456. </listitem>
  1457. </itemizedlist>
  1458. <para>
  1459. Wszystkie powyższe informacje są zlokalizowane. Poniższy przykład przedstawia zestaw
  1460. danych, jakie można otrzymać:
  1461. </para>
  1462. <example id="zend.locale.getquestion.example-1">
  1463. <title>getQuestion()</title>
  1464. <programlisting language="php"><![CDATA[
  1465. $locale = new Zend_Locale();
  1466. // Łańcuchy ze zgodą oraz odmową
  1467. print_r($locale->getQuestion('de'));
  1468. - - - Output - - -
  1469. Array
  1470. (
  1471. [yes] => ja
  1472. [no] => nein
  1473. [yesarray] => Array
  1474. (
  1475. [0] => ja
  1476. [1] => j
  1477. )
  1478. [noarray] => Array
  1479. (
  1480. [0] => nein
  1481. [1] => n
  1482. )
  1483. [yesexpr] => ^([jJ][aA]?)|([jJ]?)
  1484. [noexpr] => ^([nN]([eE][iI][nN])?)|([nN]?)
  1485. )
  1486. ]]></programlisting>
  1487. </example>
  1488. <note>
  1489. <para>
  1490. Do wersji 1.0.3 była dostępna również tablica <emphasis>yesabbr</emphasis>.
  1491. Od 1.5 te informacje nie są dostępne bezpośrednio ale można je odnaleźć w
  1492. <emphasis>yesarray</emphasis>.
  1493. </para>
  1494. </note>
  1495. </sect2>
  1496. <sect2 id="zend.locale.getlocalelist">
  1497. <title>Uzyskanie listy wszystkich znanych locale</title>
  1498. <para>
  1499. Może nastąpić sytuacja w której niezbędne okaże się uzyskanie listy wszystkich znanych
  1500. locale. Może to być użyteczne przy wielu czynnościach jak np. utworzenie listy wyboru.
  1501. Aby to osiągnąć należy użyć statycznej metody <methodname>getLocaleList()</methodname>.
  1502. </para>
  1503. <example id="zend.locale.getlocalelist.example-1">
  1504. <title>getLocaleList()</title>
  1505. <programlisting language="php"><![CDATA[
  1506. $localelist = Zend_Locale::getLocaleList();
  1507. ]]></programlisting>
  1508. </example>
  1509. <note>
  1510. <para>
  1511. Należy zwrócić uwagę na fakt iż nazwy locale znajdują się w kluczach tablicy
  1512. zwrotnej. Wartości każdego jej elementu to boolean <constant>TRUE</constant>.
  1513. </para>
  1514. </note>
  1515. </sect2>
  1516. <sect2 id="zend.locale.detection">
  1517. <title>Rozpoznanie locale</title>
  1518. <para>
  1519. Jeśli zaistnieje potrzeba rozpoznania czy dana zmienna, niezależnie z jakiego źródła
  1520. pochodzi, jest poprawnym locale można do tego celu użyć statycznej metody
  1521. <methodname>isLocale()</methodname>. Jej pierwszy parametr to łańcuch znaków do
  1522. sprawdzenia.
  1523. </para>
  1524. <example id="zend.locale.detection.example-1">
  1525. <title>Proste rozpoznanie locale</title>
  1526. <programlisting language="php"><![CDATA[
  1527. $input = 'to_RU';
  1528. if (Zend_Locale::isLocale($input)) {
  1529. print "'{$input}' to poprawne locale";
  1530. } else {
  1531. print "Niestety... podana zmienna nie jest poprawnym locale";
  1532. }
  1533. ]]></programlisting>
  1534. </example>
  1535. <para>
  1536. Jak widać, powyższa metoda zawsze zwraca wartość logiczną. Istnieje jeden powód,
  1537. który powoduje rzucenie wyjątku w tej metodzie. Dzieje się tak jeśli system
  1538. operacyjny nie dostarcza żadnego locale a Zend Framework nie jest w stanie
  1539. go wykryć automatycznie. Często może to oznaczać problem istniejący na styku systemu
  1540. i środowiska <acronym>PHP</acronym> i jego funkcji <methodname>setlocale()</methodname>.
  1541. </para>
  1542. <para>
  1543. Należy też zauważyć, iż każdy podany łańcuch locale zostanie automatycznie ograniczony
  1544. do kodu języka jeśli kod regionu nie jest poprawny. W poprzednim przykładzie kod
  1545. języka <code>'to'</code> nie istnieje w regionie <code>'RU'</code> ale klasa
  1546. <classname>Zend_Locale</classname> zwróci <constant>TRUE</constant> ponieważ możliwe
  1547. jest dostosowanie podanego stringu do poprawnego locale.
  1548. </para>
  1549. <para>
  1550. Niekiedy, przydatne może okazać się ograniczenie wyżej opisanego zachowania. W takiej
  1551. sytuacji należy skorzystać z drugiego parametru metody
  1552. <methodname>isLocale()</methodname>. Parametr <code>strict</code> przyjmuje domyślnie
  1553. wartość <constant>FALSE</constant> ale można zadeklarować jego wartość jako
  1554. <constant>TRUE</constant> i wyłączyć dostosowywanie przekazanego locale.
  1555. </para>
  1556. <example id="zend.locale.detection.example-2">
  1557. <title>Ścisłe rozpoznanie locale</title>
  1558. <programlisting language="php"><![CDATA[
  1559. $input = 'to_RU';
  1560. if (Zend_Locale::isLocale($input, true)) {
  1561. print "'{$input}' to poprawne locale";
  1562. } else {
  1563. print "Niestety... podana zmienna nie jest poprawnym locale";
  1564. }
  1565. ]]></programlisting>
  1566. </example>
  1567. <para>
  1568. Teraz, kiedy możliwe jest rozpoznanie czy określony łańcuch znaków jest poprawnym
  1569. locale, nic nie stoi na przeszkodzie aby samemu tworzyć klasy świadome locale. Jednak
  1570. wprowadzając podobne rozwiązanie szybko dochodzi się do wniosku, że implementacja
  1571. będzie stanowiła bardzo podobne 15 linijek kodu. Przykładowo:
  1572. </para>
  1573. <example id="zend.locale.detection.example-3">
  1574. <title>Implementacja kodu świadomego locale</title>
  1575. <programlisting language="php"><![CDATA[
  1576. if ($locale === null) {
  1577. $locale = new Zend_Locale();
  1578. }
  1579. if (!Zend_Locale::isLocale($locale, true, false)) {
  1580. if (!Zend_Locale::isLocale($locale, false, false)) {
  1581. throw new Zend_Locale_Exception(
  1582. "The locale '$locale' is no known locale");
  1583. }
  1584. $locale = new Zend_Locale($locale);
  1585. }
  1586. if ($locale instanceof Zend_Locale) {
  1587. $locale = $locale->toString();
  1588. }
  1589. ]]></programlisting>
  1590. </example>
  1591. <para>
  1592. Z nadejściem Zend Framework 1.8 dodano statyczną metodę
  1593. <methodname>findLocale()</methodname>, która zwraca łańcuch znaków zawierający locale.
  1594. Oto lista jej zadań:
  1595. </para>
  1596. <itemizedlist>
  1597. <listitem>
  1598. <para>
  1599. Sprawdzenie czy podany string jest poprawnym locale
  1600. </para>
  1601. </listitem>
  1602. <listitem>
  1603. <para>
  1604. Ograniczenie locale jeśli region nie jest poprawny
  1605. </para>
  1606. </listitem>
  1607. <listitem>
  1608. <para>
  1609. Zwrócenie uprzednio ustawionego locale aplikacji w przypadku braku argumentów
  1610. </para>
  1611. </listitem>
  1612. <listitem>
  1613. <para>
  1614. Sprawdzenie locale pobranego z przeglądarki jeśli wcześniejsze detekcje
  1615. zawiodły
  1616. </para>
  1617. </listitem>
  1618. <listitem>
  1619. <para>
  1620. Sprawdzenie locale środowiska serwera jeśli wcześniejsze detekcje zawiodły
  1621. </para>
  1622. </listitem>
  1623. <listitem>
  1624. <para>
  1625. Sprawdzenie locale frameworka jeśli wcześniejsze detekcje zawiodły
  1626. </para>
  1627. </listitem>
  1628. <listitem>
  1629. <para>
  1630. Zwrócenie łańcucha znaków reprezentującego znalezione locale
  1631. </para>
  1632. </listitem>
  1633. </itemizedlist>
  1634. <para>
  1635. Poniższy przykład pokazuje sposób użycia tej metody zamiast, wcześniej opisanych,
  1636. kilkunastu linijek:
  1637. </para>
  1638. <example id="zend.locale.detection.example-4">
  1639. <title>Implementacja kodu świadomego locale z Zend Framework 1.8</title>
  1640. <programlisting language="php"><![CDATA[
  1641. $locale = Zend_Locale::findLocale($inputstring);
  1642. ]]></programlisting>
  1643. </example>
  1644. </sect2>
  1645. </sect1>
  1646. <!--
  1647. vim:se ts=4 sw=4 et:
  1648. -->