From 7be4e530c358fea741b6fa840eb138b43c901a20 Mon Sep 17 00:00:00 2001 From: mitrokun <108380896+mitrokun@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:05:56 +0000 Subject: [PATCH 1/3] [RU] Improved responses --- responses/ru/HassTurnOff.yaml | 41 +++++++++--------------- responses/ru/HassTurnOn.yaml | 41 +++++++++--------------- tests/ru/_fixtures.yaml | 2 +- tests/ru/cover_HassTurnOff.yaml | 2 +- tests/ru/cover_HassTurnOn.yaml | 2 +- tests/ru/homeassistant_HassGetState.yaml | 6 ++-- tests/ru/homeassistant_HassTurnOff.yaml | 16 ++++++--- tests/ru/homeassistant_HassTurnOn.yaml | 21 +++++++++++- tests/ru/light_HassLightSet.yaml | 31 +++++++----------- 9 files changed, 79 insertions(+), 83 deletions(-) diff --git a/responses/ru/HassTurnOff.yaml b/responses/ru/HassTurnOff.yaml index 31b9c15b2e..31025502f1 100644 --- a/responses/ru/HassTurnOff.yaml +++ b/responses/ru/HassTurnOff.yaml @@ -8,14 +8,20 @@ responses: {% set male_ending = "" %} {% set plural_ending = "ы" %} {% if slots.name[-1].lower() in "ь" %} - {% if (slots.name.lower() in "выключатель, пользователь, день, дождь, двигатель, путь") or - (slots.name[-2].lower() in "рь") %} + {% if ((slots.name.split() + ["выключатель","пользователь","день","дождь","ночь"]) + | count != dict.fromkeys(slots.name.split() + ["выключатель","пользователь","день","дождь","ночь"]) | count) or + (slots.name[-2].lower() in "рь" and slots.name.lower() != "дверь") %} {% set ending = male_ending %} {% else %} {% set ending = female_ending %} {% endif %} - {% elif slots.name[-1].lower() in "а, у, я" %} + {% elif slots.name[-1].lower() in "а, у, ю, я" %} {% set ending = female_ending %} + {% if slots.name[-1].lower() == "у" %} + {% set name_new = slots.name[:-1]~"a" %} + {% elif slots.name[-1].lower() == "ю" %} + {% set name_new = slots.name[:-1]~"я" %} + {% endif %} {% elif slots.name[-1].lower() in "о, е" %} {% set ending = neuter_ending %} {% elif slots.name[-1].lower() in "ы, и"%} @@ -23,34 +29,17 @@ responses: {% else %} {% set ending = male_ending %} {% endif %} - {{ slots.name ~ " выключен" ~ ending }} + {{ (name_new.split()[-1].title() if slots.name[-1].lower() in "у, ю" else slots.name.split()[-1].title()) ~ " выключен" ~ ending }} lights_area: "Свет в {{ slots.area }} выключен" light_all: "Весь свет выключен" fans_area: "Вентиляторы выключены в {{ slots.area }}" cover: | - {% set female_ending = "а" %} - {% set neuter_ending = "о" %} - {% set male_ending = "" %} - {% set plural_ending = "ы" %} - {% if slots.name.lower() == "ворота" %} - {% set ender = plural_ending %} - {% elif slots.name[-1].lower() in "ь" %} - {% if (slots.name.lower() in "выключатель, пользователь, день, дождь, двигатель, путь") or - (slots.name[-2].lower() in "рь") %} - {% set ending = male_ending %} - {% else %} - {% set ending = female_ending %} - {% endif %} - {% elif slots.name[-1].lower() in "а, у, я" %} - {% set ending = female_ending %} - {% elif slots.name[-1].lower() in "о, е" %} - {% set ending = neuter_ending %} - {% elif slots.name[-1].lower() in "ы, и"%} - {% set ending = plural_ending %} - {% else %} - {% set ending = male_ending %} + {% if slots.name[-1].lower() == "у" %} + {% set name_new = slots.name[:-1]~"a" %} + {% elif slots.name[-1].lower() == "ю" %} + {% set name_new = slots.name[:-1]~"я" %} {% endif %} - {{ slots.name ~ " закрыт" ~ ending }} + {{ (name_new.split()[-1].title() if slots.name[-1].lower() in "у, ю" else slots.name.split()[-1].title()) ~ (" закрываются" if slots.name[-1].lower() in "ы, и" or slots.name.lower() in "ворота, окна" else " закрывается") }} cover_area: "Закрытие в {{ slots.area }} запущено" cover_device_class: | {% set cover_class = slots.device_class %} diff --git a/responses/ru/HassTurnOn.yaml b/responses/ru/HassTurnOn.yaml index 51c1bf31df..9adaa2946f 100644 --- a/responses/ru/HassTurnOn.yaml +++ b/responses/ru/HassTurnOn.yaml @@ -8,14 +8,20 @@ responses: {% set male_ending = "" %} {% set plural_ending = "ы" %} {% if slots.name[-1].lower() in "ь" %} - {% if (slots.name.lower() in "выключатель, пользователь, день, дождь, двигатель, путь") or - (slots.name[-2].lower() in "рь") %} + {% if ((slots.name.split() + ["выключатель","пользователь","день","дождь","ночь"]) + | count != dict.fromkeys(slots.name.split() + ["выключатель","пользователь","день","дождь","ночь"]) | count) or + (slots.name[-2].lower() in "рь" and slots.name.lower() != "дверь") %} {% set ending = male_ending %} {% else %} {% set ending = female_ending %} {% endif %} - {% elif slots.name[-1].lower() in "а, у, я" %} + {% elif slots.name[-1].lower() in "а, у, ю, я" %} {% set ending = female_ending %} + {% if slots.name[-1].lower() == "у" %} + {% set name_new = slots.name[:-1]~"a" %} + {% elif slots.name[-1].lower() == "ю" %} + {% set name_new = slots.name[:-1]~"я" %} + {% endif %} {% elif slots.name[-1].lower() in "о, е" %} {% set ending = neuter_ending %} {% elif slots.name[-1].lower() in "ы, и"%} @@ -23,34 +29,17 @@ responses: {% else %} {% set ending = male_ending %} {% endif %} - {{ slots.name ~ " включен" ~ ending }} + {{ (name_new.split()[-1].title() if slots.name[-1].lower() in "у, ю" else slots.name.split()[-1].title()) ~ " включен" ~ ending }} lights_area: "Свет в {{ slots.area }} включен" light_all: "Весь свет включен" fans_area: "Включены вентиляторы в {{ slots.area }}" cover: | - {% set female_ending = "а" %} - {% set neuter_ending = "о" %} - {% set male_ending = "" %} - {% set plural_ending = "ы" %} - {% if slots.name.lower() == "ворота" %} - {% set ender = plural_ending %} - {% elif slots.name[-1].lower() in "ь" %} - {% if (slots.name.lower() in "выключатель, пользователь, день, дождь, двигатель, путь") or - (slots.name[-2].lower() in "рь") %} - {% set ending = male_ending %} - {% else %} - {% set ending = female_ending %} - {% endif %} - {% elif slots.name[-1].lower() in "а, у, я" %} - {% set ending = female_ending %} - {% elif slots.name[-1].lower() in "о, е" %} - {% set ending = neuter_ending %} - {% elif slots.name[-1].lower() in "ы, и"%} - {% set ending = plural_ending %} - {% else %} - {% set ending = male_ending %} + {% if slots.name[-1].lower() == "у" %} + {% set name_new = slots.name[:-1]~"a" %} + {% elif slots.name[-1].lower() == "ю" %} + {% set name_new = slots.name[:-1]~"я" %} {% endif %} - {{ slots.name ~ " открыт" ~ ending }} + {{ (name_new.split()[-1].title() if slots.name[-1].lower() in "у, ю" else slots.name.split()[-1].title()) ~ (" открываются" if slots.name[-1].lower() in "ы, и" or slots.name.lower() in "ворота, окна" else " открывается") }} cover_area: "Открытие в {{ slots.area }} запущено" cover_device_class: | {% set cover_class = slots.device_class %} diff --git a/tests/ru/_fixtures.yaml b/tests/ru/_fixtures.yaml index 2fcf315301..7bfcfce07e 100644 --- a/tests/ru/_fixtures.yaml +++ b/tests/ru/_fixtures.yaml @@ -15,7 +15,7 @@ areas: - name: "Вход[е|а|у]" id: "entrance" entities: - - name: "Ламп(а|у|ы) в спальне" + - name: "Ночн(ая|ую|ой) ламп(а|у|ы)" id: "light.bedroom_lamp" area: "bedroom" state: diff --git a/tests/ru/cover_HassTurnOff.yaml b/tests/ru/cover_HassTurnOff.yaml index c9fa4da036..d21f7c1cd8 100644 --- a/tests/ru/cover_HassTurnOff.yaml +++ b/tests/ru/cover_HassTurnOff.yaml @@ -9,7 +9,7 @@ tests: context: domain: cover device_class: curtain - response: "левую штору закрыта" + response: "Шторa закрывается" - sentences: - "закрой левую штору в гостиной" intent: diff --git a/tests/ru/cover_HassTurnOn.yaml b/tests/ru/cover_HassTurnOn.yaml index 125672fe41..b1e56893d1 100644 --- a/tests/ru/cover_HassTurnOn.yaml +++ b/tests/ru/cover_HassTurnOn.yaml @@ -10,7 +10,7 @@ tests: context: domain: cover device_class: curtain - response: "левую штору открыта" + response: "Шторa открывается" - sentences: - "открой левую штору в гостиной" intent: diff --git a/tests/ru/homeassistant_HassGetState.yaml b/tests/ru/homeassistant_HassGetState.yaml index ca95ea1552..f5f2a17700 100644 --- a/tests/ru/homeassistant_HassGetState.yaml +++ b/tests/ru/homeassistant_HassGetState.yaml @@ -17,12 +17,12 @@ tests: response: "Лампа в гостиной включена" - sentences: - - "Лампа в спальне включена?" - - "Включена ли лампа в спальне?" + - "Ночная лампа включена?" + - "Включена ли ночная лампа?" intent: name: HassGetState slots: - name: "Лампа в спальне" + name: "Ночная лампа" state: "on" response: "Нет, выключена" diff --git a/tests/ru/homeassistant_HassTurnOff.yaml b/tests/ru/homeassistant_HassTurnOff.yaml index 2f541e0e4b..5a87e1381a 100644 --- a/tests/ru/homeassistant_HassTurnOff.yaml +++ b/tests/ru/homeassistant_HassTurnOff.yaml @@ -1,11 +1,19 @@ language: ru tests: - sentences: - - "выключи лампу в спальне" - - "отключи лампу в спальне" + - "выключи ночную лампу" + - "отключи ночную лампу" intent: name: HassTurnOff slots: name: - - "Лампу в спальне" - response: "лампу в спальне выключено" + - "Ночную лампу" + response: "Лампa выключена" + - sentences: + - "отключи кухонный выключатель" + intent: + name: HassTurnOff + slots: + name: + - "Кухонный выключатель" + response: "Выключатель выключен" diff --git a/tests/ru/homeassistant_HassTurnOn.yaml b/tests/ru/homeassistant_HassTurnOn.yaml index 144b769fdf..1a6cbf3341 100644 --- a/tests/ru/homeassistant_HassTurnOn.yaml +++ b/tests/ru/homeassistant_HassTurnOn.yaml @@ -8,4 +8,23 @@ tests: slots: name: - "Потолочный вентилятор" - response: "потолочный вентилятор включен" + response: "Вентилятор включен" + # Plural form + - sentences: + - "включи кухонные шкафчики" + intent: + name: HassTurnOn + slots: + name: + - "Кухонные шкафчики" + response: "Шкафчики включены" + + # Names with “y” and “ю” ending in the accusative case + - sentences: + - "включи ночную лампу" + intent: + name: HassTurnOn + slots: + name: + - "Ночную лампу" + response: "Лампa включена" diff --git a/tests/ru/light_HassLightSet.yaml b/tests/ru/light_HassLightSet.yaml index 1442444a31..c03c43d4aa 100644 --- a/tests/ru/light_HassLightSet.yaml +++ b/tests/ru/light_HassLightSet.yaml @@ -2,18 +2,16 @@ language: ru tests: # brightness - sentences: - - установи яркость лампы в спальне до 50% - - сделай яркость лампы в спальне на 50% - - измени яркость лампы в спальне на 50% - - поставь яркость лампы в спальне до 50% + - установи яркость ночной лампы до 50% + - сделай яркость ночной лампы на 50% + - измени яркость ночной лампы на 50% + - поставь яркость ночной лампы до 50% intent: name: HassLightSet slots: brightness: 50 name: - - Лампы в спальне - - Лампа в спальне - - Лампу в спальне + - Ночной лампы - sentences: - установи яркость в спальне до 50 процентов - сделать яркость в спальне на 50% @@ -25,33 +23,27 @@ tests: slots: brightness: 50 area: - - Спальня - Спальне name: all # color - sentences: - - измени цвет лампы в спальне на красный - - сделай лампу в спальне красного цвета - - поставь красный цвет у лампы в спальне + - измени цвет ночной лампы на красный + - поставь красный цвет у ночной лампы intent: name: HassLightSet slots: color: red name: - - Лампы в спальне - - Лампа в спальне - - Лампу в спальне + - Ночной лампы - sentences: - - измени цвет лампы в спальне на зеленый - - поставь зелёный цвет у лампы в спальне + - измени цвет ночной лампы на зеленый + - поставь зелёный цвет у ночной лампы intent: name: HassLightSet slots: color: green name: - - Лампы в спальне - - Лампа в спальне - - Лампу в спальне + - Ночной лампы - sentences: - установи красный цвет в спальне - сделай все светильники в спальне красного цвета @@ -61,6 +53,5 @@ tests: slots: color: red area: - - Спальня - Спальне name: all From f7b5136146d041039844034149d04cf156e65ae6 Mon Sep 17 00:00:00 2001 From: mitrokun <108380896+mitrokun@users.noreply.github.com> Date: Thu, 13 Feb 2025 18:04:17 +0000 Subject: [PATCH 2/3] Removing an unnecessary word from the list --- responses/ru/HassTurnOff.yaml | 4 ++-- responses/ru/HassTurnOn.yaml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/responses/ru/HassTurnOff.yaml b/responses/ru/HassTurnOff.yaml index 31025502f1..5c4539b744 100644 --- a/responses/ru/HassTurnOff.yaml +++ b/responses/ru/HassTurnOff.yaml @@ -8,8 +8,8 @@ responses: {% set male_ending = "" %} {% set plural_ending = "ы" %} {% if slots.name[-1].lower() in "ь" %} - {% if ((slots.name.split() + ["выключатель","пользователь","день","дождь","ночь"]) - | count != dict.fromkeys(slots.name.split() + ["выключатель","пользователь","день","дождь","ночь"]) | count) or + {% if ((slots.name.split().lower() + ["выключатель","пользователь","день","дождь"]) + | count != dict.fromkeys(slots.name.split().lower() + ["выключатель","пользователь","день","дождь"]) | count) or (slots.name[-2].lower() in "рь" and slots.name.lower() != "дверь") %} {% set ending = male_ending %} {% else %} diff --git a/responses/ru/HassTurnOn.yaml b/responses/ru/HassTurnOn.yaml index 9adaa2946f..0957a5bae3 100644 --- a/responses/ru/HassTurnOn.yaml +++ b/responses/ru/HassTurnOn.yaml @@ -8,8 +8,8 @@ responses: {% set male_ending = "" %} {% set plural_ending = "ы" %} {% if slots.name[-1].lower() in "ь" %} - {% if ((slots.name.split() + ["выключатель","пользователь","день","дождь","ночь"]) - | count != dict.fromkeys(slots.name.split() + ["выключатель","пользователь","день","дождь","ночь"]) | count) or + {% if ((slots.name.split().lower() + ["выключатель","пользователь","день","дождь"]) + | count != dict.fromkeys(slots.name.split().lower() + ["выключатель","пользователь","день","дождь"]) | count) or (slots.name[-2].lower() in "рь" and slots.name.lower() != "дверь") %} {% set ending = male_ending %} {% else %} @@ -29,7 +29,7 @@ responses: {% else %} {% set ending = male_ending %} {% endif %} - {{ (name_new.split()[-1].title() if slots.name[-1].lower() in "у, ю" else slots.name.split()[-1].title()) ~ " включен" ~ ending }} + {{ (name_new.split()[-1].title() if slots.name[-1].lower() in "у, ю" else slots.name.split()[-1].title()) ~ " включен" ~ ending }} lights_area: "Свет в {{ slots.area }} включен" light_all: "Весь свет включен" fans_area: "Включены вентиляторы в {{ slots.area }}" From 96a0844edf8ca5c27fa5c64920461a1721aaa888 Mon Sep 17 00:00:00 2001 From: mitrokun <108380896+mitrokun@users.noreply.github.com> Date: Thu, 13 Feb 2025 20:50:12 +0000 Subject: [PATCH 3/3] fix --- responses/ru/HassTurnOff.yaml | 4 ++-- responses/ru/HassTurnOn.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/responses/ru/HassTurnOff.yaml b/responses/ru/HassTurnOff.yaml index 5c4539b744..7a424f3253 100644 --- a/responses/ru/HassTurnOff.yaml +++ b/responses/ru/HassTurnOff.yaml @@ -8,8 +8,8 @@ responses: {% set male_ending = "" %} {% set plural_ending = "ы" %} {% if slots.name[-1].lower() in "ь" %} - {% if ((slots.name.split().lower() + ["выключатель","пользователь","день","дождь"]) - | count != dict.fromkeys(slots.name.split().lower() + ["выключатель","пользователь","день","дождь"]) | count) or + {% if ((slots.name.lower().split() + ["выключатель","пользователь","день","дождь"]) + | count != dict.fromkeys(slots.name.lower().split() + ["выключатель","пользователь","день","дождь"]) | count) or (slots.name[-2].lower() in "рь" and slots.name.lower() != "дверь") %} {% set ending = male_ending %} {% else %} diff --git a/responses/ru/HassTurnOn.yaml b/responses/ru/HassTurnOn.yaml index 0957a5bae3..b543a2360b 100644 --- a/responses/ru/HassTurnOn.yaml +++ b/responses/ru/HassTurnOn.yaml @@ -8,8 +8,8 @@ responses: {% set male_ending = "" %} {% set plural_ending = "ы" %} {% if slots.name[-1].lower() in "ь" %} - {% if ((slots.name.split().lower() + ["выключатель","пользователь","день","дождь"]) - | count != dict.fromkeys(slots.name.split().lower() + ["выключатель","пользователь","день","дождь"]) | count) or + {% if ((slots.name.lower().split() + ["выключатель","пользователь","день","дождь"]) + | count != dict.fromkeys(slots.lower().name.split() + ["выключатель","пользователь","день","дождь"]) | count) or (slots.name[-2].lower() in "рь" and slots.name.lower() != "дверь") %} {% set ending = male_ending %} {% else %}