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
+78-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 podle národního prostředí|#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,46 @@ 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
+
Parametr `format` popisuje, 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 samotné `MMMM` se vypíše jako `duben`, atd.
440
+
441
+
**b) použití přednastavených stylů**
442
+
443
+
Parametry `date` a `time` určují, jak podrobně se má datum a čas vypsat. Můžete si vybrat z několika úrovní: `full`, `long`, `medium`, `short`. Lze nechat vypsat jen datum, jen čas, nebo obojí:
444
+
445
+
```latte
446
+
{$date|localDate: date: short} {* 23.01.1978 *}
447
+
{$date|localDate: date: long} {* 23. ledna 1978 *}
448
+
{$date|localDate: time: short} {* 14:30 *}
449
+
{$date|localDate: date: long, time: short} {* sobota 15. dubna 2023 v 14:30 *}
450
+
```
451
+
452
+
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.
Formátuje číslo na určitý počet desetinných míst. Lze určit znak pro desetinnou čárku a oddělovač tisíců.
520
+
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
521
480
522
```latte
481
523
{1234.20 |number} 1,234
@@ -485,6 +527,36 @@ Formátuje číslo na určitý počet desetinných míst. Lze určit znak pro de
485
527
```
486
528
487
529
530
+
number(string mask) .[filter]
531
+
-----------------------------
532
+
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í:
533
+
534
+
- `0` : číslice se zobrazí vždy, i když má číslo méně číslic (pak se zobrazí 0)
535
+
- `#` : číslice se zobrazí, pokud na této pozici existuje
536
+
- `.` : oddělovač desetinných míst dle národního prostředí
537
+
- `,` : oddělovač skupin (obvykle tisíců) dle národního prostředí
538
+
- `-` : znaménko minus pro záporná čísla
539
+
- `@` : zajišťuje, že se zobrazí určitý počet platných číslic bez ohledu na desetinnou čárku
540
+
541
+
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].
558
+
559
+
488
560
padLeft(int length, string pad = ' ') .[filter]
489
561
-----------------------------------------------
490
562
Doplní řetězec do určité délky jiným řetězcem zleva.
@@ -615,7 +687,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:
690
+
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