trmnl_preview 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +11 -0
- data/db/data/and_x_more.yml +86 -0
- data/db/data/locales/cs.yml +339 -0
- data/db/data/locales/da.yml +339 -0
- data/db/data/locales/de-AT.yml +341 -0
- data/db/data/locales/de.yml +341 -0
- data/db/data/locales/en-AU.yml +79 -0
- data/db/data/locales/en-GB.yml +79 -0
- data/db/data/locales/en.yml +341 -0
- data/db/data/locales/es-ES.yml +341 -0
- data/db/data/locales/fr.yml +339 -0
- data/db/data/locales/he.yml +339 -0
- data/db/data/locales/hu.yml +339 -0
- data/db/data/locales/id.yml +339 -0
- data/db/data/locales/is.yml +339 -0
- data/db/data/locales/it.yml +341 -0
- data/db/data/locales/ja.yml +342 -0
- data/db/data/locales/ko.yml +337 -0
- data/db/data/locales/lt.yml +340 -0
- data/db/data/locales/nl.yml +339 -0
- data/db/data/locales/no.yml +4 -0
- data/db/data/locales/pl.yml +342 -0
- data/db/data/locales/pt-BR.yml +340 -0
- data/db/data/locales/raw.yml +256 -0
- data/db/data/locales/ro.yml +339 -0
- data/db/data/locales/ru.yml +342 -0
- data/db/data/locales/sk.yml +339 -0
- data/db/data/locales/sv.yml +340 -0
- data/db/data/locales/uk.yml +339 -0
- data/db/data/locales/zh-CN.yml +338 -0
- data/db/data/locales/zh-HK.yml +338 -0
- data/lib/trmnlp/app.rb +5 -4
- data/lib/trmnlp/async_callback.rb +75 -0
- data/lib/trmnlp/commands/serve.rb +3 -0
- data/lib/trmnlp/config/plugin.rb +52 -12
- data/lib/trmnlp/config/project.rb +14 -4
- data/lib/trmnlp/context.rb +17 -2
- data/lib/trmnlp/firefox_driver.rb +0 -3
- data/lib/trmnlp/framework_version.rb +9 -0
- data/lib/trmnlp/image_quantizer.rb +28 -15
- data/lib/trmnlp/lint/checks/no_custom_filters.rb +27 -0
- data/lib/trmnlp/lint/diagnostic.rb +5 -0
- data/lib/trmnlp/lint/source.rb +6 -0
- data/lib/trmnlp/lint.rb +3 -1
- data/lib/trmnlp/merged_plugin_locals.rb +57 -0
- data/lib/trmnlp/outbound_request.rb +99 -0
- data/lib/trmnlp/paths.rb +11 -6
- data/lib/trmnlp/poller.rb +83 -44
- data/lib/trmnlp/rails_helpers.rb +41 -0
- data/lib/trmnlp/renderer.rb +37 -11
- data/lib/trmnlp/screen_generator.rb +14 -2
- data/lib/trmnlp/screenshot.rb +29 -4
- data/lib/trmnlp/select_field_choices.rb +25 -0
- data/lib/trmnlp/transform_pipeline.rb +47 -6
- data/lib/trmnlp/transform_state.rb +48 -0
- data/lib/trmnlp/user_data_assembler.rb +63 -25
- data/lib/trmnlp/version.rb +1 -1
- data/lib/trmnlp/watcher.rb +2 -1
- data/lib/trmnlp/webhook_payload.rb +74 -0
- data/lib/trmnlp/webhook_receiver.rb +78 -0
- data/lib/trmnlp.rb +1 -1
- data/trmnl_preview.gemspec +1 -0
- data/web/public/index.js +18 -6
- data/web/views/index.erb +7 -0
- data/web/views/render_html.erb +36 -0
- metadata +54 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2460473710692cd80df450f411bdf811e44a9da068600b45db871c9e00ce0651
|
|
4
|
+
data.tar.gz: b34619a0fccac692176089ae44fe45c4c040a04bb2ca7035031750f768adc73d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8de469fd1f6f81023ac8b3ad25168dce59f68a731a5814fc845e8a6155996e0800a7d5871e0d89fbd009bc910ad6b497f5a4dc6186025f60a79f758df31aaab1
|
|
7
|
+
data.tar.gz: b0bf8c9737e32bb67b3489de471c29ce78b03a4a40fcef69916834477d5daa0d3a4a89dcdaca68e411f20a1cafb5e91142216ae85c2e3d3a6e42a94f5fe944cf
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
|
|
2
2
|
# Changelog
|
|
3
3
|
|
|
4
|
+
## 0.16.0
|
|
5
|
+
|
|
6
|
+
- Webhook posts must wrap their data in `merge_variables`, as TRMNL requires, and `merge_strategy` (`replace`, `deep_merge`, or `stream` with `stream_limit`) works from the body or the query string. A post without the wrapper is refused with TRMNL's message and a 422; a body that is not JSON gets a 400. Before, trmnlp stored the raw body and always answered 200, so a correct post rendered its data under `merge_variables.*`. A post over 5 kB is stored with a warning, since trmnlp cannot know your plan's limit. (#155)
|
|
7
|
+
- Polled and posted data is cached per project, so two plugins no longer share one `data.json`. Data cached by an older trmnlp is not read: a polling plugin polls again on start, and a webhook plugin needs one new post. (#155)
|
|
8
|
+
- A webhook plugin with a transform runs it once, when a post arrives, and stores the result, as TRMNL does; renders no longer run it. A transform's `trmnl_state` comes back as `trmnl.state` on its next run and in the markup, and `trmnl.previous_merge_variables` carries what the last run stored. (#155)
|
|
9
|
+
- `trmnl.plugin_settings` carries the plugin's name as `instance_name`, plus `no_screen_padding` and `data_fetched_utc`; `polling_url` appears only for a polling plugin and is the unrendered url; `polling_headers` is gone. `trmnl.device` carries `orientation` from the picker. The `trmnl` namespace now wins over a `trmnl` key in fetched data, as on TRMNL. (#155, #158)
|
|
10
|
+
- `dark_mode: 'yes'` darkens every render, `trmnlp build` and PNGs included, and a dark render gets the bare `dark-mode` class Framework 1.x inverts on. The default font class is `screen--fonts-trmnl`, the picker's `screen--1x` is dropped, and a theme select adds `screen--theme-*` with the theme's stylesheet on Framework 3.2.0 and later. `window.I18n.andXMore` uses the user's locale. (#155)
|
|
11
|
+
- A select custom field saves what TRMNL saves: "New York" as `new_york`, a `{ Label: value }` option as its value. The editor saved the label, so `{% if units == "metric" %}` matched only on TRMNL. A label already in `.trmnlp.yml` is read as its value. (#158)
|
|
12
|
+
- A custom field's `default` fills a blank value, in the markup and in the polling url, headers and body, and a custom field set to `{{ env.X }}` in `.trmnlp.yml` reaches the markup filled in, as it already did for polling. Polling is skipped with TRMNL's "Plugin is not configured" message while a field the url needs is blank. (#158)
|
|
13
|
+
- Polling follows TRMNL: the url, headers and body render with the `trmnl` namespace; urls split on CR or LF and drop blank lines; a GET sends the polling body as its query string; up to 5 redirects are followed, dropping `Authorization` when the host changes; reads time out after 10 s with one retry; a 429 or 5xx is a failed fetch while a 4xx body still renders; CSV, markdown, a byte order mark and an unlisted content type parse as on TRMNL. A url that resolves to a private address gets a warning, since TRMNL refuses it, but is still fetched. Logs and warnings leave out the query string, which often holds an api key. (#158)
|
|
14
|
+
- Merge variables over 100 kB fail the render with TRMNL's message. A transform stops after 5 s, gets `trmnl.oauth` when an account is connected, keeps the last good output when it fails, and renders nothing from an output that is not an object. (#158)
|
|
15
|
+
- `l_word`, `l_date`, `pluralize` and `number_to_currency` render as on TRMNL in its 29 locales: `pluralize` gave "3 persons", `number_to_currency: "de"` gave `de1,234.50`, and any non-English `l_word` or `l_date` raised. The locale data is copied from trmnl-i18n and rails-i18n into `db/data/locales` by `rake i18n:sync`, so trmnlp needs no Rails gems. (#156)
|
|
16
|
+
- PNG renders follow TRMNL's renderer: a page dithers only when it asks for it with `image-dither`, otherwise it is posterized with TRMNL's ImageMagick steps, and the capture waits for the Framework's ready signals (up to 5 s, 12 s with a map). Highcharts charts rendered blank, since the unversioned CDN url refuses a page with no Referer; they now load TRMNL's 12.3.0 copy. Text is no longer drawn with antialiasing turned off, which brings it closer to TRMNL's own PNGs. (#157)
|
|
17
|
+
- The `async_polling` strategy works locally: `{{ callback_url }}` points at the preview server, and the callback answers as TRMNL does, 410 for a stale or expired request. The `plugin_merge` strategy works too: list each referenced plugin as `<keyname>_<id>: <path to its trmnlp project>` under `merged_plugins` in `.trmnlp.yml`, and the markup gets TRMNL's merged data. (#160)
|
|
18
|
+
- `trmnlp lint` reports a filter that only `custom_filters` in `.trmnlp.yml` defines (`no_custom_filters`). TRMNL does not load those modules and outputs the value unfiltered. (#159)
|
|
19
|
+
|
|
4
20
|
## 0.15.0
|
|
5
21
|
|
|
6
22
|
- `trmnlp lint` names where each finding is: a rule ID such as `[no_opacity]`, then the file, line and column with the source line. Before, it printed only the message, so you had to search every view and Shared for the cause. `trmnlp lint --format json` writes the same report as one JSON object (`version`, `passed`, `issues`) for CI. Exit statuses are unchanged, and the values of unused custom fields in `.trmnlp.yml` are never printed. (#153)
|
data/README.md
CHANGED
|
@@ -119,6 +119,10 @@ including custom properties. HTML/Liquid comments, script strings, text,
|
|
|
119
119
|
`data-*` attributes and `<style>` blocks are excluded from this inline check.
|
|
120
120
|
Liquid in declaration values is counted without rendering the plugin, every branch included.
|
|
121
121
|
|
|
122
|
+
Filters from `custom_filters` in `.trmnlp.yml` exist only in trmnlp. TRMNL does not load them
|
|
123
|
+
and outputs the value unfiltered, so `no_custom_filters` reports each place the markup uses one.
|
|
124
|
+
Filters that trmnl-liquid also provides are not reported.
|
|
125
|
+
|
|
122
126
|
## Building Static Files
|
|
123
127
|
|
|
124
128
|
`trmnlp build` renders every view to a static file under `_build/` — handy for exporting a snapshot or feeding the output into another pipeline. Run it from inside a plugin project:
|
|
@@ -334,8 +338,15 @@ variables:
|
|
|
334
338
|
plugin_settings:
|
|
335
339
|
instance_name: Kevin Bacon Facts
|
|
336
340
|
|
|
341
|
+
# plugin_merge strategy: the plugins this one reads, as "<keyname>_<id>" on TRMNL,
|
|
342
|
+
# each mapped to the trmnlp project whose last fetched data stands in for it
|
|
343
|
+
merged_plugins:
|
|
344
|
+
private_plugin_42: ../weather
|
|
337
345
|
```
|
|
338
346
|
|
|
347
|
+
An `async_polling` plugin gets `{{ callback_url }}` in its polling url. It points at
|
|
348
|
+
`trmnlp serve`'s `/callback` route, where the API posts `merge_variables` after answering 202.
|
|
349
|
+
|
|
339
350
|
## OAuth2
|
|
340
351
|
|
|
341
352
|
This feature is in beta. Please report incorrect behaviour at https://github.com/usetrmnl/trmnlp/issues.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Mirrored from trmnl-i18n renders.and_x_more_* (window.I18n.andXMore).
|
|
2
|
+
# Refresh with `rake i18n:sync[trmnl_i18n_path,rails_i18n_path]` — do not edit manually.
|
|
3
|
+
cs:
|
|
4
|
+
- A
|
|
5
|
+
- více
|
|
6
|
+
da:
|
|
7
|
+
- Og
|
|
8
|
+
- mere
|
|
9
|
+
de-AT:
|
|
10
|
+
- und
|
|
11
|
+
- weitere
|
|
12
|
+
de:
|
|
13
|
+
- und
|
|
14
|
+
- weitere
|
|
15
|
+
en:
|
|
16
|
+
- And
|
|
17
|
+
- more
|
|
18
|
+
es-ES:
|
|
19
|
+
- "y"
|
|
20
|
+
- más
|
|
21
|
+
fr:
|
|
22
|
+
- Et
|
|
23
|
+
- de plus
|
|
24
|
+
he:
|
|
25
|
+
- And
|
|
26
|
+
- more
|
|
27
|
+
hu:
|
|
28
|
+
- És
|
|
29
|
+
- további
|
|
30
|
+
id:
|
|
31
|
+
- And
|
|
32
|
+
- more
|
|
33
|
+
is:
|
|
34
|
+
- Og
|
|
35
|
+
- fleiri
|
|
36
|
+
it:
|
|
37
|
+
- e
|
|
38
|
+
- più
|
|
39
|
+
ja:
|
|
40
|
+
- And
|
|
41
|
+
- more
|
|
42
|
+
ko:
|
|
43
|
+
- And
|
|
44
|
+
- 개 더
|
|
45
|
+
lt:
|
|
46
|
+
- Ir dar
|
|
47
|
+
- daugiau
|
|
48
|
+
nl:
|
|
49
|
+
- En nog
|
|
50
|
+
- more
|
|
51
|
+
'no':
|
|
52
|
+
- And
|
|
53
|
+
- more
|
|
54
|
+
pl:
|
|
55
|
+
- i
|
|
56
|
+
- więcej
|
|
57
|
+
pt-BR:
|
|
58
|
+
- E
|
|
59
|
+
- mais
|
|
60
|
+
raw:
|
|
61
|
+
- renders.and_x_more_prefix
|
|
62
|
+
- renders.and_x_more_suffix
|
|
63
|
+
ro:
|
|
64
|
+
- Și
|
|
65
|
+
- mai mult
|
|
66
|
+
ru:
|
|
67
|
+
- И
|
|
68
|
+
- ещё
|
|
69
|
+
sk:
|
|
70
|
+
- A
|
|
71
|
+
- ďalšie
|
|
72
|
+
sl:
|
|
73
|
+
- in še
|
|
74
|
+
- ''
|
|
75
|
+
sv:
|
|
76
|
+
- And
|
|
77
|
+
- more
|
|
78
|
+
uk:
|
|
79
|
+
- And
|
|
80
|
+
- more
|
|
81
|
+
zh-CN:
|
|
82
|
+
- 及其他
|
|
83
|
+
- 项
|
|
84
|
+
zh-HK:
|
|
85
|
+
- 還有
|
|
86
|
+
- 個
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
# Mirrored from trmnl-i18n custom_plugins and rails-i18n date, time, number.
|
|
2
|
+
# Refresh with `rake i18n:sync[trmnl_i18n_path,rails_i18n_path]` — do not edit manually.
|
|
3
|
+
cs:
|
|
4
|
+
custom_plugins:
|
|
5
|
+
today: dnes
|
|
6
|
+
tomorrow: zítra
|
|
7
|
+
updated: Aktualizováno
|
|
8
|
+
activity: Aktivita
|
|
9
|
+
done: Hotovo
|
|
10
|
+
due: Termín
|
|
11
|
+
deutsche_bahn_departures:
|
|
12
|
+
departures: Odjezdy
|
|
13
|
+
time: Čas
|
|
14
|
+
line: Linka
|
|
15
|
+
destination: Cíl
|
|
16
|
+
platform: Nástupiště
|
|
17
|
+
delay: Zpoždění
|
|
18
|
+
train: Vlak
|
|
19
|
+
on_time: Na čas
|
|
20
|
+
cancelled: Zrušeno
|
|
21
|
+
minutes: min
|
|
22
|
+
refreshed: Obnoveno
|
|
23
|
+
simple_calendar:
|
|
24
|
+
title: Kalendář
|
|
25
|
+
ym_format: "%B %Y"
|
|
26
|
+
chinese_korean:
|
|
27
|
+
leap_format: Přestupný %{month_label}
|
|
28
|
+
leap_format_short: PM%{alt_month}
|
|
29
|
+
ym_format: ", %{leap_month_label} %{heavenly_stem} %{earthly_branch}"
|
|
30
|
+
month_labels:
|
|
31
|
+
-
|
|
32
|
+
- M1
|
|
33
|
+
- M2
|
|
34
|
+
- M3
|
|
35
|
+
- M4
|
|
36
|
+
- M5
|
|
37
|
+
- M6
|
|
38
|
+
- M7
|
|
39
|
+
- M8
|
|
40
|
+
- M9
|
|
41
|
+
- M10
|
|
42
|
+
- M11
|
|
43
|
+
- M12
|
|
44
|
+
date_labels:
|
|
45
|
+
-
|
|
46
|
+
- '1'
|
|
47
|
+
- '2'
|
|
48
|
+
- '3'
|
|
49
|
+
- '4'
|
|
50
|
+
- '5'
|
|
51
|
+
- '6'
|
|
52
|
+
- '7'
|
|
53
|
+
- '8'
|
|
54
|
+
- '9'
|
|
55
|
+
- '10'
|
|
56
|
+
- '11'
|
|
57
|
+
- '12'
|
|
58
|
+
- '13'
|
|
59
|
+
- '14'
|
|
60
|
+
- '15'
|
|
61
|
+
- '16'
|
|
62
|
+
- '17'
|
|
63
|
+
- '18'
|
|
64
|
+
- '19'
|
|
65
|
+
- '20'
|
|
66
|
+
- '21'
|
|
67
|
+
- '22'
|
|
68
|
+
- '23'
|
|
69
|
+
- '24'
|
|
70
|
+
- '25'
|
|
71
|
+
- '26'
|
|
72
|
+
- '27'
|
|
73
|
+
- '28'
|
|
74
|
+
- '29'
|
|
75
|
+
- '30'
|
|
76
|
+
heavenly_stems:
|
|
77
|
+
- Dřevo
|
|
78
|
+
- Dřevo
|
|
79
|
+
- Oheň
|
|
80
|
+
- Oheň
|
|
81
|
+
- Země
|
|
82
|
+
- Země
|
|
83
|
+
- Kov
|
|
84
|
+
- Kov
|
|
85
|
+
- Voda
|
|
86
|
+
- Voda
|
|
87
|
+
earthly_branches:
|
|
88
|
+
- Krysa
|
|
89
|
+
- Vůl
|
|
90
|
+
- Tygr
|
|
91
|
+
- Králík
|
|
92
|
+
- Drak
|
|
93
|
+
- Had
|
|
94
|
+
- Kůň
|
|
95
|
+
- Koza
|
|
96
|
+
- Opice
|
|
97
|
+
- Kohout
|
|
98
|
+
- Pes
|
|
99
|
+
- Vepř
|
|
100
|
+
zodiac_animals:
|
|
101
|
+
- Rat
|
|
102
|
+
- Ox
|
|
103
|
+
- Tiger
|
|
104
|
+
- Rabbit
|
|
105
|
+
- Dragon
|
|
106
|
+
- Snake
|
|
107
|
+
- Horse
|
|
108
|
+
- Goat
|
|
109
|
+
- Monkey
|
|
110
|
+
- Rooster
|
|
111
|
+
- Dog
|
|
112
|
+
- Pig
|
|
113
|
+
solar_terms:
|
|
114
|
+
- Minor Cold
|
|
115
|
+
- Major Cold
|
|
116
|
+
- Start of Spring
|
|
117
|
+
- Rain Water
|
|
118
|
+
- Awakening of Insects
|
|
119
|
+
- Spring Equinox
|
|
120
|
+
- Pure Brightness
|
|
121
|
+
- Grain Rain
|
|
122
|
+
- Start of Summer
|
|
123
|
+
- Grain Buds
|
|
124
|
+
- Grain in Ear
|
|
125
|
+
- Summer Solstice
|
|
126
|
+
- Minor Heat
|
|
127
|
+
- Major Heat
|
|
128
|
+
- Start of Autumn
|
|
129
|
+
- End of Heat
|
|
130
|
+
- White Dew
|
|
131
|
+
- Autumn Equinox
|
|
132
|
+
- Cold Dew
|
|
133
|
+
- Frost's Descent
|
|
134
|
+
- Start of Winter
|
|
135
|
+
- Minor Snow
|
|
136
|
+
- Major Snow
|
|
137
|
+
- Winter Solstice
|
|
138
|
+
japanese:
|
|
139
|
+
rokuyo_terms:
|
|
140
|
+
- 先勝
|
|
141
|
+
- 友引
|
|
142
|
+
- 先負
|
|
143
|
+
- 仏滅
|
|
144
|
+
- 大安
|
|
145
|
+
- 赤口
|
|
146
|
+
nengo:
|
|
147
|
+
reiwa: Reiwa
|
|
148
|
+
ym_format: "%B %Y (%{nengo} %{alt_year})"
|
|
149
|
+
year_1: '1'
|
|
150
|
+
hebrew:
|
|
151
|
+
ym_format: ", %{month_label} %{alt_year}"
|
|
152
|
+
month_labels:
|
|
153
|
+
- Nisan
|
|
154
|
+
- Ijar
|
|
155
|
+
- Sivan
|
|
156
|
+
- Tamuz
|
|
157
|
+
- Av
|
|
158
|
+
- Elul
|
|
159
|
+
- Tišri
|
|
160
|
+
- Chešvan
|
|
161
|
+
- Kislev
|
|
162
|
+
- Tevet
|
|
163
|
+
- Ševat
|
|
164
|
+
- Adar
|
|
165
|
+
- Adar I
|
|
166
|
+
- Adar II
|
|
167
|
+
month_labels_abbr:
|
|
168
|
+
- Nis
|
|
169
|
+
- Ija
|
|
170
|
+
- Siv
|
|
171
|
+
- Tam
|
|
172
|
+
- Av
|
|
173
|
+
- Elu
|
|
174
|
+
- Tiš
|
|
175
|
+
- Che
|
|
176
|
+
- Kis
|
|
177
|
+
- Tev
|
|
178
|
+
- Šev
|
|
179
|
+
- Ada
|
|
180
|
+
- Ad1
|
|
181
|
+
- Ad2
|
|
182
|
+
hijri:
|
|
183
|
+
ym_format: ", %{month_label} %{alt_year}"
|
|
184
|
+
month_labels:
|
|
185
|
+
-
|
|
186
|
+
- Muharram
|
|
187
|
+
- Safar
|
|
188
|
+
- Rabíʻ I
|
|
189
|
+
- Rabíʻ II
|
|
190
|
+
- Džumádá I
|
|
191
|
+
- Džumádá II
|
|
192
|
+
- Radžab
|
|
193
|
+
- Šaʻbán
|
|
194
|
+
- Ramadán
|
|
195
|
+
- Šawwál
|
|
196
|
+
- Dhú al-ki'da
|
|
197
|
+
- Dhú al-hidždža
|
|
198
|
+
bengali:
|
|
199
|
+
ym_format: ", %{month_label} %{alt_year}"
|
|
200
|
+
month_labels:
|
|
201
|
+
-
|
|
202
|
+
- Boishakh
|
|
203
|
+
- Joishtho
|
|
204
|
+
- Asharh
|
|
205
|
+
- Srabon
|
|
206
|
+
- Bhadro
|
|
207
|
+
- Ashwin
|
|
208
|
+
- Kartika
|
|
209
|
+
- Ogrohayon
|
|
210
|
+
- Poush
|
|
211
|
+
- Magh
|
|
212
|
+
- Falgun
|
|
213
|
+
- Choitro
|
|
214
|
+
indian:
|
|
215
|
+
ym_format: ", %{month_label} %{alt_year}"
|
|
216
|
+
month_labels:
|
|
217
|
+
-
|
|
218
|
+
- Chaitra
|
|
219
|
+
- Vaisakha
|
|
220
|
+
- Jyaistha
|
|
221
|
+
- Asadha
|
|
222
|
+
- Sravana
|
|
223
|
+
- Bhadra
|
|
224
|
+
- Asvina
|
|
225
|
+
- Kartika
|
|
226
|
+
- Agrahayana
|
|
227
|
+
- Pausa
|
|
228
|
+
- Magha
|
|
229
|
+
- Phalguna
|
|
230
|
+
public_recipe_stats:
|
|
231
|
+
connections: ".input {$value :number} .match $value zero {{Žádná připojení}}
|
|
232
|
+
one {{{$value :number} připojení}} * {{{$value :number} připojení}}"
|
|
233
|
+
forks: ".input {$value :number} .match $value zero {{Žádný fork}} one {{{$value
|
|
234
|
+
:number} fork}} * {{{$value :number} forků}}"
|
|
235
|
+
installs: ".input {$value :number} .match $value zero {{Žádná instalace}} one
|
|
236
|
+
{{{$value :number} instalace}} * {{{$value :number} instalací}}"
|
|
237
|
+
and_more: a {$value :number} dalších
|
|
238
|
+
error_keyword_title: "“{$keyword}” neodpovídá žádnému výsledku."
|
|
239
|
+
error_keyword_subtitle: Zkuste vyhledat něco jiného.
|
|
240
|
+
error_new_title: Nebyl nalezen žádný nový recept.
|
|
241
|
+
error_new_subtitle: To by se nemělo stávat.
|
|
242
|
+
error_self_title: Nepublikovali jste žádný recept.
|
|
243
|
+
error_self_subtitle: Jak publikovat svůj první recept, se dozvíte na https://help.trmnl.com/en/articles/9510536-private-plugins
|
|
244
|
+
error_author_id_title: 'Uživatel #{$authorId} nepublikoval žádný recept.'
|
|
245
|
+
error_author_id_subtitle: S tímto ID nebyl nalezen žádný recept.
|
|
246
|
+
error_recipe_ids_title: Nebylo nalezeno žádné ID receptu.
|
|
247
|
+
error_recipe_ids_subtitle: Chcete-li začít, přidejte ID receptu.
|
|
248
|
+
horizontal_world_clock:
|
|
249
|
+
name: Světové hodiny
|
|
250
|
+
language_learning_sentences:
|
|
251
|
+
from_to: Z jazyka {$from :langName} do {$to :langNameList}
|
|
252
|
+
custom_next_holiday:
|
|
253
|
+
next_holiday: Příští svátek
|
|
254
|
+
today_and_next: ".input {$nextDays :number} .match $nextDays one {{ {#mainLabel}Dnes
|
|
255
|
+
je{/mainLabel}{#br/}{#mainValue}{$name}{/mainValue}{#br/}{#subLabel}Zítra
|
|
256
|
+
je {$nextName}.{/subLabel} }}* {{ {#mainLabel}Dnes je{/mainLabel}{#br/}{#mainValue}{$name}{/mainValue}{#br/}{#subLabel}Příští
|
|
257
|
+
svátek je {$nextName} za {$nextDays} dní.{/subLabel} }}"
|
|
258
|
+
today_only: "{#mainLabel}Dnes je{/mainLabel}{#br/}{#mainValue}{$name}{/mainValue}"
|
|
259
|
+
next_only: ".input {$nextDays :number} .match $nextDays one {{ {#mainLabel}Zítra
|
|
260
|
+
je{/mainLabel}{#br/}{#mainValue}{$nextName}{/mainValue} }}* {{ {#mainValue}{$nextDays}{/mainValue}{#mainLabel}
|
|
261
|
+
dní do{/mainLabel}{#br/}{#mainValue}{$nextName}{/mainValue} }}"
|
|
262
|
+
no_holidays: "{#subLabel}Konec přidaných svátků.{/subLabel}"
|
|
263
|
+
sun_chart: Sun Chart
|
|
264
|
+
date:
|
|
265
|
+
abbr_day_names:
|
|
266
|
+
- Ne
|
|
267
|
+
- Po
|
|
268
|
+
- Út
|
|
269
|
+
- St
|
|
270
|
+
- Čt
|
|
271
|
+
- Pá
|
|
272
|
+
- So
|
|
273
|
+
abbr_month_names:
|
|
274
|
+
-
|
|
275
|
+
- Led
|
|
276
|
+
- Úno
|
|
277
|
+
- Bře
|
|
278
|
+
- Dub
|
|
279
|
+
- Kvě
|
|
280
|
+
- Čvn
|
|
281
|
+
- Čvc
|
|
282
|
+
- Srp
|
|
283
|
+
- Zář
|
|
284
|
+
- Říj
|
|
285
|
+
- Lis
|
|
286
|
+
- Pro
|
|
287
|
+
day_names:
|
|
288
|
+
- Neděle
|
|
289
|
+
- Pondělí
|
|
290
|
+
- Úterý
|
|
291
|
+
- Středa
|
|
292
|
+
- Čtvrtek
|
|
293
|
+
- Pátek
|
|
294
|
+
- Sobota
|
|
295
|
+
formats:
|
|
296
|
+
default: "%d. %m. %Y"
|
|
297
|
+
long: "%d. %B %Y"
|
|
298
|
+
short: "%d %b"
|
|
299
|
+
month_names:
|
|
300
|
+
-
|
|
301
|
+
- Leden
|
|
302
|
+
- Únor
|
|
303
|
+
- Březen
|
|
304
|
+
- Duben
|
|
305
|
+
- Květen
|
|
306
|
+
- Červen
|
|
307
|
+
- Červenec
|
|
308
|
+
- Srpen
|
|
309
|
+
- Září
|
|
310
|
+
- Říjen
|
|
311
|
+
- Listopad
|
|
312
|
+
- Prosinec
|
|
313
|
+
order:
|
|
314
|
+
- :day
|
|
315
|
+
- :month
|
|
316
|
+
- :year
|
|
317
|
+
time:
|
|
318
|
+
am: dopoledne
|
|
319
|
+
formats:
|
|
320
|
+
default: "%a %e. %B %Y %H:%M %z"
|
|
321
|
+
long: "%A %e. %B %Y %H:%M"
|
|
322
|
+
short: "%e. %-m. %H:%M"
|
|
323
|
+
pm: odpoledne
|
|
324
|
+
number:
|
|
325
|
+
currency:
|
|
326
|
+
format:
|
|
327
|
+
delimiter: " "
|
|
328
|
+
format: "%n %u"
|
|
329
|
+
precision: 2
|
|
330
|
+
separator: ","
|
|
331
|
+
significant: false
|
|
332
|
+
strip_insignificant_zeros: false
|
|
333
|
+
unit: Kč
|
|
334
|
+
format:
|
|
335
|
+
delimiter: "."
|
|
336
|
+
precision: 3
|
|
337
|
+
separator: ","
|
|
338
|
+
significant: false
|
|
339
|
+
strip_insignificant_zeros: false
|