home-assistant-intents 2025.3.5__tar.gz → 2025.3.12__tar.gz

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.
Files changed (71) hide show
  1. {home_assistant_intents-2025.3.5/home_assistant_intents.egg-info → home_assistant_intents-2025.3.12}/PKG-INFO +1 -1
  2. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/__init__.py +36 -5
  3. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/cs.json +10 -10
  4. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/de-CH.json +0 -28
  5. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/de.json +9 -9
  6. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/el.json +10 -7
  7. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/en.json +3 -0
  8. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/hr.json +15 -15
  9. home_assistant_intents-2025.3.12/home_assistant_intents/data/kw.json +793 -0
  10. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/lb.json +20 -14
  11. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/lt.json +61 -33
  12. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/nb.json +17 -4
  13. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/pt-br.json +26 -28
  14. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/pt.json +7 -7
  15. home_assistant_intents-2025.3.12/home_assistant_intents/data/sk.json +4367 -0
  16. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/zh-hk.json +2 -1
  17. home_assistant_intents-2025.3.12/home_assistant_intents/language_scores.json +297 -0
  18. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/languages.py +1 -0
  19. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12/home_assistant_intents.egg-info}/PKG-INFO +1 -1
  20. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents.egg-info/SOURCES.txt +2 -1
  21. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/pyproject.toml +8 -1
  22. home_assistant_intents-2025.3.5/MANIFEST.in +0 -2
  23. home_assistant_intents-2025.3.5/home_assistant_intents/data/sk.json +0 -1077
  24. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/LICENSE.md +0 -0
  25. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/README.md +0 -0
  26. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ar.json +0 -0
  27. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/bg.json +0 -0
  28. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/bn.json +0 -0
  29. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ca.json +0 -0
  30. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/da.json +0 -0
  31. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/es.json +0 -0
  32. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/et.json +0 -0
  33. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/eu.json +0 -0
  34. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/fa.json +0 -0
  35. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/fi.json +0 -0
  36. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/fr.json +0 -0
  37. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/gl.json +0 -0
  38. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/he.json +0 -0
  39. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/hi.json +0 -0
  40. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/hu.json +0 -0
  41. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/id.json +0 -0
  42. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/is.json +0 -0
  43. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/it.json +0 -0
  44. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ka.json +0 -0
  45. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ko.json +0 -0
  46. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/lv.json +0 -0
  47. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ml.json +0 -0
  48. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/mn.json +0 -0
  49. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ms.json +0 -0
  50. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ne.json +0 -0
  51. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/nl.json +0 -0
  52. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/pl.json +0 -0
  53. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ro.json +0 -0
  54. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ru.json +0 -0
  55. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/sl.json +0 -0
  56. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/sr-Latn.json +0 -0
  57. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/sr.json +0 -0
  58. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/sv.json +0 -0
  59. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/sw.json +0 -0
  60. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/te.json +0 -0
  61. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/th.json +0 -0
  62. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/tr.json +0 -0
  63. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/uk.json +0 -0
  64. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/ur.json +0 -0
  65. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/vi.json +0 -0
  66. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/zh-cn.json +0 -0
  67. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents/data/zh-tw.json +0 -0
  68. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents.egg-info/dependency_links.txt +0 -0
  69. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents.egg-info/top_level.txt +0 -0
  70. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/home_assistant_intents.egg-info/zip-safe +0 -0
  71. {home_assistant_intents-2025.3.5 → home_assistant_intents-2025.3.12}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: home-assistant-intents
3
- Version: 2025.3.5
3
+ Version: 2025.3.12
4
4
  Summary: Intents for Home Assistant
5
5
  Author-email: The Home Assistant Authors <hello@home-assistant.io>
6
6
  License: Apache-2.0
@@ -1,8 +1,10 @@
1
1
  """API for home_assistant_intents package."""
2
+
2
3
  import importlib.resources
3
4
  import json
4
5
  import os
5
6
  import typing
7
+ from dataclasses import dataclass
6
8
  from enum import Enum
7
9
  from pathlib import Path
8
10
  from typing import IO, Any, Callable, Dict, List, Optional
@@ -105,7 +107,16 @@ class ErrorKey(str, Enum):
105
107
  """More than one timer targeted for an action matched the constraints."""
106
108
 
107
109
  NO_TIMER_SUPPORT = "no_timer_support"
108
- """Vocie satellite does not support timers."""
110
+ """Voice satellite does not support timers."""
111
+
112
+
113
+ @dataclass
114
+ class LanguageScores:
115
+ """Support scores for a language from 0 (no support) to 3 (full support)."""
116
+
117
+ cloud: int
118
+ focused_local: int
119
+ full_local: int
109
120
 
110
121
 
111
122
  def get_intents(
@@ -114,13 +125,33 @@ def get_intents(
114
125
  ) -> Optional[Dict[str, Any]]:
115
126
  """Load intents by language."""
116
127
  intents_path = _DATA_DIR / f"{language}.json"
117
- if intents_path.exists():
118
- with intents_path.open(encoding="utf-8") as intents_file:
119
- return json_load(intents_file)
128
+ if not intents_path.exists():
129
+ return None
120
130
 
121
- return None
131
+ with intents_path.open(encoding="utf-8") as intents_file:
132
+ return json_load(intents_file)
122
133
 
123
134
 
124
135
  def get_languages() -> List[str]:
125
136
  """Return a list of available languages."""
126
137
  return LANGUAGES
138
+
139
+
140
+ def get_language_scores(
141
+ json_load: Callable[[IO[str]], Dict[str, Any]] = json.load,
142
+ ) -> Dict[str, LanguageScores]:
143
+ """Get support scores by language."""
144
+ scores_path = _DIR / "language_scores.json"
145
+ if not scores_path.exists():
146
+ return {}
147
+
148
+ with scores_path.open(encoding="utf-8") as scores_file:
149
+ scores_dict = json_load(scores_file)
150
+ return {
151
+ lang_key: LanguageScores(
152
+ cloud=lang_scores.get("cloud", 0),
153
+ focused_local=lang_scores.get("focused_local", 0),
154
+ full_local=lang_scores.get("full_local", 0),
155
+ )
156
+ for lang_key, lang_scores in scores_dict.items()
157
+ }
@@ -999,7 +999,7 @@
999
999
  "device_class": "signal_strength"
1000
1000
  },
1001
1001
  "expansion_rules": {
1002
- "class": "(sihnál|síla signálu)"
1002
+ "class": "(signál|síla signálu)"
1003
1003
  }
1004
1004
  },
1005
1005
  {
@@ -3452,9 +3452,9 @@
3452
3452
  {
3453
3453
  "sentences": [
3454
3454
  "<predchozi> [trak|stopa|skladba|písnička|položka|program] [<v>] {name}",
3455
- "((přepn[i|out] na <predchozi> (písničku|stopu|skladbu|program));[<v>] {name})",
3456
- "(vr[ať|átit] [tuto|tento] (písničku|stopu|skladbu|program);[<v>] {name})",
3457
- "([pře]hr[aj|át] [znovu] <predchozi> (písničku|stopu|skladbu|program);[<v>] {name})"
3455
+ "((přepn(i|out) na <predchozi> (písničku|stopu|skladbu|program));[<v>] {name})",
3456
+ "(vr(ať|átit) [tuto|tento] (písničku|stopu|skladbu|program);[<v>] {name})",
3457
+ "([pře]hr(aj|át) [znovu] <predchozi> (písničku|stopu|skladbu|program);[<v>] {name})"
3458
3458
  ],
3459
3459
  "requires_context": {
3460
3460
  "domain": "media_player"
@@ -3463,9 +3463,9 @@
3463
3463
  {
3464
3464
  "sentences": [
3465
3465
  "<predchozi> [trak|stopa|skladba|písnička|položka|program]",
3466
- "přepn[i|out] na <predchozi> (písničku|stopu|skladbu|program)",
3467
- "vr[ať|átit] [tuto|tento] (písničku|stopu|skladbu|program)",
3468
- "[pře]hr[aj|át] [znovu] <predchozi> (písničku|stopu|skladbu|program)"
3466
+ "přepn(i|out) na <predchozi> (písničku|stopu|skladbu|program)",
3467
+ "vr(ať|átit) [tuto|tento] (písničku|stopu|skladbu|program)",
3468
+ "[pře]hr(aj|át) [znovu] <predchozi> (písničku|stopu|skladbu|program)"
3469
3469
  ],
3470
3470
  "requires_context": {
3471
3471
  "area": {
@@ -3476,9 +3476,9 @@
3476
3476
  {
3477
3477
  "sentences": [
3478
3478
  "<predchozi> [trak|stopa|skladba|písnička|položka|program] <area>",
3479
- "přepn[i|out] na <predchozi> (písničku|stopu|skladbu|program) <area>",
3480
- "vr[ať|átit] [tuto|tento] (písničku|stopu|skladbu|program) <area>",
3481
- "[pře]hr[aj|át] [znovu] <predchozi> (písničku|stopu|skladbu|program) <area>"
3479
+ "přepn(i|out) na <predchozi> (písničku|stopu|skladbu|program) <area>",
3480
+ "vr(ať|átit) [tuto|tento] (písničku|stopu|skladbu|program) <area>",
3481
+ "[pře]hr(aj|át) [znovu] <predchozi> (písničku|stopu|skladbu|program) <area>"
3482
3482
  ]
3483
3483
  }
3484
3484
  ]
@@ -15,19 +15,6 @@
15
15
  ]
16
16
  }
17
17
  },
18
- {
19
- "sentences": [
20
- "<steu> <Geräte> <area> <ab_us>"
21
- ],
22
- "excludes_context": {
23
- "domain": [
24
- "light",
25
- "fan",
26
- "cover"
27
- ]
28
- },
29
- "response": "default_area"
30
- },
31
18
  {
32
19
  "sentences": [
33
20
  "(Zünd|Mach|Lösch|Schalt|Schaut) [(<Liecht> |(d'[ ]|d |de |dr |der |die |ds |s ))]<name> <ab_us>"
@@ -484,21 +471,6 @@
484
471
  ]
485
472
  }
486
473
  },
487
- {
488
- "sentences": [
489
- "<steu> <Geräte> <area> <a_y>"
490
- ],
491
- "excludes_context": {
492
- "domain": [
493
- "light",
494
- "fan",
495
- "cover",
496
- "scene",
497
- "script"
498
- ]
499
- },
500
- "response": "default_area"
501
- },
502
474
  {
503
475
  "sentences": [
504
476
  "(Aktivier|Schalt|Schaut|Schteu|Stell|Mach) <name> [Szene] [<a_y>]",
@@ -1980,9 +1980,9 @@
1980
1980
  "no_domain": "{% set translations = {\n \"alarm_control_panel\": \"keine Alarmzentrale\",\n \"automation\": \"keine Automatisierung\",\n \"button\": \"keine Taste\",\n \"camera\": \"keine Kamera\",\n \"climate\": \"kein Thermostat\",\n \"fan\": \"kein Ventilator\",\n \"humidifier\": \"kein Luftbefeuchter\",\n \"input_boolean\": \"kein Schalter-Helfer\",\n \"input_button\": \"kein Tasten-Helfer\",\n \"lawn_mower\": \"kein Rasenmäher\",\n \"light\": \"keine Leuchte\",\n \"lock\": \"kein Schloss\",\n \"media_player\": \"kein Media-Player\",\n \"remote\": \"keine Fernbedienung\",\n \"scene\": \"keine Szene\",\n \"script\": \"kein Skript\",\n \"siren\": \"keine Sirene\",\n \"switch\": \"kein Schalter\",\n \"vacuum\": \"kein Staubsauger\",\n \"valve\": \"kein Ventil\",\n \"water_heater\": \"kein Warmwasserbereiter\",\n \"weather\": \"kein Wetter\"\n } %}\n{% if domain in translations -%}\n Es wurde {{ translations[domain] }} gefunden\n{%- else -%}\n Es wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1981
1981
  "no_domain_in_area": "{% set translations = {\n \"alarm_control_panel\": \"keine Alarmzentrale\",\n \"automation\": \"keine Automatisierung\",\n \"button\": \"keine Taste\",\n \"camera\": \"keine Kamera\",\n \"climate\": \"kein Thermostat\",\n \"fan\": \"kein Ventilator\",\n \"humidifier\": \"kein Luftbefeuchter\",\n \"input_boolean\": \"kein Schalter-Helfer\",\n \"input_button\": \"kein Tasten-Helfer\",\n \"lawn_mower\": \"kein Rasenmäher\",\n \"light\": \"keine Leuchte\",\n \"lock\": \"kein Schloss\",\n \"media_player\": \"kein Media-Player\",\n \"remote\": \"keine Fernbedienung\",\n \"scene\": \"keine Szene\",\n \"script\": \"kein Skript\",\n \"siren\": \"keine Sirene\",\n \"switch\": \"kein Schalter\",\n \"vacuum\": \"kein Staubsauger\",\n \"valve\": \"kein Ventil\",\n \"water_heater\": \"kein Warmwasserbereiter\",\n \"weather\": \"kein Wetter\"\n } %}\n{% if domain in translations -%}\n Im Bereich {{ area }} wurde {{ translations[domain] }} gefunden\n{%- else -%}\n Im Bereich {{ area }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1982
1982
  "no_domain_in_floor": "{% set translations = {\n \"alarm_control_panel\": \"keine Alarmzentrale\",\n \"automation\": \"keine Automatisierung\",\n \"button\": \"keine Taste\",\n \"camera\": \"keine Kamera\",\n \"climate\": \"kein Thermostat\",\n \"fan\": \"kein Ventilator\",\n \"humidifier\": \"kein Luftbefeuchter\",\n \"input_boolean\": \"kein Schalter-Helfer\",\n \"input_button\": \"kein Tasten-Helfer\",\n \"lawn_mower\": \"kein Rasenmäher\",\n \"light\": \"keine Leuchte\",\n \"lock\": \"kein Schloss\",\n \"media_player\": \"kein Media-Player\",\n \"remote\": \"keine Fernbedienung\",\n \"scene\": \"keine Szene\",\n \"script\": \"kein Skript\",\n \"siren\": \"keine Sirene\",\n \"switch\": \"kein Schalter\",\n \"vacuum\": \"kein Staubsauger\",\n \"valve\": \"kein Ventil\",\n \"water_heater\": \"kein Warmwasserbereiter\",\n \"weather\": \"kein Wetter\"\n } %}\n{% if domain in translations -%}\n In der Etage {{ floor }} wurde {{ translations[domain] }} gefunden\n{%- else -%}\n In der Etage {{ floor }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1983
- "no_device_class": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Rollo\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n Es wurde {{ translations[device_class] }} gefunden\n{%- else -%}\n Es wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1984
- "no_device_class_in_area": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Rollo\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n Im Bereich {{ area }} wurde {{ translations[device_class] }} gefunden\n{%- else -%}\n Im Bereich {{ area }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1985
- "no_device_class_in_floor": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Rollo\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n In der Etage {{ floor }} wurde {{ translations[device_class] }} gefunden\n{%- else -%}\n In der Etage {{ floor }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1983
+ "no_device_class": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Schirm\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n Es wurde {{ translations[device_class] }} gefunden\n{%- else -%}\n Es wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1984
+ "no_device_class_in_area": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Schirm\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n Im Bereich {{ area }} wurde {{ translations[device_class] }} gefunden\n{%- else -%}\n Im Bereich {{ area }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1985
+ "no_device_class_in_floor": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Schirm\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n In der Etage {{ floor }} wurde {{ translations[device_class] }} gefunden\n{%- else -%}\n In der Etage {{ floor }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1986
1986
  "no_entity": "{{ entity }} existiert nicht",
1987
1987
  "no_entity_in_area": "{{ entity }} ist im Bereich {{ area }} nicht vorhanden",
1988
1988
  "no_entity_in_floor": "{{ entity }} ist in der Etage {{ floor }} nicht vorhanden",
@@ -1994,9 +1994,9 @@
1994
1994
  "no_domain_exposed": "{% set translations = {\n \"alarm_control_panel\": \"keine Alarmzentrale\",\n \"automation\": \"keine Automatisierung\",\n \"button\": \"keine Taste\",\n \"camera\": \"keine Kamera\",\n \"climate\": \"kein Thermostat\",\n \"fan\": \"kein Ventilator\",\n \"humidifier\": \"kein Luftbefeuchter\",\n \"input_boolean\": \"kein Schalter-Helfer\",\n \"input_button\": \"kein Tasten-Helfer\",\n \"lawn_mower\": \"kein Rasenmäher\",\n \"light\": \"keine Leuchte\",\n \"lock\": \"kein Schloss\",\n \"media_player\": \"kein Media-Player\",\n \"remote\": \"keine Fernbedienung\",\n \"scene\": \"keine Szene\",\n \"script\": \"kein Skript\",\n \"siren\": \"keine Sirene\",\n \"switch\": \"kein Schalter\",\n \"vacuum\": \"kein Staubsauger\",\n \"valve\": \"kein Ventil\",\n \"water_heater\": \"kein Warmwasserbereiter\",\n \"weather\": \"kein Wetter\"\n } %}\n{% if domain in translations -%}\n Es ist {{ translations[domain] }} freigegeben\n{%- else -%}\n Es wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1995
1995
  "no_domain_in_area_exposed": "{% set translations = {\n \"alarm_control_panel\": \"keine Alarmzentrale\",\n \"automation\": \"keine Automatisierung\",\n \"button\": \"keine Taste\",\n \"camera\": \"keine Kamera\",\n \"climate\": \"kein Thermostat\",\n \"fan\": \"kein Ventilator\",\n \"humidifier\": \"kein Luftbefeuchter\",\n \"input_boolean\": \"kein Schalter-Helfer\",\n \"input_button\": \"kein Tasten-Helfer\",\n \"lawn_mower\": \"kein Rasenmäher\",\n \"light\": \"keine Leuchte\",\n \"lock\": \"kein Schloss\",\n \"media_player\": \"kein Media-Player\",\n \"remote\": \"keine Fernbedienung\",\n \"scene\": \"keine Szene\",\n \"script\": \"kein Skript\",\n \"siren\": \"keine Sirene\",\n \"switch\": \"kein Schalter\",\n \"vacuum\": \"kein Staubsauger\",\n \"valve\": \"kein Ventil\",\n \"water_heater\": \"kein Warmwasserbereiter\",\n \"weather\": \"kein Wetter\"\n } %}\n{% if domain in translations -%}\n Im Bereich {{ area }} ist {{ translations[domain] }} freigegeben\n{%- else -%}\n Im Bereich {{ area }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1996
1996
  "no_domain_in_floor_exposed": "{% set translations = {\n \"alarm_control_panel\": \"keine Alarmzentrale\",\n \"automation\": \"keine Automatisierung\",\n \"button\": \"keine Taste\",\n \"camera\": \"keine Kamera\",\n \"climate\": \"kein Thermostat\",\n \"fan\": \"kein Ventilator\",\n \"humidifier\": \"kein Luftbefeuchter\",\n \"input_boolean\": \"kein Schalter-Helfer\",\n \"input_button\": \"kein Tasten-Helfer\",\n \"lawn_mower\": \"kein Rasenmäher\",\n \"light\": \"keine Leuchte\",\n \"lock\": \"kein Schloss\",\n \"media_player\": \"kein Media-Player\",\n \"remote\": \"keine Fernbedienung\",\n \"scene\": \"keine Szene\",\n \"script\": \"kein Skript\",\n \"siren\": \"keine Sirene\",\n \"switch\": \"kein Schalter\",\n \"vacuum\": \"kein Staubsauger\",\n \"valve\": \"kein Ventil\",\n \"water_heater\": \"kein Warmwasserbereiter\",\n \"weather\": \"kein Wetter\"\n } %}\n{% if domain in translations -%}\n In der Etage {{ floor }} ist {{ translations[domain] }} freigegeben\n{%- else -%}\n In der Etage {{ floor }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1997
- "no_device_class_exposed": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Rollo\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n Es ist {{ translations[device_class] }} freigegeben\n{%- else -%}\n Es wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1998
- "no_device_class_in_area_exposed": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Rollo\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n Im Bereich {{ area }} ist {{ translations[device_class] }} freigegeben\n{%- else -%}\n Im Bereich {{ area }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1999
- "no_device_class_in_floor_exposed": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Rollo\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n In der Etage {{ floor }} ist {{ translations[device_class] }} freigegeben\n{%- else -%}\n In der Etage {{ floor }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1997
+ "no_device_class_exposed": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Schirm\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n Es ist {{ translations[device_class] }} freigegeben\n{%- else -%}\n Es wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1998
+ "no_device_class_in_area_exposed": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Schirm\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n Im Bereich {{ area }} ist {{ translations[device_class] }} freigegeben\n{%- else -%}\n Im Bereich {{ area }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
1999
+ "no_device_class_in_floor_exposed": "{% set translations = {\n \"awning\": \"keine Markise\",\n \"blind\": \"keine Jalousie\",\n \"curtain\": \"kein Vorhang\",\n \"door\": \"keine Tür\",\n \"garage\": \"kein Garagentor\",\n \"gate\": \"kein Tor\",\n \"shade\": \"kein Schirm\",\n \"shutter\": \"kein Rollladen\",\n \"window\": \"kein Fenster\"\n } %}\n{% if device_class in translations -%}\n In der Etage {{ floor }} ist {{ translations[device_class] }} freigegeben\n{%- else -%}\n In der Etage {{ floor }} wurde keine Übereinstimmung gefunden\n{%- endif %}\n",
2000
2000
  "duplicate_entities": "Es wurden mehrere {{ entity }} gefunden",
2001
2001
  "duplicate_entities_in_area": "Im Bereich {{ area }} wurden mehrere {{ entity }} gefunden",
2002
2002
  "duplicate_entities_in_floor": "In der Etage {{ floor }} wurden mehrere {{ entity }} gefunden",
@@ -2205,11 +2205,11 @@
2205
2205
  "cover_classes": {
2206
2206
  "values": [
2207
2207
  {
2208
- "in": "Markise[n]",
2208
+ "in": "(Markise[n]|Beschattung[en])",
2209
2209
  "out": "awning"
2210
2210
  },
2211
2211
  {
2212
- "in": "(Jalousie[n]|Rollo[s]|Beschattung[en])",
2212
+ "in": "(Jalousie[n]|Rollo[s])",
2213
2213
  "out": "blind"
2214
2214
  },
2215
2215
  {
@@ -2233,7 +2233,7 @@
2233
2233
  "out": "shade"
2234
2234
  },
2235
2235
  {
2236
- "in": "(Roll[l](a|ä)den|Rollo[s]|Beschattung[en])",
2236
+ "in": "(Roll[l](a|ä)den)",
2237
2237
  "out": "shutter"
2238
2238
  },
2239
2239
  {
@@ -130,13 +130,6 @@
130
130
  "να <turn_on> <articles> <name>"
131
131
  ]
132
132
  },
133
- {
134
- "sentences": [
135
- "<turn_on> [(πάνω | ψηλά)] [<all>] [<articles>] (<garage_doors> | <doors> | <covers>) <articles> <area> [(πάνω | ψηλά)]",
136
- "<turn_on> [(πάνω | ψηλά)] <articles> <area> [<all>] [<articles>] (<garage_doors> | <doors> | <covers>) [(πάνω | ψηλά)]"
137
- ],
138
- "response": "cover_area"
139
- },
140
133
  {
141
134
  "sentences": [
142
135
  "<turn_on> [(πάνω | ψηλά)] [<all>] [<articles>] (<garage_doors> | <doors> | <covers>) [(πάνω | ψηλά)]"
@@ -151,6 +144,16 @@
151
144
  "shutter"
152
145
  ]
153
146
  }
147
+ },
148
+ {
149
+ "sentences": [
150
+ "<turn_on> [(πάνω | ψηλά)] [<all>] [<articles>] (<garage_doors> | <doors> | <covers>) <articles> <area> [(πάνω | ψηλά)]",
151
+ "<turn_on> [(πάνω | ψηλά)] <articles> <area> [<all>] [<articles>] (<garage_doors> | <doors> | <covers>) [(πάνω | ψηλά)]"
152
+ ],
153
+ "slots": {
154
+ "domain": "cover"
155
+ },
156
+ "response": "cover_area"
154
157
  }
155
158
  ]
156
159
  },
@@ -3396,6 +3396,7 @@
3396
3396
  "data": [
3397
3397
  {
3398
3398
  "sentences": [
3399
+ "previous (track|item) [on|for] <name>",
3399
3400
  "(go back [to the (previous|last) (song|track)];[on] <name>)",
3400
3401
  "replay [the (previous|last) (song|track)] on <name>",
3401
3402
  "<name> (play|replay) [the] (previous|last) [(song|track)] [again]"
@@ -3406,6 +3407,7 @@
3406
3407
  },
3407
3408
  {
3408
3409
  "sentences": [
3410
+ "previous (track|item)",
3409
3411
  "go back [to the (previous|last) (song|track)]",
3410
3412
  "replay [the (previous|last) (song|track)] [again]",
3411
3413
  "play [the] (previous|last) [(song|track)] [again]"
@@ -3418,6 +3420,7 @@
3418
3420
  },
3419
3421
  {
3420
3422
  "sentences": [
3423
+ "previous (track|item) [in] <area>",
3421
3424
  "go back [to the (previous|last) (song|track)] [in] <area>",
3422
3425
  "(replay [the (previous|last) (song|track)] [again];[in] <area>)",
3423
3426
  "(play [the] (previous|last) [(song|track) ][again];[in] <area>)"
@@ -1542,17 +1542,17 @@
1542
1542
  "data": [
1543
1543
  {
1544
1544
  "sentences": [
1545
- "(ukloni|oduzmi) <timer_duration> s[a] [mog|mojeg] (<timer>|<timer_plural>)",
1546
- "(ukloni|oduzmi) <timer_duration> s[a] [mog|mojeg] (<timer>|<timer_plural>) za <timer_start>",
1547
- "(ukloni|oduzmi) <timer_duration> s[a] [mog|mojeg] (<timer>|<timer_plural>) (u|na) {area}",
1548
- "(ukloni|oduzmi) <timer_duration> s[a] [mog|mojeg] (<timer>|<timer_plural>) nazvan[og] {timer_name:name}"
1545
+ "(ukloni|oduzmi) <timer_duration> s[a] [mog|mojeg|moje] (<timer>|<timer_plural>)",
1546
+ "(ukloni|oduzmi) <timer_duration> s[a] [mog|mojeg|moje] (<timer>|<timer_plural>) za <timer_start>",
1547
+ "(ukloni|oduzmi) <timer_duration> s[a] [mog|mojeg|moje] (<timer>|<timer_plural>) (u|na) {area}",
1548
+ "(ukloni|oduzmi) <timer_duration> s[a] [mog|mojeg|moje] (<timer>|<timer_plural>) [na]zvan[og|e] {timer_name:name}"
1549
1549
  ]
1550
1550
  },
1551
1551
  {
1552
1552
  "sentences": [
1553
- "(smanji|umanji) [moj] <timer> za <timer_duration>",
1554
- "(smanji|umanji) [moj] <timer> (za <timer_duration>;(u|na) {area})",
1555
- "(smanji|umanji) [moj] <timer> [nazvan] {timer_name:name} za <timer_duration>"
1553
+ "(smanji|umanji) [moj[u]] <timer> za <timer_duration>",
1554
+ "(smanji|umanji) [moj[u]] <timer> (za <timer_duration>;(u|na) {area})",
1555
+ "(smanji|umanji) [moj[u]] <timer> [[na]zvan[u]] {timer_name:name} za <timer_duration>"
1556
1556
  ]
1557
1557
  }
1558
1558
  ]
@@ -1839,8 +1839,8 @@
1839
1839
  "default": "Temperatura je postavljena"
1840
1840
  },
1841
1841
  "HassStartTimer": {
1842
- "default": "{% set h = slots.hours if slots.hours is defined else none %} {% set m = slots.minutes if slots.minutes is defined else none %} {% set s = slots.seconds if slots.seconds is defined else none %} {% set h_text = h ~ (' sat' if h in [ \"1\", 'jedan'] else ' sata') if h else '' %} {% set m_text = (30 if m in ['pola', 'pol', '1/2'] else m) ~ (' minuta' if m in [ \"1\", 'jedna'] else ' minuta') if m else '' %} {% set s_text = (30 if s in ['pola', 'pol', '1/2'] else s) ~ (' sekunda' if s in [ \"1\", 'jedna'] else ' sekundi') if s else '' %} {% set text_list = [ h_text, m_text, s_text] | select() | list %} {% set text = text_list[:-1] | join(', ') ~ ' i ' ~ text_list[-1] if text_list | count > 2 else text_list | join(' i ') %} {% set name = (' nazvan ' ~ slots.name | trim) if slots.name is defined else '' %} Timer postavljen na {{ text }}{{ name }}\n",
1843
- "command": "{% set h = slots.hours if slots.hours is defined else none %} {% set m = slots.minutes if slots.minutes is defined else none %} {% set s = slots.seconds if slots.seconds is defined else none %} {% set h_text = h ~ (' sat' if h in [ \"1\", 'jedan'] else ' sata') if h else '' %} {% set m_text = (30 if m in ['pola', '1/2'] else m) ~ (' minuta' if m in [ \"1\", 'jedna'] else ' minuta') if m else '' %} {% set s_text = (30 if s in ['pola', '1/2'] else s) ~ (' sekunda' if s in [ \"1\", 'jedna'] else ' sekundi') if s else '' %} {% set text_list = [ h_text, m_text, s_text] | select() | list %} {% set text = text_list[:-1] | join(', ') ~ ' i ' ~ text_list[-1] if text_list | count > 2 else text_list | join(' i ') %} Naredba će se izvršiti za {{ text }}\n"
1842
+ "default": "{% macro format_time(value, singular, few, many) -%}\n {% if value is not none %}\n {% set number = 30 if value in ['pola', 'pol', '1/2'] else value | int(0) %}\n {% if number % 10 == 1 and number % 100 != 11 %}\n {{ number }} {{ singular }}\n {% elif number % 10 in [2, 3, 4] and number % 100 not in [12, 13, 14] %}\n {{ number }} {{ few }}\n {% else %}\n {{ number }} {{ many }}\n {% endif %}\n {% else %}\n {{ '' }}\n {% endif %}\n{%- endmacro %}\n{% set name = (' nazvan ' ~ slots.name | trim) if slots.name is defined else '' %}\n{% set h = slots.get('hours') %} {% set m = slots.get('minutes') %} {% set s = slots.get('seconds') %}\n{% set h_text = format_time(h, 'sat', 'sata', 'sati') %} {% set m_text = format_time(m, 'minutu', 'minute', 'minuta') %} {% set s_text = format_time(s, 'sekundu', 'sekunde', 'sekundi') %}\n{% set text_list = (h_text if h_text.strip() else '') ~ ',' ~ (m_text if m_text.strip() else '') ~ ',' ~ (s_text if s_text.strip() else '') %} {% set text_list = text_list.split(',') | select('string') | map('trim') | reject('equalto', '') | list %}\n{% if text_list | length == 1 %}\n {% set text = text_list[0] %}\n{% elif text_list | length == 2 %}\n {% set text = text_list | join(' i ') %}\n{% else %}\n {% set text = text_list[:-1] | join(', ') ~ ' i ' ~ text_list[-1] %}\n{% endif %}\nTimer postavljen na {{ text }}{{ name }}\n",
1843
+ "command": "{% macro format_time(value, singular, few, many) -%}\n {% if value is not none %}\n {% set number = 30 if value in ['pola', 'pol', '1/2'] else value | int(0) %}\n {% if number % 10 == 1 and number % 100 != 11 %}\n {{ number }} {{ singular }}\n {% elif number % 10 in [2, 3, 4] and number % 100 not in [12, 13, 14] %}\n {{ number }} {{ few }}\n {% else %}\n {{ number }} {{ many }}\n {% endif %}\n {% else %}\n {{ '' }}\n {% endif %}\n{%- endmacro %}\n{% set h = slots.get('hours') %} {% set m = slots.get('minutes') %} {% set s = slots.get('seconds') %}\n{% set h_text = format_time(h, 'sat', 'sata', 'sati') %} {% set m_text = format_time(m, 'minutu', 'minute', 'minuta') %} {% set s_text = format_time(s, 'sekundu', 'sekunde', 'sekundi') %}\n{% set text_list = (h_text if h_text.strip() else '') ~ ',' ~ (m_text if m_text.strip() else '') ~ ',' ~ (s_text if s_text.strip() else '') %} {% set text_list = text_list.split(',') | select('string') | map('trim') | reject('equalto', '') | list %}\n{% if text_list | length == 1 %}\n {% set text = text_list[0] %}\n{% elif text_list | length == 2 %}\n {% set text = text_list | join(' i ') %}\n{% else %}\n {% set text = text_list[:-1] | join(', ') ~ ' i ' ~ text_list[-1] %}\n{% endif %}\nNaredba će se izvršiti za {{ text }}\n"
1844
1844
  },
1845
1845
  "HassShoppingListAddItem": {
1846
1846
  "shopping_list_item_added": "Stavka je dodana u popis za kupovinu"
@@ -2180,17 +2180,17 @@
2180
2180
  "kakvo_je": "kakvo je|koje je|kakva je",
2181
2181
  "volume": "{volume:volume_level}[[ ]%| (posto)]",
2182
2182
  "timer": "timer[u]|tajmer|štoperic(a|u)|brojač vremena|mjerač vremena|sat za vrijeme|podsjetnik|minutnik(a)",
2183
- "timer_plural": "timer(a|e|ima)|tajmer(a|e|ima)|štoperic(e|a|ima)|brojač(a|e|ima) vremena|mjerač(a|i|e) vremena|sat(|a|e|ovima) za vrijeme|podsjet(nicimai|ka|ke)|minutni[ci|ke]",
2183
+ "timer_plural": "timer(a|e|ima)|tajmer(a|e|ima)|štoperic(e|a|ima)|brojač(a|e|ima) vremena|mjerač(a|i|e) vremena|sat(|a|e|ovima) za vrijeme|podsjet(nicima|ka|ke)",
2184
2184
  "timer_set": "(postavi|pokreni|napravi|započni)",
2185
2185
  "timer_cancel": "(otkaži|zaustavi|stop[iraj]|prekini|isključi|prekini|poništi)",
2186
2186
  "timer_state": "(status|stanje|preostalo vrijeme|ostalo vrijeme)",
2187
- "timer_duration_seconds": "{timer_seconds:seconds} sekund(a|e|i|ni)",
2188
- "timer_duration_minutes": "({timer_minutes:minutes} minut(a|e|i)[ [i ]{timer_seconds:seconds} sekund(a|e|i|ni)])|({timer_minutes:minutes} [i] {timer_half:seconds} minut(a|e|i|ni|nu))|({timer_half:seconds} minut(a|e|i|ni|nu))",
2189
- "timer_duration_hours": "({timer_hours:hours} sat[a|i|ni|nog|nom][ [i ]{timer_minutes:minutes} minut(a|e|i|ni|nu)][ [i ]{timer_seconds:seconds} sekund(a|e|i|ni)])|({timer_hours:hours} i {timer_half:minutes} sat[a|i|ni|nog|nom])|({timer_half:minutes} sat[a|i|ni|nog|nom])",
2187
+ "timer_duration_seconds": "{timer_seconds:seconds} sekund(a|e|i|u|ni)",
2188
+ "timer_duration_minutes": "({timer_minutes:minutes} minut(a|e|i|u|ni|nu) [[i] {timer_seconds:seconds} sekund(a|e|i|u|ni)])|({timer_minutes:minutes} i {timer_half:seconds} minut(a|e|i|u|ni|nu))|({timer_half:seconds} minut(e|ni|nu))",
2189
+ "timer_duration_hours": "({timer_hours:hours} sat[a|i|ni|nog|nom] [[i] {timer_minutes:minutes} minut(a|e|i|u|ni|nu)] [[i] {timer_seconds:seconds} sekund(a|e|i|u|ni)])|({timer_hours:hours} i {timer_half:minutes} sat[a|i|ni|nog|nom])|({timer_half:minutes} sat[a|ni|nog|nom])",
2190
2190
  "timer_duration": "<timer_duration_seconds>|<timer_duration_minutes>|<timer_duration_hours>",
2191
2191
  "timer_start_seconds": "{timer_seconds:start_seconds} sekund(a|e|i|ni)",
2192
- "timer_start_minutes": "{timer_minutes:start_minutes} minut(a|e|i)[ [i ]{timer_seconds:start_seconds} sekund(a|e|i|ni)]",
2193
- "timer_start_hours": "{timer_hours:start_hours} sat[a|i|ni|nog|nom][ [i ]{timer_minutes:start_minutes} minut(a|e|i)][ [i ]{timer_seconds:start_seconds} sekund(a|e|i|ni)]",
2192
+ "timer_start_minutes": "{timer_minutes:start_minutes} minut(a|e|i|ni)[ [i ]{timer_seconds:start_seconds} sekund(a|e|i|ni)]",
2193
+ "timer_start_hours": "{timer_hours:start_hours} sat[a|i|ni|nog|nom][ [i ]{timer_minutes:start_minutes} minut(a|e|i|ni)][ [i ]{timer_seconds:start_seconds} sekund(a|e|i|ni)]",
2194
2194
  "timer_start": "<timer_start_seconds>|<timer_start_minutes>|<timer_start_hours>"
2195
2195
  },
2196
2196
  "skip_words": [