You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Latte umožňuje nastavit národní prostředí, které ovlivňuje formátování čísel, datumů a řazení. Nastavuje se pomocí metody `setLocale()`. Identifikátor prostředí se řídí standardem IETF language tag, který používá rozšíření PHP `intl`. Skládá se z kódu jazyka a případně kódu země, např. `en_US` pro angličtinu ve Spojených státech, `de_DE` pro němčinu v Německu atd.
173
+
174
+
```php
175
+
$latte = new Latte\Engine;
176
+
$latte->setLocale('cs');
177
+
```
178
+
179
+
Nastavení prostředí ovlivňuje filtry [localDate|filters#localDate], [sort|filters#sort], [number|filters#number] a [bytes|filters#bytes].
180
+
181
+
.[note]
182
+
Vyžaduje PHP rozšíření `intl`. Nastavení v Latte neovlivňuje globální nastavení locale v PHP.
Copy file name to clipboardExpand all lines: latte/cs/filters.texy
+73-6
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ V šablonách můžeme používat funkce, které pomáhají upravit nebo přefor
11
11
| `bytes` | [formátuje velikost v bajtech |#bytes]
12
12
| `clamp` | [ohraničí hodnotu do daného rozsahu |#clamp]
13
13
| `dataStream` | [konverze pro Data URI protokol |#datastream]
14
-
| `date` | [formátuje datum |#date]
14
+
| `date` | [formátuje datum a čas|#date]
15
15
| `explode` | [rozdělí řetězec na pole podle oddělovače |#explode]
16
16
| `first` | [vrací první prvek pole nebo znak řetězce |#first]
17
17
| `group` | [seskupí data podle různých kritérií |#group]
@@ -20,6 +20,7 @@ V šablonách můžeme používat funkce, které pomáhají upravit nebo přefor
20
20
| `join` | [spojí pole do řetězce |#implode]
21
21
| `last` | [vrací poslední prvek pole nebo znak řetězce |#last]
22
22
| `length` | [vrací délku řetězce ve znacích nebo pole |#length]
23
+
| `localDate` | [formátuje datum a čas|#localDate]
23
24
| `number` | [formátuje číslo |#number]
24
25
| `padLeft` | [doplní řetězec zleva na požadovanou délku |#padLeft]
25
26
| `padRight` | [doplní řetězec zprava na požadovanou délku |#padRight]
@@ -168,7 +169,7 @@ Přidává před každý znak nového řádku HTML značku `<br>`
168
169
169
170
bytes(int precision = 2) .[filter]
170
171
----------------------------------
171
-
Formátuje velikost v bajtech do lidsky čitelné podoby.
172
+
Formátuje velikost v bajtech do lidsky čitelné podoby. Pokud je nastavené [národní prostředí |develop#locale], použijí se odpovídající oddělovače desetinných míst a tisíců.
172
173
173
174
```latte
174
175
{$size|bytes} 0 B, 10 B, …
@@ -255,13 +256,14 @@ Vyžaduje PHP rozšíření `fileinfo`.
255
256
256
257
date(string format) .[filter]
257
258
-----------------------------
258
-
Formátuje datum podle masky buď ve tvaru používaném PHP funkcí [php:strftime] nebo [php:date]. Filtr přijímá datum buď ve formátu UNIX timestamp, v podobě řetězce nebo jako objekt `DateTime`.
259
+
Formátuje datum a čas podle masky používané PHP funkcí [php:date]. Filtr přijímá datum ve formátu UNIX timestamp, jako řetězec nebo objekt typu `DateTimeInterface`.
259
260
260
261
```latte
261
-
{$today|date:'%d.%m.%Y'}
262
262
{$today|date:'j. n. Y'}
263
263
```
264
264
265
+
Viz také [#localDate].
266
+
265
267
266
268
escapeUrl .[filter]
267
269
-------------------
@@ -418,6 +420,41 @@ Vrátí délku řetězce nebo pole.
418
420
```
419
421
420
422
423
+
localDate(string format = null, string date = null, string time = null) .[filter]
Formátuje datum a čas podle [národního prostředí |develop#locale], což zajišťuje konzistentní a lokalizované zobrazení časových údajů napříč různými jazyky a regiony. Filtr přijímá datum jako UNIX timestamp, řetězec nebo objekt typu `DateTimeInterface`.
426
+
427
+
**a) použití formátu**
428
+
429
+
Formát určuje, které časové složky se mají zobrazit. Používá pro ně písmenné kódy, jejichž počet opakování ovlivňuje šířku výstupu:
Na pořadí kódů ve formátu nezáleží, protože pořadí složek se vypíše podle zvyklostí národního prostředí. Formát je tedy na něm **nezávislý**.
439
+
Například formát `yyyyMMMMd` v postředí `en_US` vypíše `April 15, 2023`, zatímco v prostředí `cs_CZ` vypíše `15. dubna 2023`. Nebo `MMMM` bez dalších symbolů se vypíše jako `duben`.
440
+
441
+
**b) použití přednastavených stylů**
442
+
443
+
Parametry `date` a `time` určují úroveň detailu pro datum a čas. Možné hodnoty jsou `full`, `long`, `medium`, `short`. Lze uvést buď jen datum, jen čas, nebo obojí:
444
+
445
+
```latte
446
+
{$date|localDate:date: full, time: short}
447
+
{* Výstup (en_US): Saturday, April 15, 2023 at 2:30 PM *}
448
+
{* Výstup (cs_CZ): sobota 15. dubna 2023 14:30 *}
449
+
```
450
+
451
+
U data lze navíc použít prefix `relative-` (např. `relative-short`), který pro data blízká současnosti zobrazí `včera`, `dnes` nebo `zítra`, jinak se vypíše standardním způsobem.
452
+
453
+
Pokud neuvedete žádný parametr, použije se `date: long`.
454
+
455
+
Viz také [#date].
456
+
457
+
421
458
lower .[filter]
422
459
---------------
423
460
Převede řetězec na malá písmena. Vyžaduje PHP rozšíření `mbstring`.
Formátuje číslo na určitý počet desetinných míst. Lze určit znak pro desetinnou čárku a oddělovač tisíců.
515
+
Formátuje číslo na určitý počet desetinných míst. Pokud je nastavené [národní prostředí |develop#locale], použijí se odpovídající oddělovače desetinných míst a tisíců.
479
516
480
517
```latte
481
518
{1234.20 |number} 1,234
@@ -485,6 +522,36 @@ Formátuje číslo na určitý počet desetinných míst. Lze určit znak pro de
485
522
```
486
523
487
524
525
+
number(string mask) .[filter]
526
+
-----------------------------
527
+
Při aktivním [národním prostředí |develop#locale] lze číslo formátovat podle vzoru, která umožňuje přesně definovat, jak má být zobrazeno. Tvoří jej symboly, tyto jsou základní:
528
+
529
+
- `0` : číslice se zobrazí vždy, i když má číslo méně číslic (pak se zobrazí 0)
530
+
- `#` : číslice se zobrazí, pokud na této pozici existuje
531
+
- `.` : oddělovač desetinných míst dle národního prostředí
532
+
- `,` : oddělovač skupin (obvykle tisíců) dle národního prostředí
533
+
- `-` : znaménko minus pro záporná čísla
534
+
- `@` : zajišťuje, že se zobrazí určitý počet platných číslic bez ohledu na desetinnou čárku
535
+
536
+
Příklady (přesný výstup závisí na nastaveném prostředí):
Tento pattern systém nabízí mnoho dalších možností formátování, včetně vědecké notace, negativních vzorů a dalších. Pro pokročilé použití doporučujeme nahlédnout do dokumentace "Unicode DecimalFormat":[https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classDecimalFormat.html#:~:text=%7D-,patterns,-A%20DecimalFormat%20consists].
553
+
554
+
488
555
padLeft(int length, string pad = ' ') .[filter]
489
556
-----------------------------------------------
490
557
Doplní řetězec do určité délky jiným řetězcem zleva.
@@ -615,7 +682,7 @@ Ve výchozím nastavení filtr změní pořadí a resetuje celočíselného klí
Filtr slouží k seřazení prvků v poli nebo iterátoru, přičemž zachovává asociační klíče:
685
+
Filtr seřadí prvky pole nebo iterátoru a zachová jejich asociační klíče. Při nastaveném [národním prostředí |develop#locale] se řazení řídí jeho pravidly, pokud není specifikována vlastní porovnávací funkce.
0 commit comments