trmnl_preview 0.14.2 → 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 +21 -0
- data/README.md +31 -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/cli.rb +2 -0
- data/lib/trmnlp/commands/lint.rb +18 -3
- 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/image_links_reachable.rb +6 -1
- data/lib/trmnlp/lint/checks/limited_inline_styles.rb +12 -5
- data/lib/trmnlp/lint/checks/no_custom_filters.rb +27 -0
- data/lib/trmnlp/lint/diagnostic.rb +97 -0
- data/lib/trmnlp/lint/source.rb +53 -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 +3 -0
- data/web/public/index.js +18 -6
- data/web/views/index.erb +7 -0
- data/web/views/render_html.erb +36 -0
- metadata +83 -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,27 @@
|
|
|
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
|
+
|
|
20
|
+
## 0.15.0
|
|
21
|
+
|
|
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)
|
|
23
|
+
- The inline-style check counts real CSS declarations in `style` attributes, still with a limit of six. It counted eight property names anywhere in the markup, so `font-size` in an HTML comment or a `<style>` block failed while seven `style="color:red"` passed. Comments, scripts, text and `<style>` blocks no longer count, and declarations inside Liquid `{% if %}` branches all count. (#152)
|
|
24
|
+
|
|
4
25
|
## 0.14.2
|
|
5
26
|
|
|
6
27
|
- A failed transform prints its stderr once. The `transform failed:` line repeated the whole stack trace that the `transform stderr:` line had just printed; it now names only the exit code. The preview page still shows the full error. (#148)
|
data/README.md
CHANGED
|
@@ -99,6 +99,30 @@ trmnlp push # upload
|
|
|
99
99
|
|
|
100
100
|
`trmnlp lint` exits non-zero when it finds issues, so you can gate CI on it. Run `trmnlp help` for all flags.
|
|
101
101
|
|
|
102
|
+
Lint findings include a stable snake_case rule ID, severity and source locations.
|
|
103
|
+
Locations use project-relative paths and one-based line/column numbers, followed
|
|
104
|
+
by a source excerpt (up to 240 characters). Aggregate checks show their contributing
|
|
105
|
+
locations; checks for a missing chart setting show the related Highcharts usage.
|
|
106
|
+
Unused project custom-field values are omitted from excerpts because they can
|
|
107
|
+
contain credentials.
|
|
108
|
+
|
|
109
|
+
For CI integrations, use `trmnlp lint --format json`. It writes one JSON object
|
|
110
|
+
with `version: 1`, `passed` and an `issues` array. Each issue has `rule_id`,
|
|
111
|
+
`severity`, `message`, `locations` and, when available, `learn_more`. Each location
|
|
112
|
+
has `path`, `line`, `column` and `snippet`. A clean report has `passed: true` and
|
|
113
|
+
`issues: []`. All existing checks retain severity `error` and the same exit status:
|
|
114
|
+
zero when clean, nonzero when findings exist. `--quiet` suppresses either format.
|
|
115
|
+
|
|
116
|
+
The inline-style check counts CSS declarations in actual HTML `style` attributes,
|
|
117
|
+
with a limit of six across the view templates and Shared. All property names count,
|
|
118
|
+
including custom properties. HTML/Liquid comments, script strings, text,
|
|
119
|
+
`data-*` attributes and `<style>` blocks are excluded from this inline check.
|
|
120
|
+
Liquid in declaration values is counted without rendering the plugin, every branch included.
|
|
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
|
+
|
|
102
126
|
## Building Static Files
|
|
103
127
|
|
|
104
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:
|
|
@@ -314,8 +338,15 @@ variables:
|
|
|
314
338
|
plugin_settings:
|
|
315
339
|
instance_name: Kevin Bacon Facts
|
|
316
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
|
|
317
345
|
```
|
|
318
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
|
+
|
|
319
350
|
## OAuth2
|
|
320
351
|
|
|
321
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
|