From 4bff6a138643e2f19997432611374070d9abb538 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 24 Feb 2021 20:10:22 -0600 Subject: [PATCH 01/42] Re-ordered imports and put module-level documentation where it belongs --- __init__.py | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/__init__.py b/__init__.py index 87fecd3b..8570529b 100644 --- a/__init__.py +++ b/__init__.py @@ -11,26 +11,42 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +"""Mycroft skill for communicating weather information + +This skill uses the Open Weather Map API (https://openweathermap.org) and +the PyOWM wrapper for it. For more info, see: + +General info on PyOWM: + https://www.slideshare.net/csparpa/pyowm-my-first-open-source-project +OWM doc for APIs used: + https://openweathermap.org/current - current + https://openweathermap.org/forecast5 - three hour forecast + https://openweathermap.org/forecast16 - daily forecasts +PyOWM docs: + https://media.readthedocs.org/pdf/pyowm/latest/pyowm.pdf +""" import json -import pytz import time from copy import deepcopy from datetime import datetime, timedelta from multi_key_dict import multi_key_dict + +from adapt.intent import IntentBuilder from pyowm.webapi25.forecaster import Forecaster from pyowm.webapi25.forecastparser import ForecastParser from pyowm.webapi25.observationparser import ObservationParser +import pytz from requests import HTTPError, Response import mycroft.audio -from adapt.intent import IntentBuilder -from mycroft.api import Api from mycroft import MycroftSkill, intent_handler +from mycroft.api import Api from mycroft.messagebus.message import Message +from mycroft.util.format import ( + nice_date, nice_time, nice_number, pronounce_number, join_list +) from mycroft.util.log import LOG -from mycroft.util.format import (nice_date, nice_time, nice_number, - pronounce_number, join_list) from mycroft.util.parse import extract_datetime, extract_number from mycroft.util.time import now_local, to_utc, to_local @@ -45,19 +61,6 @@ class LocationNotFoundError(ValueError): APIErrors = (LocationNotFoundError, HTTPError) -""" - This skill uses the Open Weather Map API (https://openweathermap.org) and - the PyOWM wrapper for it. For more info, see: - - General info on PyOWM - https://www.slideshare.net/csparpa/pyowm-my-first-open-source-project - OWM doc for APIs used - https://openweathermap.org/current - current - https://openweathermap.org/forecast5 - three hour forecast - https://openweathermap.org/forecast16 - daily forecasts - PyOWM docs - https://media.readthedocs.org/pdf/pyowm/latest/pyowm.pdf -""" # Windstrength limits in miles per hour From 10af4d3d28c1e533627c17a45f9d5997bb0316e5 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Thu, 18 Mar 2021 16:25:10 -0500 Subject: [PATCH 02/42] refactor weather skill --- __init__.py | 2155 ++++------------- dialog/en-us/RelativeDay.voc | 6 - dialog/en-us/and.dialog | 1 - ...time.forecast.affirmative.condition.dialog | 3 - .../at.time.forecast.cond.alternative.dialog | 3 - ...orecast.local.affirmative.condition.dialog | 3 - ...ime.forecast.local.cond.alternative.dialog | 3 - ...me.forecast.local.no.cond.predicted.dialog | 2 - .../at.time.forecast.no.cond.predicted.dialog | 3 - .../at.time.local.high.temperature.dialog | 2 - .../at.time.local.low.temperature.dialog | 2 - .../at.time.local.no.cond.predicted.dialog | 2 - dialog/en-us/at.time.local.temperature.dialog | 2 - dialog/en-us/at.time.local.weather.dialog | 4 - dialog/en-us/at.time.no.cond.predicted.dialog | 2 - dialog/en-us/condition.category.value | 15 - ...current.clear.alternative.location.dialog} | 0 ...> current.clear.not.expected.local.dialog} | 0 ...urrent.clear.not.expected.location.dialog} | 0 ...urrent.clouds.alternative.location.dialog} | 0 ... current.clouds.not.expected.local.dialog} | 0 ...rrent.clouds.not.expected.location.dialog} | 0 ...> current.condition.expected.local.dialog} | 0 ...urrent.condition.expected.location.dialog} | 0 ...g => current.fog.alternative.local.dialog} | 0 ...> current.fog.alternative.location.dialog} | 0 ... => current.fog.not.expected.local.dialog} | 0 ... current.fog.not.expected.location.dialog} | 0 dialog/en-us/current.high.temperature.dialog | 4 - dialog/en-us/current.hot.dialog | 2 - dialog/en-us/current.humidity.local.dialog | 1 + dialog/en-us/current.humidity.location.dialog | 1 + dialog/en-us/current.local.cold.dialog | 2 - .../current.local.high.temperature.dialog | 4 - dialog/en-us/current.local.hot.dialog | 2 - .../current.local.low.temperature.dialog | 4 - dialog/en-us/current.local.temperature.dialog | 4 - dialog/en-us/current.local.weather.dialog | 3 - dialog/en-us/current.low.temperature.dialog | 2 - ... => current.rain.alternative.local.dialog} | 0 ... current.rain.alternative.location.dialog} | 0 ...=> current.rain.not.expected.local.dialog} | 0 ...current.rain.not.expected.location.dialog} | 0 ... => current.snow.alternative.local.dialog} | 0 ... current.snow.alternative.location.dialog} | 0 ...=> current.snow.not.expected.local.dialog} | 0 ...current.snow.not.expected.location.dialog} | 0 .../en-us/current.sunrise.future.local.dialog | 2 + .../current.sunrise.future.location.dialog | 2 + ...alog => current.sunrise.past.local.dialog} | 0 .../current.sunrise.past.location.dialog | 2 + ...log => current.sunset.future.local.dialog} | 0 .../current.sunset.future.location.dialog | 3 + dialog/en-us/current.sunset.past.local.dialog | 3 + .../en-us/current.sunset.past.location.dialog | 3 + dialog/en-us/current.temperature.dialog | 4 - .../current.temperature.high.local.dialog | 4 + .../current.temperature.high.location.dialog | 4 + .../en-us/current.temperature.high.low.dialog | 1 + dialog/en-us/current.temperature.local.dialog | 4 + .../en-us/current.temperature.location.dialog | 4 + .../current.temperature.low.local.dialog | 4 + .../current.temperature.low.location.dialog | 2 + ...ent.thunderstorm.alternative.local.dialog} | 0 ....thunderstorm.alternative.location.dialog} | 0 ...nt.thunderstorm.not.expected.local.dialog} | 0 ...thunderstorm.not.expected.location.dialog} | 0 dialog/en-us/current.weather.dialog | 3 - dialog/en-us/current.weather.local.dialog | 3 + dialog/en-us/current.weather.location.dialog | 3 + dialog/en-us/current.wind.light.local.dialog | 2 + .../en-us/current.wind.light.location.dialog | 2 + .../en-us/current.wind.moderate.local.dialog | 2 + .../current.wind.moderate.location.dialog | 2 + dialog/en-us/current.wind.strong.local.dialog | 3 + .../en-us/current.wind.strong.location.dialog | 3 + ... currrent.clouds.alternative.local.dialog} | 0 ...g => daily.clear.alternative.local.dialog} | 0 ...> daily.clear.alternative.location.dialog} | 0 ... => daily.clear.not.expected.local.dialog} | 0 ... daily.clear.not.expected.location.dialog} | 0 ... => daily.clouds.alternative.local.dialog} | 0 ... daily.clouds.alternative.location.dialog} | 0 ...=> daily.clouds.not.expected.local.dialog} | 0 ...daily.clouds.not.expected.location.dialog} | 0 ... => daily.condition.expected.local.dialog} | 0 ... daily.condition.expected.location.dialog} | 0 ...log => daily.fog.alternative.local.dialog} | 0 ... => daily.fog.alternative.location.dialog} | 0 ...og => daily.fog.not.expected.local.dialog} | 0 ...=> daily.fog.not.expected.location.dialog} | 0 dialog/en-us/daily.humidity.local.dialog | 2 + dialog/en-us/daily.humidity.location.dialog | 2 + .../daily.precipitation.next.local.dialog | 2 + .../daily.precipitation.next.location.dialog | 2 + ...daily.precipitation.next.none.local.dialog | 2 + ...ly.precipitation.next.none.location.dialog | 2 + ...og => daily.rain.alternative.local.dialog} | 0 ...=> daily.rain.alternative.location.dialog} | 0 ...g => daily.rain.not.expected.local.dialog} | 0 ...> daily.rain.not.expected.location.dialog} | 0 ...=> daily.snow.alternative.location.dialog} | 0 ...g => daily.snow.not.expected.local.dialog} | 0 ...> daily.snow.not.expected.location.dialog} | 0 dialog/en-us/daily.sunrise.local.dialog | 3 + dialog/en-us/daily.sunrise.location.dialog | 3 + dialog/en-us/daily.sunset.local.dialog | 4 + dialog/en-us/daily.sunset.location.dialog | 3 + .../en-us/daily.temperature.high.local.dialog | 2 + .../daily.temperature.high.location.dialog | 2 + dialog/en-us/daily.temperature.local.dialog | 2 + .../en-us/daily.temperature.location.dialog | 2 + .../en-us/daily.temperature.low.local.dialog | 2 + .../daily.temperature.low.location.dialog | 2 + ...ily.thunderstorm.alternative.local.dialog} | 0 ....thunderstorm.alternative.location.dialog} | 0 ...ly.thunderstorm.not.expected.local.dialog} | 0 ...thunderstorm.not.expected.location.dialog} | 0 dialog/en-us/daily.weather.local.dialog | 5 + dialog/en-us/daily.weather.location.dialog | 3 + dialog/en-us/daily.wind.light.local.dialog | 2 + dialog/en-us/daily.wind.light.location.dialog | 2 + dialog/en-us/daily.wind.moderate.local.dialog | 3 + .../en-us/daily.wind.moderate.location.dialog | 3 + dialog/en-us/daily.wind.strong.local.dialog | 2 + .../en-us/daily.wind.strong.location.dialog | 2 + dialog/en-us/{E.dialog => east.dialog} | 0 dialog/en-us/forecast.hard.wind.dialog | 2 - dialog/en-us/forecast.high.temperature.dialog | 2 - dialog/en-us/forecast.hot.dialog | 2 - dialog/en-us/forecast.light.wind.dialog | 2 - dialog/en-us/forecast.local.hard.wind.dialog | 2 - .../forecast.local.high.temperature.dialog | 2 - dialog/en-us/forecast.local.hot.dialog | 1 - dialog/en-us/forecast.local.light.wind.dialog | 2 - .../forecast.local.low.temperature.dialog | 2 - .../en-us/forecast.local.medium.wind.dialog | 3 - .../en-us/forecast.local.temperature.dialog | 2 - dialog/en-us/forecast.local.weather.dialog | 5 - dialog/en-us/forecast.low.temperature.dialog | 2 - dialog/en-us/forecast.medium.wind.dialog | 3 - dialog/en-us/forecast.temperature.dialog | 2 - dialog/en-us/forecast.weather.dialog | 3 - dialog/en-us/hard.wind.dialog | 3 - dialog/en-us/hour.local.weather.dialog | 4 - dialog/en-us/hour.weather.dialog | 4 - ...hourly.condition.alternative.local.dialog} | 0 ...rly.condition.alternative.location.dialog} | 0 ...=> hourly.condition.expected.local.dialog} | 0 ...hourly.condition.expected.location.dialog} | 0 .../hourly.precipitation.next.local.dialog | 2 + .../hourly.precipitation.next.location.dialog | 2 + dialog/en-us/hourly.temperature.local.dialog | 2 + .../en-us/hourly.temperature.location.dialog | 2 + dialog/en-us/hourly.weather.local.dialog | 4 + dialog/en-us/hourly.weather.location.dialog | 4 + dialog/en-us/light.wind.dialog | 2 - dialog/en-us/local.hard.wind.dialog | 3 - dialog/en-us/local.light.wind.dialog | 2 - dialog/en-us/local.medium.wind.dialog | 2 - dialog/en-us/location.not.found.dialog | 5 +- dialog/en-us/medium.wind.dialog | 2 - dialog/en-us/min.max.dialog | 1 - dialog/en-us/no precipitation expected.dialog | 2 - dialog/en-us/{N.dialog => north.dialog} | 0 dialog/en-us/{NE.dialog => northeast.dialog} | 0 dialog/en-us/{NW.dialog => northwest.dialog} | 0 dialog/en-us/on.date.dialog | 1 - dialog/en-us/on.dialog | 1 - dialog/en-us/percentage.number.dialog | 2 +- dialog/en-us/precipitation expected.dialog | 2 - .../en-us/report.condition.at.location.dialog | 1 - dialog/en-us/report.condition.dialog | 1 - ...report.condition.future.at.location.dialog | 2 - dialog/en-us/report.condition.future.dialog | 2 - dialog/en-us/report.wind.dialog | 1 - dialog/en-us/seven.days.available.dialog | 2 + dialog/en-us/{S.dialog => south.dialog} | 0 dialog/en-us/{SE.dialog => southeast.dialog} | 0 dialog/en-us/{SW.dialog => southwest.dialog} | 0 dialog/en-us/tonight.local.weather.dialog | 4 - dialog/en-us/weekly.condition.on.day.dialog | 1 - .../en-us/weekly.conditions.mostly.one.dialog | 1 - .../en-us/weekly.conditions.seq.extra.dialog | 2 - .../en-us/weekly.conditions.seq.period.dialog | 1 - .../en-us/weekly.conditions.seq.start.dialog | 1 - .../en-us/weekly.conditions.some.days.dialog | 1 - dialog/en-us/weekly.temp.range.dialog | 1 - dialog/en-us/{W.dialog => west.dialog} | 0 dialog/en-us/wind.speed.dialog | 1 - dialog/en-us/wind.speed.dir.dialog | 2 - dialog/en-us/wind.strength.hard.dialog | 1 - dialog/en-us/wind.strength.light.dialog | 3 - dialog/en-us/wind.strength.medium.dialog | 2 - dialog/en-us/winds.dialog | 1 - source/__init__.py | 14 + source/api.py | 28 + source/config.py | 55 + source/dialog.py | 226 ++ source/intent.py | 64 + source/util.py | 93 + source/weather.py | 209 ++ test/behave/current-temperature-local.feature | 44 + .../current-temperature-location.feature | 47 + test/behave/current-weather-local.feature | 29 + test/behave/current-weather-location.feature | 40 + test/behave/daily-temperature-local.feature | 97 + test/behave/daily-weather-local.feature | 25 + test/behave/daily-weather-location.feature | 14 + test/behave/weather-local.feature | 239 -- test/behave/weather-location.feature | 115 - test/behave/weather-precipitation.feature | 172 +- .../this.week.dialog => test/unit/__init__.py | 0 vocab/en-us/{Cloudy.voc => Clouds.voc} | 0 ...lternatives.voc => CloudsAlternatives.voc} | 0 vocab/en-us/{Foggy.voc => Fog.voc} | 0 vocab/en-us/Like.voc | 1 + vocab/en-us/Location.voc | 3 +- vocab/en-us/Outside.voc | 2 + vocab/en-us/{Raining.voc => Rain.voc} | 0 vocab/en-us/RelativeDay.voc | 10 +- vocab/en-us/{Snowing.voc => Snow.voc} | 0 vocab/en-us/Temperature.voc | 1 + vocab/en-us/{Storm.voc => Thunderstorm.voc} | 0 ...tives.voc => ThunderstormAlternatives.voc} | 0 vocab/en-us/what.is.multi.day.forecast.intent | 6 +- vocab/en-us/what.is.three.day.forecast.intent | 2 - ...what.is.three.day.forecast.location.intent | 1 - vocab/en-us/what.is.two.day.forecast.intent | 3 - vocab/en-us/whats.weather.like.intent | 5 - 230 files changed, 1699 insertions(+), 2327 deletions(-) delete mode 100644 dialog/en-us/RelativeDay.voc delete mode 100644 dialog/en-us/and.dialog delete mode 100644 dialog/en-us/at.time.forecast.affirmative.condition.dialog delete mode 100644 dialog/en-us/at.time.forecast.cond.alternative.dialog delete mode 100644 dialog/en-us/at.time.forecast.local.affirmative.condition.dialog delete mode 100644 dialog/en-us/at.time.forecast.local.cond.alternative.dialog delete mode 100644 dialog/en-us/at.time.forecast.local.no.cond.predicted.dialog delete mode 100644 dialog/en-us/at.time.forecast.no.cond.predicted.dialog delete mode 100644 dialog/en-us/at.time.local.high.temperature.dialog delete mode 100644 dialog/en-us/at.time.local.low.temperature.dialog delete mode 100644 dialog/en-us/at.time.local.no.cond.predicted.dialog delete mode 100644 dialog/en-us/at.time.local.temperature.dialog delete mode 100644 dialog/en-us/at.time.local.weather.dialog delete mode 100644 dialog/en-us/at.time.no.cond.predicted.dialog delete mode 100644 dialog/en-us/condition.category.value rename dialog/en-us/{clear.alternative.dialog => current.clear.alternative.location.dialog} (100%) rename dialog/en-us/{local.clear.alternative.dialog => current.clear.not.expected.local.dialog} (100%) rename dialog/en-us/{no.clear.predicted.dialog => current.clear.not.expected.location.dialog} (100%) rename dialog/en-us/{cloudy.alternative.dialog => current.clouds.alternative.location.dialog} (100%) rename dialog/en-us/{local.no.cloudy.predicted.dialog => current.clouds.not.expected.local.dialog} (100%) rename dialog/en-us/{no.cloudy.predicted.dialog => current.clouds.not.expected.location.dialog} (100%) rename dialog/en-us/{local.affirmative.condition.dialog => current.condition.expected.local.dialog} (100%) rename dialog/en-us/{affirmative.condition.dialog => current.condition.expected.location.dialog} (100%) rename dialog/en-us/{local.foggy.alternative.dialog => current.fog.alternative.local.dialog} (100%) rename dialog/en-us/{fog.alternative.dialog => current.fog.alternative.location.dialog} (100%) rename dialog/en-us/{local.no.fog.predicted.dialog => current.fog.not.expected.local.dialog} (100%) rename dialog/en-us/{no.fog.predicted.dialog => current.fog.not.expected.location.dialog} (100%) delete mode 100644 dialog/en-us/current.high.temperature.dialog delete mode 100644 dialog/en-us/current.hot.dialog create mode 100644 dialog/en-us/current.humidity.local.dialog create mode 100644 dialog/en-us/current.humidity.location.dialog delete mode 100644 dialog/en-us/current.local.cold.dialog delete mode 100644 dialog/en-us/current.local.high.temperature.dialog delete mode 100644 dialog/en-us/current.local.hot.dialog delete mode 100644 dialog/en-us/current.local.low.temperature.dialog delete mode 100644 dialog/en-us/current.local.temperature.dialog delete mode 100644 dialog/en-us/current.local.weather.dialog delete mode 100644 dialog/en-us/current.low.temperature.dialog rename dialog/en-us/{local.raining.alternative.dialog => current.rain.alternative.local.dialog} (100%) rename dialog/en-us/{raining.alternative.dialog => current.rain.alternative.location.dialog} (100%) rename dialog/en-us/{local.no.rain.predicted.dialog => current.rain.not.expected.local.dialog} (100%) rename dialog/en-us/{no.rain.predicted.dialog => current.rain.not.expected.location.dialog} (100%) rename dialog/en-us/{local.snowing.alternative.dialog => current.snow.alternative.local.dialog} (100%) rename dialog/en-us/{snowing.alternative.dialog => current.snow.alternative.location.dialog} (100%) rename dialog/en-us/{local.no.snow.predicted.dialog => current.snow.not.expected.local.dialog} (100%) rename dialog/en-us/{no.snow.predicted.dialog => current.snow.not.expected.location.dialog} (100%) create mode 100644 dialog/en-us/current.sunrise.future.local.dialog create mode 100644 dialog/en-us/current.sunrise.future.location.dialog rename dialog/en-us/{sunrise.dialog => current.sunrise.past.local.dialog} (100%) create mode 100644 dialog/en-us/current.sunrise.past.location.dialog rename dialog/en-us/{sunset.dialog => current.sunset.future.local.dialog} (100%) create mode 100644 dialog/en-us/current.sunset.future.location.dialog create mode 100644 dialog/en-us/current.sunset.past.local.dialog create mode 100644 dialog/en-us/current.sunset.past.location.dialog delete mode 100644 dialog/en-us/current.temperature.dialog create mode 100644 dialog/en-us/current.temperature.high.local.dialog create mode 100644 dialog/en-us/current.temperature.high.location.dialog create mode 100644 dialog/en-us/current.temperature.high.low.dialog create mode 100644 dialog/en-us/current.temperature.local.dialog create mode 100644 dialog/en-us/current.temperature.location.dialog create mode 100644 dialog/en-us/current.temperature.low.local.dialog create mode 100644 dialog/en-us/current.temperature.low.location.dialog rename dialog/en-us/{local.storm.alternative.dialog => current.thunderstorm.alternative.local.dialog} (100%) rename dialog/en-us/{storm.alternative.dialog => current.thunderstorm.alternative.location.dialog} (100%) rename dialog/en-us/{local.no.storm.predicted.dialog => current.thunderstorm.not.expected.local.dialog} (100%) rename dialog/en-us/{no.storm.predicted.dialog => current.thunderstorm.not.expected.location.dialog} (100%) delete mode 100644 dialog/en-us/current.weather.dialog create mode 100644 dialog/en-us/current.weather.local.dialog create mode 100644 dialog/en-us/current.weather.location.dialog create mode 100644 dialog/en-us/current.wind.light.local.dialog create mode 100644 dialog/en-us/current.wind.light.location.dialog create mode 100644 dialog/en-us/current.wind.moderate.local.dialog create mode 100644 dialog/en-us/current.wind.moderate.location.dialog create mode 100644 dialog/en-us/current.wind.strong.local.dialog create mode 100644 dialog/en-us/current.wind.strong.location.dialog rename dialog/en-us/{local.cloudy.alternative.dialog => currrent.clouds.alternative.local.dialog} (100%) rename dialog/en-us/{forecast.local.clear.alternative.dialog => daily.clear.alternative.local.dialog} (100%) rename dialog/en-us/{forecast.clear.alternative.dialog => daily.clear.alternative.location.dialog} (100%) rename dialog/en-us/{forecast.local.no.clear.predicted.dialog => daily.clear.not.expected.local.dialog} (100%) rename dialog/en-us/{forecast.no.clear.predicted.dialog => daily.clear.not.expected.location.dialog} (100%) rename dialog/en-us/{forecast.local.cloudy.alternative.dialog => daily.clouds.alternative.local.dialog} (100%) rename dialog/en-us/{forecast.cloudy.alternative.dialog => daily.clouds.alternative.location.dialog} (100%) rename dialog/en-us/{forecast.local.no.cloudy.predicted.dialog => daily.clouds.not.expected.local.dialog} (100%) rename dialog/en-us/{forecast.no.cloudy.predicted.dialog => daily.clouds.not.expected.location.dialog} (100%) rename dialog/en-us/{forecast.local.affirmative.condition.dialog => daily.condition.expected.local.dialog} (100%) rename dialog/en-us/{forecast.affirmative.condition.dialog => daily.condition.expected.location.dialog} (100%) rename dialog/en-us/{forecast.local.foggy.alternative.dialog => daily.fog.alternative.local.dialog} (100%) rename dialog/en-us/{forecast.foggy.alternative.dialog => daily.fog.alternative.location.dialog} (100%) rename dialog/en-us/{forecast.local.no.fog.predicted.dialog => daily.fog.not.expected.local.dialog} (100%) rename dialog/en-us/{forecast.no.fog.predicted.dialog => daily.fog.not.expected.location.dialog} (100%) create mode 100644 dialog/en-us/daily.humidity.local.dialog create mode 100644 dialog/en-us/daily.humidity.location.dialog create mode 100644 dialog/en-us/daily.precipitation.next.local.dialog create mode 100644 dialog/en-us/daily.precipitation.next.location.dialog create mode 100644 dialog/en-us/daily.precipitation.next.none.local.dialog create mode 100644 dialog/en-us/daily.precipitation.next.none.location.dialog rename dialog/en-us/{forecast.local.raining.alternative.dialog => daily.rain.alternative.local.dialog} (100%) rename dialog/en-us/{forecast.raining.alternative.dialog => daily.rain.alternative.location.dialog} (100%) rename dialog/en-us/{forecast.local.no.rain.predicted.dialog => daily.rain.not.expected.local.dialog} (100%) rename dialog/en-us/{forecast.no.rain.predicted.dialog => daily.rain.not.expected.location.dialog} (100%) rename dialog/en-us/{forecast.snowing.alternative.dialog => daily.snow.alternative.location.dialog} (100%) rename dialog/en-us/{forecast.local.no.snow.predicted.dialog => daily.snow.not.expected.local.dialog} (100%) rename dialog/en-us/{forecast.no.snow.predicted.dialog => daily.snow.not.expected.location.dialog} (100%) create mode 100644 dialog/en-us/daily.sunrise.local.dialog create mode 100644 dialog/en-us/daily.sunrise.location.dialog create mode 100644 dialog/en-us/daily.sunset.local.dialog create mode 100644 dialog/en-us/daily.sunset.location.dialog create mode 100644 dialog/en-us/daily.temperature.high.local.dialog create mode 100644 dialog/en-us/daily.temperature.high.location.dialog create mode 100644 dialog/en-us/daily.temperature.local.dialog create mode 100644 dialog/en-us/daily.temperature.location.dialog create mode 100644 dialog/en-us/daily.temperature.low.local.dialog create mode 100644 dialog/en-us/daily.temperature.low.location.dialog rename dialog/en-us/{forecast.local.storm.alternative.dialog => daily.thunderstorm.alternative.local.dialog} (100%) rename dialog/en-us/{forecast.storm.alternative.dialog => daily.thunderstorm.alternative.location.dialog} (100%) rename dialog/en-us/{forecast.local.no.storm.predicted.dialog => daily.thunderstorm.not.expected.local.dialog} (100%) rename dialog/en-us/{forecast.no.storm.predicted.dialog => daily.thunderstorm.not.expected.location.dialog} (100%) create mode 100644 dialog/en-us/daily.weather.local.dialog create mode 100644 dialog/en-us/daily.weather.location.dialog create mode 100644 dialog/en-us/daily.wind.light.local.dialog create mode 100644 dialog/en-us/daily.wind.light.location.dialog create mode 100644 dialog/en-us/daily.wind.moderate.local.dialog create mode 100644 dialog/en-us/daily.wind.moderate.location.dialog create mode 100644 dialog/en-us/daily.wind.strong.local.dialog create mode 100644 dialog/en-us/daily.wind.strong.location.dialog rename dialog/en-us/{E.dialog => east.dialog} (100%) delete mode 100644 dialog/en-us/forecast.hard.wind.dialog delete mode 100644 dialog/en-us/forecast.high.temperature.dialog delete mode 100644 dialog/en-us/forecast.hot.dialog delete mode 100644 dialog/en-us/forecast.light.wind.dialog delete mode 100644 dialog/en-us/forecast.local.hard.wind.dialog delete mode 100644 dialog/en-us/forecast.local.high.temperature.dialog delete mode 100644 dialog/en-us/forecast.local.hot.dialog delete mode 100644 dialog/en-us/forecast.local.light.wind.dialog delete mode 100644 dialog/en-us/forecast.local.low.temperature.dialog delete mode 100644 dialog/en-us/forecast.local.medium.wind.dialog delete mode 100644 dialog/en-us/forecast.local.temperature.dialog delete mode 100644 dialog/en-us/forecast.local.weather.dialog delete mode 100644 dialog/en-us/forecast.low.temperature.dialog delete mode 100644 dialog/en-us/forecast.medium.wind.dialog delete mode 100644 dialog/en-us/forecast.temperature.dialog delete mode 100644 dialog/en-us/forecast.weather.dialog delete mode 100644 dialog/en-us/hard.wind.dialog delete mode 100644 dialog/en-us/hour.local.weather.dialog delete mode 100644 dialog/en-us/hour.weather.dialog rename dialog/en-us/{at.time.local.cond.alternative.dialog => hourly.condition.alternative.local.dialog} (100%) rename dialog/en-us/{at.time.cond.alternative.dialog => hourly.condition.alternative.location.dialog} (100%) rename dialog/en-us/{at.time.local.affirmative.condition.dialog => hourly.condition.expected.local.dialog} (100%) rename dialog/en-us/{at.time.affirmative.condition.dialog => hourly.condition.expected.location.dialog} (100%) create mode 100644 dialog/en-us/hourly.precipitation.next.local.dialog create mode 100644 dialog/en-us/hourly.precipitation.next.location.dialog create mode 100644 dialog/en-us/hourly.temperature.local.dialog create mode 100644 dialog/en-us/hourly.temperature.location.dialog create mode 100644 dialog/en-us/hourly.weather.local.dialog create mode 100644 dialog/en-us/hourly.weather.location.dialog delete mode 100644 dialog/en-us/light.wind.dialog delete mode 100644 dialog/en-us/local.hard.wind.dialog delete mode 100644 dialog/en-us/local.light.wind.dialog delete mode 100644 dialog/en-us/local.medium.wind.dialog delete mode 100644 dialog/en-us/medium.wind.dialog delete mode 100644 dialog/en-us/min.max.dialog delete mode 100644 dialog/en-us/no precipitation expected.dialog rename dialog/en-us/{N.dialog => north.dialog} (100%) rename dialog/en-us/{NE.dialog => northeast.dialog} (100%) rename dialog/en-us/{NW.dialog => northwest.dialog} (100%) delete mode 100644 dialog/en-us/on.date.dialog delete mode 100644 dialog/en-us/on.dialog delete mode 100644 dialog/en-us/precipitation expected.dialog delete mode 100644 dialog/en-us/report.condition.at.location.dialog delete mode 100644 dialog/en-us/report.condition.dialog delete mode 100644 dialog/en-us/report.condition.future.at.location.dialog delete mode 100644 dialog/en-us/report.condition.future.dialog delete mode 100644 dialog/en-us/report.wind.dialog create mode 100644 dialog/en-us/seven.days.available.dialog rename dialog/en-us/{S.dialog => south.dialog} (100%) rename dialog/en-us/{SE.dialog => southeast.dialog} (100%) rename dialog/en-us/{SW.dialog => southwest.dialog} (100%) delete mode 100644 dialog/en-us/tonight.local.weather.dialog delete mode 100644 dialog/en-us/weekly.condition.on.day.dialog delete mode 100644 dialog/en-us/weekly.conditions.mostly.one.dialog delete mode 100644 dialog/en-us/weekly.conditions.seq.extra.dialog delete mode 100644 dialog/en-us/weekly.conditions.seq.period.dialog delete mode 100644 dialog/en-us/weekly.conditions.seq.start.dialog delete mode 100644 dialog/en-us/weekly.conditions.some.days.dialog delete mode 100644 dialog/en-us/weekly.temp.range.dialog rename dialog/en-us/{W.dialog => west.dialog} (100%) delete mode 100644 dialog/en-us/wind.speed.dialog delete mode 100644 dialog/en-us/wind.speed.dir.dialog delete mode 100644 dialog/en-us/wind.strength.hard.dialog delete mode 100644 dialog/en-us/wind.strength.light.dialog delete mode 100644 dialog/en-us/wind.strength.medium.dialog delete mode 100644 dialog/en-us/winds.dialog create mode 100644 source/__init__.py create mode 100644 source/api.py create mode 100644 source/config.py create mode 100644 source/dialog.py create mode 100644 source/intent.py create mode 100644 source/util.py create mode 100644 source/weather.py create mode 100644 test/behave/current-temperature-local.feature create mode 100644 test/behave/current-temperature-location.feature create mode 100644 test/behave/current-weather-local.feature create mode 100644 test/behave/current-weather-location.feature create mode 100644 test/behave/daily-temperature-local.feature create mode 100644 test/behave/daily-weather-local.feature create mode 100644 test/behave/daily-weather-location.feature delete mode 100644 test/behave/weather-local.feature delete mode 100644 test/behave/weather-location.feature rename dialog/en-us/this.week.dialog => test/unit/__init__.py (100%) rename vocab/en-us/{Cloudy.voc => Clouds.voc} (100%) rename vocab/en-us/{CloudyAlternatives.voc => CloudsAlternatives.voc} (100%) rename vocab/en-us/{Foggy.voc => Fog.voc} (100%) create mode 100644 vocab/en-us/Like.voc create mode 100644 vocab/en-us/Outside.voc rename vocab/en-us/{Raining.voc => Rain.voc} (100%) rename vocab/en-us/{Snowing.voc => Snow.voc} (100%) rename vocab/en-us/{Storm.voc => Thunderstorm.voc} (100%) rename vocab/en-us/{StormAlternatives.voc => ThunderstormAlternatives.voc} (100%) delete mode 100644 vocab/en-us/what.is.three.day.forecast.intent delete mode 100644 vocab/en-us/what.is.three.day.forecast.location.intent delete mode 100644 vocab/en-us/what.is.two.day.forecast.intent delete mode 100644 vocab/en-us/whats.weather.like.intent diff --git a/__init__.py b/__init__.py index 3ee3e760..fc0f286c 100644 --- a/__init__.py +++ b/__init__.py @@ -26,253 +26,48 @@ https://media.readthedocs.org/pdf/pyowm/latest/pyowm.pdf """ -import json -import time -from copy import deepcopy +from collections import defaultdict from datetime import datetime, timedelta from multi_key_dict import multi_key_dict +from typing import List, Optional from adapt.intent import IntentBuilder -from pyowm.webapi25.forecaster import Forecaster -from pyowm.webapi25.forecastparser import ForecastParser -from pyowm.webapi25.observationparser import ObservationParser import pytz -from requests import HTTPError, Response +from requests import HTTPError import mycroft.audio from mycroft import MycroftSkill, intent_handler -from mycroft.api import Api from mycroft.messagebus.message import Message -from mycroft.util.format import ( - nice_date, nice_time, nice_number, pronounce_number, join_list -) -from mycroft.util.log import LOG +from mycroft.util.format import (nice_date, join_list) from mycroft.util.parse import extract_datetime, extract_number -from mycroft.util.time import now_local, to_utc, to_local +from mycroft.util.time import to_utc, to_local +from .source import ( + get_sequence_of_days, + LocationNotFoundError, + OpenWeatherMapApi, + OWMApi, + WeatherConfig, + WeatherDialog, + WeatherIntent, + WeatherReport +) +# TODO: VK Failures +# Locations: Washington, D.C. +# +# TODO: Intent failures +# Later weather: only the word "later" in the vocab file works all others +# invoke datetime skill MINUTES = 60 # Minutes to seconds multiplier -class LocationNotFoundError(ValueError): - pass - - -APIErrors = (LocationNotFoundError, HTTPError) - - - - -# Windstrength limits in miles per hour -WINDSTRENGTH_MPH = { - 'hard': 20, - 'medium': 11 -} - - -# Windstrenght limits in m/s -WINDSTRENGTH_MPS = { - 'hard': 9, - 'medium': 5 -} - - -class OWMApi(Api): - ''' Wrapper that defaults to the Mycroft cloud proxy so user's don't need - to get their own OWM API keys ''' - - def __init__(self): - super(OWMApi, self).__init__("owm") - self.owmlang = "en" - self.encoding = "utf8" - self.observation = ObservationParser() - self.forecast = ForecastParser() - self.query_cache = {} - self.location_translations = {} - - @staticmethod - def get_language(lang): - """ - OWM supports 31 languages, see https://openweathermap.org/current#multi - - Convert language code to owm language, if missing use 'en' - """ - - owmlang = 'en' - - # some special cases - if lang == 'zh-zn' or lang == 'zh_zn': - return 'zh_zn' - elif lang == 'zh-tw' or lang == 'zh_tw': - return 'zh_tw' - - # special cases cont'd - lang = lang.lower().split("-") - lookup = { - 'sv': 'se', - 'cs': 'cz', - 'ko': 'kr', - 'lv': 'la', - 'uk': 'ua' - } - if lang[0] in lookup: - return lookup[lang[0]] - - owmsupported = ['ar', 'bg', 'ca', 'cz', 'da', 'de', 'el', 'en', 'fa', 'fi', - 'fr', 'gl', 'hr', 'hu', 'it', 'ja', 'kr', 'la', 'lt', - 'mk', 'nl', 'pl', 'pt', 'ro', 'ru', 'se', 'sk', 'sl', - 'es', 'tr', 'ua', 'vi'] - - if lang[0] in owmsupported: - return lang[0] - - if (len(lang) == 2): - if lang[1] in owmsupported: - return lang[1] - return owmlang - - def build_query(self, params): - params.get("query").update({"lang": self.owmlang}) - return params.get("query") - - def request(self, data): - """ Caching the responses """ - req_hash = hash(json.dumps(data, sort_keys=True)) - cache = self.query_cache.get(req_hash, (0, None)) - # check for caches with more days data than requested - if data['query'].get('cnt') and cache == (0, None): - test_req_data = deepcopy(data) - while test_req_data['query']['cnt'] < 16 and cache == (0, None): - test_req_data['query']['cnt'] += 1 - test_hash = hash(json.dumps(test_req_data, sort_keys=True)) - test_cache = self.query_cache.get(test_hash, (0, None)) - if test_cache != (0, None): - cache = test_cache - # Use cached response if value exists and was fetched within 15 min - now = time.monotonic() - if now > (cache[0] + 15 * MINUTES) or cache[1] is None: - resp = super().request(data) - # 404 returned as JSON-like string in some instances - if isinstance(resp, str) and '{"cod":"404"' in resp: - r = Response() - r.status_code = 404 - raise HTTPError(resp, response=r) - self.query_cache[req_hash] = (now, resp) - else: - LOG.debug('Using cached OWM Response from {}'.format(cache[0])) - resp = cache[1] - return resp - - def get_data(self, response): - return response.text - - def weather_at_location(self, name): - if name == '': - raise LocationNotFoundError('The location couldn\'t be found') - - q = {"q": name} - try: - data = self.request({ - "path": "/weather", - "query": q - }) - return self.observation.parse_JSON(data), name - except HTTPError as e: - if e.response.status_code == 404: - name = ' '.join(name.split()[:-1]) - return self.weather_at_location(name) - raise - - def weather_at_place(self, name, lat, lon): - if lat and lon: - q = {"lat": lat, "lon": lon} - else: - if name in self.location_translations: - name = self.location_translations[name] - response, trans_name = self.weather_at_location(name) - self.location_translations[name] = trans_name - return response - - data = self.request({ - "path": "/weather", - "query": q - }) - return self.observation.parse_JSON(data) - - def three_hours_forecast(self, name, lat, lon): - if lat and lon: - q = {"lat": lat, "lon": lon} - else: - if name in self.location_translations: - name = self.location_translations[name] - q = {"q": name} - - data = self.request({ - "path": "/forecast", - "query": q - }) - return self.to_forecast(data, "3h") - - def _daily_forecast_at_location(self, name, limit): - if name in self.location_translations: - name = self.location_translations[name] - orig_name = name - while name != '': - try: - q = {"q": name} - if limit is not None: - q["cnt"] = limit - data = self.request({ - "path": "/forecast/daily", - "query": q - }) - forecast = self.to_forecast(data, 'daily') - self.location_translations[orig_name] = name - return forecast - except HTTPError as e: - if e.response.status_code == 404: - # Remove last word in name - name = ' '.join(name.split()[:-1]) - - raise LocationNotFoundError('The location couldn\'t be found') - - def daily_forecast(self, name, lat, lon, limit=None): - if lat and lon: - q = {"lat": lat, "lon": lon} - else: - return self._daily_forecast_at_location(name, limit) - - if limit is not None: - q["cnt"] = limit - data = self.request({ - "path": "/forecast/daily", - "query": q - }) - return self.to_forecast(data, "daily") - - def to_forecast(self, data, interval): - forecast = self.forecast.parse_JSON(data) - if forecast is not None: - forecast.set_interval(interval) - return Forecaster(forecast) - else: - return None - - def set_OWM_language(self, lang): - self.owmlang = lang - - # Certain OWM condition information is encoded using non-utf8 - # encodings. If another language needs similar solution add them to the - # encodings dictionary - encodings = { - 'se': 'latin1' - } - self.encoding = encodings.get(lang, 'utf8') - - class WeatherSkill(MycroftSkill): def __init__(self): super().__init__("WeatherSkill") + self.weather_api = OWMApi() + self.weather_api_new = OpenWeatherMapApi() + self.weather_config = WeatherConfig(self.config_core, self.settings) # Build a dictionary to translate OWM weather-conditions # codes into the Mycroft weather icon codes @@ -292,1510 +87,511 @@ def __init__(self): self.settings["use_proxy"] = True def initialize(self): - # TODO: Remove lat,lon parameters from the OWMApi() - # methods and implement _at_coords() versions - # instead to make the interfaces compatible - # again. - # - # if self.settings["api_key"] and not self.settings['use_proxy']): - # self.owm = OWM(self.settings["api_key"]) - # else: - # self.owm = OWMApi() - self.owm = OWMApi() - if self.owm: - self.owm.set_OWM_language(lang=OWMApi.get_language(self.lang)) - - self.schedule_for_daily_use() - try: - self.mark2_forecast(self.__initialize_report(None)) - except Exception as e: - self.log.warning('Could not prepare forecasts. ' - '({})'.format(repr(e))) - - # self.test_screen() # DEBUG: Used during screen testing/debugging - - def test_screen(self): - self.gui["current"] = 72 - self.gui["min"] = 83 - self.gui["max"] = 5 - self.gui["location"] = "kansas city" - self.gui["condition"] = "sunny" - self.gui["icon"] = "sunny" - self.gui["weathercode"] = 0 - self.gui["humidity"] = "100%" - self.gui["wind"] = "--" - - self.gui.show_page('weather.qml') - - def prime_weather_cache(self): - # If not already cached, this will reach out for current conditions - report = self.__initialize_report(None) - try: - self.owm.weather_at_place( - report['full_location'], report['lat'], - report['lon']).get_weather() - self.owm.daily_forecast(report['full_location'], - report['lat'], report['lon'], limit=16) - except Exception as e: - self.log.error('Failed to prime weather cache ' - '({})'.format(repr(e))) - - def schedule_for_daily_use(self): - # Assume the user has a semi-regular schedule. Whenever this method - # is called, it will establish a 45 minute window of pre-cached - # weather info for the next day allowing for snappy responses to the - # daily query. - self.prime_weather_cache() - self.cancel_scheduled_event("precache1") - self.cancel_scheduled_event("precache2") - self.cancel_scheduled_event("precache3") - self.schedule_repeating_event(self.prime_weather_cache, None, - 60*60*24, # One day in seconds - name="precache1") - self.schedule_repeating_event(self.prime_weather_cache, None, - 60*60*24-60*15, # One day - 15 minutes - name="precache2") - self.schedule_repeating_event(self.prime_weather_cache, None, - 60*60*24+60*15, # One day + 15 minutes - name="precache3") - - def get_coming_days_forecast(self, forecast, unit, days=None): - """ - Get weather forcast for the coming days and returns them as a list - - Parameters: - forecast: OWM weather - unit: Temperature unit - dt: Reference time - days: number of days to get forecast for, defaults to 4 - - Returns: List of dicts containg weather info - """ - days = days or 4 - weekdays = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] - forecast_list = [] - # Get tomorrow and 4 days forward - for weather in list(forecast.get_weathers())[1:5]: - result_temp = weather.get_temperature(unit) - day_num = datetime.weekday( - datetime.fromtimestamp(weather.get_reference_time())) - result_temp_day = weekdays[day_num] - forecast_list.append({ - "weathercode": self.CODES[weather.get_weather_icon_name()], - "max": round(result_temp['max']), - "min": round(result_temp['min']), - "date": result_temp_day - }) - return forecast_list - - def mark2_forecast(self, report): - """ Builds forecast for the upcoming days for the Mark-2 display.""" - future_weather = self.owm.daily_forecast(report['full_location'], - report['lat'], - report['lon'], limit=5) - if future_weather is None: - self.__report_no_data('weather') - return - - f = future_weather.get_forecast() - forecast_list = self.get_coming_days_forecast( - f, self.__get_temperature_unit()) - - if "gui" in dir(self): - forecast = {} - forecast['first'] = forecast_list[0:2] - forecast['second'] = forecast_list[2:4] - self.gui['forecast'] = forecast - - # DATETIME BASED QUERIES - # Handle: what is the weather like? - @intent_handler(IntentBuilder("").one_of("Weather", "Forecast") - .require("Query").optionally("Location") - .optionally("Today").build()) + if self.weather_api: + self.weather_api.set_OWM_language(lang=OWMApi.get_language(self.lang)) + self.weather_config.speed_unit = self.translate( + self.weather_config.speed_unit + ) + self.weather_config.temperature_unit = self.translate( + self.weather_config.temperature_unit + ) + + @intent_handler( + IntentBuilder("").one_of("Weather", "Forecast").optionally("Query") + .optionally("Location").optionally("Today") + ) def handle_current_weather(self, message): - try: - self.log.debug("Handler: handle_current_weather") - # Get a date from requests like "weather for next Tuesday" - today, _ = self.__extract_datetime("today") - when, _ = self.__extract_datetime(message.data.get('utterance'), - lang=self.lang) - if when and when != today: - self.log.debug("Doing a forecast {} {}".format(today, when)) - return self.handle_forecast(message) - - report = self.__populate_report(message) - - if report is None: - self.__report_no_data('weather') - return - - self.__report_weather( - "current", report, - separate_min_max='Location' not in message.data) - self.mark2_forecast(report) - - # Establish the daily cadence - self.schedule_for_daily_use() - except APIErrors as e: - self.log.exception(repr(e)) - self.__api_error(e) - except Exception as e: - self.log.exception("Error: {0}".format(e)) - - @intent_handler("whats.weather.like.intent") - def handle_current_weather_alt(self, message): - self.handle_current_weather(message) - - @intent_handler(IntentBuilder("").one_of("Weather", "Forecast") - .one_of("Now", "Today").optionally("Location").build()) - def handle_current_weather_simple(self, message): - self.handle_current_weather(message) - - @intent_handler("what.is.three.day.forecast.intent") - def handle_three_day_forecast(self, message): - """ Handler for three day forecast without specified location - - Examples: "What is the 3 day forecast?" - "What is the weather forecast?" - """ - report = self.__initialize_report(message) - - try: - self.report_multiday_forecast(report) - except APIErrors as e: - self.__api_error(e) - except Exception as e: - self.log.exception("Error: {0}".format(e)) - - @intent_handler("what.is.three.day.forecast.location.intent") - def handle_three_day_forecast_location(self, message): - """ Handler for three day forecast for a specific location + # Handle: what is the weather like? + self._report_current_weather(message) - Example: "What is the 3 day forecast for London?" - """ - # padatious lowercases everything including these keys - message.data['Location'] = message.data.pop('location') - return self.handle_three_day_forecast(message) - - @intent_handler("what.is.two.day.forecast.intent") - def handle_two_day_forecast(self, message): - """ Handler for two day forecast with no specified location - - Examples: "What's the weather like next Monday and Tuesday?" - "What's the weather gonna be like in the coming days?" - """ - # TODO consider merging in weekend intent - - report = self.__initialize_report(message) - if message.data.get('day_one'): - # report two or more specific days - days = [] - day_num = 1 - day = message.data['day_one'] - while day: - day_dt, _ = self.__extract_datetime(day) - days.append(day_dt) - day_num += 1 - next_day = 'day_{}'.format(pronounce_number(day_num)) - day = message.data.get(next_day) - - try: - if message.data.get('day_one'): - # report two or more specific days - self.report_multiday_forecast(report, set_days=days) - else: - # report next two days - self.report_multiday_forecast(report, num_days=2) - - except APIErrors as e: - self.__api_error(e) - except Exception as e: - self.log.exception("Error: {0}".format(e)) + @intent_handler( + IntentBuilder("").require("Query").require("Like").require("Outside") + .optionally("Location").optionally("Today") + ) + def handle_like_outside(self, message): + self._report_current_weather(message) @intent_handler("what.is.multi.day.forecast.intent") def handle_multi_day_forecast(self, message): - """ Handler for multiple day forecast with no specified location + """ Handler for three day forecast without specified location - Examples: "What's the weather like in the next 4 days?" + Examples: "What is the 3 day forecast?" + "What is the weather forecast?" """ - - report = self.__initialize_report(message) - # report x number of days - when, _ = self.__extract_datetime("tomorrow") - num_days = int(extract_number(message.data['num'])) - if self.voc_match(message.data['num'], 'Couple'): - self.report_multiday_forecast(report, num_days=2) - - self.report_multiday_forecast(report, when, - num_days=num_days) - - # Handle: What is the weather forecast tomorrow? - @intent_handler(IntentBuilder("").one_of("Weather", "Forecast") - .optionally("Query").require("RelativeDay") - .optionally("Location").build()) - def handle_forecast(self, message): - report = self.__initialize_report(message) - - # Get a date from spoken request - when, _ = self.__extract_datetime(message.data.get('utterance'), - lang=self.lang) - today, _ = self.__extract_datetime('today', lang='en-us') - - if today == when: - self.handle_current_weather(message) - return - - self.report_forecast(report, when) - - # Establish the daily cadence - self.schedule_for_daily_use() - - # Handle: What's the weather later? - @intent_handler(IntentBuilder("").require("Query").require( - "Weather").optionally("Location").require("Later").build()) + days = 2 + else: + days = int(extract_number(message.data['num'])) + if days > 7: + self.speak_dialog('seven.days.available') + days = 7 + self._report_multi_day_forecast(message, days) + + @intent_handler( + IntentBuilder("").one_of("Weather", "Forecast").optionally("Query") + .require("RelativeDay").optionally("Location") + ) + def handle_one_day_forecast(self, message): + # Handle: What is the weather forecast tomorrow? + self._report_one_day_forecast(message) + + @intent_handler( + IntentBuilder("").require("Query").require("Weather") + .require("Later").optionally("Location") + ) def handle_next_hour(self, message): - report = self.__initialize_report(message) - - # Get near-future forecast - forecastWeather = self.owm.three_hours_forecast( - report['full_location'], - report['lat'], - report['lon']).get_forecast().get_weathers()[0] - - if forecastWeather is None: - self.__report_no_data('weather') - return - - # NOTE: The 3-hour forecast uses different temperature labels, - # temp, temp_min and temp_max. - report['temp'] = self.__get_temperature(forecastWeather, 'temp') - report['temp_min'] = self.__get_temperature(forecastWeather, - 'temp_min') - report['temp_max'] = self.__get_temperature(forecastWeather, - 'temp_max') - report['condition'] = forecastWeather.get_detailed_status() - report['icon'] = forecastWeather.get_weather_icon_name() - self.__report_weather("hour", report) - - # Handle: What's the weather tonight / tomorrow morning? - @intent_handler(IntentBuilder("").require("RelativeTime") - .one_of("Weather", "Forecast").optionally("Query") - .optionally("RelativeDay").optionally("Location").build()) + # Handle: What's the weather later? + self._report_one_hour_weather(message) + + @intent_handler( + IntentBuilder("").require("RelativeTime").one_of("Weather", "Forecast") + .optionally("Query").optionally("RelativeDay").optionally("Location") + ) def handle_weather_at_time(self, message): - self.log.debug("Handler: handle_weather_at_time") - when, _ = self.__extract_datetime( - message.data.get('utterance'), lang=self.lang) - now = datetime.utcnow() - time_diff = (when - now) - mins_diff = (time_diff.days * 1440) + (time_diff.seconds / 60) - - if mins_diff < 120: - self.handle_current_weather(message) - else: - report = self.__populate_report(message) - - if report is None: - self.__report_no_data('weather') - return - self.__report_weather("at.time", report) - - @intent_handler(IntentBuilder("").require("Query").one_of( - "Weather", "Forecast").require("Weekend").require( - "Next").optionally("Location").build()) - def handle_next_weekend_weather(self, message): - """ Handle next weekends weather """ - - report = self.__initialize_report(message) - when, _ = self.__extract_datetime('next saturday', lang='en-us') - self.report_forecast(report, when) - when, _ = self.__extract_datetime('next sunday', lang='en-us') - self.report_forecast(report, when) - - @intent_handler(IntentBuilder("").require("Query") - .one_of("Weather", "Forecast").require("Weekend") - .optionally("Location").build()) - def handle_weekend_weather(self, message): + # Handle: What's the weather tonight / tomorrow morning? + self._report_one_hour_weather(message) + + @intent_handler( + IntentBuilder("").require("Query").one_of("Weather", "Forecast") + .require("Weekend").optionally("Location") + ) + def handle_weekend_forecast(self, message): """ Handle weather for weekend. """ - report = self.__initialize_report(message) - - # Get a date from spoken request - when, _ = self.__extract_datetime('this saturday', lang='en-us') - self.report_forecast(report, when) - when, _ = self.__extract_datetime('this sunday', lang='en-us') - self.report_forecast(report, when) + self._report_weekend_forecast(message) - @intent_handler(IntentBuilder("").optionally("Query") - .one_of("Weather", "Forecast").require("Week") - .optionally("Location").build()) + @intent_handler( + IntentBuilder("").optionally("Query").one_of("Weather", "Forecast") + .require("Week").optionally("Location") + ) def handle_week_weather(self, message): """ Handle weather for week. Speaks overview of week, not daily forecasts """ - report = self.__initialize_report(message) - when, _ = self.__extract_datetime(message.data['utterance']) - today, _ = self.__extract_datetime("today") - if not when: - when = today - days = [when + timedelta(days=i) for i in range(7)] - # Fetch forecasts/reports for week - forecasts = [dict(self.__populate_forecast(report, day, - preface_day=False)) - if day != today - else dict(self.__populate_current(report, day)) - for day in days] - - if forecasts is None: - self.__report_no_data('weather') - return - - # collate forecasts - collated = {'condition': [], 'condition_cat': [], 'icon': [], - 'temp': [], 'temp_min': [], 'temp_max': []} - for fc in forecasts: - for attribute in collated.keys(): - collated[attribute].append(fc.get(attribute)) - - # analyse for commonality/difference - primary_category = max(collated['condition_cat'], - key=collated['condition_cat'].count) - days_with_primary_cat, conditions_in_primary_cat = [], [] - days_with_other_cat = {} - for i, item in enumerate(collated['condition_cat']): - if item == primary_category: - days_with_primary_cat.append(i) - conditions_in_primary_cat.append(collated['condition'][i]) - else: - if not days_with_other_cat.get(item): - days_with_other_cat[item] = [] - days_with_other_cat[item].append(i) - primary_condition = max(conditions_in_primary_cat, - key=conditions_in_primary_cat.count) - - # CONSTRUCT DIALOG - speak_category = self.translate_namedvalues('condition.category') - # 0. Report period starting day - if days[0] == today: - dialog = self.translate('this.week') - else: - speak_day = self.__to_day(days[0]) - dialog = self.translate('from.day', {'day': speak_day}) - - # 1. whichever is longest (has most days), report as primary - # if over half the days => "it will be mostly {cond}" - speak_primary = speak_category[primary_category] - seq_primary_days = self.__get_seqs_from_list(days_with_primary_cat) - if len(days_with_primary_cat) >= (len(days) / 2): - dialog = self.concat_dialog(dialog, - 'weekly.conditions.mostly.one', - {'condition': speak_primary}) - elif seq_primary_days: - # if condition occurs on sequential days, report date range - dialog = self.concat_dialog(dialog, - 'weekly.conditions.seq.start', - {'condition': speak_primary}) - for seq in seq_primary_days: - if seq is not seq_primary_days[0]: - dialog = self.concat_dialog(dialog, 'and') - day_from = self.__to_day(days[seq[0]]) - day_to = self.__to_day(days[seq[-1]]) - dialog = self.concat_dialog(dialog, - 'weekly.conditions.seq.period', - {'from': day_from, - 'to': day_to}) - else: - # condition occurs on random days - dialog = self.concat_dialog(dialog, - 'weekly.conditions.some.days', - {'condition': speak_primary}) - self.speak_dialog(dialog) - - # 2. Any other conditions present: - dialog = "" - dialog_list = [] - for cat in days_with_other_cat: - spoken_cat = speak_category[cat] - cat_days = days_with_other_cat[cat] - seq_days = self.__get_seqs_from_list(cat_days) - for seq in seq_days: - if seq is seq_days[0]: - seq_dialog = spoken_cat - else: - seq_dialog = self.translate('and') - day_from = self.__to_day(days[seq[0]]) - day_to = self.__to_day(days[seq[-1]]) - seq_dialog = self.concat_dialog( - seq_dialog, - self.translate('weekly.conditions.seq.period', - {'from': day_from, - 'to': day_to})) - dialog_list.append(seq_dialog) - if not seq_days: - for day in cat_days: - speak_day = self.__to_day(days[day]) - dialog_list.append(self.translate( - 'weekly.condition.on.day', - {'condition': collated['condition'][day], - 'day': speak_day})) - dialog = join_list(dialog_list, 'and') - self.speak_dialog(dialog) - - # 3. Report temps: - temp_ranges = { - 'low_min': min(collated['temp_min']), - 'low_max': max(collated['temp_min']), - 'high_min': min(collated['temp_max']), - 'high_max': max(collated['temp_max']) - } - self.speak_dialog('weekly.temp.range', temp_ranges) - - # CONDITION BASED QUERY HANDLERS #### - @intent_handler(IntentBuilder("").require("Temperature") - .require("Query").optionally("Location") - .optionally("Unit").optionally("Today") - .optionally("Now").build()) + self._report_multi_day_forecast(message, days=7) + + @intent_handler( + IntentBuilder("").require("Temperature").optionally("Query") + .optionally("Location").optionally("Unit").optionally("Today") + .optionally("Now") + ) def handle_current_temperature(self, message): - return self.__handle_typed(message, 'temperature') + self._report_temperature(message, temperature_type="current") - @intent_handler('simple.temperature.intent') + @intent_handler( + IntentBuilder("").optionally("Query").require("Temperature") + .optionally("Location").optionally("Unit").optionally("RelativeDay") + .optionally("Now") + ) def handle_simple_temperature(self, message): - return self.__handle_typed(message, 'temperature') - - @intent_handler(IntentBuilder("").require("Query").require("High") - .optionally("Temperature").optionally("Location") - .optionally("Unit").optionally("RelativeDay") - .optionally("Now").build()) + self._report_temperature(message, temperature_type="current") + + @intent_handler( + IntentBuilder("").require("RelativeTime").require("Temperature") + .optionally("Query").optionally("RelativeDay").optionally("Location") + ) + def handle_temperature_at_time(self, message): + self._report_temperature(message) + + @intent_handler( + IntentBuilder("").optionally("Query").require("High") + .optionally("Temperature").optionally("Location").optionally("Unit") + .optionally("RelativeDay") + ) def handle_high_temperature(self, message): - return self.__handle_typed(message, 'high.temperature') + self._report_temperature(message, temperature_type="high") - @intent_handler(IntentBuilder("").require("Query").require("Low") - .optionally("Temperature").optionally("Location") - .optionally("Unit").optionally("RelativeDay") - .optionally("Now").build()) + @intent_handler( + IntentBuilder("").optionally("Query").require("Low") + .optionally("Temperature").optionally("Location").optionally("Unit") + .optionally("RelativeDay") + ) def handle_low_temperature(self, message): - return self.__handle_typed(message, 'low.temperature') - - @intent_handler(IntentBuilder("").require("ConfirmQuery").require( - "Windy").optionally("Location").build()) - def handle_isit_windy(self, message): - """ Handler for utterances similar to "is it windy today?" """ - report = self.__populate_report(message) + self._report_temperature(message, temperature_type="low") - if report is None: - self.__report_no_data('weather') - return - - if self.__get_speed_unit() == 'mph': - limits = WINDSTRENGTH_MPH - report['wind_unit'] = self.translate('miles per hour') - else: - limits = WINDSTRENGTH_MPS - report['wind_unit'] = self.translate('meters per second') - - dialog = [] - if 'day' in report: - dialog.append('forecast') - if "Location" not in message.data: - dialog.append('local') - if int(report['wind']) >= limits['hard']: - dialog.append('hard') - elif int(report['wind']) >= limits['medium']: - dialog.append('medium') - else: - dialog.append('light') - dialog.append('wind') - dialog = '.'.join(dialog) - self.speak_dialog(dialog, report) - - @intent_handler(IntentBuilder("").require("ConfirmQueryCurrent").one_of( - "Hot", "Cold").optionally("Location").optionally("Today").build()) - def handle_isit_hot(self, message): + @intent_handler( + IntentBuilder("").require("ConfirmQueryCurrent").one_of("Hot", "Cold") + .optionally("Location").optionally("Today") + ) + def handle_is_it_hot(self, message): """ Handler for utterances similar to is it hot today?, is it cold? etc """ - return self.__handle_typed(message, 'hot') + self._report_temperature(message, "current") - # TODO This seems to present current temp, or possibly just hottest temp - @intent_handler(IntentBuilder("").optionally("How").one_of("Hot", "Cold") - .one_of("ConfirmQueryFuture", "ConfirmQueryCurrent") - .optionally("Location").optionally("RelativeDay").build()) + @intent_handler( + IntentBuilder("").optionally("How").one_of("Hot", "Cold") + .one_of("ConfirmQueryFuture", "ConfirmQueryCurrent") + .optionally("Location").optionally("RelativeDay") + ) def handle_how_hot_or_cold(self, message): """ Handler for utterances similar to how hot will it be today?, how cold will it be? , etc """ - response_type = 'high.temperature' if message.data.get('Hot') \ - else 'low.temperature' - return self.__handle_typed(message, response_type) - - @intent_handler(IntentBuilder("").require("How").one_of("Hot", "Cold") - .one_of("ConfirmQueryFuture", "ConfirmQueryCurrent") - .optionally("Location").optionally("RelativeDay").build()) + temperature_type = "high" if message.data.get('Hot') else "low" + self._report_temperature(message, temperature_type) + + @intent_handler( + IntentBuilder("").require("How").one_of("Hot", "Cold") + .one_of("ConfirmQueryFuture", "ConfirmQueryCurrent") + .optionally("Location").optionally("RelativeDay") + ) def handle_how_hot_or_cold_alt(self, message): - self.handle_how_hot_or_cold(message) - - @intent_handler(IntentBuilder("").require("ConfirmQuery") - .require("Snowing").optionally("Location").build()) - def handle_isit_snowing(self, message): - """ Handler for utterances similar to "is it snowing today?" - """ - report = self.__populate_report(message) - - if report is None: - self.__report_no_data('weather') - return - - dialog = self.__select_condition_dialog(message, report, - "snow", "snowing") - self.speak_dialog(dialog, report) - - @intent_handler(IntentBuilder("").require("ConfirmQuery").require( - "Clear").optionally("Location").build()) - def handle_isit_clear(self, message): - """ Handler for utterances similar to "is it clear skies today?" - """ - report = self.__populate_report(message) - - if report is None: - self.__report_no_data('weather') - return - - dialog = self.__select_condition_dialog(message, report, "clear") - self.speak_dialog(dialog, report) - - @intent_handler(IntentBuilder("").require("ConfirmQuery").require( - "Cloudy").optionally("Location").optionally("RelativeTime").build()) - def handle_isit_cloudy(self, message): - """ Handler for utterances similar to "is it cloudy skies today?" - """ - report = self.__populate_report(message) - - if report is None: - self.__report_no_data('weather') - return - - dialog = self.__select_condition_dialog(message, report, "cloudy") - self.speak_dialog(dialog, report) - - @intent_handler(IntentBuilder("").require("ConfirmQuery").require( - "Foggy").optionally("Location").build()) - def handle_isit_foggy(self, message): - """ Handler for utterances similar to "is it foggy today?" - """ - report = self.__populate_report(message) - - if report is None: - self.__report_no_data('weather') - return - - dialog = self.__select_condition_dialog(message, report, "fog", - "foggy") - self.speak_dialog(dialog, report) - - @intent_handler(IntentBuilder("").require("ConfirmQuery").require( - "Raining").optionally("Location").build()) - def handle_isit_raining(self, message): - """ Handler for utterances similar to "is it raining today?" - """ - report = self.__populate_report(message) - - if report is None: - self.__report_no_data('weather') - return + temperature_type = "high" if message.data.get('Hot') else "low" + self._report_temperature(message, temperature_type) + + @intent_handler( + IntentBuilder("").require("ConfirmQuery").require("Windy") + .optionally("Location").optionally("RelativeDay") + ) + def handle_is_it_windy(self, message): + """ Handler for utterances similar to "is it windy today?" """ + self._report_wind(message) - dialog = self.__select_condition_dialog(message, report, "rain", - "raining") - self.speak_dialog(dialog, report) + @intent_handler( + IntentBuilder("").require("How").require("Windy") + .optionally("Location").optionally("ConfirmQuery") + .optionally("RelativeDay") + ) + def handle_windy(self, message): + # Handle: How windy is it? + self._report_wind(message) + + @intent_handler( + IntentBuilder("").require("ConfirmQuery").require("Snowing") + .optionally("Location") + ) + def handle_is_it_snowing(self, message): + """Handler for utterances similar to "is it snowing today?" """ + self._report_weather_condition(message, "Snow") + + @intent_handler( + IntentBuilder("").require("ConfirmQuery").require("Clear") + .optionally("Location") + ) + def handle_is_it_clear(self, message): + """Handler for utterances similar to "is it clear skies today?" """ + self._report_weather_condition(message, condition="Clear") + + @intent_handler( + IntentBuilder("").require("ConfirmQuery").require("Cloudy") + .optionally("Location").optionally("RelativeTime") + ) + def handle_is_it_cloudy(self, message): + """Handler for utterances similar to "is it cloudy skies today?" """ + self._report_weather_condition(message, "Clouds") + + @intent_handler( + IntentBuilder("").require("ConfirmQuery").require("Foggy") + .optionally("Location") + ) + def handle_is_it_foggy(self, message): + """Handler for utterances similar to "is it foggy today?" """ + self._report_weather_condition(message, "Fog") + + @intent_handler( + IntentBuilder("").require("ConfirmQuery").require("Raining") + .optionally("Location") + ) + def handle_is_it_raining(self, message): + """Handler for utterances similar to "is it raining today?" """ + self._report_weather_condition(message, "Rain") @intent_handler("do.i.need.an.umbrella.intent") def handle_need_umbrella(self, message): - self.handle_isit_raining(message) - - @intent_handler(IntentBuilder("").require("ConfirmQuery").require( - "Storm").optionally("Location").build()) - def handle_isit_storming(self, message): - """ Handler for utterances similar to "is it storming today?" - """ - report = self.__populate_report(message) - - if report is None: - self.__report_no_data('weather') - return - - dialog = self.__select_condition_dialog(message, report, "storm") - self.speak_dialog(dialog, report) - - # Handle: When will it rain again? - @intent_handler(IntentBuilder("").require("When").optionally( - "Next").require("Precipitation").optionally("Location").build()) + self._report_weather_condition(message, "Rain") + + @intent_handler( + IntentBuilder("").require("ConfirmQuery").require("Storm") + .optionally("Location") + ) + def handle_is_it_storming(self, message): + """Handler for utterances similar to "is it storming today?" """ + self._report_weather_condition(message, 'Thunderstorm') + + @intent_handler( + IntentBuilder("").require("When").optionally("Next") + .require("Precipitation").optionally("Location") + ) def handle_next_precipitation(self, message): - report = self.__initialize_report(message) - - # Get a date from spoken request - today, _ = self.__extract_datetime("today") - when, _ = self.__extract_datetime(message.data.get('utterance'), - lang=self.lang) - - # search the forecast for precipitation - weathers = self.owm.daily_forecast( - report['full_location'], - report['lat'], - report['lon'], 10).get_forecast() - - if weathers is None: - self.__report_no_data('weather') - return - - weathers = weathers.get_weathers() - for weather in weathers: - - forecastDate = datetime.fromtimestamp(weather.get_reference_time()) - - if when and when != today: - # User asked about a specific date, is this it? - if forecastDate.date() != when.date(): - continue - - rain = weather.get_rain() - if rain and rain["all"] > 0: - data = { - "modifier": "", - "precip": "rain", - "day": self.__to_day(forecastDate, preface=True) - } - if rain["all"] < 10: - data["modifier"] = self.__translate("light") - elif rain["all"] > 20: - data["modifier"] = self.__translate("heavy") - - self.speak_dialog("precipitation expected", data) - return - - snow = weather.get_snow() - if snow and snow["all"] > 0: - data = { - "modifier": "", - "precip": "snow", - "day": self.__to_day(forecastDate, preface=True) - } - if snow["all"] < 10: - data["modifier"] = self.__translate("light") - elif snow["all"] > 20: - data["modifier"] = self.__translate("heavy") - - self.speak_dialog("precipitation expected", data) - return - - self.speak_dialog("no precipitation expected", report) - - # Handle: How humid is it? - @intent_handler(IntentBuilder("").require("Query").require("Humidity") - .optionally("RelativeDay").optionally("Location").build()) + # Handle: When will it rain again? + intent_data = WeatherIntent(message, self.lang) + weather = self._get_weather(intent_data) + if weather is not None: + forecast, timeframe = weather.get_next_precipitation(intent_data) + intent_data.timeframe = timeframe + dialog = WeatherDialog(forecast, self.weather_config, intent_data) + dialog.build_next_precipitation_dialog() + self._speak_weather(dialog) + + @intent_handler( + IntentBuilder("").require("Query").require("Humidity") + .optionally("RelativeDay").optionally("Location") + ) def handle_humidity(self, message): - report = self.__initialize_report(message) - - when, _ = self.__extract_datetime(message.data.get('utterance'), - lang=self.lang) - today, _ = self.__extract_datetime("today") - if when is None or when == today: - weather = self.owm.weather_at_place( - report['full_location'], - report['lat'], - report['lon']).get_weather() - else: - # Get forecast for that day - weather = self.__get_forecast( - when, report['full_location'], report['lat'], report['lon']) - - if weather is None: - self.__report_no_data('weather') - return - - if weather.get_humidity() == 0: - self.speak_dialog("do not know") - return - - value = self.translate('percentage.number', - {'num': str(weather.get_humidity())}) - loc = message.data.get('Location') - self.__report_condition(self.__translate("humidity"), value, when, loc) - - # Handle: How windy is it? - @intent_handler(IntentBuilder("").require("Query").require("Windy") - .optionally("Location").optionally("ConfirmQuery") - .optionally("RelativeDay").build()) - def handle_windy(self, message): - report = self.__initialize_report(message) - - when, _ = self.__extract_datetime(message.data.get('utterance')) - today, _ = self.__extract_datetime("today") - if when is None or when == today: - weather = self.owm.weather_at_place( - report['full_location'], - report['lat'], - report['lon']).get_weather() - else: - # Get forecast for that day - weather = self.__get_forecast( - when, report['full_location'], report['lat'], report['lon']) - - if weather is None: - self.__report_no_data('weather') - return - - if not weather or weather.get_wind() == 0: - self.speak_dialog("do not know") - return - - speed, dir, unit, strength = self.get_wind_speed(weather) - if dir: - dir = self.__translate(dir) - value = self.__translate("wind.speed.dir", - data={"dir": dir, - "speed": nice_number(speed), - "unit": unit}) - else: - value = self.__translate("wind.speed", - data={"speed": nice_number(speed), - "unit": unit}) - loc = message.data.get('Location') - self.__report_condition(self.__translate("winds"), value, when, loc) - self.speak_dialog('wind.strength.' + strength) - - def get_wind_speed(self, weather): - wind = weather.get_wind() - - speed = wind["speed"] - # get speed - if self.__get_speed_unit() == "mph": - unit = self.__translate("miles per hour") - speed_multiplier = 2.23694 - speed *= speed_multiplier - else: - unit = self.__translate("meters per second") - speed_multiplier = 1 - speed = round(speed) - - if (speed / speed_multiplier) < 0: - self.log.error("Wind speed below zero") - if (speed / speed_multiplier) <= 2.2352: - strength = "light" - elif (speed / speed_multiplier) <= 6.7056: - strength = "medium" - else: - strength = "hard" - - # get direction, convert compass degrees to named direction - if "deg" in wind: - deg = wind["deg"] - if deg < 22.5: - dir = "N" - elif deg < 67.5: - dir = "NE" - elif deg < 112.5: - dir = "E" - elif deg < 157.5: - dir = "SE" - elif deg < 202.5: - dir = "S" - elif deg < 247.5: - dir = "SW" - elif deg < 292.5: - dir = "W" - elif deg < 337.5: - dir = "NW" - else: - dir = "N" - else: - dir = None - - return speed, dir, unit, strength - - # Handle: When is the sunrise? - @intent_handler(IntentBuilder("").one_of("Query", "When") - .optionally("Location").require("Sunrise").build()) + # Handle: How humid is it? + intent_data = self._get_intent_data(message) + weather = self._get_weather(intent_data) + if weather is not None: + intent_weather = weather.get_weather_for_intent(intent_data) + dialog = WeatherDialog( + intent_weather, self.weather_config, intent_data + ) + dialog.build_humidity_dialog() + dialog.data.update( + humidity=self.translate( + "percentage.number", data=dict(num=dialog.data.humidity)) + ) + self._speak_weather(dialog) + + @intent_handler( + IntentBuilder("").one_of("Query", "When").optionally("Location") + .require("Sunrise") + ) def handle_sunrise(self, message): - report = self.__initialize_report(message) - - when, _ = self.__extract_datetime(message.data.get('utterance')) - today, _ = self.__extract_datetime("today") - if when is None or when.date() == today.date(): - weather = self.owm.weather_at_place( - report['full_location'], - report['lat'], - report['lon']).get_weather() - - if weather is None: - self.__report_no_data('weather') - return - else: - # Get forecast for that day - # weather = self.__get_forecast(when, report['full_location'], - # report['lat'], report['lon']) - - # There appears to be a bug in OWM, it can't extract the sunrise/ - # sunset from forecast objects. As of March 2018 OWM said it was - # "in the roadmap". Just say "I don't know" for now - weather = None - if not weather or weather.get_humidity() == 0: - self.speak_dialog("do not know") - return - - # uses device tz so if not set (eg Mark 1) this is UTC. - dtSunrise = datetime.fromtimestamp(weather.get_sunrise_time()) - if time.tzname == ("UTC", "UTC"): - dtSunrise = self.__to_Local(dtSunrise.replace(tzinfo=pytz.utc)) - spoken_time = self.__nice_time(dtSunrise, use_ampm=True) - self.speak_dialog('sunrise', {'time': spoken_time}) - - # Handle: When is the sunset? - @intent_handler(IntentBuilder("").one_of("Query", "When") - .optionally("Location").require("Sunset").build()) + # Handle: When is the sunrise? + intent_data = WeatherIntent(message, self.lang) + weather = self._get_weather(intent_data) + if weather is not None: + intent_weather = weather.get_weather_for_intent(intent_data) + dialog = WeatherDialog( + intent_weather, self.weather_config, intent_data + ) + dialog.build_sunrise_dialog() + self._speak_weather(dialog) + + @intent_handler( + IntentBuilder("").one_of("Query", "When").optionally("Location") + .require("Sunset") + ) def handle_sunset(self, message): - report = self.__initialize_report(message) - - when, _ = self.__extract_datetime(message.data.get('utterance')) - today, _ = self.__extract_datetime("today") - if when is None or when.date() == today.date(): - weather = self.owm.weather_at_place( - report['full_location'], - report['lat'], - report['lon']).get_weather() - - if weather is None: - self.__report_no_data('weather') - return + # Handle: When is the sunset? + intent_data = WeatherIntent(message, self.lang) + weather = self._get_weather(intent_data) + if weather is not None: + intent_weather = weather.get_weather_for_intent(intent_data) + dialog = WeatherDialog( + intent_weather, self.weather_config, intent_data + ) + dialog.build_sunset_dialog() + self._speak_weather(dialog) + + def _report_current_weather(self, message): + intent_data = self._get_intent_data(message) + weather = self._get_weather(intent_data) + if weather is not None: + dialog = WeatherDialog( + weather.current, self.weather_config, intent_data + ) + dialog.build_current_weather_dialog() + self._display_current_weather(weather) + self._speak_weather(dialog) + dialog.build_high_low_temperature_dialog() + self._speak_weather(dialog) + + def _display_current_weather(self, report): + image_code = self.CODES[report.current.condition.icon] + if self.gui.connected: + self.gui["current"] = report.current.temperature + self.gui["min"] = report.current.low_temperature + self.gui["max"] = report.current.high_temperature + self.gui["condition"] = report.current.condition.description + self.gui["icon"] = report.current.condition.icon + self.gui["weathercode"] = image_code + self.gui.show_pages(["weather.qml", "highlow.qml"]) else: - # Get forecast for that day - # weather = self.__get_forecast(when, report['full_location'], - # report['lat'], report['lon']) - - # There appears to be a bug in OWM, it can't extract the sunrise/ - # sunset from forecast objects. As of March 2018 OWM said it was - # "in the roadmap". Just say "I don't know" for now - weather = None - if not weather or weather.get_humidity() == 0: - self.speak_dialog("do not know") - return - - # uses device tz so if not set (eg Mark 1) this is UTC. - dtSunset = datetime.fromtimestamp(weather.get_sunset_time()) - if time.tzname == ("UTC", "UTC"): - dtSunset = self.__to_Local(dtSunset.replace(tzinfo=pytz.utc)) - spoken_time = self.__nice_time(dtSunset, use_ampm=True) - self.speak_dialog('sunset', {'time': spoken_time}) - - def __get_location(self, message): - """ Attempt to extract a location from the spoken phrase. - - If none is found return the default location instead. + self.enclosure.deactivate_mouth_events() + self.enclosure.weather_display( + image_code, report.current.temperature + ) + + def _report_one_hour_weather(self, message): + intent_data = self._get_intent_data(message) + weather = self._get_weather(intent_data) + if weather is not None: + forecast = weather.get_forecast_for_hour(intent_data) + dialog = WeatherDialog( + forecast, self.weather_config, intent_data + ) + dialog.build_hourly_weather_dialog() + self._speak_weather(dialog) + + def _report_multi_day_forecast(self, message, days): + intent_data = WeatherIntent(message, self.lang) + weather = self._get_weather(intent_data) + if weather is not None: + forecast = weather.daily[:days] + dialogs = self._build_forecast_dialogs(forecast, intent_data) + self._display_forecast(forecast) + for dialog in dialogs: + self._speak_weather(dialog) + + def _report_one_day_forecast(self, message): + intent_data = WeatherIntent(message, self.lang) + weather = self._get_weather(intent_data) + if weather is not None: + forecast = [weather.get_forecast_for_date(intent_data)] + dialogs = self._build_forecast_dialogs(forecast, intent_data) + self._display_forecast(forecast) + for dialog in dialogs: + self._speak_weather(dialog) + + def _report_weekend_forecast(self, message): + intent_data = self._get_intent_data(message) + weather = self._get_weather(intent_data) + if weather is not None: + forecast = weather.get_weekend_forecast() + dialogs = self._build_forecast_dialogs(forecast, intent_data) + self._display_forecast(forecast) + for dialog in dialogs: + self._speak_weather(dialog) + + def _build_forecast_dialogs(self, forecast, intent_data): + dialogs = list() + for forecast_day in forecast: + dialog = WeatherDialog( + forecast_day, self.weather_config, intent_data + ) + dialog.build_daily_weather_dialog() + dialogs.append(dialog) + + return dialogs + + def _display_forecast(self, forecast: List): + """Builds forecast for the upcoming days for the Mark-2 display.""" + display_data = [] + for forecast_day in forecast: + display_data.append( + dict( + weathercode=self.CODES[forecast_day.condition.icon], + max=forecast_day.temperature.high, + min=forecast_day.temperature.low, + date=forecast_day.date_time.strftime('%a') + ) + ) + self.gui['forecast'] = dict( + first=display_data[:2], second=display_data[2:] + ) + + def _report_temperature(self, message, temperature_type=None): + intent_data = self._get_intent_data(message) + weather = self._get_weather(intent_data) + if weather is not None: + intent_weather = weather.get_weather_for_intent(intent_data) + dialog = WeatherDialog( + intent_weather, self.weather_config, intent_data + ) + dialog.build_temperature_dialog(temperature_type) + self._speak_weather(dialog) + + def _report_weather_condition(self, message, condition): + intent_data = self._get_intent_data(message) + weather = self._get_weather(intent_data) + if weather is not None: + intent_weather = weather.get_weather_for_intent(intent_data) + dialog = self._build_condition_dialog( + intent_weather, intent_data, condition + ) + self._speak_weather(dialog) + + def _build_condition_dialog(self, weather, intent_data, condition): + dialog = WeatherDialog( + weather, self.weather_config, intent_data + ) + intent_match = self.voc_match(weather.condition.category.lower(), condition) + alternative_vocab = condition + 'Alternatives' + alternative = self.voc_match( + weather.condition.category, alternative_vocab + ) + dialog.build_condition_dialog(condition, intent_match, alternative) + dialog.data.update(condition=self.translate(condition)) - Arguments: - message (Message): messagebus message - Returns: tuple (lat, long, location string, pretty location) - """ + return dialog + + def _report_wind(self, message): + intent_data = self._get_intent_data(message) + weather = self._get_weather(intent_data) + if weather is not None: + intent_weather = weather.get_weather_for_intent(intent_data) + intent_weather.wind_direction = self.translate( + intent_weather.wind_direction + ) + dialog = WeatherDialog( + intent_weather, self.weather_config, intent_data + ) + dialog.build_wind_dialog() + self._speak_weather(dialog) + + def _get_intent_data(self, message): + intent_data = None try: - location = message.data.get("Location", None) if message else None - if location: - return None, None, location, location - - location = self.location - - if isinstance(location, dict): - lat = location["coordinate"]["latitude"] - lon = location["coordinate"]["longitude"] - city = location["city"] - state = city["state"] - return lat, lon, city["name"] + ", " + state["name"] + \ - ", " + state["country"]["name"], self.location_pretty - - return None - except Exception: - self.speak_dialog("location.not.found") - raise LocationNotFoundError("Location not found") - - def __initialize_report(self, message): - """ Creates a report base with location, unit. """ - lat, lon, location, pretty_location = self.__get_location(message) - temp_unit = self.__get_requested_unit(message) - return { - 'lat': lat, - 'lon': lon, - 'location': pretty_location, - 'full_location': location, - 'scale': self.translate(temp_unit or self.__get_temperature_unit()) - } - - def __handle_typed(self, message, response_type): - # Get a date from requests like "weather for next Tuesday" - today, _ = self.__extract_datetime("today") - when, _ = self.__extract_datetime( - message.data.get('utterance'), lang=self.lang) - - report = self.__initialize_report(message) - if when and when.date() != today.date(): - self.log.debug("Doing a forecast {} {}".format(today, when)) - return self.report_forecast(report, when, - dialog=response_type) - report = self.__populate_report(message) - if report is None: - return self.__report_no_data('weather') - - if report.get('time'): - self.__report_weather("at.time", report, response_type) - else: - self.__report_weather('current', report, response_type) - self.mark2_forecast(report) - - def __populate_report(self, message): - unit = self.__get_requested_unit(message) - # Get a date from requests like "weather for next Tuesday" - today, _ = self.__extract_datetime('today', lang='en-us') - when, _ = self.__extract_datetime( - message.data.get('utterance'), lang=self.lang) - when = when or today # Get todays date if None was found - self.log.debug('extracted when: {}'.format(when)) - - report = self.__initialize_report(message) - - # Check if user is asking for a specific time today - if when.date() == today.date() and when.time() != today.time(): - self.log.info("Forecast for time: {}".format(when)) - return self.__populate_for_time(report, when, unit) - # Check if user is asking for a specific day - elif today.date() != when.date(): - # Doesn't seem to be hitable, safety? - self.log.info("Forecast for: {} {}".format(today, when)) - return self.__populate_forecast(report, when, unit, - preface_day=True) - # Otherwise user is asking for weather right now - else: - self.log.info("Forecast for now") - return self.__populate_current(report, unit) - - return None - - def __populate_for_time(self, report, when, unit=None): - # TODO localize time to report location - # Return None if report is None - if report is None: - return None - - three_hr_fcs = self.owm.three_hours_forecast( - report['full_location'], - report['lat'], - report['lon']) - - if three_hr_fcs is None: - return None - - if not three_hr_fcs: - return None - earliest_fc = three_hr_fcs.get_forecast().get_weathers()[0] - if when < earliest_fc.get_reference_time(timeformat='date'): - fc_weather = earliest_fc + intent_data = WeatherIntent(message, self.lang) + except ValueError: + self.speak_dialog("cant.get.forecast") else: + print(self.voc_match(intent_data.utterance, "RelativeDay")) + if self.voc_match(intent_data.utterance, "RelativeTime"): + intent_data.timeframe = "hourly" + elif self.voc_match(intent_data.utterance, "Later"): + intent_data.timeframe = "hourly" + elif self.voc_match(intent_data.utterance, "RelativeDay"): + if not self.voc_match(intent_data.utterance, "Today"): + intent_data.timeframe = "daily" + + return intent_data + + def _get_weather(self, intent_data): + weather = None + if intent_data is not None: try: - fc_weather = three_hr_fcs.get_weather_at(when) - except Exception as e: - # fc_weather = three_hr_fcs.get_forecast().get_weathers()[0] - self.log.error("Error: {0}".format(e)) - return None - - report['condition'] = fc_weather.get_detailed_status() - report['condition_cat'] = fc_weather.get_status() - report['icon'] = fc_weather.get_weather_icon_name() - report['temp'] = self.__get_temperature(fc_weather, 'temp') - # Min and Max temps not available in 3hr forecast - report['temp_min'] = None - report['temp_max'] = None - report['humidity'] = self.translate('percentage.number', - {'num': fc_weather.get_humidity()}) - report['wind'] = self.get_wind_speed(fc_weather)[0] - - fc_time = fc_weather.get_reference_time(timeformat='date') - report['time'] = self.__to_time_period(self.__to_Local(fc_time)) - report['day'] = self.__to_day(when, preface=True) - - return report - - def __populate_current(self, report, unit=None): - # Return None if report is None - if report is None: - return None - - # Get current conditions - currentWeather = self.owm.weather_at_place( - report['full_location'], report['lat'], - report['lon']).get_weather() - - if currentWeather is None: - return None - - today = currentWeather.get_reference_time(timeformat='date') - self.log.debug("Populating report for now: {}".format(today)) - - # Get forecast for the day - # can get 'min', 'max', 'eve', 'morn', 'night', 'day' - # Set time to 12 instead of 00 to accomodate for timezones - forecastWeather = self.__get_forecast( - self.__to_Local(today), - report['full_location'], - report['lat'], - report['lon']) - - if forecastWeather is None: - return None - - # Change encoding of the localized report to utf8 if needed - condition = currentWeather.get_detailed_status() - if self.owm.encoding != 'utf8': - condition.encode(self.owm.encoding).decode('utf8') - report['condition'] = self.__translate(condition) - report['condition_cat'] = currentWeather.get_status() - - report['icon'] = currentWeather.get_weather_icon_name() - report['temp'] = self.__get_temperature(currentWeather, 'temp', - unit) - report['temp_min'] = self.__get_temperature(forecastWeather, 'min', - unit) - report['temp_max'] = self.__get_temperature(forecastWeather, 'max', - unit) - report['humidity'] = self.translate( - 'percentage.number', {'num': forecastWeather.get_humidity()}) - - wind = self.get_wind_speed(forecastWeather) - report['wind'] = "{} {}".format(wind[0], wind[1] or "") - today, _ = self.__extract_datetime('today', lang='en-us') - report['day'] = self.__to_day(today, preface=True) - - return report - - def __populate_forecast(self, report, when, unit=None, preface_day=False): - """ Populate the report and return it. - - Arguments: - report (dict): report base - when : date for report - unit: Unit type to use when presenting - - Returns: None if no report available otherwise dict with weather info - """ - self.log.debug("Populating forecast report for: {}".format(when)) - - # Return None if report is None - if report is None: - return None - - forecast_weather = self.__get_forecast( - when, report['full_location'], report['lat'], report['lon']) - - if forecast_weather is None: - return None # No forecast available - - # This converts a status like "sky is clear" to new text and tense, - # because you don't want: "Friday it will be 82 and the sky is clear", - # it should be 'Friday it will be 82 and the sky will be clear' - # or just 'Friday it will be 82 and clear. - # TODO: Run off of status IDs instead of text `.get_weather_code()`? - report['condition'] = self.__translate( - forecast_weather.get_detailed_status(), True) - report['condition_cat'] = forecast_weather.get_status() - - report['icon'] = forecast_weather.get_weather_icon_name() - # Can get temps for 'min', 'max', 'eve', 'morn', 'night', 'day' - report['temp'] = self.__get_temperature(forecast_weather, 'day', unit) - report['temp_min'] = self.__get_temperature(forecast_weather, 'min', - unit) - report['temp_max'] = self.__get_temperature(forecast_weather, 'max', - unit) - report['humidity'] = self.translate( - 'percentage.number', {'num': forecast_weather.get_humidity()}) - report['wind'] = self.get_wind_speed(forecast_weather)[0] - report['day'] = self.__to_day(when, preface_day) - - return report - - def __report_no_data(self, report_type, data=None): - """ Do processes when Report Processes malfunction - Arguments: - report_type (str): Report type where the error was from - i.e. 'weather', 'location' - data (dict): Needed data for dialog on weather error processing - Returns: - None - """ - if report_type == 'weather': - if data is None: + latitude, longitude = self._determine_weather_location(intent_data) + weather = self.weather_api_new.get_weather_for_coordinates( + self.config_core.get('system_unit'), latitude, longitude + ) + except HTTPError as api_error: + self.log.exception("Weather API failure") + self._handle_api_error(api_error) + except LocationNotFoundError: + self.log.exception("City not found.") + self.speak_dialog( + "location.not.found", + data=dict(location=intent_data.location) + ) + except Exception: + self.log.exception("Unexpected error retrieving weather") self.speak_dialog("cant.get.forecast") - else: - self.speak_dialog("no.forecast", data) - elif report_type == 'location': - self.speak_dialog('location.not.found') - - def __select_condition_dialog(self, message, report, noun, exp=None): - """ Select the relevant dialog file for condition based reports. - A condition can for example be "snow" or "rain". + return weather - Arguments: - message (obj): message from user - report (dict): weather report data - noun (string): name of condition eg snow - exp (string): condition as verb or adjective eg Snowing - - Returns: - dialog (string): name of dialog file - """ - if report is None: - # Empty report most likely caused by location not found - return 'do not know' - - if exp is None: - exp = noun - alternative_voc = '{}Alternatives'.format(noun.capitalize()) - if self.voc_match(report['condition'], exp.capitalize()): - dialog = 'affirmative.condition' - elif report.get('time'): - # Standard response for time based dialog eg 'evening' - if self.voc_match(report['condition'], alternative_voc): - dialog = 'cond.alternative' - else: - dialog = 'no.cond.predicted' - elif self.voc_match(report['condition'], alternative_voc): - dialog = '{}.alternative'.format(exp.lower()) + def _handle_api_error(self, exception): + if exception.response.status_code == 401: + self.bus.emit(Message("mycroft.not.paired")) else: - dialog = 'no.{}.predicted'.format(noun.lower()) - - if "Location" not in message.data: - dialog = 'local.' + dialog - if report.get('day'): - dialog = 'forecast.' + dialog - if (report.get('time') and - ('at.time.' + dialog) in self.dialog_renderer.templates): - dialog = 'at.time.' + dialog - return dialog - - def report_forecast(self, report, when, dialog='weather', unit=None, - preface_day=True): - """ Speak forecast for specific day. - - Arguments: - report (dict): report base - when : date for report - dialog (str): dialog type, defaults to 'weather' - unit: Unit type to use when presenting - preface_day (bool): if appropriate day preface should be added - eg "on Tuesday" but NOT "on tomorrow" - """ - report = self.__populate_forecast(report, when, unit, preface_day) - if report is None: - data = {'day': self.__to_day(when, preface_day)} - self.__report_no_data('weather', data) - return - - self.__report_weather('forecast', report, rtype=dialog) - - def report_multiday_forecast(self, report, when=None, - num_days=3, set_days=None, dialog='weather', - unit=None, preface_day=True): - """ Speak forecast for multiple sequential days. + self.speak_dialog("cant.get.forecast") - Arguments: - report (dict): report base - when (datetime): date of first day for report, defaults to today - num_days (int): number of days to report, defaults to 3 - set_days (list(datetime)): list of specific days to report - dialog (str): dialog type, defaults to 'weather' - unit: Unit type to use when presenting, defaults to user preference - preface_day (bool): if appropriate day preface should be added - eg "on Tuesday" but NOT "on tomorrow" - """ - - today, _ = self.__extract_datetime('today') - if when is None: - when = today - - if set_days: - days = set_days + def _determine_weather_location(self, intent_data): + if intent_data.location is None: + latitude = self.weather_config.latitude + longitude = self.weather_config.longitude else: - days = [when + timedelta(days=i) for i in range(num_days)] - - no_report = list() - for day in days: - if day == today: - self.__populate_current(report, day) - report['day'] = self.__to_day(day, preface_day) - self.__report_weather('forecast', report, rtype=dialog) - else: - report = self.__populate_forecast(report, day, unit, - preface_day) - if report is None: - no_report.append(self.__to_day(day, False)) - continue - self.__report_weather('forecast', report, rtype=dialog) - - if no_report: - dates = join_list(no_report, 'and') - dates = self.translate('on') + ' ' + dates - data = {'day': dates} - self.__report_no_data('weather', data) - - def __report_weather(self, timeframe, report, rtype='weather', - separate_min_max=False): - """ Report the weather verbally and visually. - - Produces an utterance based on the timeframe and rtype parameters. - The report also provides location context. The dialog file used will - be: - "timeframe(.local).rtype" + latitude = intent_data.geolocation["latitude"] + longitude = intent_data.geolocation["longitude"] - Arguments: - timeframe (str): 'current' or 'future'. - report (dict): Dictionary with report information (temperatures - and such. - rtype (str): report type, defaults to 'weather' - separate_min_max (bool): a separate dialog for min max temperatures - will be output if True (default: False) - """ + return latitude, longitude - # Convert code to matching weather icon on Mark 1 - if report['location']: - report['location'] = self.owm.location_translations.get( - report['location'], report['location']) - weather_code = str(report['icon']) - img_code = self.CODES[weather_code] - - # Display info on a screen - # Mark-2 - self.gui["current"] = report["temp"] - self.gui["min"] = report["temp_min"] - self.gui["max"] = report["temp_max"] - self.gui["location"] = report["full_location"].replace(', ', '\n') - self.gui["condition"] = report["condition"] - self.gui["icon"] = report["icon"] - self.gui["weathercode"] = img_code - self.gui["humidity"] = report.get("humidity", "--") - self.gui["wind"] = report.get("wind", "--") - self.gui.show_pages(["weather.qml", "highlow.qml", - "forecast1.qml", "forecast2.qml"]) - # Mark-1 - self.enclosure.deactivate_mouth_events() - self.enclosure.weather_display(img_code, report['temp']) - - dialog_name = timeframe - if report['location'] == self.location_pretty: - dialog_name += ".local" - dialog_name += "." + rtype - self.log.debug("Dialog: " + dialog_name) - self.speak_dialog(dialog_name, report) - - # Just show the icons while still speaking + def _speak_weather(self, dialog: WeatherDialog): + self.log.info("Speaking dialog: " + dialog.name) + self.speak_dialog(dialog.name, dialog.data) mycroft.audio.wait_while_speaking() - # Speak the high and low temperatures - if separate_min_max: - self.speak_dialog('min.max', report) - self.gui.show_page("highlow.qml") - mycroft.audio.wait_while_speaking() - - self.enclosure.activate_mouth_events() - self.enclosure.mouth_reset() - - def __report_condition(self, name, value, when, location=None): - # Report a specific value - data = { - "condition": name, - "value": value, - } - report_type = "report.condition" - today, _ = self.__extract_datetime("today") - if when and when.date() != today.date(): - data["day"] = self.__to_day(when, preface=True) - report_type += ".future" - if location: - data["location"] = location - report_type += ".at.location" - self.speak_dialog(report_type, data) - - def __get_forecast(self, when, location, lat, lon): - """ Get a forecast for the given time and location. + def _report_no_data(self, data: dict = None) -> None: + """Do processes when Report Processes malfunction Arguments: - when (datetime): Local datetime for report - location: location - lat: Latitude for report - lon: Longitude for report + data: Needed data for dialog on weather error processing """ - - # search for the requested date in the returned forecast data - forecasts = self.owm.daily_forecast(location, lat, lon, limit=14) - forecasts = forecasts.get_forecast() - for weather in forecasts.get_weathers(): - forecastDate = weather.get_reference_time("date") - if forecastDate.date() == when.date(): - # found the right day, now format up the results - return weather - - # No forecast for the given day - return None - - def __get_requested_unit(self, message): - """ Get selected unit from message. - - Arguments: - message (Message): messagebus message from intent service - - Returns: - 'fahrenheit', 'celsius' or None - """ - if message and message.data and 'Unit' in message.data: - if self.voc_match(message.data['Unit'], 'Fahrenheit'): - return 'fahrenheit' - else: - return 'celsius' + if data is None: + self.speak_dialog("cant.get.forecast") else: - return None - - def concat_dialog(self, current, dialog, data=None): - return current + " " + self.translate(dialog, data) - - def __get_seqs_from_list(self, nums): - """Get lists of sequential numbers from list. - - Arguments: - nums (list): list of int eg indices - - Returns: - None if no sequential numbers found - seq_nums (list[list]): list of sequence lists - """ - current_seq, seq_nums = [], [] - seq_active = False - for idx, day in enumerate(nums): - if idx+1 < len(nums) and nums[idx+1] == (day + 1): - current_seq.append(day) - seq_active = True - elif seq_active: - # last day in sequence - current_seq.append(day) - seq_nums.append(current_seq.copy()) - current_seq = [] - seq_active = False - - # if len(seq_nums) == 0: - # return None - return seq_nums - - def __get_speed_unit(self): - """ Get speed unit based on config setting. - - Config setting of 'metric' will return "meters_sec", otherwise 'mph' - - Returns: (str) 'meters_sec' or 'mph' - """ - system_unit = self.config_core.get('system_unit') - return system_unit == "metric" and "meters_sec" or "mph" - - def __get_temperature_unit(self): - """ Get temperature unit from config and skill settings. - - Config setting of 'metric' implies celsius for unit - - Returns: (str) "celcius" or "fahrenheit" - """ - system_unit = self.config_core.get('system_unit') - override = self.settings.get("units", "") - if override: - if override[0].lower() == "f": - return "fahrenheit" - elif override[0].lower() == "c": - return "celsius" - - return system_unit == "metric" and "celsius" or "fahrenheit" - - def __get_temperature(self, weather, key, unit=None): - # Extract one of the temperatures from the weather data. - # Typically it has: 'temp', 'min', 'max', 'morn', 'day', 'night' - try: - unit = unit or self.__get_temperature_unit() - # fallback to general temperature if missing - temp = weather.get_temperature(unit)[key] - if temp is not None: - return str(int(round(temp))) - else: - return '' - except Exception as e: - self.log.warning('No temperature available ({})'.format(repr(e))) - return '' - - def __api_error(self, e): - if isinstance(e, LocationNotFoundError): - self.speak_dialog('location.not.found') - elif e.response.status_code == 401: - from mycroft import Message - self.bus.emit(Message("mycroft.not.paired")) - else: - self.__report_no_data('weather') - - def __to_day(self, when, preface=False): - """ Provide date in speakable form - - Arguments: - when (datetime) - preface (bool): if appropriate preface should be included - eg "on Monday" but NOT "on tomorrow" - Returns: - string: the speakable date text - """ - now = datetime.now() - speakable_date = nice_date(when, lang=self.lang, now=now) - # Test if speakable_date is a relative reference eg "tomorrow" - days_diff = (when.date() - now.date()).days - if preface and (-1 > days_diff or days_diff > 1): - speakable_date = "{} {}".format(self.translate('on.date'), - speakable_date) - # If day is less than a week in advance, just say day of week. - if days_diff <= 6: - speakable_date = speakable_date.split(',')[0] - return speakable_date - - def __to_Local(self, when): - try: - # First try with modern mycroft.util.time functions - return to_local(when) - except Exception: - # Fallback to the old pytz code - if not when.tzinfo: - when = when.replace(tzinfo=pytz.utc) - timezone = pytz.timezone(self.location["timezone"]["code"]) - return when.astimezone(timezone) - - def __to_time_period(self, when): - # Translate a specific time '9am' to period of the day 'morning' - hour = when.time().hour - period = None - if hour >= 1 and hour < 5: - period = "early morning" - if hour >= 5 and hour < 12: - period = "morning" - if hour >= 12 and hour < 17: - period = "afternoon" - if hour >= 17 and hour < 20: - period = "evening" - if hour >= 20 or hour < 1: - period = "overnight" - if period is None: - self.log.error("Unable to parse time as a period of day") - return period - - # Suggestion TODO: Add a parameter to extract_datetime to add a default Timezone - def __extract_datetime(self, text, anchorDate=None, lang=None, default_time=None): - # Change timezone returned by extract_datetime from Local to UTC - extracted_dt = extract_datetime(text, anchorDate, lang, default_time) - if extracted_dt is None: - # allow calls to unpack values even if None returned. - return (None, None) - when, text = extracted_dt - return to_utc(when), text + self.speak_dialog("no.forecast", data) def __translate(self, condition, future=False, data=None): # behaviour of method dialog_renderer.render(...) has changed - instead @@ -1809,15 +605,6 @@ def __translate(self, condition, future=False, data=None): else: return condition - def __nice_time(self, dt, lang="en-us", speech=True, use_24hour=False, - use_ampm=False): - # compatibility wrapper for nice_time - nt_supported_languages = ['en', 'es', 'it', 'fr', 'de', - 'hu', 'nl', 'da'] - if not (lang[0:2] in nt_supported_languages): - lang = "en-us" - return nice_time(dt, lang, speech, use_24hour, use_ampm) - def create_skill(): return WeatherSkill() diff --git a/dialog/en-us/RelativeDay.voc b/dialog/en-us/RelativeDay.voc deleted file mode 100644 index ebcd27a6..00000000 --- a/dialog/en-us/RelativeDay.voc +++ /dev/null @@ -1,6 +0,0 @@ -today -today's -tomorrow -tomorrow's -yesterday -yesterday's diff --git a/dialog/en-us/and.dialog b/dialog/en-us/and.dialog deleted file mode 100644 index cfa2dcfb..00000000 --- a/dialog/en-us/and.dialog +++ /dev/null @@ -1 +0,0 @@ -, and diff --git a/dialog/en-us/at.time.forecast.affirmative.condition.dialog b/dialog/en-us/at.time.forecast.affirmative.condition.dialog deleted file mode 100644 index 2955d7db..00000000 --- a/dialog/en-us/at.time.forecast.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Affirmative response to questions like "is it going to snow in Paris tomorrow afternoon" -Yes, the {time} forecast suggests {condition} in {location} {day} -Yes, the {time} forecast calls for {condition} in {location} {day} diff --git a/dialog/en-us/at.time.forecast.cond.alternative.dialog b/dialog/en-us/at.time.forecast.cond.alternative.dialog deleted file mode 100644 index 4ff83c19..00000000 --- a/dialog/en-us/at.time.forecast.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to clear skies will occur at specified time -No, the {time} forecast {day} calls for {condition} in {location} -Doesn't seem so, the {time} forecast {day} suggests {location} will have {condition} diff --git a/dialog/en-us/at.time.forecast.local.affirmative.condition.dialog b/dialog/en-us/at.time.forecast.local.affirmative.condition.dialog deleted file mode 100644 index c1fb5a12..00000000 --- a/dialog/en-us/at.time.forecast.local.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Affirmative response to questions like "is it going to snow tomorrow" -Yes, expect {condition} according to the {time} forecast {day} -Yes, the {time} forecast calls for {condition} {day} diff --git a/dialog/en-us/at.time.forecast.local.cond.alternative.dialog b/dialog/en-us/at.time.forecast.local.cond.alternative.dialog deleted file mode 100644 index a6d9dbfa..00000000 --- a/dialog/en-us/at.time.forecast.local.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, the {time} forecast {day} calls for {condition} -Doesn't seem so, the {time} forecast {day} suggests it's going to be {condition} diff --git a/dialog/en-us/at.time.forecast.local.no.cond.predicted.dialog b/dialog/en-us/at.time.forecast.local.no.cond.predicted.dialog deleted file mode 100644 index d787d2e8..00000000 --- a/dialog/en-us/at.time.forecast.local.no.cond.predicted.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# When user asks if it's one condition but it's not -No, the {time} forecast {day} suggests {condition} diff --git a/dialog/en-us/at.time.forecast.no.cond.predicted.dialog b/dialog/en-us/at.time.forecast.no.cond.predicted.dialog deleted file mode 100644 index ff6d148e..00000000 --- a/dialog/en-us/at.time.forecast.no.cond.predicted.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's a condition but it's not -No, the {time} forecast in {location} suggests it will be {condition} -It doesn't seem so, the {time} forecast in {location} suggests it will be {condition} diff --git a/dialog/en-us/at.time.local.high.temperature.dialog b/dialog/en-us/at.time.local.high.temperature.dialog deleted file mode 100644 index 38a48b84..00000000 --- a/dialog/en-us/at.time.local.high.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It will be as high as {temp} degrees {time} -{time}, it will get up to {temp} degrees diff --git a/dialog/en-us/at.time.local.low.temperature.dialog b/dialog/en-us/at.time.local.low.temperature.dialog deleted file mode 100644 index 7b074b0b..00000000 --- a/dialog/en-us/at.time.local.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It will be as low as {temp} degrees {time} -{time}, it will get down to {temp} degrees diff --git a/dialog/en-us/at.time.local.no.cond.predicted.dialog b/dialog/en-us/at.time.local.no.cond.predicted.dialog deleted file mode 100644 index f4b343c0..00000000 --- a/dialog/en-us/at.time.local.no.cond.predicted.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# When user asks if it's raining but no cloud or alternative is forcasted -No the {time} forecast suggests not diff --git a/dialog/en-us/at.time.local.temperature.dialog b/dialog/en-us/at.time.local.temperature.dialog deleted file mode 100644 index a9ee4112..00000000 --- a/dialog/en-us/at.time.local.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It will be about {temp} degrees {time} -{time}, it will be {temp} degrees diff --git a/dialog/en-us/at.time.local.weather.dialog b/dialog/en-us/at.time.local.weather.dialog deleted file mode 100644 index 4f00a10f..00000000 --- a/dialog/en-us/at.time.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -It will be {condition}, with temperatures near {temp} in the {time} -{time}, it will be {condition} and around {temp} degrees -{time}, it will be {condition} and {temp} degrees -{time}, it will be {temp} degrees with {condition} diff --git a/dialog/en-us/at.time.no.cond.predicted.dialog b/dialog/en-us/at.time.no.cond.predicted.dialog deleted file mode 100644 index 708d79d4..00000000 --- a/dialog/en-us/at.time.no.cond.predicted.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# When user asks if it's a conditions but it's not -No, the {time} forecast in {location} suggests not diff --git a/dialog/en-us/condition.category.value b/dialog/en-us/condition.category.value deleted file mode 100644 index d8a78348..00000000 --- a/dialog/en-us/condition.category.value +++ /dev/null @@ -1,15 +0,0 @@ -Clouds,cloudy -Clear,a clear sky -Thunderstorm,storming -Drizzle,drizzling -Rain,raining -Snow,snowing -Mist,misty -Smoke,smokey -Haze,hazey -Dust,dusty -Fog,foggy -Sand,sandy -Ash,cloudy with possible volcanic ash -Squall,storming -Tornado,storming with a possible tornado diff --git a/dialog/en-us/clear.alternative.dialog b/dialog/en-us/current.clear.alternative.location.dialog similarity index 100% rename from dialog/en-us/clear.alternative.dialog rename to dialog/en-us/current.clear.alternative.location.dialog diff --git a/dialog/en-us/local.clear.alternative.dialog b/dialog/en-us/current.clear.not.expected.local.dialog similarity index 100% rename from dialog/en-us/local.clear.alternative.dialog rename to dialog/en-us/current.clear.not.expected.local.dialog diff --git a/dialog/en-us/no.clear.predicted.dialog b/dialog/en-us/current.clear.not.expected.location.dialog similarity index 100% rename from dialog/en-us/no.clear.predicted.dialog rename to dialog/en-us/current.clear.not.expected.location.dialog diff --git a/dialog/en-us/cloudy.alternative.dialog b/dialog/en-us/current.clouds.alternative.location.dialog similarity index 100% rename from dialog/en-us/cloudy.alternative.dialog rename to dialog/en-us/current.clouds.alternative.location.dialog diff --git a/dialog/en-us/local.no.cloudy.predicted.dialog b/dialog/en-us/current.clouds.not.expected.local.dialog similarity index 100% rename from dialog/en-us/local.no.cloudy.predicted.dialog rename to dialog/en-us/current.clouds.not.expected.local.dialog diff --git a/dialog/en-us/no.cloudy.predicted.dialog b/dialog/en-us/current.clouds.not.expected.location.dialog similarity index 100% rename from dialog/en-us/no.cloudy.predicted.dialog rename to dialog/en-us/current.clouds.not.expected.location.dialog diff --git a/dialog/en-us/local.affirmative.condition.dialog b/dialog/en-us/current.condition.expected.local.dialog similarity index 100% rename from dialog/en-us/local.affirmative.condition.dialog rename to dialog/en-us/current.condition.expected.local.dialog diff --git a/dialog/en-us/affirmative.condition.dialog b/dialog/en-us/current.condition.expected.location.dialog similarity index 100% rename from dialog/en-us/affirmative.condition.dialog rename to dialog/en-us/current.condition.expected.location.dialog diff --git a/dialog/en-us/local.foggy.alternative.dialog b/dialog/en-us/current.fog.alternative.local.dialog similarity index 100% rename from dialog/en-us/local.foggy.alternative.dialog rename to dialog/en-us/current.fog.alternative.local.dialog diff --git a/dialog/en-us/fog.alternative.dialog b/dialog/en-us/current.fog.alternative.location.dialog similarity index 100% rename from dialog/en-us/fog.alternative.dialog rename to dialog/en-us/current.fog.alternative.location.dialog diff --git a/dialog/en-us/local.no.fog.predicted.dialog b/dialog/en-us/current.fog.not.expected.local.dialog similarity index 100% rename from dialog/en-us/local.no.fog.predicted.dialog rename to dialog/en-us/current.fog.not.expected.local.dialog diff --git a/dialog/en-us/no.fog.predicted.dialog b/dialog/en-us/current.fog.not.expected.location.dialog similarity index 100% rename from dialog/en-us/no.fog.predicted.dialog rename to dialog/en-us/current.fog.not.expected.location.dialog diff --git a/dialog/en-us/current.high.temperature.dialog b/dialog/en-us/current.high.temperature.dialog deleted file mode 100644 index 36619745..00000000 --- a/dialog/en-us/current.high.temperature.dialog +++ /dev/null @@ -1,4 +0,0 @@ -A high of {temp_max} degrees {scale} is expected in {location}. -A high of {temp_max} degrees can be expected in {location}. -Today a the temperature will reach {temp_max} degrees in {location}. - diff --git a/dialog/en-us/current.hot.dialog b/dialog/en-us/current.hot.dialog deleted file mode 100644 index dab62958..00000000 --- a/dialog/en-us/current.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It's {temp} degrees {scale} in {location}, well within my operational temperature. -It's {temp} degrees in {location} which suits an A.I. just fine. diff --git a/dialog/en-us/current.humidity.local.dialog b/dialog/en-us/current.humidity.local.dialog new file mode 100644 index 00000000..1c3cf997 --- /dev/null +++ b/dialog/en-us/current.humidity.local.dialog @@ -0,0 +1 @@ +Currently, the humidity is {percent} diff --git a/dialog/en-us/current.humidity.location.dialog b/dialog/en-us/current.humidity.location.dialog new file mode 100644 index 00000000..5e9b9fb3 --- /dev/null +++ b/dialog/en-us/current.humidity.location.dialog @@ -0,0 +1 @@ +Currently, the humidity in {location} is {percent} diff --git a/dialog/en-us/current.local.cold.dialog b/dialog/en-us/current.local.cold.dialog deleted file mode 100644 index a2d3aec2..00000000 --- a/dialog/en-us/current.local.cold.dialog +++ /dev/null @@ -1,2 +0,0 @@ -currently it's {temp}, well within my operational temperature -It's {temp}, quite comfy for an A. I. diff --git a/dialog/en-us/current.local.high.temperature.dialog b/dialog/en-us/current.local.high.temperature.dialog deleted file mode 100644 index 789f7c3e..00000000 --- a/dialog/en-us/current.local.high.temperature.dialog +++ /dev/null @@ -1,4 +0,0 @@ -A high of {temp_max} degrees {scale} is expected. -A high of {temp_max} degrees can be expected. -Today the temperature will reach {temp_max} degrees. - diff --git a/dialog/en-us/current.local.hot.dialog b/dialog/en-us/current.local.hot.dialog deleted file mode 100644 index 8b6a065c..00000000 --- a/dialog/en-us/current.local.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It's within my operational temperature, currently at {temp} degrees -It's {temp} degrees, quite comfy for an AI diff --git a/dialog/en-us/current.local.low.temperature.dialog b/dialog/en-us/current.local.low.temperature.dialog deleted file mode 100644 index 8cde8694..00000000 --- a/dialog/en-us/current.local.low.temperature.dialog +++ /dev/null @@ -1,4 +0,0 @@ -A low of {temp_min} degrees {scale} is expected. -A low of {temp_min} degrees can be expected. -Today it will be as low as {temp_min} degrees. - diff --git a/dialog/en-us/current.local.temperature.dialog b/dialog/en-us/current.local.temperature.dialog deleted file mode 100644 index 728a4c23..00000000 --- a/dialog/en-us/current.local.temperature.dialog +++ /dev/null @@ -1,4 +0,0 @@ -It's currently {temp} degrees {scale}. -It's currently {temp} degrees. -Right now, it's {temp} degrees. - diff --git a/dialog/en-us/current.local.weather.dialog b/dialog/en-us/current.local.weather.dialog deleted file mode 100644 index b38fd0a1..00000000 --- a/dialog/en-us/current.local.weather.dialog +++ /dev/null @@ -1,3 +0,0 @@ -It's currently {condition} and {temp} degrees {scale}. -It's currently {condition} and {temp} degrees. -Right now, it's {condition} and {temp} degrees. diff --git a/dialog/en-us/current.low.temperature.dialog b/dialog/en-us/current.low.temperature.dialog deleted file mode 100644 index 0f45c4e5..00000000 --- a/dialog/en-us/current.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Today the temperature will be as low as {temp_min} degrees {scale} in {location}. -Temperatures can be as low as {temp_min} degrees in {location}. diff --git a/dialog/en-us/local.raining.alternative.dialog b/dialog/en-us/current.rain.alternative.local.dialog similarity index 100% rename from dialog/en-us/local.raining.alternative.dialog rename to dialog/en-us/current.rain.alternative.local.dialog diff --git a/dialog/en-us/raining.alternative.dialog b/dialog/en-us/current.rain.alternative.location.dialog similarity index 100% rename from dialog/en-us/raining.alternative.dialog rename to dialog/en-us/current.rain.alternative.location.dialog diff --git a/dialog/en-us/local.no.rain.predicted.dialog b/dialog/en-us/current.rain.not.expected.local.dialog similarity index 100% rename from dialog/en-us/local.no.rain.predicted.dialog rename to dialog/en-us/current.rain.not.expected.local.dialog diff --git a/dialog/en-us/no.rain.predicted.dialog b/dialog/en-us/current.rain.not.expected.location.dialog similarity index 100% rename from dialog/en-us/no.rain.predicted.dialog rename to dialog/en-us/current.rain.not.expected.location.dialog diff --git a/dialog/en-us/local.snowing.alternative.dialog b/dialog/en-us/current.snow.alternative.local.dialog similarity index 100% rename from dialog/en-us/local.snowing.alternative.dialog rename to dialog/en-us/current.snow.alternative.local.dialog diff --git a/dialog/en-us/snowing.alternative.dialog b/dialog/en-us/current.snow.alternative.location.dialog similarity index 100% rename from dialog/en-us/snowing.alternative.dialog rename to dialog/en-us/current.snow.alternative.location.dialog diff --git a/dialog/en-us/local.no.snow.predicted.dialog b/dialog/en-us/current.snow.not.expected.local.dialog similarity index 100% rename from dialog/en-us/local.no.snow.predicted.dialog rename to dialog/en-us/current.snow.not.expected.local.dialog diff --git a/dialog/en-us/no.snow.predicted.dialog b/dialog/en-us/current.snow.not.expected.location.dialog similarity index 100% rename from dialog/en-us/no.snow.predicted.dialog rename to dialog/en-us/current.snow.not.expected.location.dialog diff --git a/dialog/en-us/current.sunrise.future.local.dialog b/dialog/en-us/current.sunrise.future.local.dialog new file mode 100644 index 00000000..59405362 --- /dev/null +++ b/dialog/en-us/current.sunrise.future.local.dialog @@ -0,0 +1,2 @@ +the sun will rise at {time} today +sunrise will be at {time} today diff --git a/dialog/en-us/current.sunrise.future.location.dialog b/dialog/en-us/current.sunrise.future.location.dialog new file mode 100644 index 00000000..81a9fe72 --- /dev/null +++ b/dialog/en-us/current.sunrise.future.location.dialog @@ -0,0 +1,2 @@ +the sun rose at {time} today in {location} +sunrise was at {time} today in {location} diff --git a/dialog/en-us/sunrise.dialog b/dialog/en-us/current.sunrise.past.local.dialog similarity index 100% rename from dialog/en-us/sunrise.dialog rename to dialog/en-us/current.sunrise.past.local.dialog diff --git a/dialog/en-us/current.sunrise.past.location.dialog b/dialog/en-us/current.sunrise.past.location.dialog new file mode 100644 index 00000000..81a9fe72 --- /dev/null +++ b/dialog/en-us/current.sunrise.past.location.dialog @@ -0,0 +1,2 @@ +the sun rose at {time} today in {location} +sunrise was at {time} today in {location} diff --git a/dialog/en-us/sunset.dialog b/dialog/en-us/current.sunset.future.local.dialog similarity index 100% rename from dialog/en-us/sunset.dialog rename to dialog/en-us/current.sunset.future.local.dialog diff --git a/dialog/en-us/current.sunset.future.location.dialog b/dialog/en-us/current.sunset.future.location.dialog new file mode 100644 index 00000000..46a732c9 --- /dev/null +++ b/dialog/en-us/current.sunset.future.location.dialog @@ -0,0 +1,3 @@ +the sun will set at {time} today in {location} +in {location} the sun will go down at {time} today +sunset will be at {time} today in {location} diff --git a/dialog/en-us/current.sunset.past.local.dialog b/dialog/en-us/current.sunset.past.local.dialog new file mode 100644 index 00000000..e8987e39 --- /dev/null +++ b/dialog/en-us/current.sunset.past.local.dialog @@ -0,0 +1,3 @@ +the sun set at {time} today +the sun went down at {time} today +sunset was at {time} today diff --git a/dialog/en-us/current.sunset.past.location.dialog b/dialog/en-us/current.sunset.past.location.dialog new file mode 100644 index 00000000..bc24bede --- /dev/null +++ b/dialog/en-us/current.sunset.past.location.dialog @@ -0,0 +1,3 @@ +the sun set at {time} today in {location} +in {location} the sun went down at {time} today +sunset was at {time} today in {location} diff --git a/dialog/en-us/current.temperature.dialog b/dialog/en-us/current.temperature.dialog deleted file mode 100644 index c7857bef..00000000 --- a/dialog/en-us/current.temperature.dialog +++ /dev/null @@ -1,4 +0,0 @@ -It's currently {temp} degrees {scale} in {location}. -It's currently {temp} degrees in {location}. -Right now, it's {temp} degrees in {location}. - diff --git a/dialog/en-us/current.temperature.high.local.dialog b/dialog/en-us/current.temperature.high.local.dialog new file mode 100644 index 00000000..a4e3c12c --- /dev/null +++ b/dialog/en-us/current.temperature.high.local.dialog @@ -0,0 +1,4 @@ +A high of {temperature} degrees {temperature_unit} is expected. +A high of {temperature} degrees can be expected. +Today the temperature will reach {temperature} degrees. + diff --git a/dialog/en-us/current.temperature.high.location.dialog b/dialog/en-us/current.temperature.high.location.dialog new file mode 100644 index 00000000..a9a40040 --- /dev/null +++ b/dialog/en-us/current.temperature.high.location.dialog @@ -0,0 +1,4 @@ +A high of {temperature} degrees {temperature_unit} is expected in {location}. +A high of {temperature} degrees can be expected in {location}. +Today a the temperature will reach {temperature} degrees in {location}. + diff --git a/dialog/en-us/current.temperature.high.low.dialog b/dialog/en-us/current.temperature.high.low.dialog new file mode 100644 index 00000000..9b88dc9f --- /dev/null +++ b/dialog/en-us/current.temperature.high.low.dialog @@ -0,0 +1 @@ +Today's forecast is for a high of {high_temperature} and a low of {low_temperature}. diff --git a/dialog/en-us/current.temperature.local.dialog b/dialog/en-us/current.temperature.local.dialog new file mode 100644 index 00000000..e01594ba --- /dev/null +++ b/dialog/en-us/current.temperature.local.dialog @@ -0,0 +1,4 @@ +It's currently {temperature} degrees {temperature_unit}. +It's currently {temperature} degrees. +Right now, it's {temperature} degrees. + diff --git a/dialog/en-us/current.temperature.location.dialog b/dialog/en-us/current.temperature.location.dialog new file mode 100644 index 00000000..7cd53599 --- /dev/null +++ b/dialog/en-us/current.temperature.location.dialog @@ -0,0 +1,4 @@ +It's currently {temperature} degrees {temperature_unit} in {location}. +It's currently {temperature} degrees in {location}. +Right now, it's {temperature} degrees in {location}. + diff --git a/dialog/en-us/current.temperature.low.local.dialog b/dialog/en-us/current.temperature.low.local.dialog new file mode 100644 index 00000000..4388ed1d --- /dev/null +++ b/dialog/en-us/current.temperature.low.local.dialog @@ -0,0 +1,4 @@ +A low of {temperature} degrees {temperature_unit} is expected. +A low of {temperature} degrees can be expected. +Today it will be as low as {temperature} degrees. + diff --git a/dialog/en-us/current.temperature.low.location.dialog b/dialog/en-us/current.temperature.low.location.dialog new file mode 100644 index 00000000..72d6b4db --- /dev/null +++ b/dialog/en-us/current.temperature.low.location.dialog @@ -0,0 +1,2 @@ +Today the temperature will be as low as {temperature} degrees {temperature_unit} in {location}. +Temperatures can be as low as {temperature} degrees in {location}. diff --git a/dialog/en-us/local.storm.alternative.dialog b/dialog/en-us/current.thunderstorm.alternative.local.dialog similarity index 100% rename from dialog/en-us/local.storm.alternative.dialog rename to dialog/en-us/current.thunderstorm.alternative.local.dialog diff --git a/dialog/en-us/storm.alternative.dialog b/dialog/en-us/current.thunderstorm.alternative.location.dialog similarity index 100% rename from dialog/en-us/storm.alternative.dialog rename to dialog/en-us/current.thunderstorm.alternative.location.dialog diff --git a/dialog/en-us/local.no.storm.predicted.dialog b/dialog/en-us/current.thunderstorm.not.expected.local.dialog similarity index 100% rename from dialog/en-us/local.no.storm.predicted.dialog rename to dialog/en-us/current.thunderstorm.not.expected.local.dialog diff --git a/dialog/en-us/no.storm.predicted.dialog b/dialog/en-us/current.thunderstorm.not.expected.location.dialog similarity index 100% rename from dialog/en-us/no.storm.predicted.dialog rename to dialog/en-us/current.thunderstorm.not.expected.location.dialog diff --git a/dialog/en-us/current.weather.dialog b/dialog/en-us/current.weather.dialog deleted file mode 100644 index 72eed86d..00000000 --- a/dialog/en-us/current.weather.dialog +++ /dev/null @@ -1,3 +0,0 @@ -It's currently {condition} and {temp} degrees {scale} in {location}. Today's forecast is for a high of {temp_max} and a low of {temp_min}. -Right now, it's {condition} and {temp} degrees, for a high of {temp_max} and a low of {temp_min} in {location}. -With a high of {temp_max} and a low of {temp_min}, {location} has {condition} and is currently {temp} degrees. diff --git a/dialog/en-us/current.weather.local.dialog b/dialog/en-us/current.weather.local.dialog new file mode 100644 index 00000000..ee85a282 --- /dev/null +++ b/dialog/en-us/current.weather.local.dialog @@ -0,0 +1,3 @@ +It's currently {condition} and {temperature} degrees {temperature_unit}. +It's currently {condition} and {temperature} degrees. +Right now, it's {condition} and {temperature} degrees. diff --git a/dialog/en-us/current.weather.location.dialog b/dialog/en-us/current.weather.location.dialog new file mode 100644 index 00000000..7453f380 --- /dev/null +++ b/dialog/en-us/current.weather.location.dialog @@ -0,0 +1,3 @@ +It's currently {condition} and {temperature} degrees {temperature_unit} in {location}. +Right now, it's {condition} and {temperature} degrees in {location}. +{location} has {condition} and is currently {temperature} degrees. diff --git a/dialog/en-us/current.wind.light.local.dialog b/dialog/en-us/current.wind.light.local.dialog new file mode 100644 index 00000000..75da0bb2 --- /dev/null +++ b/dialog/en-us/current.wind.light.local.dialog @@ -0,0 +1,2 @@ +The wind is light at {speed} {speed_unit} from the {direction} +Today there is light wind from the {direction} at {speed} {speed_unit} diff --git a/dialog/en-us/current.wind.light.location.dialog b/dialog/en-us/current.wind.light.location.dialog new file mode 100644 index 00000000..53551eae --- /dev/null +++ b/dialog/en-us/current.wind.light.location.dialog @@ -0,0 +1,2 @@ +The wind is light in {location} at {speed} {speed_unit} from the {direction} +In {location} today there is light wind from the {direction} at {speed} {speed_unit} diff --git a/dialog/en-us/current.wind.moderate.local.dialog b/dialog/en-us/current.wind.moderate.local.dialog new file mode 100644 index 00000000..4ed52f18 --- /dev/null +++ b/dialog/en-us/current.wind.moderate.local.dialog @@ -0,0 +1,2 @@ +Currently the wind is a moderate {speed} {speed_unit} from the {direction} +It's a bit windy today, currently {speed} {speed_unit} diff --git a/dialog/en-us/current.wind.moderate.location.dialog b/dialog/en-us/current.wind.moderate.location.dialog new file mode 100644 index 00000000..effb2d47 --- /dev/null +++ b/dialog/en-us/current.wind.moderate.location.dialog @@ -0,0 +1,2 @@ +Currently the wind is a moderate {speed} {speed_unit} from the {direction} in {location} +It's a bit windy in {location} today, currently {speed} {speed_unit} diff --git a/dialog/en-us/current.wind.strong.local.dialog b/dialog/en-us/current.wind.strong.local.dialog new file mode 100644 index 00000000..5bf2cce8 --- /dev/null +++ b/dialog/en-us/current.wind.strong.local.dialog @@ -0,0 +1,3 @@ +Currently, the wind is from the {direction} at {speed} {speed_unit}, might be good to stay inside today +The wind is very strong from the {direction} today, {speed} {speed_unit} +It's very windy today, {speed} {speed_unit} diff --git a/dialog/en-us/current.wind.strong.location.dialog b/dialog/en-us/current.wind.strong.location.dialog new file mode 100644 index 00000000..c80c5a26 --- /dev/null +++ b/dialog/en-us/current.wind.strong.location.dialog @@ -0,0 +1,3 @@ +Currently, the wind is from the {direction} at {speed} {speed_unit} in {location}, a good day to stay inside +The wind is very strong from the {direction} in {location} today, {speed} {speed_unit} +{location} will have strong winds today, {speed} {speed_unit} diff --git a/dialog/en-us/local.cloudy.alternative.dialog b/dialog/en-us/currrent.clouds.alternative.local.dialog similarity index 100% rename from dialog/en-us/local.cloudy.alternative.dialog rename to dialog/en-us/currrent.clouds.alternative.local.dialog diff --git a/dialog/en-us/forecast.local.clear.alternative.dialog b/dialog/en-us/daily.clear.alternative.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.clear.alternative.dialog rename to dialog/en-us/daily.clear.alternative.local.dialog diff --git a/dialog/en-us/forecast.clear.alternative.dialog b/dialog/en-us/daily.clear.alternative.location.dialog similarity index 100% rename from dialog/en-us/forecast.clear.alternative.dialog rename to dialog/en-us/daily.clear.alternative.location.dialog diff --git a/dialog/en-us/forecast.local.no.clear.predicted.dialog b/dialog/en-us/daily.clear.not.expected.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.no.clear.predicted.dialog rename to dialog/en-us/daily.clear.not.expected.local.dialog diff --git a/dialog/en-us/forecast.no.clear.predicted.dialog b/dialog/en-us/daily.clear.not.expected.location.dialog similarity index 100% rename from dialog/en-us/forecast.no.clear.predicted.dialog rename to dialog/en-us/daily.clear.not.expected.location.dialog diff --git a/dialog/en-us/forecast.local.cloudy.alternative.dialog b/dialog/en-us/daily.clouds.alternative.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.cloudy.alternative.dialog rename to dialog/en-us/daily.clouds.alternative.local.dialog diff --git a/dialog/en-us/forecast.cloudy.alternative.dialog b/dialog/en-us/daily.clouds.alternative.location.dialog similarity index 100% rename from dialog/en-us/forecast.cloudy.alternative.dialog rename to dialog/en-us/daily.clouds.alternative.location.dialog diff --git a/dialog/en-us/forecast.local.no.cloudy.predicted.dialog b/dialog/en-us/daily.clouds.not.expected.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.no.cloudy.predicted.dialog rename to dialog/en-us/daily.clouds.not.expected.local.dialog diff --git a/dialog/en-us/forecast.no.cloudy.predicted.dialog b/dialog/en-us/daily.clouds.not.expected.location.dialog similarity index 100% rename from dialog/en-us/forecast.no.cloudy.predicted.dialog rename to dialog/en-us/daily.clouds.not.expected.location.dialog diff --git a/dialog/en-us/forecast.local.affirmative.condition.dialog b/dialog/en-us/daily.condition.expected.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.affirmative.condition.dialog rename to dialog/en-us/daily.condition.expected.local.dialog diff --git a/dialog/en-us/forecast.affirmative.condition.dialog b/dialog/en-us/daily.condition.expected.location.dialog similarity index 100% rename from dialog/en-us/forecast.affirmative.condition.dialog rename to dialog/en-us/daily.condition.expected.location.dialog diff --git a/dialog/en-us/forecast.local.foggy.alternative.dialog b/dialog/en-us/daily.fog.alternative.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.foggy.alternative.dialog rename to dialog/en-us/daily.fog.alternative.local.dialog diff --git a/dialog/en-us/forecast.foggy.alternative.dialog b/dialog/en-us/daily.fog.alternative.location.dialog similarity index 100% rename from dialog/en-us/forecast.foggy.alternative.dialog rename to dialog/en-us/daily.fog.alternative.location.dialog diff --git a/dialog/en-us/forecast.local.no.fog.predicted.dialog b/dialog/en-us/daily.fog.not.expected.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.no.fog.predicted.dialog rename to dialog/en-us/daily.fog.not.expected.local.dialog diff --git a/dialog/en-us/forecast.no.fog.predicted.dialog b/dialog/en-us/daily.fog.not.expected.location.dialog similarity index 100% rename from dialog/en-us/forecast.no.fog.predicted.dialog rename to dialog/en-us/daily.fog.not.expected.location.dialog diff --git a/dialog/en-us/daily.humidity.local.dialog b/dialog/en-us/daily.humidity.local.dialog new file mode 100644 index 00000000..0794fd6a --- /dev/null +++ b/dialog/en-us/daily.humidity.local.dialog @@ -0,0 +1,2 @@ +The humidity {day} will be {percent} +{day} the forecast calls for a humidity of {percent} diff --git a/dialog/en-us/daily.humidity.location.dialog b/dialog/en-us/daily.humidity.location.dialog new file mode 100644 index 00000000..0c7744f9 --- /dev/null +++ b/dialog/en-us/daily.humidity.location.dialog @@ -0,0 +1,2 @@ +The humidity in {location} {day} will be {percent} +{day} the forecast in {location} calls for a humidity of {percent} diff --git a/dialog/en-us/daily.precipitation.next.local.dialog b/dialog/en-us/daily.precipitation.next.local.dialog new file mode 100644 index 00000000..3d6674a0 --- /dev/null +++ b/dialog/en-us/daily.precipitation.next.local.dialog @@ -0,0 +1,2 @@ +There is a {percent} chance of {precipitation} {day} +The forecast calls for a {percent} chance of {precipitation} {day} diff --git a/dialog/en-us/daily.precipitation.next.location.dialog b/dialog/en-us/daily.precipitation.next.location.dialog new file mode 100644 index 00000000..7617928c --- /dev/null +++ b/dialog/en-us/daily.precipitation.next.location.dialog @@ -0,0 +1,2 @@ +In {location} there is a {percent} chance of {precipitation} {day} +The forecast calls for a {percent} chance of {precipitation} in {location} {day} diff --git a/dialog/en-us/daily.precipitation.next.none.local.dialog b/dialog/en-us/daily.precipitation.next.none.local.dialog new file mode 100644 index 00000000..07885fde --- /dev/null +++ b/dialog/en-us/daily.precipitation.next.none.local.dialog @@ -0,0 +1,2 @@ +No precipitation is in the forecast for the next 7 days +None is forecasted in the next 7 days. diff --git a/dialog/en-us/daily.precipitation.next.none.location.dialog b/dialog/en-us/daily.precipitation.next.none.location.dialog new file mode 100644 index 00000000..baba3d6c --- /dev/null +++ b/dialog/en-us/daily.precipitation.next.none.location.dialog @@ -0,0 +1,2 @@ +No precipitation is in the forecast for the next seven days in {location} +In {location} none is forecasted diff --git a/dialog/en-us/forecast.local.raining.alternative.dialog b/dialog/en-us/daily.rain.alternative.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.raining.alternative.dialog rename to dialog/en-us/daily.rain.alternative.local.dialog diff --git a/dialog/en-us/forecast.raining.alternative.dialog b/dialog/en-us/daily.rain.alternative.location.dialog similarity index 100% rename from dialog/en-us/forecast.raining.alternative.dialog rename to dialog/en-us/daily.rain.alternative.location.dialog diff --git a/dialog/en-us/forecast.local.no.rain.predicted.dialog b/dialog/en-us/daily.rain.not.expected.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.no.rain.predicted.dialog rename to dialog/en-us/daily.rain.not.expected.local.dialog diff --git a/dialog/en-us/forecast.no.rain.predicted.dialog b/dialog/en-us/daily.rain.not.expected.location.dialog similarity index 100% rename from dialog/en-us/forecast.no.rain.predicted.dialog rename to dialog/en-us/daily.rain.not.expected.location.dialog diff --git a/dialog/en-us/forecast.snowing.alternative.dialog b/dialog/en-us/daily.snow.alternative.location.dialog similarity index 100% rename from dialog/en-us/forecast.snowing.alternative.dialog rename to dialog/en-us/daily.snow.alternative.location.dialog diff --git a/dialog/en-us/forecast.local.no.snow.predicted.dialog b/dialog/en-us/daily.snow.not.expected.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.no.snow.predicted.dialog rename to dialog/en-us/daily.snow.not.expected.local.dialog diff --git a/dialog/en-us/forecast.no.snow.predicted.dialog b/dialog/en-us/daily.snow.not.expected.location.dialog similarity index 100% rename from dialog/en-us/forecast.no.snow.predicted.dialog rename to dialog/en-us/daily.snow.not.expected.location.dialog diff --git a/dialog/en-us/daily.sunrise.local.dialog b/dialog/en-us/daily.sunrise.local.dialog new file mode 100644 index 00000000..b25f109f --- /dev/null +++ b/dialog/en-us/daily.sunrise.local.dialog @@ -0,0 +1,3 @@ +the sun will rise at {time} {day} +sunrise will be at {time} {day} +{day} the sun will rise at {time} diff --git a/dialog/en-us/daily.sunrise.location.dialog b/dialog/en-us/daily.sunrise.location.dialog new file mode 100644 index 00000000..87ca92af --- /dev/null +++ b/dialog/en-us/daily.sunrise.location.dialog @@ -0,0 +1,3 @@ +the sun will rise at {time} {day} in {location} +in {location} sunrise will be at {time} {day} +{day} the sun will rise at {time} in {location} diff --git a/dialog/en-us/daily.sunset.local.dialog b/dialog/en-us/daily.sunset.local.dialog new file mode 100644 index 00000000..8007f447 --- /dev/null +++ b/dialog/en-us/daily.sunset.local.dialog @@ -0,0 +1,4 @@ +the sun will set at {time} {day} +the sun will go down at {time} {day} +sunset will be at {time} {day} +{day} the sun will set at {time} diff --git a/dialog/en-us/daily.sunset.location.dialog b/dialog/en-us/daily.sunset.location.dialog new file mode 100644 index 00000000..0576df04 --- /dev/null +++ b/dialog/en-us/daily.sunset.location.dialog @@ -0,0 +1,3 @@ +the sun will set at {time} {day} in {location} +in {location} sunset will be at {time} {day} +{day} the sun will set at {time} in {location} diff --git a/dialog/en-us/daily.temperature.high.local.dialog b/dialog/en-us/daily.temperature.high.local.dialog new file mode 100644 index 00000000..6651c3c1 --- /dev/null +++ b/dialog/en-us/daily.temperature.high.local.dialog @@ -0,0 +1,2 @@ +{day} it will be as high as {temperature} +{day} the temperature will be as high as {temperature} degrees. diff --git a/dialog/en-us/daily.temperature.high.location.dialog b/dialog/en-us/daily.temperature.high.location.dialog new file mode 100644 index 00000000..531dcb51 --- /dev/null +++ b/dialog/en-us/daily.temperature.high.location.dialog @@ -0,0 +1,2 @@ +It will be as high as {temperature} degrees in {location} {day} +{location} will have a high of {temperature} degrees {day} diff --git a/dialog/en-us/daily.temperature.local.dialog b/dialog/en-us/daily.temperature.local.dialog new file mode 100644 index 00000000..7ee9a2fd --- /dev/null +++ b/dialog/en-us/daily.temperature.local.dialog @@ -0,0 +1,2 @@ +{day} it will be {temperature} +{day} the temperature will be {temperature} degrees. diff --git a/dialog/en-us/daily.temperature.location.dialog b/dialog/en-us/daily.temperature.location.dialog new file mode 100644 index 00000000..3c8ab784 --- /dev/null +++ b/dialog/en-us/daily.temperature.location.dialog @@ -0,0 +1,2 @@ +{day} it will be {temperature} degrees in {location} +{day}, {location} will have a temperature of {temperature} degrees diff --git a/dialog/en-us/daily.temperature.low.local.dialog b/dialog/en-us/daily.temperature.low.local.dialog new file mode 100644 index 00000000..55db29c1 --- /dev/null +++ b/dialog/en-us/daily.temperature.low.local.dialog @@ -0,0 +1,2 @@ +{day} it will be as low as {temperature} +{day} the temperature will be as low as {temperature} degrees. diff --git a/dialog/en-us/daily.temperature.low.location.dialog b/dialog/en-us/daily.temperature.low.location.dialog new file mode 100644 index 00000000..40a40865 --- /dev/null +++ b/dialog/en-us/daily.temperature.low.location.dialog @@ -0,0 +1,2 @@ +{day} it will be as low as {temperature} degrees in {location} +{day}, {location} will be as low as {temperature} degrees diff --git a/dialog/en-us/forecast.local.storm.alternative.dialog b/dialog/en-us/daily.thunderstorm.alternative.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.storm.alternative.dialog rename to dialog/en-us/daily.thunderstorm.alternative.local.dialog diff --git a/dialog/en-us/forecast.storm.alternative.dialog b/dialog/en-us/daily.thunderstorm.alternative.location.dialog similarity index 100% rename from dialog/en-us/forecast.storm.alternative.dialog rename to dialog/en-us/daily.thunderstorm.alternative.location.dialog diff --git a/dialog/en-us/forecast.local.no.storm.predicted.dialog b/dialog/en-us/daily.thunderstorm.not.expected.local.dialog similarity index 100% rename from dialog/en-us/forecast.local.no.storm.predicted.dialog rename to dialog/en-us/daily.thunderstorm.not.expected.local.dialog diff --git a/dialog/en-us/forecast.no.storm.predicted.dialog b/dialog/en-us/daily.thunderstorm.not.expected.location.dialog similarity index 100% rename from dialog/en-us/forecast.no.storm.predicted.dialog rename to dialog/en-us/daily.thunderstorm.not.expected.location.dialog diff --git a/dialog/en-us/daily.weather.local.dialog b/dialog/en-us/daily.weather.local.dialog new file mode 100644 index 00000000..a69707e6 --- /dev/null +++ b/dialog/en-us/daily.weather.local.dialog @@ -0,0 +1,5 @@ +{day} expect {condition}, with a high of {high_temperature} and a low of {low_temperature} +Expect {condition}, with a high of {high_temperature} and a low of {low_temperature} {day} +{day} the high will be {high_temperature} and the low {low_temperature}, with {condition} +{day} it will be {condition} with a high of {high_temperature} and a low of {low_temperature} +The forecast {day} is {condition} with a high of {high_temperature} and a low of {low_temperature} diff --git a/dialog/en-us/daily.weather.location.dialog b/dialog/en-us/daily.weather.location.dialog new file mode 100644 index 00000000..5a44dd21 --- /dev/null +++ b/dialog/en-us/daily.weather.location.dialog @@ -0,0 +1,3 @@ +{day} it will be {condition}, with a high of {high_temperature} and a low of {low_temperature} in {location} +{day}, {location} will have a high of {high_temperature} and a low of {low_temperature}, with {condition} +The forecast {day} is {high_temperature} for a high and {low_temperature} for a low in {location} diff --git a/dialog/en-us/daily.wind.light.local.dialog b/dialog/en-us/daily.wind.light.local.dialog new file mode 100644 index 00000000..c686a43e --- /dev/null +++ b/dialog/en-us/daily.wind.light.local.dialog @@ -0,0 +1,2 @@ +There will be a light wind coming from the {direction} {day} at {speed} {speed_unit} +It will not be very windy {day} diff --git a/dialog/en-us/daily.wind.light.location.dialog b/dialog/en-us/daily.wind.light.location.dialog new file mode 100644 index 00000000..43223313 --- /dev/null +++ b/dialog/en-us/daily.wind.light.location.dialog @@ -0,0 +1,2 @@ +There will be a light wind coming from the {direction} in {location} {day} at {speed} {speed_unit} +It will not be very windy in {location} {day} diff --git a/dialog/en-us/daily.wind.moderate.local.dialog b/dialog/en-us/daily.wind.moderate.local.dialog new file mode 100644 index 00000000..8729037b --- /dev/null +++ b/dialog/en-us/daily.wind.moderate.local.dialog @@ -0,0 +1,3 @@ +The wind will be moderate, about {speed} {speed_unit} from the {direction} {day} +The forecast calls for a moderate wind from the {direction} at {speed} {speed_unit} {day} +You can expect a moderate wind of about {speed} {speed_unit} {day} diff --git a/dialog/en-us/daily.wind.moderate.location.dialog b/dialog/en-us/daily.wind.moderate.location.dialog new file mode 100644 index 00000000..a395d5d6 --- /dev/null +++ b/dialog/en-us/daily.wind.moderate.location.dialog @@ -0,0 +1,3 @@ +The wind will be moderate in {location} {day}, about {speed} {speed_unit} from the {direction} +The forecast {day} predicts {location} will have moderate wind from the {direction} of {speed} {speed_unit} +You can expect a wind of about {speed} {speed_unit} in {location} {day} diff --git a/dialog/en-us/daily.wind.strong.local.dialog b/dialog/en-us/daily.wind.strong.local.dialog new file mode 100644 index 00000000..66278185 --- /dev/null +++ b/dialog/en-us/daily.wind.strong.local.dialog @@ -0,0 +1,2 @@ +There will be strong wind from the {direction} of {speed} {speed_unit} {day} +The wind will be as strong as {speed} {speed_unit} {day} diff --git a/dialog/en-us/daily.wind.strong.location.dialog b/dialog/en-us/daily.wind.strong.location.dialog new file mode 100644 index 00000000..4e7ea4b2 --- /dev/null +++ b/dialog/en-us/daily.wind.strong.location.dialog @@ -0,0 +1,2 @@ +There will be a strong wind from the {direction} of {speed} {speed_unit} in {location} {day} +The wind will be as strong as {speed} {speed_unit} in {location} {day} diff --git a/dialog/en-us/E.dialog b/dialog/en-us/east.dialog similarity index 100% rename from dialog/en-us/E.dialog rename to dialog/en-us/east.dialog diff --git a/dialog/en-us/forecast.hard.wind.dialog b/dialog/en-us/forecast.hard.wind.dialog deleted file mode 100644 index f0cca68f..00000000 --- a/dialog/en-us/forecast.hard.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It will be {wind} {wind_unit} in {location} {day} -The wind will be as strong as {wind} {wind_unit} in {location} {day} diff --git a/dialog/en-us/forecast.high.temperature.dialog b/dialog/en-us/forecast.high.temperature.dialog deleted file mode 100644 index c90de69b..00000000 --- a/dialog/en-us/forecast.high.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It will be as high as {temp_max} degrees in {location} {day} -{location} will have a high of {temp_max} degrees {day} diff --git a/dialog/en-us/forecast.hot.dialog b/dialog/en-us/forecast.hot.dialog deleted file mode 100644 index b1c64f99..00000000 --- a/dialog/en-us/forecast.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} it'll be {temp} degrees in {location}, quite comfy for an A.I. -{day} the temperature will be {temp} in {location}, well within my specifications diff --git a/dialog/en-us/forecast.light.wind.dialog b/dialog/en-us/forecast.light.wind.dialog deleted file mode 100644 index 0e010c1b..00000000 --- a/dialog/en-us/forecast.light.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It will not be very windy in {location} {day} -In {location} {day} there's going to be no wind to speak of diff --git a/dialog/en-us/forecast.local.hard.wind.dialog b/dialog/en-us/forecast.local.hard.wind.dialog deleted file mode 100644 index eb7794f3..00000000 --- a/dialog/en-us/forecast.local.hard.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It will be {wind} {wind_unit} {day} -The wind will be as strong as {wind} {wind_unit} {day} diff --git a/dialog/en-us/forecast.local.high.temperature.dialog b/dialog/en-us/forecast.local.high.temperature.dialog deleted file mode 100644 index 156cddfc..00000000 --- a/dialog/en-us/forecast.local.high.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} it will be as high as {temp_max} -{day} the temperature will be as high as {temp_max} degrees. diff --git a/dialog/en-us/forecast.local.hot.dialog b/dialog/en-us/forecast.local.hot.dialog deleted file mode 100644 index 6ad4c1a2..00000000 --- a/dialog/en-us/forecast.local.hot.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} it'll be {temp}, quite comfy for an AI diff --git a/dialog/en-us/forecast.local.light.wind.dialog b/dialog/en-us/forecast.local.light.wind.dialog deleted file mode 100644 index 8d7efbf0..00000000 --- a/dialog/en-us/forecast.local.light.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -It will not be very windy {day} -There's going to be no wind to speak of {day} diff --git a/dialog/en-us/forecast.local.low.temperature.dialog b/dialog/en-us/forecast.local.low.temperature.dialog deleted file mode 100644 index af82ed3f..00000000 --- a/dialog/en-us/forecast.local.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} it will be as low as {temp_min} -{day} the temperature will be as low as {temp_min} degrees. diff --git a/dialog/en-us/forecast.local.medium.wind.dialog b/dialog/en-us/forecast.local.medium.wind.dialog deleted file mode 100644 index 927f3f4b..00000000 --- a/dialog/en-us/forecast.local.medium.wind.dialog +++ /dev/null @@ -1,3 +0,0 @@ -The wind will not be too bad, about {wind} {wind_unit} {day} -The forecast says {wind} {wind_unit} {day}, not too bad -You can expect a wind of about {wind} {wind_unit} {day} diff --git a/dialog/en-us/forecast.local.temperature.dialog b/dialog/en-us/forecast.local.temperature.dialog deleted file mode 100644 index 9b0f64bd..00000000 --- a/dialog/en-us/forecast.local.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} it will be {temp} -{day} the temperature will be {temp} degrees. diff --git a/dialog/en-us/forecast.local.weather.dialog b/dialog/en-us/forecast.local.weather.dialog deleted file mode 100644 index 3f43accd..00000000 --- a/dialog/en-us/forecast.local.weather.dialog +++ /dev/null @@ -1,5 +0,0 @@ -{day} expect {condition}, with a high of {temp_max} and a low of {temp_min} -Expect {condition}, with a high of {temp_max} and a low of {temp_min} {day} -{day} the high will be {temp_max} and the low {temp_min}, with {condition} -{day} it will be {condition} with a high of {temp_max} and a low of {temp_min} -The forecast {day} is a high of {temp_max} and a low of {temp_min} diff --git a/dialog/en-us/forecast.low.temperature.dialog b/dialog/en-us/forecast.low.temperature.dialog deleted file mode 100644 index 4b5bd097..00000000 --- a/dialog/en-us/forecast.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} it will be as low as {temp_min} degrees in {location} -{day}, {location} will be as low as {temp} degrees diff --git a/dialog/en-us/forecast.medium.wind.dialog b/dialog/en-us/forecast.medium.wind.dialog deleted file mode 100644 index 5c20f443..00000000 --- a/dialog/en-us/forecast.medium.wind.dialog +++ /dev/null @@ -1,3 +0,0 @@ -The wind will not be too bad in {location}, about {wind} {wind_unit} {day} -The forecast {day} says {location} will have {wind} {wind_unit}, not too bad -You can expect a wind of about {wind} {wind_unit} in {location} {day} diff --git a/dialog/en-us/forecast.temperature.dialog b/dialog/en-us/forecast.temperature.dialog deleted file mode 100644 index c0bf8ffd..00000000 --- a/dialog/en-us/forecast.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} it will be {temp} degrees in {location} -{day}, {location} will have a temperature of {temp} degrees diff --git a/dialog/en-us/forecast.weather.dialog b/dialog/en-us/forecast.weather.dialog deleted file mode 100644 index 061322ea..00000000 --- a/dialog/en-us/forecast.weather.dialog +++ /dev/null @@ -1,3 +0,0 @@ -{day} it will be {condition}, with a high of {temp_max} and a low of {temp_min} in {location} -{day}, {location} will have a high of {temp_max} and a low of {temp_min}, with {condition} -The forecast {day} is {temp_max} for a high and {temp_min} for a low in {location} diff --git a/dialog/en-us/hard.wind.dialog b/dialog/en-us/hard.wind.dialog deleted file mode 100644 index fdfae231..00000000 --- a/dialog/en-us/hard.wind.dialog +++ /dev/null @@ -1,3 +0,0 @@ -It's {wind} {wind_unit} in {location}, a good day to stay inside -The wind is very strong in {location} today, {wind} {wind_unit} -{location} will have quite strong winds today, {wind} {wind_unit} diff --git a/dialog/en-us/hour.local.weather.dialog b/dialog/en-us/hour.local.weather.dialog deleted file mode 100644 index 64df1274..00000000 --- a/dialog/en-us/hour.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -It will be {condition}, with temperatures near {temp} -Later it will be {condition} and around {temp} degrees -Later it will be {condition} and {temp} degrees -Around {temp} degrees with {condition} diff --git a/dialog/en-us/hour.weather.dialog b/dialog/en-us/hour.weather.dialog deleted file mode 100644 index f796ff3a..00000000 --- a/dialog/en-us/hour.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -{location} weather in the next few hours will be {condition} and {temp} degrees -Later it will be {condition} in {location}, with temperatures around {temp} -{location} will be around {temp} with {condition} -{location} will be about {temp} degrees with {condition} diff --git a/dialog/en-us/at.time.local.cond.alternative.dialog b/dialog/en-us/hourly.condition.alternative.local.dialog similarity index 100% rename from dialog/en-us/at.time.local.cond.alternative.dialog rename to dialog/en-us/hourly.condition.alternative.local.dialog diff --git a/dialog/en-us/at.time.cond.alternative.dialog b/dialog/en-us/hourly.condition.alternative.location.dialog similarity index 100% rename from dialog/en-us/at.time.cond.alternative.dialog rename to dialog/en-us/hourly.condition.alternative.location.dialog diff --git a/dialog/en-us/at.time.local.affirmative.condition.dialog b/dialog/en-us/hourly.condition.expected.local.dialog similarity index 100% rename from dialog/en-us/at.time.local.affirmative.condition.dialog rename to dialog/en-us/hourly.condition.expected.local.dialog diff --git a/dialog/en-us/at.time.affirmative.condition.dialog b/dialog/en-us/hourly.condition.expected.location.dialog similarity index 100% rename from dialog/en-us/at.time.affirmative.condition.dialog rename to dialog/en-us/hourly.condition.expected.location.dialog diff --git a/dialog/en-us/hourly.precipitation.next.local.dialog b/dialog/en-us/hourly.precipitation.next.local.dialog new file mode 100644 index 00000000..917c4c14 --- /dev/null +++ b/dialog/en-us/hourly.precipitation.next.local.dialog @@ -0,0 +1,2 @@ +There is a {percent} chance of {precipitation} at {time} +The forecast calls for a {percent} chance of {precipitation} at {time} diff --git a/dialog/en-us/hourly.precipitation.next.location.dialog b/dialog/en-us/hourly.precipitation.next.location.dialog new file mode 100644 index 00000000..c6f35430 --- /dev/null +++ b/dialog/en-us/hourly.precipitation.next.location.dialog @@ -0,0 +1,2 @@ +In {location} there is a {percent} chance of {precipitation} at {time} +The forecast calls for a {percent} chance of {precipitation} in {location} at {time} diff --git a/dialog/en-us/hourly.temperature.local.dialog b/dialog/en-us/hourly.temperature.local.dialog new file mode 100644 index 00000000..ddfbaa37 --- /dev/null +++ b/dialog/en-us/hourly.temperature.local.dialog @@ -0,0 +1,2 @@ +It will be about {temperature} degrees in the {time} +In the {time}, it will be {temperature} degrees diff --git a/dialog/en-us/hourly.temperature.location.dialog b/dialog/en-us/hourly.temperature.location.dialog new file mode 100644 index 00000000..046bc42b --- /dev/null +++ b/dialog/en-us/hourly.temperature.location.dialog @@ -0,0 +1,2 @@ +In {location} it will be about {temperature} degrees in the {time} +In the {time}, it will be {temperature} degrees in {location} diff --git a/dialog/en-us/hourly.weather.local.dialog b/dialog/en-us/hourly.weather.local.dialog new file mode 100644 index 00000000..77bbe4fc --- /dev/null +++ b/dialog/en-us/hourly.weather.local.dialog @@ -0,0 +1,4 @@ +It will be {condition}, with temperatures near {temperature} +Later it will be {condition} and around {temperature} degrees +Later it will be {condition} and {temperature} degrees +Around {temperature} degrees with {condition} diff --git a/dialog/en-us/hourly.weather.location.dialog b/dialog/en-us/hourly.weather.location.dialog new file mode 100644 index 00000000..e0e62e39 --- /dev/null +++ b/dialog/en-us/hourly.weather.location.dialog @@ -0,0 +1,4 @@ +{location} weather in the next few hours will be {condition} and {temperature} degrees +Later it will be {condition} in {location}, with temperatures around {temperature} +{location} will be around {temperature} with {condition} +{location} will be about {temperature} degrees with {condition} diff --git a/dialog/en-us/light.wind.dialog b/dialog/en-us/light.wind.dialog deleted file mode 100644 index f589cdd2..00000000 --- a/dialog/en-us/light.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -There's no wind to speak about today in {location} -It's not very windy at all in {location} today diff --git a/dialog/en-us/local.hard.wind.dialog b/dialog/en-us/local.hard.wind.dialog deleted file mode 100644 index d50d1bc0..00000000 --- a/dialog/en-us/local.hard.wind.dialog +++ /dev/null @@ -1,3 +0,0 @@ -It's {wind} {wind_unit}, might be good to stay inside today -The wind is very strong today, {wind} {wind_unit} -It's very windy today, {wind} {wind_unit} diff --git a/dialog/en-us/local.light.wind.dialog b/dialog/en-us/local.light.wind.dialog deleted file mode 100644 index 8bfa0ad7..00000000 --- a/dialog/en-us/local.light.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Today there's no wind to speak about -It's not very windy at all today diff --git a/dialog/en-us/local.medium.wind.dialog b/dialog/en-us/local.medium.wind.dialog deleted file mode 100644 index 6ef8a31b..00000000 --- a/dialog/en-us/local.medium.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Currently {wind} {wind_unit}, so a bit windy -It's a bit windy today, currently {wind} {wind_unit} diff --git a/dialog/en-us/location.not.found.dialog b/dialog/en-us/location.not.found.dialog index e08d065a..e95e7679 100644 --- a/dialog/en-us/location.not.found.dialog +++ b/dialog/en-us/location.not.found.dialog @@ -1,3 +1,2 @@ -I not sure where that is -I don't know that location -I don't know that place +I can't find a city named {location}. Please try again +The city {location} is not in my memory banks. Please try again diff --git a/dialog/en-us/medium.wind.dialog b/dialog/en-us/medium.wind.dialog deleted file mode 100644 index ae05ccc9..00000000 --- a/dialog/en-us/medium.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Currently {wind} {wind_unit} in {location}, so a bit windy today -It's a bit windy in {location} today, currently {wind} {wind_unit} diff --git a/dialog/en-us/min.max.dialog b/dialog/en-us/min.max.dialog deleted file mode 100644 index 1e6e8093..00000000 --- a/dialog/en-us/min.max.dialog +++ /dev/null @@ -1 +0,0 @@ -Today's forecast is for a high of {temp_max} and a low of {temp_min}. diff --git a/dialog/en-us/no precipitation expected.dialog b/dialog/en-us/no precipitation expected.dialog deleted file mode 100644 index 6ccf889a..00000000 --- a/dialog/en-us/no precipitation expected.dialog +++ /dev/null @@ -1,2 +0,0 @@ -No precipitation is in the forecast -None is forecasted diff --git a/dialog/en-us/N.dialog b/dialog/en-us/north.dialog similarity index 100% rename from dialog/en-us/N.dialog rename to dialog/en-us/north.dialog diff --git a/dialog/en-us/NE.dialog b/dialog/en-us/northeast.dialog similarity index 100% rename from dialog/en-us/NE.dialog rename to dialog/en-us/northeast.dialog diff --git a/dialog/en-us/NW.dialog b/dialog/en-us/northwest.dialog similarity index 100% rename from dialog/en-us/NW.dialog rename to dialog/en-us/northwest.dialog diff --git a/dialog/en-us/on.date.dialog b/dialog/en-us/on.date.dialog deleted file mode 100644 index 59cef6f7..00000000 --- a/dialog/en-us/on.date.dialog +++ /dev/null @@ -1 +0,0 @@ -on diff --git a/dialog/en-us/on.dialog b/dialog/en-us/on.dialog deleted file mode 100644 index e8fd9030..00000000 --- a/dialog/en-us/on.dialog +++ /dev/null @@ -1 +0,0 @@ -on \ No newline at end of file diff --git a/dialog/en-us/percentage.number.dialog b/dialog/en-us/percentage.number.dialog index 1cbe1219..1feed403 100644 --- a/dialog/en-us/percentage.number.dialog +++ b/dialog/en-us/percentage.number.dialog @@ -1 +1 @@ -{num} percent +{number} percent diff --git a/dialog/en-us/precipitation expected.dialog b/dialog/en-us/precipitation expected.dialog deleted file mode 100644 index cdd515a3..00000000 --- a/dialog/en-us/precipitation expected.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{modifier} {precip} is expected {day} -The forecast calls for {modifier} {precip} {day} diff --git a/dialog/en-us/report.condition.at.location.dialog b/dialog/en-us/report.condition.at.location.dialog deleted file mode 100644 index 2ee6d8dd..00000000 --- a/dialog/en-us/report.condition.at.location.dialog +++ /dev/null @@ -1 +0,0 @@ -Currently, {condition} in {location} is {value} diff --git a/dialog/en-us/report.condition.dialog b/dialog/en-us/report.condition.dialog deleted file mode 100644 index 50caa9e6..00000000 --- a/dialog/en-us/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -Currently, {condition} is {value} diff --git a/dialog/en-us/report.condition.future.at.location.dialog b/dialog/en-us/report.condition.future.at.location.dialog deleted file mode 100644 index b77cc567..00000000 --- a/dialog/en-us/report.condition.future.at.location.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} in {location} {day} will be {value} -{day} the forecast in {location} calls for {condition} of {value} diff --git a/dialog/en-us/report.condition.future.dialog b/dialog/en-us/report.condition.future.dialog deleted file mode 100644 index dd7f8a54..00000000 --- a/dialog/en-us/report.condition.future.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} {day} will be {value} -{day} the forecast calls for {condition} of {value} diff --git a/dialog/en-us/report.wind.dialog b/dialog/en-us/report.wind.dialog deleted file mode 100644 index 02fe30e5..00000000 --- a/dialog/en-us/report.wind.dialog +++ /dev/null @@ -1 +0,0 @@ -{condition} is {value} diff --git a/dialog/en-us/seven.days.available.dialog b/dialog/en-us/seven.days.available.dialog new file mode 100644 index 00000000..6c9af6e3 --- /dev/null +++ b/dialog/en-us/seven.days.available.dialog @@ -0,0 +1,2 @@ +I have seven days of forecasted weather available. +I can tell you the forecast for the next seven days. diff --git a/dialog/en-us/S.dialog b/dialog/en-us/south.dialog similarity index 100% rename from dialog/en-us/S.dialog rename to dialog/en-us/south.dialog diff --git a/dialog/en-us/SE.dialog b/dialog/en-us/southeast.dialog similarity index 100% rename from dialog/en-us/SE.dialog rename to dialog/en-us/southeast.dialog diff --git a/dialog/en-us/SW.dialog b/dialog/en-us/southwest.dialog similarity index 100% rename from dialog/en-us/SW.dialog rename to dialog/en-us/southwest.dialog diff --git a/dialog/en-us/tonight.local.weather.dialog b/dialog/en-us/tonight.local.weather.dialog deleted file mode 100644 index 67efb070..00000000 --- a/dialog/en-us/tonight.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Tonight it will be {condition}, with temperatures near {temp} -Tonight it will be {condition} and around {temp} degrees -Tonight it will be {condition} and {temp} degrees -Around {temp} degrees with {condition} tonight diff --git a/dialog/en-us/weekly.condition.on.day.dialog b/dialog/en-us/weekly.condition.on.day.dialog deleted file mode 100644 index 1634763e..00000000 --- a/dialog/en-us/weekly.condition.on.day.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} will be {condition}, diff --git a/dialog/en-us/weekly.conditions.mostly.one.dialog b/dialog/en-us/weekly.conditions.mostly.one.dialog deleted file mode 100644 index b3d40af2..00000000 --- a/dialog/en-us/weekly.conditions.mostly.one.dialog +++ /dev/null @@ -1 +0,0 @@ -it will be mostly {condition}. diff --git a/dialog/en-us/weekly.conditions.seq.extra.dialog b/dialog/en-us/weekly.conditions.seq.extra.dialog deleted file mode 100644 index 498d2ed4..00000000 --- a/dialog/en-us/weekly.conditions.seq.extra.dialog +++ /dev/null @@ -1,2 +0,0 @@ -it looks like there will also be -it will also be diff --git a/dialog/en-us/weekly.conditions.seq.period.dialog b/dialog/en-us/weekly.conditions.seq.period.dialog deleted file mode 100644 index ccf787ed..00000000 --- a/dialog/en-us/weekly.conditions.seq.period.dialog +++ /dev/null @@ -1 +0,0 @@ -from {from} to {to} diff --git a/dialog/en-us/weekly.conditions.seq.start.dialog b/dialog/en-us/weekly.conditions.seq.start.dialog deleted file mode 100644 index cd5183ae..00000000 --- a/dialog/en-us/weekly.conditions.seq.start.dialog +++ /dev/null @@ -1 +0,0 @@ -it will be {condition} diff --git a/dialog/en-us/weekly.conditions.some.days.dialog b/dialog/en-us/weekly.conditions.some.days.dialog deleted file mode 100644 index 244dc951..00000000 --- a/dialog/en-us/weekly.conditions.some.days.dialog +++ /dev/null @@ -1 +0,0 @@ -it will be {condition} some days. diff --git a/dialog/en-us/weekly.temp.range.dialog b/dialog/en-us/weekly.temp.range.dialog deleted file mode 100644 index b67b3143..00000000 --- a/dialog/en-us/weekly.temp.range.dialog +++ /dev/null @@ -1 +0,0 @@ -lows will be between {low_min} and {low_max}, with highs between {high_min} and {high_max} diff --git a/dialog/en-us/W.dialog b/dialog/en-us/west.dialog similarity index 100% rename from dialog/en-us/W.dialog rename to dialog/en-us/west.dialog diff --git a/dialog/en-us/wind.speed.dialog b/dialog/en-us/wind.speed.dialog deleted file mode 100644 index b98efb6f..00000000 --- a/dialog/en-us/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{speed} {unit} diff --git a/dialog/en-us/wind.speed.dir.dialog b/dialog/en-us/wind.speed.dir.dialog deleted file mode 100644 index 9baf235d..00000000 --- a/dialog/en-us/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -at {speed} {unit} from the {dir} -from the {dir} at {speed} {unit} diff --git a/dialog/en-us/wind.strength.hard.dialog b/dialog/en-us/wind.strength.hard.dialog deleted file mode 100644 index d22605f7..00000000 --- a/dialog/en-us/wind.strength.hard.dialog +++ /dev/null @@ -1 +0,0 @@ -That's quite strong diff --git a/dialog/en-us/wind.strength.light.dialog b/dialog/en-us/wind.strength.light.dialog deleted file mode 100644 index 54d137e5..00000000 --- a/dialog/en-us/wind.strength.light.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Not very windy -Not much wind -Quite calm diff --git a/dialog/en-us/wind.strength.medium.dialog b/dialog/en-us/wind.strength.medium.dialog deleted file mode 100644 index 718d8843..00000000 --- a/dialog/en-us/wind.strength.medium.dialog +++ /dev/null @@ -1,2 +0,0 @@ -That's getting breezy. -You might want to take a jacket diff --git a/dialog/en-us/winds.dialog b/dialog/en-us/winds.dialog deleted file mode 100644 index 7042ea3d..00000000 --- a/dialog/en-us/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -wind speed diff --git a/source/__init__.py b/source/__init__.py new file mode 100644 index 00000000..9d93bdf3 --- /dev/null +++ b/source/__init__.py @@ -0,0 +1,14 @@ +from .api import APIErrors, LocationNotFoundError, OWMApi, OpenWeatherMapApi +from .config import ( + CELSIUS, + FAHRENHEIT, + METERS_PER_SECOND, + MILES_PER_HOUR, + WeatherConfig +) +from .dialog import WeatherDialog +from .intent import WeatherIntent +from .weather import ( + is_current_weather, is_daily_forecast, is_hourly_forecast, WeatherReport +) +from .util import get_sequence_of_days diff --git a/source/api.py b/source/api.py new file mode 100644 index 00000000..46f471e3 --- /dev/null +++ b/source/api.py @@ -0,0 +1,28 @@ +from requests import HTTPError + +from mycroft.api import Api +from .weather import WeatherReport +from .util import LocationNotFoundError + +MINUTES = 60 # Minutes to seconds multiplier + +APIErrors = (LocationNotFoundError, HTTPError) + + +class OpenWeatherMapApi(Api): + def __init__(self): + super().__init__(path="owm") + + def get_weather_for_coordinates(self, measurement_system, latitude, longitude): + """Use the One Call API to get local weather conditions.""" + query_parameters = dict( + exclude="minutely", + lat=latitude, + lon=longitude, + units=measurement_system + ) + api_request = dict(path="/onecall", query=query_parameters) + response = self.request(api_request) + local_weather = WeatherReport(response) + + return local_weather diff --git a/source/config.py b/source/config.py new file mode 100644 index 00000000..937ebd83 --- /dev/null +++ b/source/config.py @@ -0,0 +1,55 @@ +FAHRENHEIT = "fahrenheit" +CELSIUS = "celsius" +METRIC = "metric" +METERS_PER_SECOND = "meters per second" +MILES_PER_HOUR = "miles per hour" + + +class WeatherConfig: + + def __init__(self, core_config: dict, settings: dict): + self.core_config = core_config + self.settings = settings + config_location = self.core_config["location"] + self.latitude = config_location["coordinate"]["latitude"] + self.longitude = config_location["coordinate"]["longitude"] + city = config_location["city"] + state = city["state"] + country = state["country"] + self.city = city["name"] + self.state = state["name"] + self.country = country["name"] + self.speed_unit = self._determine_speed_unit() + self.temperature_unit = self._determine_temperature_unit() + + def _determine_speed_unit(self) -> str: + """Use the core configuration to determine the unit of speed. + + Returns: (str) 'meters_sec' or 'mph' + """ + system_unit = self.core_config['system_unit'] + if system_unit == METRIC: + speed_unit = METERS_PER_SECOND + else: + speed_unit = MILES_PER_HOUR + + return speed_unit + + def _determine_temperature_unit(self) -> str: + """Use the core configuration to determine the unit of temperature. + + Returns: "celsius" or "fahrenheit" + """ + unit_from_settings = self.settings.get("units") + measurement_system = self.core_config['system_unit'] + if measurement_system == METRIC: + temperature_unit = CELSIUS + else: + temperature_unit = FAHRENHEIT + if unit_from_settings is not None and unit_from_settings != 'default': + if unit_from_settings.lower() == FAHRENHEIT: + temperature_unit = FAHRENHEIT + elif unit_from_settings.lower() == CELSIUS: + temperature_unit = CELSIUS + + return temperature_unit diff --git a/source/dialog.py b/source/dialog.py new file mode 100644 index 00000000..48be27ce --- /dev/null +++ b/source/dialog.py @@ -0,0 +1,226 @@ +from mycroft.util.format import nice_number, nice_time +from mycroft.util.time import now_local +from .util import get_time_period +from .weather import ( + is_current_weather, is_hourly_forecast, is_daily_forecast +) + +CURRENT = "current" +DAILY = "daily" +HOURLY = "hourly" + + +# TODO: MISSING DIALOGS +# - current.clear.alternative.local +# - current.clouds.alternative.local +# - daily.snow.alternative.local +# - all hourly..alternative.local/location +# - all hourly..not.expected.local/location +class WeatherDialog: + def __init__(self, weather, config, intent_data): + self.weather = weather + self.config = config + self.intent_data = intent_data + self.current_weather = is_current_weather(weather) + self.daily_forecast = is_daily_forecast(weather) + self.hourly_forecast = is_hourly_forecast(weather) + self.name = None + self.data = None + + def build_current_weather_dialog(self): + self.name = "current.weather" + self.data = dict( + condition=self.weather.condition.description, + temperature=self.weather.temperature, + temperature_unit=self.config.temperature_unit + ) + self._add_location() + + def build_high_low_temperature_dialog(self): + self.name = "current.temperature.high.low" + self.data = dict( + high_temperature=self.weather.high_temperature, + low_temperature=self.weather.low_temperature + ) + + def build_hourly_weather_dialog(self): + self.name = "hourly.weather" + self.data = dict( + condition=self.weather.condition.description, + time=self.weather.date_time.strftime("%H:00"), + temperature=self.weather.temperature, + ) + self._add_location() + + def build_daily_weather_dialog(self): + self.name = "daily.weather" + self.data = dict( + condition=self.weather.condition.description, + day=self.weather.date_time.strftime("%A"), + high_temperature=self.weather.temperature.high, + low_temperature=self.weather.temperature.low + ) + if self.weather.date_time.date() == self.intent_data.location_datetime.date(): + self.data.update(day="Today") + self._add_location() + + def build_temperature_dialog(self, temperature_type): + if self.daily_forecast: + self._build_daily_temperature_dialog(temperature_type) + elif self.hourly_forecast: + self._build_hourly_temperature_dialog() + else: + self._build_current_temperature_dialog(temperature_type) + self.data.update( + temperature_unit=self.intent_data.unit or self.config.temperature_unit + ) + self._add_location() + + def _build_current_temperature_dialog(self, temperature_type): + self.name = "current.temperature" + if temperature_type == "high": + self.name += ".high" + self.data = dict(temperature=self.weather.high_temperature) + elif temperature_type == "low": + self.name += ".low" + self.data = dict(temperature=self.weather.low_temperature) + else: + self.data = dict(temperature=self.weather.temperature) + + def _build_daily_temperature_dialog(self, temperature_type): + self.name = "daily.temperature" + if temperature_type == "high": + self.name += ".high" + self.data = dict(temperature=self.weather.temperature.high) + elif temperature_type == "low": + self.name += ".low" + self.data = dict(temperature=self.weather.temperature.low) + else: + self.data = dict(temperature=self.weather.temperature.day) + self.data.update(day=self.weather.date_time.strftime('%A')) + + def _build_hourly_temperature_dialog(self): + self.name = "hourly.temperature" + self.data = dict( + temperature=self.weather.temperature, + time=get_time_period(self.weather.date_time) + ) + + def build_wind_dialog(self): + wind_strength = self.weather.determine_wind_strength( + self.config.speed_unit + ) + self.data = dict( + speed=nice_number(self.weather.wind_speed), + speed_unit=self.config.speed_unit, + direction=self.weather.wind_direction + ) + self.name = self.intent_data.timeframe + if self.intent_data.timeframe == DAILY: + self.data.update(day=self.weather.date_time.strftime("%A")) + elif self.hourly_forecast: + self.data.update(time=nice_time(self.weather.date_time)) + self.name += '.wind.' + wind_strength + self._add_location() + + def build_humidity_dialog(self): + self.data = dict(percent=self.weather.humidity) + if self.intent_data.timeframe == DAILY: + self.name = "daily.humidity" + self.data.update(day=self.weather.date_time.strftime("%A")) + else: + self.name = "current.humidity" + self._add_location() + + def build_condition_dialog(self, condition, intent_match, alternative): + """Select the relevant dialog file for condition based reports. + + A condition can for example be "snow" or "rain". + + Arguments: + condition (string): name of condition eg snow + + Returns: + dialog (string): name of dialog file + """ + self.data = dict(condition=condition.lower()) + if self.daily_forecast: + self.name = "daily" + self.data.update(day=self.weather.date_time.strftime("%A")) + elif self.hourly_forecast: + self.name = "hourly" + self.data.update(time=nice_time(self.weather.date_time)) + else: + self.name = "current" + if intent_match: + self.name += ".condition.expected" + elif alternative: + self.name += ".{}.alternative".format(condition.lower()) + else: + self.name += ".{}.not.expected".format(condition.lower()) + self._add_location() + + def build_next_precipitation_dialog(self): + if self.weather is None: + self.name = 'daily.precipitation.next.none' + self.data = dict() + else: + if self.intent_data.timeframe == DAILY: + self.name = 'daily.precipitation.next' + self.data = dict(day=self.weather.date_time.strftime("%A")) + else: + self.name = 'hourly.precipitation.next' + self.data = dict(time=get_time_period(self.weather.date_time)) + self.data = dict( + percent=self.weather.chance_of_precipitation, + precipitation="rain", + day=self.weather.date_time.strftime("%A") + ) + self._add_location() + + def build_sunrise_dialog(self): + if self.daily_forecast: + self.name = "daily.sunrise" + else: + if self.intent_data.location is None: + now = now_local() + else: + now = now_local(tz=self.intent_data.geolocation["timezone"]) + if now < self.weather.sunrise: + self.name = "current.sunrise.future" + else: + self.name = "current.sunrise.past" + self._add_location() + self.data = dict(time=nice_time(self.weather.sunrise.strftime("%H:%M"))) + + def build_sunset_dialog(self): + if self.daily_forecast: + self.name = "daily.sunset" + else: + if self.intent_data.location is None: + now = now_local() + else: + now = now_local(tz=self.intent_data.geolocation["timezone"]) + if now < self.weather.sunset: + self.name = "current.sunset.future" + else: + self.name = "current.sunset.past" + self._add_location() + self.data = dict(time=nice_time(self.weather.sunset.strftime("%H:%M"))) + + def _add_location(self): + if self.intent_data.location is None: + self.name += ".local" + else: + self.name += ".location" + if self.config.country == self.intent_data.geolocation["country"]: + spoken_location = ', '.join([ + self.intent_data.geolocation["city"], + self.intent_data.geolocation["region"] + ]) + else: + spoken_location = ', '.join([ + self.intent_data.geolocation["city"], + self.intent_data.geolocation["country"] + ]) + self.data.update(location=spoken_location) diff --git a/source/intent.py b/source/intent.py new file mode 100644 index 00000000..65200b88 --- /dev/null +++ b/source/intent.py @@ -0,0 +1,64 @@ +from datetime import timedelta + +from mycroft.util.time import now_local +from .util import ( + get_utterance_datetime, get_geolocation, get_tz_info, LocationNotFoundError +) + + +class WeatherIntent: + _geolocation = None + _intent_datetime = None + _location_datetime = None + + def __init__(self, message, language): + self.utterance = message.data["utterance"] + self.location = message.data.get("Location") + self.language = language + self.unit = message.data.get("Unit") + self.timeframe = "current" + + @property + def geolocation(self): + if self._geolocation is None: + if self.location is None: + self._geolocation = dict() + else: + self._geolocation = get_geolocation(self.location) + if self._geolocation["city"].lower() not in self.location.lower(): + raise LocationNotFoundError( + self.location + " is not a city" + ) + + return self._geolocation + + @property + def intent_datetime(self): + if self._intent_datetime is None: + utterance_datetime = get_utterance_datetime( + self.utterance, + timezone=self.geolocation.get("timezone"), + language=self.language + ) + if utterance_datetime is not None: + delta = utterance_datetime - self.location_datetime + if int(delta / timedelta(days=1)) > 7: + raise ValueError("Weather forecasts only supported up to 7 days") + if utterance_datetime.date() < self.location_datetime.date(): + raise ValueError("Historical weather is not supported") + self._intent_datetime = utterance_datetime + else: + self._intent_datetime = self.location_datetime + + return self._intent_datetime + + @property + def location_datetime(self): + if self._location_datetime is None: + if self.location is None: + self._location_datetime = now_local() + else: + tz_info = get_tz_info(self.geolocation["timezone"]) + self._location_datetime = now_local(tz_info) + + return self._location_datetime diff --git a/source/util.py b/source/util.py new file mode 100644 index 00000000..eb16675c --- /dev/null +++ b/source/util.py @@ -0,0 +1,93 @@ +from datetime import datetime +from typing import Optional + +import pytz + +from mycroft.api import GeolocationApi +from mycroft.util.format import nice_time +from mycroft.util.parse import extract_datetime +from mycroft.util.time import now_local, to_utc + + +class LocationNotFoundError(ValueError): + pass + + +def convert_to_local_datetime(timestamp, timezone): + naive_datetime = datetime.fromtimestamp(timestamp) + utc_datetime = pytz.utc.localize(naive_datetime) + local_timezone = pytz.timezone(timezone) + local_datetime = utc_datetime.astimezone(local_timezone) + + return local_datetime + + +def get_utterance_datetime(utterance, timezone=None, language=None): + # Change timezone returned by extract_datetime from Local to UTC + utterance_datetime = None + if timezone is None: + anchor_date = None + else: + intent_timezone = get_tz_info(timezone) + anchor_date = datetime.now(intent_timezone) + extract = extract_datetime(utterance, anchor_date, language) + if extract is not None: + utterance_datetime, _ = extract + + return utterance_datetime + + +def get_tz_info(timezone): + return pytz.timezone(timezone) +# def get_spoken_time(date): +# # compatibility wrapper for nice_time +# nt_supported_languages = ['en', 'es', 'it', 'fr', 'de', +# 'hu', 'nl', 'da'] +# if not (lang[0:2] in nt_supported_languages): +# lang = "en-us" +# return nice_time(dt, lang, speech, use_24hour, use_ampm) + + +def get_geolocation(location: str): + geolocation_api = GeolocationApi() + geolocation = geolocation_api.get_geolocation(location) + + if geolocation is None: + raise LocationNotFoundError("Location {} is unknown".format(location)) + + return geolocation + + +def get_time_period(intent_datetime): + # Translate a specific time '9am' to period of the day 'morning' + hour = intent_datetime.time().hour + if 1 <= hour < 5: + period = "early morning" + elif 5 <= hour < 12: + period = "morning" + elif 12 <= hour < 17: + period = "afternoon" + elif 17 <= hour < 20: + period = "evening" + else: + period = "overnight" + + return period + + +def get_sequence_of_days(weather, condition_category): + longest_sequence = [] + this_sequence = [] + last_in_sequence = 0 + for day_count, daily in enumerate(weather.daily): + if daily.condition.catetory == condition_category: + if not last_in_sequence or day_count == last_in_sequence + 1: + this_sequence.append(daily) + last_in_sequence += 1 + else: + if 1 > len(this_sequence) > len(longest_sequence): + longest_sequence = this_sequence + this_sequence = [] + last_in_sequence = day_count + + return longest_sequence diff --git a/source/weather.py b/source/weather.py new file mode 100644 index 00000000..422be3ea --- /dev/null +++ b/source/weather.py @@ -0,0 +1,209 @@ +from datetime import time, timedelta + +from mycroft.util.time import now_local +from .config import MILES_PER_HOUR +from .util import convert_to_local_datetime + +THIRTY_PERCENT = 30 +SATURDAY = 5 +SUNDAY = 6 +WIND_DIRECTION_CONVERSION = ( + (22.5, "north"), + (67.5, "northeast"), + (112.5, "east"), + (157.5, "southeast"), + (202.5, "south"), + (247.5, "southwest"), + (292.5, "west"), + (337.5, "northwest") +) + + +def is_daily_forecast(weather_report): + return isinstance(weather_report, DailyWeather) + + +def is_hourly_forecast(weather_report): + return isinstance(weather_report, HourlyWeather) + + +def is_current_weather(weather_report): + return isinstance(weather_report, CurrentWeather) + + +class WeatherCondition: + def __init__(self, conditions): + self.id = conditions["id"] + self.category = conditions["main"] + self.description = conditions["description"] + self.icon = conditions["icon"] + + +class Weather: + def __init__(self, weather, timezone): + self.date_time = convert_to_local_datetime(weather["dt"], timezone) + self.feels_like = weather["feelsLike"] + self.pressure = weather["pressure"] + self.humidity = weather["humidity"] + self.dew_point = weather["dewPoint"] + self.clouds = weather["clouds"] + self.wind_speed = int(weather["windSpeed"]) + self.wind_direction = self._determine_wind_direction(weather["windDeg"]) + self.condition = WeatherCondition(weather["weather"][0]) + + @staticmethod + def _determine_wind_direction(degree_direction): + wind_direction = None + for min_degree, compass_direction in WIND_DIRECTION_CONVERSION: + if degree_direction < min_degree: + wind_direction = compass_direction + break + if wind_direction is None: + wind_direction = "north" + + return wind_direction + + def determine_wind_strength(self, speed_unit): + if speed_unit == MILES_PER_HOUR: + limits = dict(strong=20, moderate=11) + else: + limits = dict(strong=9, moderate=5) + if self.wind_speed >= limits["strong"]: + wind_strength = "strong" + elif self.wind_speed >= limits["moderate"]: + wind_strength = "moderate" + else: + wind_strength = "light" + + return wind_strength + + +class CurrentWeather(Weather): + def __init__(self, weather, timezone): + super().__init__(weather, timezone) + self.sunrise = convert_to_local_datetime(weather["sunrise"], timezone) + self.sunset = convert_to_local_datetime(weather["sunset"], timezone) + self.temperature = round(weather["temp"]) + self.visibility = weather["visibility"] + self.low_temperature = None + self.high_temperature = None + + +class DailyFeelsLike: + def __init__(self, temperatures): + self.day = round(temperatures["day"]) + self.night = round(temperatures["night"]) + self.evening = round(temperatures["eve"]) + self.morning = round(temperatures["morn"]) + + +class DailyTemperature(DailyFeelsLike): + def __init__(self, temperatures): + super().__init__(temperatures) + self.low = round(temperatures["min"]) + self.high = round(temperatures["max"]) + + +class DailyWeather(Weather): + def __init__(self, weather, timezone): + super().__init__(weather, timezone) + self.sunrise = convert_to_local_datetime(weather["sunrise"], timezone) + self.sunset = convert_to_local_datetime(weather["sunset"], timezone) + self.temperature = DailyTemperature(weather["temp"]) + self.feels_like = DailyFeelsLike(weather["feelsLike"]) + self.chance_of_precipitation = int(weather["pop"] * 100) + + +class HourlyWeather(Weather): + def __init__(self, weather, timezone): + super().__init__(weather, timezone) + self.temperature = round(weather["temp"]) + self.chance_of_precipitation = int(weather["pop"] * 100) + + +class WeatherAlert: + def __init__(self, alert, timezone): + self.sender = alert.get("sender_name") + self.event = alert["event"] + self.start = convert_to_local_datetime(alert["start"], timezone) + self.end = convert_to_local_datetime(alert["end"], timezone) + self.description = alert["description"] + + +class WeatherReport: + def __init__(self, report): + timezone = report["timezone"] + self.current = CurrentWeather(report["current"], timezone) + self.hourly = [HourlyWeather(hour, timezone) for hour in report["hourly"]] + self.daily = [DailyWeather(day, timezone) for day in report["daily"]] + today = self.daily[0] + self.current.high_temperature = today.temperature.high + self.current.low_temperature = today.temperature.low + if "alerts" in report: + self.alerts = [ + WeatherAlert(alert, timezone) for alert in report["alerts"]] + else: + self.alerts = None + + def get_weather_for_intent(self, intent_data): + if intent_data.timeframe == "hourly": + weather = self.get_forecast_for_hour(intent_data) + elif intent_data.timeframe == "daily": + weather = self.get_forecast_for_date(intent_data) + else: + weather = self.current + + return weather + + def get_forecast_for_date(self, intent_data): + if intent_data.intent_datetime.date() == intent_data.location_datetime.date(): + forecast = self.daily[0] + else: + delta = intent_data.intent_datetime - intent_data.location_datetime + day_delta = int(delta / timedelta(days=1)) + day_index = day_delta + 1 + forecast = self.daily[day_index] + + return forecast + + def get_forecast_for_hour(self, intent_data): + delta = intent_data.intent_datetime - intent_data.location_datetime + hour_delta = int(delta / timedelta(hours=1)) + hour_index = hour_delta + 1 + report = self.hourly[hour_index] + + return report + + def get_weekend_forecast(self): + forecast = list() + for forecast_day in self.daily: + report_date = forecast_day.date_time.date() + if report_date.weekday() in (SATURDAY, SUNDAY): + forecast.append(forecast_day) + + return forecast + + def get_next_precipitation(self, intent_data): + report = None + current_precipitation = True + timeframe = "hourly" + for hourly in self.hourly: + if hourly.date_time.date() > intent_data.location_datetime.date(): + break + if hourly.chance_of_precipitation > THIRTY_PERCENT: + if not current_precipitation: + report = hourly + break + else: + current_precipitation = False + + if report is None: + timeframe = "daily" + for daily in self.daily: + if daily.date_time.date() == intent_data.location_datetime.date(): + continue + if daily.chance_of_precipitation > THIRTY_PERCENT: + report = daily + break + + return report, timeframe diff --git a/test/behave/current-temperature-local.feature b/test/behave/current-temperature-local.feature new file mode 100644 index 00000000..019bbfad --- /dev/null +++ b/test/behave/current-temperature-local.feature @@ -0,0 +1,44 @@ +#Feature: Mycroft Weather Skill current local weather +# +# Scenario Outline: What is the temperature today +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.temperature.local.dialog" +# +# Examples: What is the temperature today +# | what is the temperature today | +# | what is the temperature today | +# | temperature | +# | what's the temperature | +# | what will be the temperature today | +# | temperature today | +# | what's the temp | +# | temperature outside | +# +# +# Scenario Outline: What is the high temperature today +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.temperature.high.local.dialog" +# +# Examples: What is the high temperature today +# | what is the high temperature today | +# | what is the high temperature today | +# | what's the high temp today | +# | what's the high temperature | +# | how hot will it be today | +# | how hot is it today | +# | what's the current high temperature | +# | high temperature | +# +# +# Scenario Outline: What is the low temperature today +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.temperature.low.local.dialog" +# +# Examples: What is the low temperature today +# | what is the low temperature today | +# | what is the low temperature today | +# | what will the lowest temperature be today | +# diff --git a/test/behave/current-temperature-location.feature b/test/behave/current-temperature-location.feature new file mode 100644 index 00000000..707fdf55 --- /dev/null +++ b/test/behave/current-temperature-location.feature @@ -0,0 +1,47 @@ +#Feature: Mycroft Weather Skill current temperature at specified location +# +# Scenario Outline: User asks for the temperature today in a location +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.temperature.location.dialog" +# +# Examples: what is the temperature today in location +# | what is the temperature today in location | +# | temperature in sydney | +# | temperature today in san francisco, california | +# | temperature outside in kansas city | +# | In tokyo what's the temp | +# | what will be the temperature today in berlin | +# | what's the temperature in new york city | +# +# +# Scenario Outline: User asks for the high temperature today in a location +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.temperature.high.location.dialog" +# +# Examples: what is the high temperature today in location +# | what is the high temperature today in location | +# | what's the high temperature in san francisco california | +# | how hot will it be today in kansas city | +# | what's the current high temperature in kansas | +# | how hot is it today in tokyo | +# | what is the high temperature today in sydney | +# | what's the high temp today in berlin | +# | high temperature in new york city | +# +# +# Scenario Outline: User asks for the low temperature in a location +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.temperature.low.location.dialog" +# +# Examples: low temperature today in location +# | what is the low temperature today in location | +# | what's the low temperature in san francisco california | +# | how cold will it be today in kansas city | +# | low temperature today in sydney | +# | what's the low temp today in berlin | +# | what's the current low temperature in kansas | +# | how cold is it today in tokyo | +# | low temperature in new york city | diff --git a/test/behave/current-weather-local.feature b/test/behave/current-weather-local.feature new file mode 100644 index 00000000..1e8b3a9e --- /dev/null +++ b/test/behave/current-weather-local.feature @@ -0,0 +1,29 @@ +#Feature: Mycroft Weather Skill local current weather conditions +# +# Scenario Outline: What is the current local weather +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.weather.local.dialog" +# +# Examples: What is the current local weather +# | current local weather | +# | tell me the current weather | +# | what's the current weather like | +# | what is the current weather like | +# | current weather | +# | what is it like outside | +# | what's the current weather conditions | +# | give me the current weather | +# | tell me the current weather | +# | how's the weather | +# | tell me the weather | +# | what's the weather like | +# | weather | +# | what's the weather conditions | +# | give me the weather | +# | tell me the weather | +# | what's the forecast | +# | weather forecast | +# | what's the weather forecast | +# | how is the weather now | +# | what is it like outside right now | diff --git a/test/behave/current-weather-location.feature b/test/behave/current-weather-location.feature new file mode 100644 index 00000000..c554f8e4 --- /dev/null +++ b/test/behave/current-weather-location.feature @@ -0,0 +1,40 @@ +#Feature: Mycroft Weather Skill current weather at a specified location +# +# Scenario Outline: User asks for the current weather in a location +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.weather.location.dialog" +# +# Examples: what is the current local weather in a location +# | what is the current weather in location | +# | what is the current weather in san francisco, california | +# | current weather in kansas city | +# | tell me the current weather in sydney | +# | what's the current weather like in berlin | +# | how's the weather in Paris | +# | tell me the weather in Paris, Texas | +# | give me the current weather in Kansas | +# | what is it like outside in italy | +# | In tokyo what is it like outside | +# | how is the weather in new york city | +# +# +# @xfail +# Scenario Outline: FAILING User asks for the current weather in a location +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "current.weather.location.dialog" +# +# Examples: what is the current local weather in a location +# | what is the current weather in location | +# | what's the current weather conditions in Washington, D.C. | +# +# +# Scenario Outline: User asks for the current weather in an unknown location +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "location.not.found.dialog" +# +# Examples: what is the current local weather in a location +# | what is the current weather in location | +# | tell me the current weather in Missouri | diff --git a/test/behave/daily-temperature-local.feature b/test/behave/daily-temperature-local.feature new file mode 100644 index 00000000..5a7d3898 --- /dev/null +++ b/test/behave/daily-temperature-local.feature @@ -0,0 +1,97 @@ +#Feature: Mycroft Weather Skill local forecasted temperatures +# +# Scenario Outline: What is the temperature for tomorrow +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" +# +# Examples: what is the temperature for tomorrow +# | what is the temperature tomorrow | +# | what will be the temperature for tomorrow | +# +# +# @xfail +# # Jira MS-98 https://mycroft.atlassian.net/browse/MS-98 +# Scenario Outline: Failing what is the temperature for tomorrow +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" +# +# Examples: what is the temperature for tomorrow +# | what is the temperature tomorrow | +# | what's the temperature tomorrow | +# +# +# Scenario Outline: what is the high temperature for tomorrow +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.temperature.high.local.dialog" +# +# Examples: what is the high temperature for tomorrow +# | what is the high temperature tomorrow | +# | what is the high temperature tomorrow | +# | tomorrow what is the high temperature | +# | tomorrow how hot will it get | +# | how hot will it be tomorrow | +# | what should I expect for a high temperature tomorrow | +# | what is the expected high temperature for tomorrow | +# +# +# Scenario Outline: what is the low temperature for tomorrow +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.temperature.low.local.dialog" +# +# Examples: what is the low temperature for tomorrow +# | what is the low temperature tomorrow | +# | what is the low temperature tomorrow | +# | tomorrow what is the low temperature | +# | how cold will it be tomorrow | +# | what should I expect for a low temperature tomorrow | +# | what is the expected low temperature for tomorrow | +# +# +# Scenario Outline: what is the temperature for a future date +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" +# +# Examples: what is the temperature for a future date +# | what is the temperature for a future date | +# | what is the temperature for wednesday | +# | what is the temperature for saturday | +# | what is the temperature 5 days from now | +# +# Scenario Outline: what is the high temperature for a future date +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.temperature.high.local.dialog" +# +# Examples: what is the high temperature for a future date +# | what is the high temperature for a future date | +# | what is the high temperature for wednesday | +# | what is the high temperature for saturday | +# | what is the high temperature 5 days from now | +# +# Scenario Outline: what is the low temperature for a future date +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.temperature.low.local.dialog" +# +# Examples: what is the low temperature for a future date +# | what is the low temperature for a future date | +# | what is the low temperature for wednesday | +# | what is the low temperature for saturday | +# | what is the low temperature 5 days from now | +# +# Scenario Outline: what is the temperature at a certain time +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "hourly.temperature.local.dialog" +# +# Examples: what is the temperature at a certain time +# | what is the temperature at a certain time | +# | what will the temperature be tonight | +# | what will the temperature be this evening | +# | what is the temperature this morning | +# | temperature in the afternoon | diff --git a/test/behave/daily-weather-local.feature b/test/behave/daily-weather-local.feature new file mode 100644 index 00000000..f1b3f15f --- /dev/null +++ b/test/behave/daily-weather-local.feature @@ -0,0 +1,25 @@ +#Feature: Mycroft Weather Skill local daily forecasts +# +# Scenario Outline: what is the forecast for tomorrow +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" +# +# Examples: What is the forecast for tomorrow +# | what is the forecast for tomorrow | +# | what is the forecast for tomorrow | +# | what is the weather tomorrow | +# | what is the weather like tomorrow | +# | tomorrow what will the weather be like | +# +# Scenario Outline: what is the forecast for a future date +# Given an english speaking user +# When the user says "" +# Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" +# +# Examples: what is the forecast for a future date +# | what is the forecast for a future date | +# | what is the weather like tuesday | +# | what is the weather like on saturday | +# | what is the weather like monday | +# | what is the weather like in 5 days from now | diff --git a/test/behave/daily-weather-location.feature b/test/behave/daily-weather-location.feature new file mode 100644 index 00000000..7371904b --- /dev/null +++ b/test/behave/daily-weather-location.feature @@ -0,0 +1,14 @@ +Feature: Mycroft Weather Skill daily forecast for a specified location. + + Scenario Outline: User asks for the forecast on a future date in a location + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.weather.location.dialog" + + Examples: what is the forecast for a future date in location + | what is the forecast on a future date in a location | + | what is the weather tomorrow in sydney | + | what is the weather like in new york city tuesday | + | what is the weather like in san francisco california saturday | + | what is the weather like in kansas city friday | + | what is the weather like in berlin on sunday | diff --git a/test/behave/weather-local.feature b/test/behave/weather-local.feature deleted file mode 100644 index 067e1acb..00000000 --- a/test/behave/weather-local.feature +++ /dev/null @@ -1,239 +0,0 @@ -Feature: Mycroft Weather Skill local forecasts and temperature - - Scenario Outline: What is the current local weather - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.local.weather.dialog" - - Examples: What is the current local weather - | current local weather | - | tell me the current weather | - | what's the current weather like | - | what is the current weather like | - | current weather | - | what is it like outside | - | what's the current weather conditions | - | give me the current weather | - | tell me the current weather | - | how's the weather | - | tell me the weather | - | what's the weather like | - | weather | - | what's the weather conditions | - | give me the weather | - | tell me the weather | - | what's the forecast | - | weather forecast | - | what's the weather forecast | - - @xfail - # JIra MS-54 https://mycroft.atlassian.net/browse/MS-54 - Scenario Outline: Failing what is the current local weather - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.local.weather.dialog" - - Examples: What is the current local weather - | current local weather | - | how is the weather now | - | what is it like outside right now | - - Scenario Outline: What is the temperature today - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.local.temperature.dialog" - - Examples: What is the temperature today - | what is the temperature today | - | what is the temperature today | - | temperature | - | what's the temperature | - | what will be the temperature today | - | temperature today | - - - @xfail - # JIra MS-55 https://mycroft.atlassian.net/browse/MS-55 - Scenario Outline: Failing What is the temperature today - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.local.temperature.dialog" - - Examples: Failing temperature examples - | what is the temperature today | - | what's the temp | - | temperature outside | - - Scenario Outline: What is the high temperature today - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.local.high.temperature.dialog" - - Examples: What is the high temperature today - | what is the high temperature today | - | what is the high temperature today | - | what's the high temp today | - | what's the high temperature | - | how hot will it be today | - | how hot is it today | - | what's the current high temperature | - - @xfail - # JIra MS-97 https://mycroft.atlassian.net/browse/MS-97 - Scenario Outline: Failing what is the high temperature today - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.local.high.temperature.dialog" - - Examples: What is the high temperature today - | what is the high temperature today | - | high temperature | - - Scenario Outline: What is the low temperature today - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.local.low.temperature.dialog" - - Examples: What is the low temperature today - | what is the low temperature today | - | what is the low temperature today | - | what will the lowest temperature be today | - - Scenario Outline: what is the forecast for tomorrow - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.weather.dialog" - - Examples: What is the forecast for tomorrow - | what is the forecast for tomorrow | - | what is the forecast for tomorrow | - | what is the weather tomorrow | - | what is the weather like tomorrow | - | tomorrow what will the weather be like | - - Scenario Outline: what is the forecast for a future date - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.weather.dialog" - - Examples: what is the forecast for a future date - | what is the forecast for a future date | - | what is the weather like next tuesday | - | what is the weather like on next saturday | - | what is the weather like next monday | - - @xfail - # Jira MS-57 https://mycroft.atlassian.net/browse/MS-57 - Scenario Outline: failing what is the forecast for a future date - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.weather.dialog" - - Examples: what is the forecast for a future date - | what is the forecast for a future date | - | what is the weather like in 9 days from now | - - @xfail - # Jira MS-98 https://mycroft.atlassian.net/browse/MS-98 - Scenario Outline: What is the temperature for tomorrow - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.temperature.dialog" - - Examples: what is the temperature for tomorrow - | what is the temperature tomorrow | - | what will be the temperature for tomorrow | - | what's the temperature tomorrow | - - Scenario Outline: what is the high temperature for tomorrow - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.high.temperature.dialog" - - Examples: what is the high temperature for tomorrow - | what is the high temperature tomorrow | - | what is the high temperature tomorrow | - | tomorrow what is the high temperature | - | tomorrow how hot will it get | - | how hot will it be tomorrow | - - @xfail - # Jira Ms-98 https://mycroft.atlassian.net/browse/MS-98 - Scenario Outline: failing what is the high temperature for tomorrow - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.high.temperature.dialog" - - Examples: what is the high temperature for tomorrow - | what is the high temperature tomorrow | - | what should I expect for a high temperature tomorrow | - | what is the expected high temperature for tomorrow | - - Scenario Outline: what is the low temperature for tomorrow - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.low.temperature.dialog" - - Examples: what is the low temperature for tomorrow - | what is the low temperature tomorrow | - | what is the low temperature tomorrow | - | tomorrow what is the low temperature | - | how cold will it be tomorrow | - - @xfail - # Jira Ms-99 https://mycroft.atlassian.net/browse/MS-99 - Scenario Outline: failing what is the low temperature for tomorrow - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.low.temperature.dialog" - - Examples: what is the low temperature for tomorrow - | what is the low temperature tomorrow | - | what should I expect for a low temperature tomorrow | - | what is the expected low temperature for tomorrow | - - Scenario Outline: what is the temperature for a future date - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.temperature.dialog" - - Examples: what is the temperature for a future date - | what is the temperature for a future date | - | what is the temperature for next wednesday | - | what is the temperature for next saturday | - | what is the temperature 5 days from now | - - Scenario Outline: what is the high temperature for a future date - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.high.temperature.dialog" - - Examples: what is the high temperature for a future date - | what is the high temperature for a future date | - | what is the high temperature for next wednesday | - | what is the high temperature for next saturday | - | what is the high temperature 5 days from now | - - Scenario Outline: what is the low temperature for a future date - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.local.low.temperature.dialog" - - Examples: what is the low temperature for a future date - | what is the low temperature for a future date | - | what is the low temperature for next wednesday | - | what is the low temperature for next saturday | - | what is the low temperature 5 days from now | - - @xfail - Scenario Outline: what is the temperature at a certain time - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "at.time.local.temperature.dialog" - - Examples: what is the temperature at a certain time - | what is the temperature at a certain time | - | what will the temperature be tonight | - | what will the temperature be this evening | - | what is the temperature this morning | - | temperature in the afternoon | diff --git a/test/behave/weather-location.feature b/test/behave/weather-location.feature deleted file mode 100644 index b4acee87..00000000 --- a/test/behave/weather-location.feature +++ /dev/null @@ -1,115 +0,0 @@ -Feature: Mycroft Weather Skill location forecasts and temperature - - Scenario Outline: User asks for the current weather in a location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.weather.dialog" - - Examples: what is the current local weather in a location - | what is the current weather in location | - | how is the weather in new york city | - | what is the current weather in san francisco, california | - | current weather in kansas city | - | what's the current weather conditions in Washington DC | - - @xfail - Scenario Outline: Failing User asks for the current weather in a location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.weather.dialog" - - Examples: what is the current local weather in a location - | what is the current weather in location | - | what is it like outside in italy | - | In tokyo what is it like outside | - | give me the current weather in Kansas | - | tell me the current weather Missouri | - | tell me the current weather in sydney | - | what's the current weather like in berlin | - | how's the weather in Paris | - | tell me the weather in Paris, Texas | - - @xfail - Scenario Outline: Failing user asks for the temperature today in location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.temperature.dialog" - - Examples: what is the temperature today in location - | what is the temperature today in location | - | temperature in sydney | - | temperature today in san francisco, california | - | temperature outside in kansas city | - | In tokyo what's the temp | - | what's the temperature in new york city | - | what will be the temperature today in berlin | - - Scenario Outline: User asks for the high temperature today in a location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.high.temperature.dialog" - - Examples: what is the high temperature today in location - | what is the high temperature today in location | - | what's the high temperature in san francisco california | - | how hot will it be today in kansas city | - - @xfail - Scenario Outline: Failing user asks for the high temperature today in a location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.high.temperature.dialog" - - Examples: what is the high temperature today in location - | what is the high temperature today in location | - | high temperature in new york city | - | what's the current high temperature in kansas | - | how hot is it today in tokyo | - | what is the high temperature today in sydney | - | what's the high temp today in berlin | - - Scenario Outline: User asks for the low temperature in a location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.low.temperature.dialog" - - Examples: low temperature today in location - | what is the low temperature today in location | - | what's the low temperature in san francisco california | - | how cold will it be today in kansas city | - - @xfail - Scenario Outline: Failing user asks for the low temperature in a location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "current.low.temperature.dialog" - - Examples: low temperature today in location - | what is the low temperature today in location | - | what is the low temperature today in sydney | - | what's the low temp today in berlin | - | what's the current low temperature in kansas | - | low temperature in new york city | - | how cold is it today in tokyo | - - Scenario Outline: User asks for the forecast on a future date in a location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.weather.dialog" - - Examples: what is the forecast for a future date in location - | what is the forecast on a future date in a location | - | what is the weather tomorrow in sydney | - | what is the weather like in new york city next tuesday | - | what is the weather like in san francisco california next saturday | - | what is the weather like in kansas city next friday | - - @xfail - Scenario Outline: Failing User asks for the forecast on a future date in a location - Given an english speaking user - When the user says "" - Then "mycroft-weather" should reply with dialog from "forecast.weather.dialog" - - Examples: what is the forecast for a future date in location - | what is the forecast on a future date in a location | - | what is the weather like in berlin on sunday | diff --git a/test/behave/weather-precipitation.feature b/test/behave/weather-precipitation.feature index f2de1665..ca1ec177 100644 --- a/test/behave/weather-precipitation.feature +++ b/test/behave/weather-precipitation.feature @@ -1,86 +1,86 @@ - @xfail - Feature: Mycroft Weather Skill precipitation forecasts - - Scenario Outline: will it rain locally today, when it is expected - Given an english speaking user - And there is rain predicted for today - When the user says "" - Then "mycroft-weather" should reply with "rain is expected today." - - Examples: will it rain locally today when expected - - | rain locally today when expected | - | will it rain today | - | will it be rainy today | - | should I bring an umbrella | - | do I need an umbrella | - | should I bring a rain coat | - | do I need a rain jacket | - | does it look like rain today | - - Scenario Outline: will it rain locally today, when it is not expected - Given an english speaking user - And there is no rain predicted for today - When the user says "" - Then "mycroft-weather" should reply with "no rain is expected today." - - Examples: will it rain locally today when not expected - - | rain locally today when not expected | - | will it rain today | - | will it be rainy today | - | should I bring an umbrella | - | do I need an umbrella | - | should I bring a rain coat | - | do I need a rain jacket | - | does it look like rain today | - - Scenario Outline: will it snow locally today, when it is expected - Given an english speaking user - And there is snow predicted for today - When the user says "" - Then "mycroft-weather" should reply with "snow is expected today." - - Examples: will it snow locally today when expected - - | snow locally today when expected | - | will it snow today | - | will it be snowy today | - | does it look like snow today | - - Scenario Outline: Will it snow locally today, when it is not expected - Given an english speaking user - And there is no snow predicted for today - When the user says "" - Then "mycroft-weather" should reply with "no snow is expected today." - - Examples: will it snow locally today when not expected - - | snow locally today when not expected | - | will it snow today | - | will it be snowy today | - | does it look like snow today | - - Scenario Outline: Will it rain in a location today, when it is expected - Given an english speaking user - And there is rain predicted for today in a location - When the user says "" - Then "mycroft-weather" should reply with "yes, expect rain in Kansas City Missouri today" - - Examples: will it rain in a location today when expected - - | rain in a location today when expected | - | will it rain in Kansas city today | - | is there a chance of rain in charleston south carolina today | - | is there a chance of rain in paris | - - Scenario Outline: will it rain in a location in the future, when it is expected - Given an english speaking user - And there is rain predicted for the future in a location - When the user says "" - Then "mycroft-weather" should reply with "yes, the forecast calls for light rain in charleston south carolina tomorrow" - - Examples: will it rain in a location in the future when expected - - | will it rain in charleston south carolina tomorrow | - | will it rain in chicago on wednesday | +# @xfail +# Feature: Mycroft Weather Skill precipitation forecasts +# +# Scenario Outline: will it rain locally today, when it is expected +# Given an english speaking user +# And there is rain predicted for today +# When the user says "" +# Then "mycroft-weather" should reply with "rain is expected today." +# +# Examples: will it rain locally today when expected +# +# | rain locally today when expected | +# | will it rain today | +# | will it be rainy today | +# | should I bring an umbrella | +# | do I need an umbrella | +# | should I bring a rain coat | +# | do I need a rain jacket | +# | does it look like rain today | +# +# Scenario Outline: will it rain locally today, when it is not expected +# Given an english speaking user +# And there is no rain predicted for today +# When the user says "" +# Then "mycroft-weather" should reply with "no rain is expected today." +# +# Examples: will it rain locally today when not expected +# +# | rain locally today when not expected | +# | will it rain today | +# | will it be rainy today | +# | should I bring an umbrella | +# | do I need an umbrella | +# | should I bring a rain coat | +# | do I need a rain jacket | +# | does it look like rain today | +# +# Scenario Outline: will it snow locally today, when it is expected +# Given an english speaking user +# And there is snow predicted for today +# When the user says "" +# Then "mycroft-weather" should reply with "snow is expected today." +# +# Examples: will it snow locally today when expected +# +# | snow locally today when expected | +# | will it snow today | +# | will it be snowy today | +# | does it look like snow today | +# +# Scenario Outline: Will it snow locally today, when it is not expected +# Given an english speaking user +# And there is no snow predicted for today +# When the user says "" +# Then "mycroft-weather" should reply with "no snow is expected today." +# +# Examples: will it snow locally today when not expected +# +# | snow locally today when not expected | +# | will it snow today | +# | will it be snowy today | +# | does it look like snow today | +# +# Scenario Outline: Will it rain in a location today, when it is expected +# Given an english speaking user +# And there is rain predicted for today in a location +# When the user says "" +# Then "mycroft-weather" should reply with "yes, expect rain in Kansas City Missouri today" +# +# Examples: will it rain in a location today when expected +# +# | rain in a location today when expected | +# | will it rain in Kansas city today | +# | is there a chance of rain in charleston south carolina today | +# | is there a chance of rain in paris | +# +# Scenario Outline: will it rain in a location in the future, when it is expected +# Given an english speaking user +# And there is rain predicted for the future in a location +# When the user says "" +# Then "mycroft-weather" should reply with "yes, the forecast calls for light rain in charleston south carolina tomorrow" +# +# Examples: will it rain in a location in the future when expected +# +# | will it rain in charleston south carolina tomorrow | +# | will it rain in chicago on wednesday | diff --git a/dialog/en-us/this.week.dialog b/test/unit/__init__.py similarity index 100% rename from dialog/en-us/this.week.dialog rename to test/unit/__init__.py diff --git a/vocab/en-us/Cloudy.voc b/vocab/en-us/Clouds.voc similarity index 100% rename from vocab/en-us/Cloudy.voc rename to vocab/en-us/Clouds.voc diff --git a/vocab/en-us/CloudyAlternatives.voc b/vocab/en-us/CloudsAlternatives.voc similarity index 100% rename from vocab/en-us/CloudyAlternatives.voc rename to vocab/en-us/CloudsAlternatives.voc diff --git a/vocab/en-us/Foggy.voc b/vocab/en-us/Fog.voc similarity index 100% rename from vocab/en-us/Foggy.voc rename to vocab/en-us/Fog.voc diff --git a/vocab/en-us/Like.voc b/vocab/en-us/Like.voc new file mode 100644 index 00000000..2f673b18 --- /dev/null +++ b/vocab/en-us/Like.voc @@ -0,0 +1 @@ +like diff --git a/vocab/en-us/Location.voc b/vocab/en-us/Location.voc index a5de9c71..3c2b6969 100644 --- a/vocab/en-us/Location.voc +++ b/vocab/en-us/Location.voc @@ -3,7 +3,6 @@ Los Angeles california|los angeles|la Lawrence kansas portland oregon|portland spokane -new york chicago houston austin @@ -11,6 +10,6 @@ san diego san francisco san jose boston -washington dc kansas city atlanta +berlin diff --git a/vocab/en-us/Outside.voc b/vocab/en-us/Outside.voc new file mode 100644 index 00000000..e4f4c426 --- /dev/null +++ b/vocab/en-us/Outside.voc @@ -0,0 +1,2 @@ +outside +out diff --git a/vocab/en-us/Raining.voc b/vocab/en-us/Rain.voc similarity index 100% rename from vocab/en-us/Raining.voc rename to vocab/en-us/Rain.voc diff --git a/vocab/en-us/RelativeDay.voc b/vocab/en-us/RelativeDay.voc index 861e9f72..c3c0e951 100644 --- a/vocab/en-us/RelativeDay.voc +++ b/vocab/en-us/RelativeDay.voc @@ -5,9 +5,17 @@ tomorrow's yesterday yesterday's monday +on monday tuesday +on tuesday wednesday +on wednesday thursday +on thursday friday +on friday saturday -sunday \ No newline at end of file +on saturday +sunday +on sunday +days diff --git a/vocab/en-us/Snowing.voc b/vocab/en-us/Snow.voc similarity index 100% rename from vocab/en-us/Snowing.voc rename to vocab/en-us/Snow.voc diff --git a/vocab/en-us/Temperature.voc b/vocab/en-us/Temperature.voc index ce033c2d..857fb5b2 100644 --- a/vocab/en-us/Temperature.voc +++ b/vocab/en-us/Temperature.voc @@ -1,4 +1,5 @@ temperature +temp cold chilly cool diff --git a/vocab/en-us/Storm.voc b/vocab/en-us/Thunderstorm.voc similarity index 100% rename from vocab/en-us/Storm.voc rename to vocab/en-us/Thunderstorm.voc diff --git a/vocab/en-us/StormAlternatives.voc b/vocab/en-us/ThunderstormAlternatives.voc similarity index 100% rename from vocab/en-us/StormAlternatives.voc rename to vocab/en-us/ThunderstormAlternatives.voc diff --git a/vocab/en-us/what.is.multi.day.forecast.intent b/vocab/en-us/what.is.multi.day.forecast.intent index 71d040d9..4b46089d 100644 --- a/vocab/en-us/what.is.multi.day.forecast.intent +++ b/vocab/en-us/what.is.multi.day.forecast.intent @@ -1,4 +1,4 @@ -weather (in|over|for) the next {num} days -what is the weather (like|) (in|over|for) the next {num} days +(weather|forecast) (in|over|for) the next {num} days +what is the (weather|forecast) (like|) (in|over|for) the next {num} days what will the weather be (like|) (in|over|for) the next {num} days -what is the weather (going to |gonna |)be (like |)(in|over|for) the next {num} days +what is the weather (going to|gonna|) be (like|) (in|over|for) the next {num} days diff --git a/vocab/en-us/what.is.three.day.forecast.intent b/vocab/en-us/what.is.three.day.forecast.intent deleted file mode 100644 index 32f77149..00000000 --- a/vocab/en-us/what.is.three.day.forecast.intent +++ /dev/null @@ -1,2 +0,0 @@ -(3|three) day forecast -(tell me|what is) the (3 day|three day|extended) (forecast|weather forecast) diff --git a/vocab/en-us/what.is.three.day.forecast.location.intent b/vocab/en-us/what.is.three.day.forecast.location.intent deleted file mode 100644 index add0ff10..00000000 --- a/vocab/en-us/what.is.three.day.forecast.location.intent +++ /dev/null @@ -1 +0,0 @@ -(tell me|what is) the (3 day|three-day|extended) (weather|forecast|weather forecast) (for|in) {Location} diff --git a/vocab/en-us/what.is.two.day.forecast.intent b/vocab/en-us/what.is.two.day.forecast.intent deleted file mode 100644 index 1a905ca0..00000000 --- a/vocab/en-us/what.is.two.day.forecast.intent +++ /dev/null @@ -1,3 +0,0 @@ -weather (for|on|) (next|) {day_one} and {day_two} -what('s| is) the weather (going to |gonna |)be (like |)(for|on|) (next|) {day_one} and {day_two} -what will the weather be (like |)(for|on|) (next|) {day_one} and {day_two} diff --git a/vocab/en-us/whats.weather.like.intent b/vocab/en-us/whats.weather.like.intent deleted file mode 100644 index 2229cb86..00000000 --- a/vocab/en-us/whats.weather.like.intent +++ /dev/null @@ -1,5 +0,0 @@ -what is it like out (today|) -what is it like outside -weather -forecast -weather forecast From 884401709e931fda9e4012541d8c1b67a6126e8a Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 12 Apr 2021 17:20:36 -0500 Subject: [PATCH 03/42] Refactor the GUI code. Add Mark II specific QML files. --- __init__.py | 153 ++++++++++++++---- ...tDelegate.qml => DailyGenericDelegate.qml} | 8 +- ...elegate.qml => WeatherGenericDelegate.qml} | 0 ui/WeatherMarkIIDelegate.qml | 44 +++++ ui/{weather.qml => current_1_generic.qml} | 8 +- ui/current_1_mark_ii.qml | 150 +++++++++++++++++ ui/{highlow.qml => current_2_generic.qml} | 8 +- ui/current_2_mark_ii.qml | 107 ++++++++++++ ui/{forecast1.qml => daily_1_generic.qml} | 2 +- ui/{forecast2.qml => daily_2_generic.qml} | 2 +- ui/daily_mark_ii.qml | 114 +++++++++++++ ui/hourly_mark_ii.qml | 114 +++++++++++++ ui/images/cloudy.svg | 3 + ui/images/high_temperature.svg | 3 + ui/images/humidity.svg | 6 + ui/images/low_temperature.svg | 3 + ui/images/partly_cloudy.svg | 4 + ui/images/rain.svg | 6 + ui/images/snow.svg | 3 + ui/images/storm.svg | 3 + ui/images/sunny.svg | 3 + ui/images/wind.svg | 3 + 22 files changed, 704 insertions(+), 43 deletions(-) rename ui/{ForecastDelegate.qml => DailyGenericDelegate.qml} (92%) rename ui/{WeatherDelegate.qml => WeatherGenericDelegate.qml} (100%) create mode 100644 ui/WeatherMarkIIDelegate.qml rename ui/{weather.qml => current_1_generic.qml} (86%) create mode 100644 ui/current_1_mark_ii.qml rename ui/{highlow.qml => current_2_generic.qml} (83%) create mode 100644 ui/current_2_mark_ii.qml rename ui/{forecast1.qml => daily_1_generic.qml} (90%) rename ui/{forecast2.qml => daily_2_generic.qml} (90%) create mode 100644 ui/daily_mark_ii.qml create mode 100644 ui/hourly_mark_ii.qml create mode 100644 ui/images/cloudy.svg create mode 100644 ui/images/high_temperature.svg create mode 100644 ui/images/humidity.svg create mode 100644 ui/images/low_temperature.svg create mode 100644 ui/images/partly_cloudy.svg create mode 100644 ui/images/rain.svg create mode 100644 ui/images/snow.svg create mode 100644 ui/images/storm.svg create mode 100644 ui/images/sunny.svg create mode 100644 ui/images/wind.svg diff --git a/__init__.py b/__init__.py index fc0f286c..e3cdcc92 100644 --- a/__init__.py +++ b/__init__.py @@ -29,6 +29,7 @@ from collections import defaultdict from datetime import datetime, timedelta from multi_key_dict import multi_key_dict +from time import sleep from typing import List, Optional from adapt.intent import IntentBuilder @@ -59,7 +60,16 @@ # Later weather: only the word "later" in the vocab file works all others # invoke datetime skill +MARK_II = "mycroft_mark_2" MINUTES = 60 # Minutes to seconds multiplier +CLEAR = 0 +PARTLY_CLOUDY = 1 +CLOUDY = 2 +LIGHT_RAIN = 3 +RAIN = 4 +THUNDERSTORM = 5 +SNOW = 6 +WINDY = 7 class WeatherSkill(MycroftSkill): @@ -68,19 +78,19 @@ def __init__(self): self.weather_api = OWMApi() self.weather_api_new = OpenWeatherMapApi() self.weather_config = WeatherConfig(self.config_core, self.settings) - + self.platform = self.config_core['enclosure']['platform'] # Build a dictionary to translate OWM weather-conditions # codes into the Mycroft weather icon codes # (see https://openweathermap.org/weather-conditions) - self.CODES = multi_key_dict() - self.CODES['01d', '01n'] = 0 # clear - self.CODES['02d', '02n', '03d', '03n'] = 1 # partly cloudy - self.CODES['04d', '04n'] = 2 # cloudy - self.CODES['09d', '09n'] = 3 # light rain - self.CODES['10d', '10n'] = 4 # raining - self.CODES['11d', '11n'] = 5 # stormy - self.CODES['13d', '13n'] = 6 # snowing - self.CODES['50d', '50n'] = 7 # windy/misty + self.image_codes = multi_key_dict() + self.image_codes['01d', '01n'] = CLEAR + self.image_codes['02d', '02n', '03d', '03n'] = PARTLY_CLOUDY + self.image_codes['04d', '04n'] = CLOUDY + self.image_codes['09d', '09n'] = LIGHT_RAIN + self.image_codes['10d', '10n'] = RAIN + self.image_codes['11d', '11n'] = THUNDERSTORM + self.image_codes['13d', '13n'] = SNOW + self.image_codes['50d', '50n'] = WINDY # Use Mycroft proxy if no private key provided self.settings["api_key"] = None @@ -378,30 +388,75 @@ def _report_current_weather(self, message): intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: + self._display_current_conditions(weather) dialog = WeatherDialog( weather.current, self.weather_config, intent_data ) dialog.build_current_weather_dialog() - self._display_current_weather(weather) self._speak_weather(dialog) + if self.gui.connected and self.platform != MARK_II: + self._display_more_current_conditions(weather) dialog.build_high_low_temperature_dialog() self._speak_weather(dialog) - - def _display_current_weather(self, report): - image_code = self.CODES[report.current.condition.icon] + if self.gui.connected: + if self.platform == MARK_II: + self._display_more_current_conditions(weather) + sleep(5) + self._display_hourly_forecast(weather) + else: + four_day_forecast = weather.daily[1:5] + self._display_forecast(four_day_forecast) + + def _display_current_conditions(self, weather): + image_code = self.image_codes[weather.current.condition.icon] if self.gui.connected: - self.gui["current"] = report.current.temperature - self.gui["min"] = report.current.low_temperature - self.gui["max"] = report.current.high_temperature - self.gui["condition"] = report.current.condition.description - self.gui["icon"] = report.current.condition.icon - self.gui["weathercode"] = image_code - self.gui.show_pages(["weather.qml", "highlow.qml"]) + page_name = "current_1_generic.qml" + self.gui.clear() + self.gui["currentTemperature"] = weather.current.temperature + self.gui["weatherCode"] = image_code + if self.platform == MARK_II: + self.gui["highTemperature"] = weather.current.high_temperature + self.gui["lowTemperature"] = weather.current.low_temperature + page_name = page_name.replace("generic", "mark_ii") + self.gui.show_page(page_name) else: self.enclosure.deactivate_mouth_events() self.enclosure.weather_display( - image_code, report.current.temperature + image_code, weather.current.temperature + ) + + def _display_more_current_conditions(self, weather): + page_name = "current_2_generic.qml" + self.gui.clear() + if self.platform == MARK_II: + self.gui["windSpeed"] = weather.current.wind_speed + self.gui["humidity"] = weather.current.humidity + page_name = page_name.replace("generic", "mark_ii") + else: + self.gui["highTemperature"] = weather.current.high_temperature + self.gui["lowTemperature"] = weather.current.low_temperature + self.gui.show_page(page_name) + + def _display_hourly_forecast(self, weather): + hourly_forecast = defaultdict(list) + for hour_count, hourly in enumerate(weather.hourly): + if not hour_count: + continue + if hour_count > 4: + break + # TODO: make the timeframe aware of language/location settings + hourly_forecast['times'].append(hourly.date_time.strftime('%H:00')) + hourly_forecast['temperatures'].append(hourly.temperature) + hourly_forecast['weather_codes'].append( + self.image_codes.get(hourly.condition.icon) ) + hourly_forecast['precipitation'].append(hourly.chance_of_precipitation) + self.gui.clear() + self.gui['times'] = hourly_forecast['times'] + self.gui['temperatures'] = hourly_forecast['temperatures'] + self.gui['weatherCodes'] = hourly_forecast['weather_codes'] + self.gui['chancesOfPrecipitation'] = hourly_forecast['precipitation'] + self.gui.show_page('hourly_mark_ii.qml') def _report_one_hour_weather(self, message): intent_data = self._get_intent_data(message) @@ -418,7 +473,7 @@ def _report_multi_day_forecast(self, message, days): intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: - forecast = weather.daily[:days] + forecast = weather.daily[1:days + 1] dialogs = self._build_forecast_dialogs(forecast, intent_data) self._display_forecast(forecast) for dialog in dialogs: @@ -457,19 +512,60 @@ def _build_forecast_dialogs(self, forecast, intent_data): def _display_forecast(self, forecast: List): """Builds forecast for the upcoming days for the Mark-2 display.""" + if self.platform == MARK_II: + self._display_forecast_mark_ii(forecast) + else: + self._display_forecast_generic(forecast) + + def _display_forecast_mark_ii(self, forecast): + page_one_name = "daily_mark_ii.qml" + display_data = defaultdict(list) + for day in forecast: + display_data['weatherCodes'].append( + self.image_codes[day.condition.icon] + ) + display_data['days'].append(day.date_time.strftime("%a")) + display_data['highTemperatures'].append(day.temperature.high) + display_data['lowTemperatures'].append(day.temperature.low) + self.gui.clear() + self.gui["numberOfDays"] = min([4, len(forecast)]) + self.gui['weatherCodes'] = display_data['weatherCodes'][:4] + self.gui['days'] = display_data["days"][:4] + self.gui["lowTemperatures"] = display_data["lowTemperatures"][:4] + self.gui["highTemperatures"] = display_data["highTemperatures"][:4] + self.gui.show_page(page_one_name) + if len(forecast) > 4: + sleep(20) + self.gui.clear() + self.gui["numberOfDays"] = min([4, len(forecast) - 4]) + self.gui['weatherCodes'] = display_data['weatherCodes'][4:] + self.gui['days'] = display_data["days"][4:] + self.gui["lowTemperatures"] = display_data["lowTemperatures"][4:] + self.gui["highTemperatures"] = display_data["highTemperatures"][4:] + self.gui.clear() + self.gui.show_page(page_one_name) + + def _display_forecast_generic(self, forecast): + page_one_name = "daily_1_generic.qml" + page_two_name = page_one_name.replace("1", "2") display_data = [] - for forecast_day in forecast: + for day_number, day in enumerate(forecast): + if day_number == 4: + break display_data.append( dict( - weathercode=self.CODES[forecast_day.condition.icon], - max=forecast_day.temperature.high, - min=forecast_day.temperature.low, - date=forecast_day.date_time.strftime('%a') + weatherCode=self.image_codes[day.condition.icon], + highTemperature=day.temperature.high, + lowTemperature=day.temperature.low, + date=day.date_time.strftime('%a') ) ) self.gui['forecast'] = dict( first=display_data[:2], second=display_data[2:] ) + self.gui.show_page(page_one_name) + sleep(5) + self.gui.show_page(page_two_name) def _report_temperature(self, message, temperature_type=None): intent_data = self._get_intent_data(message) @@ -527,7 +623,6 @@ def _get_intent_data(self, message): except ValueError: self.speak_dialog("cant.get.forecast") else: - print(self.voc_match(intent_data.utterance, "RelativeDay")) if self.voc_match(intent_data.utterance, "RelativeTime"): intent_data.timeframe = "hourly" elif self.voc_match(intent_data.utterance, "Later"): diff --git a/ui/ForecastDelegate.qml b/ui/DailyGenericDelegate.qml similarity index 92% rename from ui/ForecastDelegate.qml rename to ui/DailyGenericDelegate.qml index a4db1cec..9bc29864 100644 --- a/ui/ForecastDelegate.qml +++ b/ui/DailyGenericDelegate.qml @@ -6,7 +6,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -WeatherDelegate { +WeatherGenericDelegate { id: root property alias model: forecastRepeater.model @@ -25,7 +25,7 @@ WeatherDelegate { Layout.preferredHeight: proportionalGridUnit * 20 Layout.preferredWidth: Layout.preferredHeight - source: Qt.resolvedUrl(getWeatherImagery(modelData.weathercode)) + source: Qt.resolvedUrl(getWeatherImagery(modelData.weatherCode)) loops: Animation.Infinite fillMode: Image.PreserveAspectFit running: true @@ -43,7 +43,7 @@ WeatherDelegate { Layout.fillWidth: true Layout.preferredHeight: proportionalGridUnit * 20 rightPadding: -font.pixelSize * 0.1 - text: modelData.max + "°" + text: modelData.highTemperature + "°" } Mycroft.AutoFitLabel { @@ -51,7 +51,7 @@ WeatherDelegate { Layout.fillWidth: true Layout.preferredHeight: proportionalGridUnit * 20 rightPadding: -font.pixelSize * 0.1 - text: modelData.min + "°" + text: modelData.lowTemperature + "°" } } } diff --git a/ui/WeatherDelegate.qml b/ui/WeatherGenericDelegate.qml similarity index 100% rename from ui/WeatherDelegate.qml rename to ui/WeatherGenericDelegate.qml diff --git a/ui/WeatherMarkIIDelegate.qml b/ui/WeatherMarkIIDelegate.qml new file mode 100644 index 00000000..236309cb --- /dev/null +++ b/ui/WeatherMarkIIDelegate.qml @@ -0,0 +1,44 @@ +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.4 as Kirigami + +import Mycroft 1.0 as Mycroft + +Mycroft.Delegate { + id: root + bottomPadding: 32 + leftPadding: 32 + rightPadding: 32 + topPadding: 32 + + function getWeatherImagery(weathercode) { + switch(weathercode) { + case 0: + return "images/sunny.svg"; + break + case 1: + return "images/partly_cloudy.svg"; + break + case 2: + return "images/cloudy.svg"; + break + case 3: + return "images/rain.svg"; + break + case 4: + return "images/rain.svg"; + break + case 5: + return "images/storm.svg"; + break + case 6: + return "images/snow.svg"; + break + case 7: + return "images/cloudy.svg"; + break + } + } + +} diff --git a/ui/weather.qml b/ui/current_1_generic.qml similarity index 86% rename from ui/weather.qml rename to ui/current_1_generic.qml index 0bd579ab..bbe0bc69 100644 --- a/ui/weather.qml +++ b/ui/current_1_generic.qml @@ -6,7 +6,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -WeatherDelegate { +WeatherGenericDelegate { id: root spacing: proportionalGridUnit * 5 @@ -17,7 +17,7 @@ WeatherDelegate { Layout.preferredWidth: Math.min(root.contentWidth, proportionalGridUnit * 50) Layout.preferredHeight: Layout.preferredWidth - source: Qt.resolvedUrl(getWeatherImagery(sessionData.weathercode)) + source: Qt.resolvedUrl(getWeatherImagery(sessionData.weatherCode)) loops: Animation.Infinite fillMode: Image.PreserveAspectFit @@ -25,7 +25,7 @@ WeatherDelegate { // Debug: onSourceChanged: { - console.log(getWeatherImagery(sessionData.weathercode)); + console.log(getWeatherImagery(sessionData.weatherCode)); } onStatusChanged: { console.log(weatherAnimation.status, errorString); @@ -38,6 +38,6 @@ WeatherDelegate { Layout.fillWidth: true Layout.preferredHeight: proportionalGridUnit * 40 rightPadding: -font.pixelSize * 0.1 - text: sessionData.current + "°" + text: sessionData.currentTemperature + "°" } } diff --git a/ui/current_1_mark_ii.qml b/ui/current_1_mark_ii.qml new file mode 100644 index 00000000..497b50e1 --- /dev/null +++ b/ui/current_1_mark_ii.qml @@ -0,0 +1,150 @@ +/* +One of many screns that show when the user asks for the current weather. + +Shows an animation with current conditions, the current temperature, and +the high/low temperature for today. + +This code is specific to the Mark II device. It uses a grid of 32x32 pixel +squares for alignment of items. +*/ +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.4 as Kirigami + +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + +WeatherMarkIIDelegate { + id: root + + Item { + // Bounding box for the content of the screen. + id: card + height: parent.height + width: parent.width + + Item { + // City/state if in same country as device. City/country if in a different country + id: weatherLocation + height: 64 + width: parent.width + + Label { + id: weatherLocationText + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 48 + text: "Kansas City, Missouri" + } + } + + GridLayout { + id: weather + anchors.left: parent.left + anchors.leftMargin: 32 + anchors.top: weatherLocation.bottom + anchors.topMargin: 32 + columns: 2 + columnSpacing: 32 + + Item { + // First row in grid + id: currentConditions + height: 288 + width: 320 + + Image { + // Image depicting the current weather conditions (e.g. sunny, cloudy, etc.) + id: conditionsImage + anchors.horizontalCenter: parent.horizontalCenter + anchors.horizontalCenterOffset: -32 + fillMode: Image.PreserveAspectFit + height: 112 + source: Qt.resolvedUrl(getWeatherImagery(sessionData.weatherCode)) + } + + Label { + // Current temperature in the configured temperature unit. + id: currentTemperature + anchors.baseline: parent.bottom + anchors.baselineOffset: -16 + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 176 + font.weight: Font.Bold + text: sessionData.currentTemperature + "°" + } + } + + Column { + // Second column + id: highLowTemperature + height: 288 + width: 320 + spacing: 32 + + Item { + // High temperature for today + id: highTemperature + height: 128 + width: parent.width + + Image { + id: highTemperatureIcon + anchors.bottom: parent.bottom + anchors.bottomMargin: 32 + anchors.left: highTemperature.left + anchors.leftMargin: 32 + fillMode: Image.PreserveAspectFit + height: 64 + source: Qt.resolvedUrl("images/high_temperature.svg") + } + + Label { + id: highTemperatureValue + anchors.baseline: parent.bottom + anchors.baselineOffset: -32 + anchors.left: highTemperatureIcon.right + anchors.leftMargin: 32 + font.family: "Noto Sans Display" + font.pixelSize: 118 + font.weight: Font.Bold + text: sessionData.highTemperature + "°" + } + } + + Item { + // Low temperature for today + id: lowTemperature + height: 128 + width: parent.width + + Image { + id: lowTemperatureIcon + anchors.bottom: parent.bottom + anchors.bottomMargin: 32 + anchors.left: lowTemperature.left + anchors.leftMargin: 32 + fillMode: Image.PreserveAspectFit + height: 64 + source: Qt.resolvedUrl("images/low_temperature.svg") + } + + Label { + id: lowTemperatureValue + anchors.baseline: parent.bottom + anchors.baselineOffset: -32 + anchors.left: lowTemperatureIcon.right + anchors.leftMargin: 32 + font.family: "Noto Sans Display" + font.pixelSize: 118 + font.weight: Font.Light + text: sessionData.lowTemperature + "°" + } + } + } + } + } +} diff --git a/ui/highlow.qml b/ui/current_2_generic.qml similarity index 83% rename from ui/highlow.qml rename to ui/current_2_generic.qml index 60d638dc..9deff6b7 100644 --- a/ui/highlow.qml +++ b/ui/current_2_generic.qml @@ -10,22 +10,22 @@ WeatherDelegate { id: root Mycroft.AutoFitLabel { - id: maxTemp + id: highTemperature font.weight: Font.Bold Layout.fillWidth: true Layout.preferredHeight: proportionalGridUnit * 40 //The off-centering to balance the ° should be proportional as well, so we use the computed pixel size rightPadding: -font.pixelSize * 0.1 - text: sessionData.max + "°" + text: sessionData.highTemperature + "°" } Mycroft.AutoFitLabel { - id: minTemp + id: lowTemperature Layout.fillWidth: true Layout.preferredHeight: proportionalGridUnit * 40 rightPadding: -font.pixelSize * 0.1 font.weight: Font.Thin font.styleName: "Thin" - text: sessionData.min + "°" + text: sessionData.lowTemperature + "°" } } diff --git a/ui/current_2_mark_ii.qml b/ui/current_2_mark_ii.qml new file mode 100644 index 00000000..264ad53e --- /dev/null +++ b/ui/current_2_mark_ii.qml @@ -0,0 +1,107 @@ +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.4 as Kirigami + +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + +WeatherMarkIIDelegate { + id: root + + Item { + // Bounding box for the content of the screen. + id: card + height: parent.height + width: parent.width + + GridLayout { + id: weather + anchors.left: parent.left + anchors.leftMargin: 32 + anchors.top: parent.top + anchors.topMargin: 32 + columns: 2 + columnSpacing: 32 + rowSpacing: 0 + + Column { + id: wind + height: 352 + width: 320 + + Item { + id: windIconBox + height: 128 + width: parent.width + + Image { + id: windIcon + anchors.top: parent.top + anchors.horizontalCenter: parent.horizontalCenter + fillMode: Image.PreserveAspectFit + height: parent.height + source: Qt.resolvedUrl("images/wind.svg") + } + } + + Item { + id: windSpeedBox + anchors.top: windIconBox.bottom + anchors.topMargin: 32 + height: 160 + width: parent.width + + Label { + id: windSpeed + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.weight: Font.Bold + font.pixelSize: 176 + text: sessionData.windSpeed + } + } + } + + Column { + id: humidity + height: 352 + width: 320 + + Item { + id: humidityIconBox + height: 128 + width: parent.width + + Image { + id: humidityIcon + anchors.top: parent.top + anchors.horizontalCenter: parent.horizontalCenter + fillMode: Image.PreserveAspectFit + height: parent.height + source: Qt.resolvedUrl("images/humidity.svg") + } + } + + Item { + id: humidityValueBox + anchors.top: humidityIconBox.bottom + anchors.topMargin: 32 + height: 160 + width: parent.width + + Label { + id: humidityValue + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 180 + font.weight: Font.Bold + text: sessionData.humidity + } + } + } + } + } +} diff --git a/ui/forecast1.qml b/ui/daily_1_generic.qml similarity index 90% rename from ui/forecast1.qml rename to ui/daily_1_generic.qml index b8b321d4..956df1ab 100644 --- a/ui/forecast1.qml +++ b/ui/daily_1_generic.qml @@ -6,7 +6,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -ForecastDelegate { +DailyGenericDelegate { id: root model: sessionData.forecast.first } diff --git a/ui/forecast2.qml b/ui/daily_2_generic.qml similarity index 90% rename from ui/forecast2.qml rename to ui/daily_2_generic.qml index aad6da03..922b9de8 100644 --- a/ui/forecast2.qml +++ b/ui/daily_2_generic.qml @@ -6,7 +6,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -ForecastDelegate { +DailyGenericDelegate { id: root model: sessionData.forecast.second } diff --git a/ui/daily_mark_ii.qml b/ui/daily_mark_ii.qml new file mode 100644 index 00000000..84849f0d --- /dev/null +++ b/ui/daily_mark_ii.qml @@ -0,0 +1,114 @@ +//import QtQuick.Layouts 1.4 +//import QtQuick 2.4 +//import QtQuick.Controls 2.0 +//import org.kde.kirigami 2.4 as Kirigami +// +//import Mycroft 1.0 as Mycroft +//import org.kde.lottie 1.0 +// +//ForecastMarkIIDelegate { +// id: root +// model: sessionData.forecast.first +//} +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.4 as Kirigami + +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + +WeatherMarkIIDelegate { + Item { + id: hourlyCard + height: parent.height + width: parent.width + + GridLayout { + id: currentWeather + anchors.left: parent.left + anchors.leftMargin: 32 + anchors.top: parent.top + anchors.topMargin: 32 + columns: sessionData.numberOfDays + columnSpacing: 32 + rowSpacing: 0 + Layout.fillWidth: true + + Repeater { + id: conditionRepeater + model: sessionData.weatherCodes + anchors.top: parent.top + + Item { + height: 64 + width: 144 + + Image { + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top + height: 64 + fillMode: Image.PreserveAspectFit + source: Qt.resolvedUrl(getWeatherImagery(modelData)) + } + } + } + + Repeater { + id: timeRepeater + model: sessionData.days + + Item { + height: 64 + width: 144 + + Label { + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 59 + text: modelData + } + } + } + + Repeater { + id: highTemperatureRepeater + model: sessionData.highTemperatures + + Item { + height: 96 + width: 144 + + Label { + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 72 + font.weight: Font.Bold + text: modelData + "°" + } + } + } + + Repeater { + id: lowTemperatureRepeater + model: sessionData.lowTemperatures + + Item { + height: 96 + width: 144 + + Label { + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 59 + font.weight: Font.Thin + text: modelData + "°" + } + } + } + } + } +} diff --git a/ui/hourly_mark_ii.qml b/ui/hourly_mark_ii.qml new file mode 100644 index 00000000..f0209855 --- /dev/null +++ b/ui/hourly_mark_ii.qml @@ -0,0 +1,114 @@ +//import QtQuick.Layouts 1.4 +//import QtQuick 2.4 +//import QtQuick.Controls 2.0 +//import org.kde.kirigami 2.4 as Kirigami +// +//import Mycroft 1.0 as Mycroft +//import org.kde.lottie 1.0 +// +//ForecastMarkIIDelegate { +// id: root +// model: sessionData.forecast.first +//} +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.4 as Kirigami + +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + +WeatherMarkIIDelegate { + Item { + id: hourlyCard + height: parent.height + width: parent.width + + GridLayout { + id: currentWeather + anchors.left: parent.left + anchors.leftMargin: 32 + anchors.top: parent.top + anchors.topMargin: 32 + columns: 4 + columnSpacing: 32 + rowSpacing: 0 + Layout.fillWidth: true + + Repeater { + id: conditionRepeater + model: sessionData.weatherCodes + anchors.top: parent.top + + Item { + height: 64 + width: 144 + + Image { + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top + height: 64 + fillMode: Image.PreserveAspectFit + source: Qt.resolvedUrl(getWeatherImagery(modelData)) + } + } + } + + Repeater { + id: timeRepeater + model: sessionData.times + + Item { + height: 64 + width: 144 + + Label { + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 59 + text: modelData + } + } + } + + Repeater { + id: temperatureRepeater + model: sessionData.temperatures + + Item { + height: 96 + width: 144 + + Label { + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 72 + font.weight: Font.Bold + text: modelData + "°" + } + } + } + + Repeater { + id: precipitationRepeater + model: sessionData.chancesOfPrecipitation + + Item { + height: 96 + width: 144 + + Label { + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 59 + font.weight: Font.Thin + text: modelData + "%" + } + } + } + } + } +} diff --git a/ui/images/cloudy.svg b/ui/images/cloudy.svg new file mode 100644 index 00000000..6ce35734 --- /dev/null +++ b/ui/images/cloudy.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/high_temperature.svg b/ui/images/high_temperature.svg new file mode 100644 index 00000000..f6ae4048 --- /dev/null +++ b/ui/images/high_temperature.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/humidity.svg b/ui/images/humidity.svg new file mode 100644 index 00000000..f6fba0dc --- /dev/null +++ b/ui/images/humidity.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ui/images/low_temperature.svg b/ui/images/low_temperature.svg new file mode 100644 index 00000000..d98838f2 --- /dev/null +++ b/ui/images/low_temperature.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/partly_cloudy.svg b/ui/images/partly_cloudy.svg new file mode 100644 index 00000000..361aa1f6 --- /dev/null +++ b/ui/images/partly_cloudy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/ui/images/rain.svg b/ui/images/rain.svg new file mode 100644 index 00000000..d941e79c --- /dev/null +++ b/ui/images/rain.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ui/images/snow.svg b/ui/images/snow.svg new file mode 100644 index 00000000..584779b8 --- /dev/null +++ b/ui/images/snow.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/storm.svg b/ui/images/storm.svg new file mode 100644 index 00000000..4ca5bc3d --- /dev/null +++ b/ui/images/storm.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/sunny.svg b/ui/images/sunny.svg new file mode 100644 index 00000000..b8c3c205 --- /dev/null +++ b/ui/images/sunny.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/wind.svg b/ui/images/wind.svg new file mode 100644 index 00000000..44a66f2c --- /dev/null +++ b/ui/images/wind.svg @@ -0,0 +1,3 @@ + + + From 20465b20b501e21d4705f6723ff1426bba01c904 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 12 Apr 2021 17:51:45 -0500 Subject: [PATCH 04/42] Update the README file. --- README.md | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7a4ecd5c..d8718f72 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,43 @@ # Weather Weather conditions and forecasts +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) + ## About -Get weather conditions, forecasts, expected precipitation and more! By default it will tell -you about your default location, or you can ask for other cities around the world. +Get weather conditions, forecasts, expected precipitation and more! By default, it will tell +you about your default location. You can also ask for other cities around the world. Current conditions and weather forecasts come from [Open Weather Map](https://openweathermap.org). -For **enclosures** with screen support, conditions are briefly shown using visemes. +For hardware with Arduino support, like the Mark I, conditions are briefly shown. +For hardware with GUI support, like the Mark II, there are several screens depending +on your request. -The temperature is shown in Celsius or Fahrenheit depending on the preferences set in your [https://home.mycroft.ai](https://home.mycroft.ai) account. +The temperature is shown in Celsius or Fahrenheit depending on the preferences +set in your [https://home.mycroft.ai](https://home.mycroft.ai) account. You can ask +specifically for a unit that differs from your configuration. ## Examples +### Current Conditions * "What is the weather?" +* "What is the weather in Houston?" + +### Daily Forecasts * "What is the forecast tomorrow?" +* "What is the forecast in London tomorrow?" * "What is the weather going to be like Tuesday?" -* "What is the weather in Houston?" +* "What is the weather for the next three days?" +* "What is the weather this weekend?" + +### Specific Weather Conditions * "When will it rain next?" * "How windy is it?" * "What's the humidity?" * "Is it going to snow?" +* "Is it going to snow in Baltimore?" * "What's the temperature?" +* "What's the temperature in Paris tomorrow in Celsius?" +* "When is the sunset?" ## Credits Mycroft AI (@MycroftAI) From 1a79f9cc795a6fad373c412aa15cb804438f6726 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 12 Apr 2021 18:09:53 -0500 Subject: [PATCH 05/42] Removed unused QML file --- ui/details.qml | 110 ------------------------------------------------- 1 file changed, 110 deletions(-) delete mode 100644 ui/details.qml diff --git a/ui/details.qml b/ui/details.qml deleted file mode 100644 index b3eab96b..00000000 --- a/ui/details.qml +++ /dev/null @@ -1,110 +0,0 @@ -import QtQuick.Layouts 1.4 -import QtQuick 2.4 -import QtQuick.Controls 2.0 -import org.kde.kirigami 2.4 as Kirigami - -import Mycroft 1.0 as Mycroft -import org.kde.lottie 1.0 - -WeatherDelegate { - id: root - - spacing: proportionalGridUnit - Mycroft.AutoFitLabel { - wrapMode: Text.WordWrap - text: sessionData.location - lineHeight: 0.6 - horizontalAlignment: Layout.alignLeft - Layout.alignment: Qt.AlignLeft - Layout.preferredHeight: proportionalGridUnit * 15 - Layout.preferredWidth : 300 - } - LottieAnimation { - id: weatherAnimation - Layout.alignment: Qt.AlignHCenter - Layout.preferredWidth: Math.min(root.contentWidth, proportionalGridUnit * 40) - Layout.preferredHeight: Layout.preferredWidth - - source: Qt.resolvedUrl(getWeatherImagery(sessionData.weathercode)) - - loops: Animation.Infinite - fillMode: Image.PreserveAspectFit - running: true - - // Debug: - onSourceChanged: { - console.log(getWeatherImagery(sessionData.weathercode)); - } - onStatusChanged: { - console.log(weatherAnimation.status, errorString); - } - } - - GridLayout { - columns: 2 - columnSpacing: proportionalGridUnit * 5 - rowSpacing: proportionalGridUnit * 5 - Layout.alignment: Qt.AlignHCenter - Layout.preferredWidth: Math.min(root.contentWidth, proportionalGridUnit * 50) - ColumnLayout { - Mycroft.AutoFitLabel { - horizontalAlignment: Text.AlignLeft - Layout.fillWidth: true - Layout.preferredHeight: proportionalGridUnit * 3 - text: "Min:" - } - Mycroft.AutoFitLabel { - font.weight: Font.Bold - horizontalAlignment: Text.AlignLeft - Layout.fillWidth: true - Layout.preferredHeight: proportionalGridUnit * 15 - text: sessionData.min + "°" - } - } - ColumnLayout { - Mycroft.AutoFitLabel { - horizontalAlignment: Text.AlignLeft - Layout.fillWidth: true - Layout.preferredHeight: proportionalGridUnit * 3 - text: "Max:" - } - Mycroft.AutoFitLabel { - font.weight: Font.Bold - horizontalAlignment: Text.AlignLeft - Layout.fillWidth: true - Layout.preferredHeight: proportionalGridUnit * 15 - text: sessionData.max + "°" - } - } - ColumnLayout { - Mycroft.AutoFitLabel { - horizontalAlignment: Text.AlignLeft - Layout.fillWidth: true - Layout.preferredHeight: proportionalGridUnit * 3 - text: "Humidity:" - } - Mycroft.AutoFitLabel { - font.weight: Font.Bold - horizontalAlignment: Text.AlignLeft - Layout.fillWidth: true - Layout.preferredHeight: proportionalGridUnit * 15 - text: sessionData.humidity + "%" - } - } - ColumnLayout { - Mycroft.AutoFitLabel { - horizontalAlignment: Text.AlignLeft - Layout.fillWidth: true - Layout.preferredHeight: proportionalGridUnit * 3 - text: "Windspeed:" - } - Mycroft.AutoFitLabel { - font.weight: Font.Bold - horizontalAlignment: Text.AlignLeft - Layout.fillWidth: true - Layout.preferredHeight: proportionalGridUnit * 15 - text: sessionData.wind - } - } - } -} From 0ab455efc65ad03f8b84a25f8fc37211130cd1b0 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 12 Apr 2021 18:10:10 -0500 Subject: [PATCH 06/42] Added license information block. --- __init__.py | 2 +- source/api.py | 13 +++++++++++++ source/config.py | 13 +++++++++++++ source/dialog.py | 13 +++++++++++++ source/intent.py | 13 +++++++++++++ source/util.py | 24 +++++++++++++----------- source/weather.py | 13 +++++++++++++ ui/DailyGenericDelegate.qml | 13 +++++++++++++ ui/WeatherGenericDelegate.qml | 13 +++++++++++++ ui/WeatherMarkIIDelegate.qml | 13 +++++++++++++ ui/current_1_generic.qml | 14 +++++++++++++- ui/current_1_mark_ii.qml | 13 +++++++++++++ ui/current_2_generic.qml | 13 +++++++++++++ ui/current_2_mark_ii.qml | 13 +++++++++++++ ui/daily_1_generic.qml | 13 +++++++++++++ ui/daily_2_generic.qml | 13 +++++++++++++ ui/daily_mark_ii.qml | 22 +++++++++++----------- ui/hourly_mark_ii.qml | 21 +++++++++++---------- 18 files changed, 218 insertions(+), 34 deletions(-) diff --git a/__init__.py b/__init__.py index e3cdcc92..95c75c08 100644 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2017, Mycroft AI Inc. +# Copyright 2021, Mycroft AI Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/source/api.py b/source/api.py index 46f471e3..e32aa8c0 100644 --- a/source/api.py +++ b/source/api.py @@ -1,3 +1,16 @@ +# Copyright 2021, Mycroft AI Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from requests import HTTPError from mycroft.api import Api diff --git a/source/config.py b/source/config.py index 937ebd83..6b7e269c 100644 --- a/source/config.py +++ b/source/config.py @@ -1,3 +1,16 @@ +# Copyright 2021, Mycroft AI Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. FAHRENHEIT = "fahrenheit" CELSIUS = "celsius" METRIC = "metric" diff --git a/source/dialog.py b/source/dialog.py index 48be27ce..5511fb80 100644 --- a/source/dialog.py +++ b/source/dialog.py @@ -1,3 +1,16 @@ +# Copyright 2021, Mycroft AI Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from mycroft.util.format import nice_number, nice_time from mycroft.util.time import now_local from .util import get_time_period diff --git a/source/intent.py b/source/intent.py index 65200b88..25c74861 100644 --- a/source/intent.py +++ b/source/intent.py @@ -1,3 +1,16 @@ +# Copyright 2021, Mycroft AI Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from datetime import timedelta from mycroft.util.time import now_local diff --git a/source/util.py b/source/util.py index eb16675c..2dda21aa 100644 --- a/source/util.py +++ b/source/util.py @@ -1,12 +1,22 @@ +# Copyright 2021, Mycroft AI Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from datetime import datetime -from typing import Optional import pytz from mycroft.api import GeolocationApi -from mycroft.util.format import nice_time from mycroft.util.parse import extract_datetime -from mycroft.util.time import now_local, to_utc class LocationNotFoundError(ValueError): @@ -39,14 +49,6 @@ def get_utterance_datetime(utterance, timezone=None, language=None): def get_tz_info(timezone): return pytz.timezone(timezone) -# def get_spoken_time(date): -# # compatibility wrapper for nice_time -# nt_supported_languages = ['en', 'es', 'it', 'fr', 'de', -# 'hu', 'nl', 'da'] -# if not (lang[0:2] in nt_supported_languages): -# lang = "en-us" -# return nice_time(dt, lang, speech, use_24hour, use_ampm) - def get_geolocation(location: str): geolocation_api = GeolocationApi() diff --git a/source/weather.py b/source/weather.py index 422be3ea..5e4d33d1 100644 --- a/source/weather.py +++ b/source/weather.py @@ -1,3 +1,16 @@ +# Copyright 2021, Mycroft AI Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from datetime import time, timedelta from mycroft.util.time import now_local diff --git a/ui/DailyGenericDelegate.qml b/ui/DailyGenericDelegate.qml index 9bc29864..114cb328 100644 --- a/ui/DailyGenericDelegate.qml +++ b/ui/DailyGenericDelegate.qml @@ -6,6 +6,19 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. WeatherGenericDelegate { id: root diff --git a/ui/WeatherGenericDelegate.qml b/ui/WeatherGenericDelegate.qml index 9b377393..d59d36d5 100644 --- a/ui/WeatherGenericDelegate.qml +++ b/ui/WeatherGenericDelegate.qml @@ -1,3 +1,16 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/WeatherMarkIIDelegate.qml b/ui/WeatherMarkIIDelegate.qml index 236309cb..13708667 100644 --- a/ui/WeatherMarkIIDelegate.qml +++ b/ui/WeatherMarkIIDelegate.qml @@ -1,3 +1,16 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/current_1_generic.qml b/ui/current_1_generic.qml index bbe0bc69..e2ef7f00 100644 --- a/ui/current_1_generic.qml +++ b/ui/current_1_generic.qml @@ -1,4 +1,16 @@ -import QtQuick.Layouts 1.4 +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License.import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 import org.kde.kirigami 2.4 as Kirigami diff --git a/ui/current_1_mark_ii.qml b/ui/current_1_mark_ii.qml index 497b50e1..5740e333 100644 --- a/ui/current_1_mark_ii.qml +++ b/ui/current_1_mark_ii.qml @@ -1,3 +1,16 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. /* One of many screns that show when the user asks for the current weather. diff --git a/ui/current_2_generic.qml b/ui/current_2_generic.qml index 9deff6b7..6d6f0164 100644 --- a/ui/current_2_generic.qml +++ b/ui/current_2_generic.qml @@ -1,3 +1,16 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/current_2_mark_ii.qml b/ui/current_2_mark_ii.qml index 264ad53e..618d23c8 100644 --- a/ui/current_2_mark_ii.qml +++ b/ui/current_2_mark_ii.qml @@ -1,3 +1,16 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/daily_1_generic.qml b/ui/daily_1_generic.qml index 956df1ab..29065047 100644 --- a/ui/daily_1_generic.qml +++ b/ui/daily_1_generic.qml @@ -1,3 +1,16 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/daily_2_generic.qml b/ui/daily_2_generic.qml index 922b9de8..6c0bb056 100644 --- a/ui/daily_2_generic.qml +++ b/ui/daily_2_generic.qml @@ -1,3 +1,16 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/daily_mark_ii.qml b/ui/daily_mark_ii.qml index 84849f0d..53b6b1db 100644 --- a/ui/daily_mark_ii.qml +++ b/ui/daily_mark_ii.qml @@ -1,16 +1,16 @@ -//import QtQuick.Layouts 1.4 -//import QtQuick 2.4 -//import QtQuick.Controls 2.0 -//import org.kde.kirigami 2.4 as Kirigami +// Copyright 2021, Mycroft AI Inc. // -//import Mycroft 1.0 as Mycroft -//import org.kde.lottie 1.0 +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at // -//ForecastMarkIIDelegate { -// id: root -// model: sessionData.forecast.first -//} -import QtQuick.Layouts 1.4 +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License.import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 import org.kde.kirigami 2.4 as Kirigami diff --git a/ui/hourly_mark_ii.qml b/ui/hourly_mark_ii.qml index f0209855..07a4e479 100644 --- a/ui/hourly_mark_ii.qml +++ b/ui/hourly_mark_ii.qml @@ -1,15 +1,16 @@ -//import QtQuick.Layouts 1.4 -//import QtQuick 2.4 -//import QtQuick.Controls 2.0 -//import org.kde.kirigami 2.4 as Kirigami +// Copyright 2021, Mycroft AI Inc. // -//import Mycroft 1.0 as Mycroft -//import org.kde.lottie 1.0 +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at // -//ForecastMarkIIDelegate { -// id: root -// model: sessionData.forecast.first -//} +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 From fd1da4991c920c2d01f868681352d97dd736d221 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 12 Apr 2021 18:33:38 -0500 Subject: [PATCH 07/42] Add a section for temperatures --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d8718f72..858f1580 100644 --- a/README.md +++ b/README.md @@ -29,14 +29,18 @@ specifically for a unit that differs from your configuration. * "What is the weather for the next three days?" * "What is the weather this weekend?" +### Temperatures +* "What's the temperature?" +* "What's the temperature in Paris tomorrow in Celsius?" +* "What's the high temperature tomorrow" +* "Will it be cold on Tuesday" + ### Specific Weather Conditions * "When will it rain next?" * "How windy is it?" * "What's the humidity?" * "Is it going to snow?" * "Is it going to snow in Baltimore?" -* "What's the temperature?" -* "What's the temperature in Paris tomorrow in Celsius?" * "When is the sunset?" ## Credits From cb2707cf529b611d4c7d307299d5685364f7332d Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Tue, 13 Apr 2021 11:32:19 -0500 Subject: [PATCH 08/42] Add documentation and rename the "generic" QML files to a more descriptive "scalable" --- __init__.py | 761 ++++++++++++------ source/__init__.py | 29 +- ...Delegate.qml => DailyScalableDelegate.qml} | 2 +- ...legate.qml => WeatherScalableDelegate.qml} | 0 ...t_1_generic.qml => current_1_scalable.qml} | 2 +- ...t_2_generic.qml => current_2_scalable.qml} | 2 +- ...ily_1_generic.qml => daily_1_scalable.qml} | 2 +- ...ily_2_generic.qml => daily_2_scalable.qml} | 2 +- 8 files changed, 523 insertions(+), 277 deletions(-) rename ui/{DailyGenericDelegate.qml => DailyScalableDelegate.qml} (98%) rename ui/{WeatherGenericDelegate.qml => WeatherScalableDelegate.qml} (100%) rename ui/{current_1_generic.qml => current_1_scalable.qml} (98%) rename ui/{current_2_generic.qml => current_2_scalable.qml} (98%) rename ui/{daily_1_generic.qml => daily_1_scalable.qml} (97%) rename ui/{daily_2_generic.qml => daily_2_scalable.qml} (97%) diff --git a/__init__.py b/__init__.py index 95c75c08..73251752 100644 --- a/__init__.py +++ b/__init__.py @@ -13,44 +13,32 @@ # limitations under the License. """Mycroft skill for communicating weather information -This skill uses the Open Weather Map API (https://openweathermap.org) and -the PyOWM wrapper for it. For more info, see: - -General info on PyOWM: - https://www.slideshare.net/csparpa/pyowm-my-first-open-source-project -OWM doc for APIs used: - https://openweathermap.org/current - current - https://openweathermap.org/forecast5 - three hour forecast - https://openweathermap.org/forecast16 - daily forecasts -PyOWM docs: - https://media.readthedocs.org/pdf/pyowm/latest/pyowm.pdf +This skill uses the Open Weather Map One Call API to retrieve weather data +from around the globe (https://openweathermap.org/api/one-call-api). It +proxies its calls to the API through Mycroft's officially supported API, +Selene. The Selene API is also used to get geographical information about the +city name provided in the request. """ - from collections import defaultdict -from datetime import datetime, timedelta from multi_key_dict import multi_key_dict from time import sleep -from typing import List, Optional +from typing import List, Tuple from adapt.intent import IntentBuilder -import pytz from requests import HTTPError import mycroft.audio from mycroft import MycroftSkill, intent_handler from mycroft.messagebus.message import Message -from mycroft.util.format import (nice_date, join_list) -from mycroft.util.parse import extract_datetime, extract_number -from mycroft.util.time import to_utc, to_local +from mycroft.util.parse import extract_number from .source import ( - get_sequence_of_days, + DailyWeather, LocationNotFoundError, OpenWeatherMapApi, - OWMApi, WeatherConfig, WeatherDialog, WeatherIntent, - WeatherReport + WeatherReport, ) # TODO: VK Failures @@ -61,7 +49,6 @@ # invoke datetime skill MARK_II = "mycroft_mark_2" -MINUTES = 60 # Minutes to seconds multiplier CLEAR = 0 PARTLY_CLOUDY = 1 CLOUDY = 2 @@ -73,256 +60,432 @@ class WeatherSkill(MycroftSkill): + """Main skill code for the weather skill.""" + def __init__(self): super().__init__("WeatherSkill") - self.weather_api = OWMApi() - self.weather_api_new = OpenWeatherMapApi() + self.weather_api = OpenWeatherMapApi() self.weather_config = WeatherConfig(self.config_core, self.settings) - self.platform = self.config_core['enclosure']['platform'] + self.platform = self.config_core["enclosure"]["platform"] + # Build a dictionary to translate OWM weather-conditions # codes into the Mycroft weather icon codes # (see https://openweathermap.org/weather-conditions) self.image_codes = multi_key_dict() - self.image_codes['01d', '01n'] = CLEAR - self.image_codes['02d', '02n', '03d', '03n'] = PARTLY_CLOUDY - self.image_codes['04d', '04n'] = CLOUDY - self.image_codes['09d', '09n'] = LIGHT_RAIN - self.image_codes['10d', '10n'] = RAIN - self.image_codes['11d', '11n'] = THUNDERSTORM - self.image_codes['13d', '13n'] = SNOW - self.image_codes['50d', '50n'] = WINDY + self.image_codes["01d", "01n"] = CLEAR + self.image_codes["02d", "02n", "03d", "03n"] = PARTLY_CLOUDY + self.image_codes["04d", "04n"] = CLOUDY + self.image_codes["09d", "09n"] = LIGHT_RAIN + self.image_codes["10d", "10n"] = RAIN + self.image_codes["11d", "11n"] = THUNDERSTORM + self.image_codes["13d", "13n"] = SNOW + self.image_codes["50d", "50n"] = WINDY # Use Mycroft proxy if no private key provided self.settings["api_key"] = None self.settings["use_proxy"] = True def initialize(self): - if self.weather_api: - self.weather_api.set_OWM_language(lang=OWMApi.get_language(self.lang)) - self.weather_config.speed_unit = self.translate( - self.weather_config.speed_unit - ) + """Initialization steps to perform after the skill loads.""" + self.weather_config.speed_unit = self.translate(self.weather_config.speed_unit) self.weather_config.temperature_unit = self.translate( self.weather_config.temperature_unit ) @intent_handler( - IntentBuilder("").one_of("Weather", "Forecast").optionally("Query") - .optionally("Location").optionally("Today") + IntentBuilder("") + .one_of("Weather", "Forecast") + .optionally("Query") + .optionally("Location") + .optionally("Today") ) - def handle_current_weather(self, message): - # Handle: what is the weather like? + def handle_current_weather(self, message: Message): + """Handle current weather requests such as: what is the weather like? + + :param message: Message Bus event information from the intent parser + """ self._report_current_weather(message) @intent_handler( - IntentBuilder("").require("Query").require("Like").require("Outside") - .optionally("Location").optionally("Today") + IntentBuilder("") + .require("Query") + .require("Like") + .require("Outside") + .optionally("Location") + .optionally("Today") ) - def handle_like_outside(self, message): + def handle_like_outside(self, message: Message): + """Handle current weather requests such as: what's it like outside? + + :param message: Message Bus event information from the intent parser + """ self._report_current_weather(message) @intent_handler("what.is.multi.day.forecast.intent") - def handle_multi_day_forecast(self, message): - """ Handler for three day forecast without specified location + def handle_multi_day_forecast(self, message: Message): + """Handle multiple day forecast without specified location. + + Examples: + "What is the 3 day forecast?" + "What is the weather forecast?" - Examples: "What is the 3 day forecast?" - "What is the weather forecast?" + :param message: Message Bus event information from the intent parser """ - if self.voc_match(message.data['num'], 'Couple'): + if self.voc_match(message.data["num"], "Couple"): days = 2 else: - days = int(extract_number(message.data['num'])) + days = int(extract_number(message.data["num"])) if days > 7: - self.speak_dialog('seven.days.available') + self.speak_dialog("seven.days.available") days = 7 self._report_multi_day_forecast(message, days) @intent_handler( - IntentBuilder("").one_of("Weather", "Forecast").optionally("Query") - .require("RelativeDay").optionally("Location") + IntentBuilder("") + .one_of("Weather", "Forecast") + .optionally("Query") + .require("RelativeDay") + .optionally("Location") ) def handle_one_day_forecast(self, message): - # Handle: What is the weather forecast tomorrow? + """Handle forecast for a single day. + + Examples: + "What is the weather forecast tomorrow?" + "What is the weather forecast on Tuesday in Baltimore?" + + :param message: Message Bus event information from the intent parser + """ self._report_one_day_forecast(message) @intent_handler( - IntentBuilder("").require("Query").require("Weather") - .require("Later").optionally("Location") + IntentBuilder("") + .require("Query") + .require("Weather") + .require("Later") + .optionally("Location") ) - def handle_next_hour(self, message): - # Handle: What's the weather later? + def handle_next_hour(self, message: Message): + """Handle future weather requests such as: what's the weather later? + + :param message: Message Bus event information from the intent parser + """ self._report_one_hour_weather(message) @intent_handler( - IntentBuilder("").require("RelativeTime").one_of("Weather", "Forecast") - .optionally("Query").optionally("RelativeDay").optionally("Location") + IntentBuilder("") + .require("RelativeTime") + .one_of("Weather", "Forecast") + .optionally("Query") + .optionally("RelativeDay") + .optionally("Location") ) - def handle_weather_at_time(self, message): - # Handle: What's the weather tonight / tomorrow morning? + def handle_weather_at_time(self, message: Message): + """Handle future weather requests such as: what's the weather tonight? + + :param message: Message Bus event information from the intent parser + """ self._report_one_hour_weather(message) @intent_handler( - IntentBuilder("").require("Query").one_of("Weather", "Forecast") - .require("Weekend").optionally("Location") + IntentBuilder("") + .require("Query") + .one_of("Weather", "Forecast") + .require("Weekend") + .optionally("Location") ) - def handle_weekend_forecast(self, message): - """ Handle weather for weekend. """ + def handle_weekend_forecast(self, message: Message): + """Handle requests for the weekend forecast. + + :param message: Message Bus event information from the intent parser + """ self._report_weekend_forecast(message) @intent_handler( - IntentBuilder("").optionally("Query").one_of("Weather", "Forecast") - .require("Week").optionally("Location") + IntentBuilder("") + .optionally("Query") + .one_of("Weather", "Forecast") + .require("Week") + .optionally("Location") ) - def handle_week_weather(self, message): - """ Handle weather for week. - Speaks overview of week, not daily forecasts """ + def handle_week_weather(self, message: Message): + """Handle weather for week (i.e. seven days). + + :param message: Message Bus event information from the intent parser + """ self._report_multi_day_forecast(message, days=7) @intent_handler( - IntentBuilder("").require("Temperature").optionally("Query") - .optionally("Location").optionally("Unit").optionally("Today") + IntentBuilder("") + .require("Temperature") + .optionally("Query") + .optionally("Location") + .optionally("Unit") + .optionally("Today") .optionally("Now") ) - def handle_current_temperature(self, message): + def handle_current_temperature(self, message: Message): + """Handle requests for current temperature. + + Examples: + "What is the temperature in Celsius?" + "What is the temperature in Baltimore?" + + :param message: Message Bus event information from the intent parser + """ self._report_temperature(message, temperature_type="current") @intent_handler( - IntentBuilder("").optionally("Query").require("Temperature") - .optionally("Location").optionally("Unit").optionally("RelativeDay") + IntentBuilder("") + .optionally("Query") + .require("Temperature") + .optionally("Location") + .optionally("Unit") + .optionally("RelativeDay") .optionally("Now") ) - def handle_simple_temperature(self, message): + def handle_simple_temperature(self, message: Message): + """Handle simple requests for current temperature. + + Examples: "What is the temperature?" + + :param message: Message Bus event information from the intent parser + """ self._report_temperature(message, temperature_type="current") @intent_handler( - IntentBuilder("").require("RelativeTime").require("Temperature") - .optionally("Query").optionally("RelativeDay").optionally("Location") + IntentBuilder("") + .require("RelativeTime") + .require("Temperature") + .optionally("Query") + .optionally("RelativeDay") + .optionally("Location") ) - def handle_temperature_at_time(self, message): + def handle_temperature_at_time(self, message: Message): + """Handle requests for current temperature at a relative time. + + Examples: + "What is the temperature tonight?" + "What is the temperature tomorrow morning?" + + :param message: Message Bus event information from the intent parser + """ self._report_temperature(message) @intent_handler( - IntentBuilder("").optionally("Query").require("High") - .optionally("Temperature").optionally("Location").optionally("Unit") + IntentBuilder("") + .optionally("Query") + .require("High") + .optionally("Temperature") + .optionally("Location") + .optionally("Unit") .optionally("RelativeDay") ) - def handle_high_temperature(self, message): + def handle_high_temperature(self, message: Message): + """Handle a request for the high temperature. + + Examples: + "What is the high temperature tomorrow?" + "What is the high temperature in London on Tuesday?" + + :param message: Message Bus event information from the intent parser + """ self._report_temperature(message, temperature_type="high") @intent_handler( - IntentBuilder("").optionally("Query").require("Low") - .optionally("Temperature").optionally("Location").optionally("Unit") + IntentBuilder("") + .optionally("Query") + .require("Low") + .optionally("Temperature") + .optionally("Location") + .optionally("Unit") .optionally("RelativeDay") ) - def handle_low_temperature(self, message): + def handle_low_temperature(self, message: Message): + """Handle a request for the high temperature. + + Examples: + "What is the high temperature tomorrow?" + "What is the high temperature in London on Tuesday?" + + :param message: Message Bus event information from the intent parser + """ self._report_temperature(message, temperature_type="low") @intent_handler( - IntentBuilder("").require("ConfirmQueryCurrent").one_of("Hot", "Cold") - .optionally("Location").optionally("Today") + IntentBuilder("") + .require("ConfirmQueryCurrent") + .one_of("Hot", "Cold") + .optionally("Location") + .optionally("Today") ) - def handle_is_it_hot(self, message): - """ Handler for utterances similar to - is it hot today?, is it cold? etc + def handle_is_it_hot(self, message: Message): + """Handler for temperature requests such as: is it going to be hot today? + + :param message: Message Bus event information from the intent parser """ self._report_temperature(message, "current") @intent_handler( - IntentBuilder("").optionally("How").one_of("Hot", "Cold") + IntentBuilder("") + .optionally("How") + .one_of("Hot", "Cold") .one_of("ConfirmQueryFuture", "ConfirmQueryCurrent") - .optionally("Location").optionally("RelativeDay") + .optionally("Location") + .optionally("RelativeDay") ) def handle_how_hot_or_cold(self, message): - """ Handler for utterances similar to - how hot will it be today?, how cold will it be? , etc + """Handler for temperature requests such as: how cold will it be today? + + :param message: Message Bus event information from the intent parser """ - temperature_type = "high" if message.data.get('Hot') else "low" + temperature_type = "high" if message.data.get("Hot") else "low" self._report_temperature(message, temperature_type) @intent_handler( - IntentBuilder("").require("How").one_of("Hot", "Cold") + IntentBuilder("") + .require("How") + .one_of("Hot", "Cold") .one_of("ConfirmQueryFuture", "ConfirmQueryCurrent") - .optionally("Location").optionally("RelativeDay") + .optionally("Location") + .optionally("RelativeDay") ) - def handle_how_hot_or_cold_alt(self, message): - temperature_type = "high" if message.data.get('Hot') else "low" + def handle_how_hot_or_cold_alt(self, message: Message): + """Handler for temperature requests such as: how cold will it be today? + + :param message: Message Bus event information from the intent parser + """ + temperature_type = "high" if message.data.get("Hot") else "low" self._report_temperature(message, temperature_type) @intent_handler( - IntentBuilder("").require("ConfirmQuery").require("Windy") - .optionally("Location").optionally("RelativeDay") + IntentBuilder("") + .require("ConfirmQuery") + .require("Windy") + .optionally("Location") + .optionally("RelativeDay") ) - def handle_is_it_windy(self, message): - """ Handler for utterances similar to "is it windy today?" """ + def handle_is_it_windy(self, message: Message): + """Handler for weather requests such as: is it windy today? + + :param message: Message Bus event information from the intent parser + """ self._report_wind(message) @intent_handler( - IntentBuilder("").require("How").require("Windy") - .optionally("Location").optionally("ConfirmQuery") + IntentBuilder("") + .require("How") + .require("Windy") + .optionally("Location") + .optionally("ConfirmQuery") .optionally("RelativeDay") ) def handle_windy(self, message): - # Handle: How windy is it? + """Handler for weather requests such as: how windy is it? + + :param message: Message Bus event information from the intent parser + """ self._report_wind(message) @intent_handler( - IntentBuilder("").require("ConfirmQuery").require("Snowing") + IntentBuilder("") + .require("ConfirmQuery") + .require("Snowing") .optionally("Location") ) - def handle_is_it_snowing(self, message): - """Handler for utterances similar to "is it snowing today?" """ + def handle_is_it_snowing(self, message: Message): + """Handler for weather requests such as: is it snowing today? + + :param message: Message Bus event information from the intent parser + """ self._report_weather_condition(message, "Snow") @intent_handler( - IntentBuilder("").require("ConfirmQuery").require("Clear") + IntentBuilder("") + .require("ConfirmQuery") + .require("Clear") .optionally("Location") ) - def handle_is_it_clear(self, message): - """Handler for utterances similar to "is it clear skies today?" """ + def handle_is_it_clear(self, message: Message): + """Handler for weather requests such as: is the sky clear today? + + :param message: Message Bus event information from the intent parser + """ self._report_weather_condition(message, condition="Clear") @intent_handler( - IntentBuilder("").require("ConfirmQuery").require("Cloudy") - .optionally("Location").optionally("RelativeTime") + IntentBuilder("") + .require("ConfirmQuery") + .require("Cloudy") + .optionally("Location") + .optionally("RelativeTime") ) - def handle_is_it_cloudy(self, message): - """Handler for utterances similar to "is it cloudy skies today?" """ + def handle_is_it_cloudy(self, message: Message): + """Handler for weather requests such as: is it cloudy today? + + :param message: Message Bus event information from the intent parser + """ self._report_weather_condition(message, "Clouds") @intent_handler( - IntentBuilder("").require("ConfirmQuery").require("Foggy") + IntentBuilder("") + .require("ConfirmQuery") + .require("Foggy") .optionally("Location") ) - def handle_is_it_foggy(self, message): - """Handler for utterances similar to "is it foggy today?" """ + def handle_is_it_foggy(self, message: Message): + """Handler for weather requests such as: is it foggy today? + + :param message: Message Bus event information from the intent parser + """ self._report_weather_condition(message, "Fog") @intent_handler( - IntentBuilder("").require("ConfirmQuery").require("Raining") + IntentBuilder("") + .require("ConfirmQuery") + .require("Raining") .optionally("Location") ) - def handle_is_it_raining(self, message): - """Handler for utterances similar to "is it raining today?" """ + def handle_is_it_raining(self, message: Message): + """Handler for weather requests such as: is it raining today? + + :param message: Message Bus event information from the intent parser + """ self._report_weather_condition(message, "Rain") @intent_handler("do.i.need.an.umbrella.intent") - def handle_need_umbrella(self, message): + def handle_need_umbrella(self, message: Message): + """Handler for weather requests such as: will I need an umbrella today? + + :param message: Message Bus event information from the intent parser + """ self._report_weather_condition(message, "Rain") @intent_handler( - IntentBuilder("").require("ConfirmQuery").require("Storm") + IntentBuilder("") + .require("ConfirmQuery") + .require("Storm") .optionally("Location") ) - def handle_is_it_storming(self, message): - """Handler for utterances similar to "is it storming today?" """ - self._report_weather_condition(message, 'Thunderstorm') + def handle_is_it_storming(self, message: Message): + """Handler for weather requests such as: is it storming today? + + :param message: Message Bus event information from the intent parser + """ + self._report_weather_condition(message, "Thunderstorm") @intent_handler( - IntentBuilder("").require("When").optionally("Next") - .require("Precipitation").optionally("Location") + IntentBuilder("") + .require("When") + .optionally("Next") + .require("Precipitation") + .optionally("Location") ) - def handle_next_precipitation(self, message): - # Handle: When will it rain again? + def handle_next_precipitation(self, message: Message): + """Handler for weather requests such as: when will it rain next? + + :param message: Message Bus event information from the intent parser + """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: @@ -333,65 +496,78 @@ def handle_next_precipitation(self, message): self._speak_weather(dialog) @intent_handler( - IntentBuilder("").require("Query").require("Humidity") - .optionally("RelativeDay").optionally("Location") + IntentBuilder("") + .require("Query") + .require("Humidity") + .optionally("RelativeDay") + .optionally("Location") ) - def handle_humidity(self, message): - # Handle: How humid is it? + def handle_humidity(self, message: Message): + """Handler for weather requests such as: how humid is it? + + :param message: Message Bus event information from the intent parser + """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: intent_weather = weather.get_weather_for_intent(intent_data) - dialog = WeatherDialog( - intent_weather, self.weather_config, intent_data - ) + dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) dialog.build_humidity_dialog() dialog.data.update( humidity=self.translate( - "percentage.number", data=dict(num=dialog.data.humidity)) + "percentage.number", data=dict(num=dialog.data.humidity) + ) ) self._speak_weather(dialog) @intent_handler( - IntentBuilder("").one_of("Query", "When").optionally("Location") + IntentBuilder("") + .one_of("Query", "When") + .optionally("Location") .require("Sunrise") ) - def handle_sunrise(self, message): - # Handle: When is the sunrise? + def handle_sunrise(self, message: Message): + """Handler for weather requests such as: when is the sunrise? + + :param message: Message Bus event information from the intent parser + """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: intent_weather = weather.get_weather_for_intent(intent_data) - dialog = WeatherDialog( - intent_weather, self.weather_config, intent_data - ) + dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) dialog.build_sunrise_dialog() self._speak_weather(dialog) @intent_handler( - IntentBuilder("").one_of("Query", "When").optionally("Location") + IntentBuilder("") + .one_of("Query", "When") + .optionally("Location") .require("Sunset") ) - def handle_sunset(self, message): - # Handle: When is the sunset? + def handle_sunset(self, message: Message): + """Handler for weather requests such as: when is the sunset? + + :param message: Message Bus event information from the intent parser + """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: intent_weather = weather.get_weather_for_intent(intent_data) - dialog = WeatherDialog( - intent_weather, self.weather_config, intent_data - ) + dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) dialog.build_sunset_dialog() self._speak_weather(dialog) - def _report_current_weather(self, message): + def _report_current_weather(self, message: Message): + """Handles all requests for current weather conditions. + + :param message: Message Bus event information from the intent parser + """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: - self._display_current_conditions(weather) - dialog = WeatherDialog( - weather.current, self.weather_config, intent_data - ) + self._display_current_conditions(weather.current) + dialog = WeatherDialog(weather, self.weather_config, intent_data) dialog.build_current_weather_dialog() self._speak_weather(dialog) if self.gui.connected and self.platform != MARK_II: @@ -407,10 +583,16 @@ def _report_current_weather(self, message): four_day_forecast = weather.daily[1:5] self._display_forecast(four_day_forecast) - def _display_current_conditions(self, weather): + def _display_current_conditions(self, weather: WeatherReport): + """Display current weather conditions on a screen. + + This is the first screen that shows. Others will follow. + + :param weather: current weather conditions from Open Weather Maps + """ image_code = self.image_codes[weather.current.condition.icon] if self.gui.connected: - page_name = "current_1_generic.qml" + page_name = "current_1_scalable.qml" self.gui.clear() self.gui["currentTemperature"] = weather.current.temperature self.gui["weatherCode"] = image_code @@ -421,12 +603,16 @@ def _display_current_conditions(self, weather): self.gui.show_page(page_name) else: self.enclosure.deactivate_mouth_events() - self.enclosure.weather_display( - image_code, weather.current.temperature - ) + self.enclosure.weather_display(image_code, weather.current.temperature) - def _display_more_current_conditions(self, weather): - page_name = "current_2_generic.qml" + def _display_more_current_conditions(self, weather: WeatherReport): + """Display current weather conditions on a device that supports a GUI. + + This is the second screen that shows for current weather. + + :param weather: current weather conditions from Open Weather Maps + """ + page_name = "current_2_scalable.qml" self.gui.clear() if self.platform == MARK_II: self.gui["windSpeed"] = weather.current.wind_speed @@ -437,7 +623,27 @@ def _display_more_current_conditions(self, weather): self.gui["lowTemperature"] = weather.current.low_temperature self.gui.show_page(page_name) - def _display_hourly_forecast(self, weather): + def _report_one_hour_weather(self, message: Message): + """Handles requests for a one hour forecast. + + :param message: Message Bus event information from the intent parser + """ + intent_data = self._get_intent_data(message) + weather = self._get_weather(intent_data) + if weather is not None: + forecast = weather.get_forecast_for_hour(intent_data) + dialog = WeatherDialog(forecast, self.weather_config, intent_data) + dialog.build_hourly_weather_dialog() + self._speak_weather(dialog) + + def _display_hourly_forecast(self, weather: WeatherReport): + """Display hourly forecast on a device that supports the GUI. + + On the Mark II this screen is the final for current weather. It can + also be shown when the hourly forecast is requested. + + :param weather: hourly weather conditions from Open Weather Maps + """ hourly_forecast = defaultdict(list) for hour_count, hourly in enumerate(weather.hourly): if not hour_count: @@ -445,41 +651,38 @@ def _display_hourly_forecast(self, weather): if hour_count > 4: break # TODO: make the timeframe aware of language/location settings - hourly_forecast['times'].append(hourly.date_time.strftime('%H:00')) - hourly_forecast['temperatures'].append(hourly.temperature) - hourly_forecast['weather_codes'].append( + hourly_forecast["times"].append(hourly.date_time.strftime("%H:00")) + hourly_forecast["temperatures"].append(hourly.temperature) + hourly_forecast["weather_codes"].append( self.image_codes.get(hourly.condition.icon) ) - hourly_forecast['precipitation'].append(hourly.chance_of_precipitation) + hourly_forecast["precipitation"].append(hourly.chance_of_precipitation) self.gui.clear() - self.gui['times'] = hourly_forecast['times'] - self.gui['temperatures'] = hourly_forecast['temperatures'] - self.gui['weatherCodes'] = hourly_forecast['weather_codes'] - self.gui['chancesOfPrecipitation'] = hourly_forecast['precipitation'] - self.gui.show_page('hourly_mark_ii.qml') + self.gui["times"] = hourly_forecast["times"] + self.gui["temperatures"] = hourly_forecast["temperatures"] + self.gui["weatherCodes"] = hourly_forecast["weather_codes"] + self.gui["chancesOfPrecipitation"] = hourly_forecast["precipitation"] + self.gui.show_page("hourly_mark_ii.qml") - def _report_one_hour_weather(self, message): - intent_data = self._get_intent_data(message) - weather = self._get_weather(intent_data) - if weather is not None: - forecast = weather.get_forecast_for_hour(intent_data) - dialog = WeatherDialog( - forecast, self.weather_config, intent_data - ) - dialog.build_hourly_weather_dialog() - self._speak_weather(dialog) + def _report_multi_day_forecast(self, message: Message, days: int): + """Handles all requests for multiple day forecasts. - def _report_multi_day_forecast(self, message, days): + :param message: Message Bus event information from the intent parser + """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: - forecast = weather.daily[1:days + 1] + forecast = weather.daily[1 : days + 1] dialogs = self._build_forecast_dialogs(forecast, intent_data) self._display_forecast(forecast) for dialog in dialogs: self._speak_weather(dialog) - def _report_one_day_forecast(self, message): + def _report_one_day_forecast(self, message: Message): + """Handles all requests for a single day forecast. + + :param message: Message Bus event information from the intent parser + """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: @@ -489,7 +692,11 @@ def _report_one_day_forecast(self, message): for dialog in dialogs: self._speak_weather(dialog) - def _report_weekend_forecast(self, message): + def _report_weekend_forecast(self, message: Message): + """Handles requests for a weekend forecast. + + :param message: Message Bus event information from the intent parser + """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: @@ -499,38 +706,52 @@ def _report_weekend_forecast(self, message): for dialog in dialogs: self._speak_weather(dialog) - def _build_forecast_dialogs(self, forecast, intent_data): + def _build_forecast_dialogs( + self, forecast: List[DailyWeather], intent_data: WeatherIntent + ) -> List[WeatherDialog]: + """ + Build the dialogs for each of the forecast days being reported to the user. + + :param forecast: daily forecasts to report + :param intent_data: information about the intent that was triggered + :return: one WeatherDialog instance for each day being reported. + """ dialogs = list() for forecast_day in forecast: - dialog = WeatherDialog( - forecast_day, self.weather_config, intent_data - ) + dialog = WeatherDialog(forecast_day, self.weather_config, intent_data) dialog.build_daily_weather_dialog() dialogs.append(dialog) return dialogs - def _display_forecast(self, forecast: List): - """Builds forecast for the upcoming days for the Mark-2 display.""" + def _display_forecast(self, forecast: List[DailyWeather]): + """Display daily forecast data on devices that support the GUI. + + :param forecast: daily forecasts to display + """ if self.platform == MARK_II: self._display_forecast_mark_ii(forecast) else: self._display_forecast_generic(forecast) - def _display_forecast_mark_ii(self, forecast): + def _display_forecast_mark_ii(self, forecast: List[DailyWeather]): + """Display daily forecast data on a Mark II. + + The Mark II supports displaying four days of a forecast at a time. + + :param forecast: daily forecasts to display + """ page_one_name = "daily_mark_ii.qml" display_data = defaultdict(list) for day in forecast: - display_data['weatherCodes'].append( - self.image_codes[day.condition.icon] - ) - display_data['days'].append(day.date_time.strftime("%a")) - display_data['highTemperatures'].append(day.temperature.high) - display_data['lowTemperatures'].append(day.temperature.low) + display_data["weatherCodes"].append(self.image_codes[day.condition.icon]) + display_data["days"].append(day.date_time.strftime("%a")) + display_data["highTemperatures"].append(day.temperature.high) + display_data["lowTemperatures"].append(day.temperature.low) self.gui.clear() self.gui["numberOfDays"] = min([4, len(forecast)]) - self.gui['weatherCodes'] = display_data['weatherCodes'][:4] - self.gui['days'] = display_data["days"][:4] + self.gui["weatherCodes"] = display_data["weatherCodes"][:4] + self.gui["days"] = display_data["days"][:4] self.gui["lowTemperatures"] = display_data["lowTemperatures"][:4] self.gui["highTemperatures"] = display_data["highTemperatures"][:4] self.gui.show_page(page_one_name) @@ -538,15 +759,21 @@ def _display_forecast_mark_ii(self, forecast): sleep(20) self.gui.clear() self.gui["numberOfDays"] = min([4, len(forecast) - 4]) - self.gui['weatherCodes'] = display_data['weatherCodes'][4:] - self.gui['days'] = display_data["days"][4:] + self.gui["weatherCodes"] = display_data["weatherCodes"][4:] + self.gui["days"] = display_data["days"][4:] self.gui["lowTemperatures"] = display_data["lowTemperatures"][4:] self.gui["highTemperatures"] = display_data["highTemperatures"][4:] self.gui.clear() self.gui.show_page(page_one_name) - def _display_forecast_generic(self, forecast): - page_one_name = "daily_1_generic.qml" + def _display_forecast_generic(self, forecast: List[DailyWeather]): + """Display daily forecast data on GUI devices other than the Mark II. + + The generic layout supports displaying two days of a forecast at a time. + + :param forecast: daily forecasts to display + """ + page_one_name = "daily_1_scalable.qml" page_two_name = page_one_name.replace("1", "2") display_data = [] for day_number, day in enumerate(forecast): @@ -557,28 +784,34 @@ def _display_forecast_generic(self, forecast): weatherCode=self.image_codes[day.condition.icon], highTemperature=day.temperature.high, lowTemperature=day.temperature.low, - date=day.date_time.strftime('%a') + date=day.date_time.strftime("%a"), ) ) - self.gui['forecast'] = dict( - first=display_data[:2], second=display_data[2:] - ) + self.gui["forecast"] = dict(first=display_data[:2], second=display_data[2:]) self.gui.show_page(page_one_name) sleep(5) self.gui.show_page(page_two_name) - def _report_temperature(self, message, temperature_type=None): + def _report_temperature(self, message: Message, temperature_type: str = None): + """Handles all requests for a temperature. + + :param message: Message Bus event information from the intent parser + :param temperature_type: current, high or low temperature + """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: intent_weather = weather.get_weather_for_intent(intent_data) - dialog = WeatherDialog( - intent_weather, self.weather_config, intent_data - ) + dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) dialog.build_temperature_dialog(temperature_type) self._speak_weather(dialog) - def _report_weather_condition(self, message, condition): + def _report_weather_condition(self, message: Message, condition: str): + """Handles all requests for a specific weather condition. + + :param message: Message Bus event information from the intent parser + :param condition: the weather condition specified by the user + """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: @@ -588,21 +821,29 @@ def _report_weather_condition(self, message, condition): ) self._speak_weather(dialog) - def _build_condition_dialog(self, weather, intent_data, condition): - dialog = WeatherDialog( - weather, self.weather_config, intent_data - ) + def _build_condition_dialog( + self, weather, intent_data: WeatherIntent, condition: str + ) -> WeatherDialog: + """Builds a dialog for the requested weather condition. + + :param weather: Current, hourly or daily weather forecast + :param intent_data: Parsed intent data + :param condition: weather condition requested by the user + """ + dialog = WeatherDialog(weather, self.weather_config, intent_data) intent_match = self.voc_match(weather.condition.category.lower(), condition) - alternative_vocab = condition + 'Alternatives' - alternative = self.voc_match( - weather.condition.category, alternative_vocab - ) + alternative_vocab = condition + "Alternatives" + alternative = self.voc_match(weather.condition.category, alternative_vocab) dialog.build_condition_dialog(condition, intent_match, alternative) dialog.data.update(condition=self.translate(condition)) return dialog - def _report_wind(self, message): + def _report_wind(self, message: Message): + """Handles all requests for a wind conditions. + + :param message: Message Bus event information from the intent parser + """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: @@ -610,13 +851,16 @@ def _report_wind(self, message): intent_weather.wind_direction = self.translate( intent_weather.wind_direction ) - dialog = WeatherDialog( - intent_weather, self.weather_config, intent_data - ) + dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) dialog.build_wind_dialog() self._speak_weather(dialog) - def _get_intent_data(self, message): + def _get_intent_data(self, message: Message) -> WeatherIntent: + """Parse the intend data from the message into data used in the skill. + + :param message: Message Bus event information from the intent parser + :return: parsed information about the intent + """ intent_data = None try: intent_data = WeatherIntent(message, self.lang) @@ -633,13 +877,18 @@ def _get_intent_data(self, message): return intent_data - def _get_weather(self, intent_data): + def _get_weather(self, intent_data: WeatherIntent) -> WeatherReport: + """Call the Open Weather Map One Call API to get weather information + + :param intent_data: Parsed intent data + :return: An object representing the data returned by the API + """ weather = None if intent_data is not None: try: latitude, longitude = self._determine_weather_location(intent_data) - weather = self.weather_api_new.get_weather_for_coordinates( - self.config_core.get('system_unit'), latitude, longitude + weather = self.weather_api.get_weather_for_coordinates( + self.config_core.get("system_unit"), latitude, longitude ) except HTTPError as api_error: self.log.exception("Weather API failure") @@ -647,8 +896,7 @@ def _get_weather(self, intent_data): except LocationNotFoundError: self.log.exception("City not found.") self.speak_dialog( - "location.not.found", - data=dict(location=intent_data.location) + "location.not.found", data=dict(location=intent_data.location) ) except Exception: self.log.exception("Unexpected error retrieving weather") @@ -656,13 +904,24 @@ def _get_weather(self, intent_data): return weather - def _handle_api_error(self, exception): + def _handle_api_error(self, exception: HTTPError): + """Communicate an error condition to the user. + + :param exception: the HTTPError returned by the API call + """ if exception.response.status_code == 401: self.bus.emit(Message("mycroft.not.paired")) else: self.speak_dialog("cant.get.forecast") - def _determine_weather_location(self, intent_data): + def _determine_weather_location( + self, intent_data: WeatherIntent + ) -> Tuple[float, float]: + """Determine latitude and longitude using the location data in the intent. + + :param intent_data: Parsed intent data + :return: latitude and longitude of the location + """ if intent_data.location is None: latitude = self.weather_config.latitude longitude = self.weather_config.longitude @@ -673,33 +932,15 @@ def _determine_weather_location(self, intent_data): return latitude, longitude def _speak_weather(self, dialog: WeatherDialog): + """Instruct device to speak the contents of the specified dialog. + + :param dialog: the dialog that will be spoken + """ self.log.info("Speaking dialog: " + dialog.name) self.speak_dialog(dialog.name, dialog.data) mycroft.audio.wait_while_speaking() - def _report_no_data(self, data: dict = None) -> None: - """Do processes when Report Processes malfunction - - Arguments: - data: Needed data for dialog on weather error processing - """ - if data is None: - self.speak_dialog("cant.get.forecast") - else: - self.speak_dialog("no.forecast", data) - - def __translate(self, condition, future=False, data=None): - # behaviour of method dialog_renderer.render(...) has changed - instead - # of exception when given template is not found now simply the - # templatename is returned!?! - if (future and - (condition + ".future") in self.dialog_renderer.templates): - return self.translate(condition + ".future", data) - if condition in self.dialog_renderer.templates: - return self.translate(condition, data) - else: - return condition - def create_skill(): + """Boilerplate to invoke the weather skill.""" return WeatherSkill() diff --git a/source/__init__.py b/source/__init__.py index 9d93bdf3..9a6757e9 100644 --- a/source/__init__.py +++ b/source/__init__.py @@ -1,14 +1,19 @@ -from .api import APIErrors, LocationNotFoundError, OWMApi, OpenWeatherMapApi -from .config import ( - CELSIUS, - FAHRENHEIT, - METERS_PER_SECOND, - MILES_PER_HOUR, - WeatherConfig -) +# Copyright 2021, Mycroft AI Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from .api import OpenWeatherMapApi +from .config import WeatherConfig from .dialog import WeatherDialog from .intent import WeatherIntent -from .weather import ( - is_current_weather, is_daily_forecast, is_hourly_forecast, WeatherReport -) -from .util import get_sequence_of_days +from .weather import DailyWeather, WeatherReport +from .util import LocationNotFoundError diff --git a/ui/DailyGenericDelegate.qml b/ui/DailyScalableDelegate.qml similarity index 98% rename from ui/DailyGenericDelegate.qml rename to ui/DailyScalableDelegate.qml index 114cb328..78499d20 100644 --- a/ui/DailyGenericDelegate.qml +++ b/ui/DailyScalableDelegate.qml @@ -19,7 +19,7 @@ import org.kde.lottie 1.0 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -WeatherGenericDelegate { +WeatherScalableDelegate { id: root property alias model: forecastRepeater.model diff --git a/ui/WeatherGenericDelegate.qml b/ui/WeatherScalableDelegate.qml similarity index 100% rename from ui/WeatherGenericDelegate.qml rename to ui/WeatherScalableDelegate.qml diff --git a/ui/current_1_generic.qml b/ui/current_1_scalable.qml similarity index 98% rename from ui/current_1_generic.qml rename to ui/current_1_scalable.qml index e2ef7f00..7088e788 100644 --- a/ui/current_1_generic.qml +++ b/ui/current_1_scalable.qml @@ -18,7 +18,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -WeatherGenericDelegate { +WeatherScalableDelegate { id: root spacing: proportionalGridUnit * 5 diff --git a/ui/current_2_generic.qml b/ui/current_2_scalable.qml similarity index 98% rename from ui/current_2_generic.qml rename to ui/current_2_scalable.qml index 6d6f0164..83a4183c 100644 --- a/ui/current_2_generic.qml +++ b/ui/current_2_scalable.qml @@ -19,7 +19,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -WeatherDelegate { +WeatherScalableDelegate { id: root Mycroft.AutoFitLabel { diff --git a/ui/daily_1_generic.qml b/ui/daily_1_scalable.qml similarity index 97% rename from ui/daily_1_generic.qml rename to ui/daily_1_scalable.qml index 29065047..9eadb15e 100644 --- a/ui/daily_1_generic.qml +++ b/ui/daily_1_scalable.qml @@ -19,7 +19,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -DailyGenericDelegate { +DailyScalableDelegate { id: root model: sessionData.forecast.first } diff --git a/ui/daily_2_generic.qml b/ui/daily_2_scalable.qml similarity index 97% rename from ui/daily_2_generic.qml rename to ui/daily_2_scalable.qml index 6c0bb056..75b2efd2 100644 --- a/ui/daily_2_generic.qml +++ b/ui/daily_2_scalable.qml @@ -19,7 +19,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -DailyGenericDelegate { +DailyScalableDelegate { id: root model: sessionData.forecast.second } From 6fdea43375cc23587cf186ee6f20e0f838e348f9 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Tue, 13 Apr 2021 19:41:48 -0500 Subject: [PATCH 09/42] Added comments and formatting. --- source/api.py | 34 +++++++++++------- source/config.py | 50 +++++++++++++++++--------- source/dialog.py | 91 ++++++++++++++++++++++++++++++----------------- source/intent.py | 34 +++++++++++++++--- source/util.py | 63 +++++++++++++++++++------------- source/weather.py | 66 +++++++++++++++++++++++++--------- 6 files changed, 232 insertions(+), 106 deletions(-) diff --git a/source/api.py b/source/api.py index e32aa8c0..2a282ce8 100644 --- a/source/api.py +++ b/source/api.py @@ -11,28 +11,38 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from requests import HTTPError +"""Call the Open Weather Map One Call API through Selene. -from mycroft.api import Api -from .weather import WeatherReport -from .util import LocationNotFoundError +The One Call API provides current weather, 48 hourly forecasts, 7 daily forecasts +and weather alert data all in a single API call. The endpoint is passed a +latitude and longitude from either the user's configuration or a requested +location. -MINUTES = 60 # Minutes to seconds multiplier +It also supports returning values in the measurement system (Metric/Imperial) +provided, precluding us from having to do the conversions. -APIErrors = (LocationNotFoundError, HTTPError) +""" +from mycroft.api import Api +from .weather import WeatherReport class OpenWeatherMapApi(Api): + """Use Open Weather Map's One Call API to retrieve weather information""" + def __init__(self): super().__init__(path="owm") - def get_weather_for_coordinates(self, measurement_system, latitude, longitude): - """Use the One Call API to get local weather conditions.""" + def get_weather_for_coordinates( + self, measurement_system: str, latitude: float, longitude: float + ) -> WeatherReport: + """Issue an API call and map the return value into a weather report + + :param measurement_system: Metric or Imperial measurement units + :param latitude: the geologic latitude of the weather location + :param longitude: the geologic longitude of the weather location + """ query_parameters = dict( - exclude="minutely", - lat=latitude, - lon=longitude, - units=measurement_system + exclude="minutely", lat=latitude, lon=longitude, units=measurement_system ) api_request = dict(path="/onecall", query=query_parameters) response = self.request(api_request) diff --git a/source/config.py b/source/config.py index 6b7e269c..34c3c33e 100644 --- a/source/config.py +++ b/source/config.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +"""Parse the device configuration and skill settings to determine the """ FAHRENHEIT = "fahrenheit" CELSIUS = "celsius" METRIC = "metric" @@ -19,28 +20,44 @@ class WeatherConfig: + """Build an object representing the configuration values for the weather skill.""" def __init__(self, core_config: dict, settings: dict): self.core_config = core_config self.settings = settings - config_location = self.core_config["location"] - self.latitude = config_location["coordinate"]["latitude"] - self.longitude = config_location["coordinate"]["longitude"] - city = config_location["city"] - state = city["state"] - country = state["country"] - self.city = city["name"] - self.state = state["name"] - self.country = country["name"] - self.speed_unit = self._determine_speed_unit() - self.temperature_unit = self._determine_temperature_unit() - def _determine_speed_unit(self) -> str: + @property + def city(self): + """The current value of the city name in the device configuration.""" + return self.core_config["location"]["city"]["name"] + + @property + def country(self): + """The current value of the country name in the device configuration.""" + return self.core_config["location"]["city"]["state"]["country"]["name"] + + @property + def latitude(self): + """The current value of the latitude location configuration""" + return self.core_config["location"]["coordinate"]["latitude"] + + @property + def longitude(self): + """The current value of the longitude location configuration""" + return self.core_config["location"]["coordinate"]["longitude"] + + @property + def state(self): + """The current value of the state name in the device configuration.""" + return self.core_config["location"]["city"]["state"]["name"] + + @property + def speed_unit(self) -> str: """Use the core configuration to determine the unit of speed. Returns: (str) 'meters_sec' or 'mph' """ - system_unit = self.core_config['system_unit'] + system_unit = self.core_config["system_unit"] if system_unit == METRIC: speed_unit = METERS_PER_SECOND else: @@ -48,18 +65,19 @@ def _determine_speed_unit(self) -> str: return speed_unit - def _determine_temperature_unit(self) -> str: + @property + def temperature_unit(self) -> str: """Use the core configuration to determine the unit of temperature. Returns: "celsius" or "fahrenheit" """ unit_from_settings = self.settings.get("units") - measurement_system = self.core_config['system_unit'] + measurement_system = self.core_config["system_unit"] if measurement_system == METRIC: temperature_unit = CELSIUS else: temperature_unit = FAHRENHEIT - if unit_from_settings is not None and unit_from_settings != 'default': + if unit_from_settings is not None and unit_from_settings != "default": if unit_from_settings.lower() == FAHRENHEIT: temperature_unit = FAHRENHEIT elif unit_from_settings.lower() == CELSIUS: diff --git a/source/dialog.py b/source/dialog.py index 5511fb80..9f469463 100644 --- a/source/dialog.py +++ b/source/dialog.py @@ -11,12 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +"""Abstraction of dialog building for the weather skill.""" from mycroft.util.format import nice_number, nice_time from mycroft.util.time import now_local from .util import get_time_period -from .weather import ( - is_current_weather, is_hourly_forecast, is_daily_forecast -) +from .weather import is_current_weather, is_hourly_forecast, is_daily_forecast CURRENT = "current" DAILY = "daily" @@ -30,6 +29,8 @@ # - all hourly..alternative.local/location # - all hourly..not.expected.local/location class WeatherDialog: + """Use intent and weather data to determine which dialog will be spoken.""" + def __init__(self, weather, config, intent_data): self.weather = weather self.config = config @@ -41,22 +42,25 @@ def __init__(self, weather, config, intent_data): self.data = None def build_current_weather_dialog(self): + """Build the components necessary to speak current weather.""" self.name = "current.weather" self.data = dict( condition=self.weather.condition.description, temperature=self.weather.temperature, - temperature_unit=self.config.temperature_unit + temperature_unit=self.config.temperature_unit, ) self._add_location() def build_high_low_temperature_dialog(self): + """Build the components necessary to speak high and low temperature.""" self.name = "current.temperature.high.low" self.data = dict( high_temperature=self.weather.high_temperature, - low_temperature=self.weather.low_temperature + low_temperature=self.weather.low_temperature, ) def build_hourly_weather_dialog(self): + """Build the components necessary to speak current weather.""" self.name = "hourly.weather" self.data = dict( condition=self.weather.condition.description, @@ -66,18 +70,23 @@ def build_hourly_weather_dialog(self): self._add_location() def build_daily_weather_dialog(self): + """Build the components necessary to speak the forecast for a day.""" self.name = "daily.weather" self.data = dict( condition=self.weather.condition.description, day=self.weather.date_time.strftime("%A"), high_temperature=self.weather.temperature.high, - low_temperature=self.weather.temperature.low + low_temperature=self.weather.temperature.low, ) if self.weather.date_time.date() == self.intent_data.location_datetime.date(): self.data.update(day="Today") self._add_location() - def build_temperature_dialog(self, temperature_type): + def build_temperature_dialog(self, temperature_type: str): + """Build the components necessary to speak the temperature. + + :param temperature_type: indicates if temperature is current, high or low + """ if self.daily_forecast: self._build_daily_temperature_dialog(temperature_type) elif self.hourly_forecast: @@ -90,6 +99,10 @@ def build_temperature_dialog(self, temperature_type): self._add_location() def _build_current_temperature_dialog(self, temperature_type): + """Build the components necessary to speak the current temperature. + + :param temperature_type: indicates if temperature is current, high or low + """ self.name = "current.temperature" if temperature_type == "high": self.name += ".high" @@ -101,6 +114,10 @@ def _build_current_temperature_dialog(self, temperature_type): self.data = dict(temperature=self.weather.temperature) def _build_daily_temperature_dialog(self, temperature_type): + """Build the components necessary to speak the daily temperature. + + :param temperature_type: indicates if temperature is day, high or low + """ self.name = "daily.temperature" if temperature_type == "high": self.name += ".high" @@ -110,33 +127,34 @@ def _build_daily_temperature_dialog(self, temperature_type): self.data = dict(temperature=self.weather.temperature.low) else: self.data = dict(temperature=self.weather.temperature.day) - self.data.update(day=self.weather.date_time.strftime('%A')) + self.data.update(day=self.weather.date_time.strftime("%A")) def _build_hourly_temperature_dialog(self): + """Build the components necessary to speak the hourly temperature.""" self.name = "hourly.temperature" self.data = dict( temperature=self.weather.temperature, - time=get_time_period(self.weather.date_time) + time=get_time_period(self.weather.date_time), ) def build_wind_dialog(self): - wind_strength = self.weather.determine_wind_strength( - self.config.speed_unit - ) + """Build the components necessary to speak the wind conditions.""" + wind_strength = self.weather.determine_wind_strength(self.config.speed_unit) self.data = dict( speed=nice_number(self.weather.wind_speed), speed_unit=self.config.speed_unit, - direction=self.weather.wind_direction + direction=self.weather.wind_direction, ) self.name = self.intent_data.timeframe if self.intent_data.timeframe == DAILY: self.data.update(day=self.weather.date_time.strftime("%A")) elif self.hourly_forecast: self.data.update(time=nice_time(self.weather.date_time)) - self.name += '.wind.' + wind_strength + self.name += ".wind." + wind_strength self._add_location() def build_humidity_dialog(self): + """Build the components necessary to speak the percentage humidity.""" self.data = dict(percent=self.weather.humidity) if self.intent_data.timeframe == DAILY: self.name = "daily.humidity" @@ -145,16 +163,17 @@ def build_humidity_dialog(self): self.name = "current.humidity" self._add_location() - def build_condition_dialog(self, condition, intent_match, alternative): + def build_condition_dialog( + self, condition: str, intent_match: bool, alternative: bool + ): """Select the relevant dialog file for condition based reports. A condition can for example be "snow" or "rain". - Arguments: - condition (string): name of condition eg snow - - Returns: - dialog (string): name of dialog file + :param condition: name of condition eg snow + :param intent_match: true if intent matches a vocabulary for the condition + :param alternative: true if intent matches a vocabulary for an alternative + condition """ self.data = dict(condition=condition.lower()) if self.daily_forecast: @@ -174,24 +193,26 @@ def build_condition_dialog(self, condition, intent_match, alternative): self._add_location() def build_next_precipitation_dialog(self): + """Build the components necessary to speak the next chance of rain.""" if self.weather is None: - self.name = 'daily.precipitation.next.none' + self.name = "daily.precipitation.next.none" self.data = dict() else: if self.intent_data.timeframe == DAILY: - self.name = 'daily.precipitation.next' + self.name = "daily.precipitation.next" self.data = dict(day=self.weather.date_time.strftime("%A")) else: - self.name = 'hourly.precipitation.next' + self.name = "hourly.precipitation.next" self.data = dict(time=get_time_period(self.weather.date_time)) self.data = dict( percent=self.weather.chance_of_precipitation, precipitation="rain", - day=self.weather.date_time.strftime("%A") + day=self.weather.date_time.strftime("%A"), ) self._add_location() def build_sunrise_dialog(self): + """Build the components necessary to speak the sunrise time.""" if self.daily_forecast: self.name = "daily.sunrise" else: @@ -207,6 +228,7 @@ def build_sunrise_dialog(self): self.data = dict(time=nice_time(self.weather.sunrise.strftime("%H:%M"))) def build_sunset_dialog(self): + """Build the components necessary to speak the sunset time.""" if self.daily_forecast: self.name = "daily.sunset" else: @@ -222,18 +244,23 @@ def build_sunset_dialog(self): self.data = dict(time=nice_time(self.weather.sunset.strftime("%H:%M"))) def _add_location(self): + """Add location information to the dialog.""" if self.intent_data.location is None: self.name += ".local" else: self.name += ".location" if self.config.country == self.intent_data.geolocation["country"]: - spoken_location = ', '.join([ - self.intent_data.geolocation["city"], - self.intent_data.geolocation["region"] - ]) + spoken_location = ", ".join( + [ + self.intent_data.geolocation["city"], + self.intent_data.geolocation["region"], + ] + ) else: - spoken_location = ', '.join([ - self.intent_data.geolocation["city"], - self.intent_data.geolocation["country"] - ]) + spoken_location = ", ".join( + [ + self.intent_data.geolocation["city"], + self.intent_data.geolocation["country"], + ] + ) self.data.update(location=spoken_location) diff --git a/source/intent.py b/source/intent.py index 25c74861..273dfe6a 100644 --- a/source/intent.py +++ b/source/intent.py @@ -11,11 +11,15 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +"""Parse the intent into data used by the weather skill.""" from datetime import timedelta from mycroft.util.time import now_local from .util import ( - get_utterance_datetime, get_geolocation, get_tz_info, LocationNotFoundError + get_utterance_datetime, + get_geolocation, + get_tz_info, + LocationNotFoundError, ) @@ -25,6 +29,11 @@ class WeatherIntent: _location_datetime = None def __init__(self, message, language): + """Constructor + + :param message: Intent data from the message bus + :param language: The configured language of the device + """ self.utterance = message.data["utterance"] self.location = message.data.get("Location") self.language = language @@ -33,25 +42,35 @@ def __init__(self, message, language): @property def geolocation(self): + """Lookup the intent location using the Selene API. + + The Selene geolocation API assumes the location of a city is being + requested. If the user asks "What is the weather in Russia" + an error will be raised. + """ if self._geolocation is None: if self.location is None: self._geolocation = dict() else: self._geolocation = get_geolocation(self.location) if self._geolocation["city"].lower() not in self.location.lower(): - raise LocationNotFoundError( - self.location + " is not a city" - ) + raise LocationNotFoundError(self.location + " is not a city") return self._geolocation @property def intent_datetime(self): + """Use the configured timezone and the utterance to know the intended time. + + If a relative date or relative time is supplied in the utterance, use a + datetime object representing the request. Otherwise, use the timezone + configured by the device. + """ if self._intent_datetime is None: utterance_datetime = get_utterance_datetime( self.utterance, timezone=self.geolocation.get("timezone"), - language=self.language + language=self.language, ) if utterance_datetime is not None: delta = utterance_datetime - self.location_datetime @@ -67,6 +86,11 @@ def intent_datetime(self): @property def location_datetime(self): + """Determine the current date and time for the request. + + If a location is specified in the request, use the timezone for that + location, otherwise, use the timezone configured on the device. + """ if self._location_datetime is None: if self.location is None: self._location_datetime = now_local() diff --git a/source/util.py b/source/util.py index 2dda21aa..c2c02535 100644 --- a/source/util.py +++ b/source/util.py @@ -11,7 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -from datetime import datetime +"""Utility functions for the weather skill.""" +from datetime import datetime, tzinfo +from time import time import pytz @@ -20,10 +22,20 @@ class LocationNotFoundError(ValueError): + """Raise when the API cannot find the requested location.""" + pass -def convert_to_local_datetime(timestamp, timezone): +def convert_to_local_datetime(timestamp: time, timezone: str) -> datetime: + """Convert a timestamp to a datetime object in the requested timezone. + + This function assumes it is passed a timestamp in the UTC timezone. It + then adjusts the datetime to match the specified timezone. + + :param timestamp: seconds since epoch + :param timezone: the timezone requested by the user + """ naive_datetime = datetime.fromtimestamp(timestamp) utc_datetime = pytz.utc.localize(naive_datetime) local_timezone = pytz.timezone(timezone) @@ -32,8 +44,15 @@ def convert_to_local_datetime(timestamp, timezone): return local_datetime -def get_utterance_datetime(utterance, timezone=None, language=None): - # Change timezone returned by extract_datetime from Local to UTC +def get_utterance_datetime( + utterance: str, timezone: str = None, language: str = None +) -> datetime: + """Get a datetime representation of a date or time concept in an utterance. + + :param utterance: the words spoken by the user + :param timezone: the timezone requested by the user + :param language: the language configured on the device + """ utterance_datetime = None if timezone is None: anchor_date = None @@ -47,10 +66,19 @@ def get_utterance_datetime(utterance, timezone=None, language=None): return utterance_datetime -def get_tz_info(timezone): +def get_tz_info(timezone: str) -> tzinfo: + """Generate a tzinfo object from a timezone string. + + :param timezone: a string representing a timezone + """ return pytz.timezone(timezone) + def get_geolocation(location: str): + """Retrieve the geolocation information about the requested location. + + :param location: a location specified in the utterance + """ geolocation_api = GeolocationApi() geolocation = geolocation_api.get_geolocation(location) @@ -60,8 +88,11 @@ def get_geolocation(location: str): return geolocation -def get_time_period(intent_datetime): - # Translate a specific time '9am' to period of the day 'morning' +def get_time_period(intent_datetime: datetime) -> str: + """Translate a specific time '9am' to period of the day 'morning' + + :param intent_datetime: the datetime extracted from an utterance + """ hour = intent_datetime.time().hour if 1 <= hour < 5: period = "early morning" @@ -75,21 +106,3 @@ def get_time_period(intent_datetime): period = "overnight" return period - - -def get_sequence_of_days(weather, condition_category): - longest_sequence = [] - this_sequence = [] - last_in_sequence = 0 - for day_count, daily in enumerate(weather.daily): - if daily.condition.catetory == condition_category: - if not last_in_sequence or day_count == last_in_sequence + 1: - this_sequence.append(daily) - last_in_sequence += 1 - else: - if 1 > len(this_sequence) > len(longest_sequence): - longest_sequence = this_sequence - this_sequence = [] - last_in_sequence = day_count - - return longest_sequence diff --git a/source/weather.py b/source/weather.py index 5e4d33d1..09a2d4cb 100644 --- a/source/weather.py +++ b/source/weather.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +"""Representations and conversions of the data returned by the weather API.""" from datetime import time, timedelta from mycroft.util.time import now_local @@ -28,24 +29,29 @@ (202.5, "south"), (247.5, "southwest"), (292.5, "west"), - (337.5, "northwest") + (337.5, "northwest"), ) -def is_daily_forecast(weather_report): +def is_daily_forecast(weather_report) -> bool: + """Helper function to determine if the object passed is a DailyWeather object.""" return isinstance(weather_report, DailyWeather) -def is_hourly_forecast(weather_report): +def is_hourly_forecast(weather_report) -> bool: + """Helper function to determine if the object passed is a HourlyWeather object.""" return isinstance(weather_report, HourlyWeather) -def is_current_weather(weather_report): +def is_current_weather(weather_report) -> bool: + """Helper function to determine if the object passed is a CurrentWeather object.""" return isinstance(weather_report, CurrentWeather) class WeatherCondition: - def __init__(self, conditions): + """Data representation of a weather conditions JSON object from the API""" + + def __init__(self, conditions: dict): self.id = conditions["id"] self.category = conditions["main"] self.description = conditions["description"] @@ -53,7 +59,9 @@ def __init__(self, conditions): class Weather: - def __init__(self, weather, timezone): + """Abstract data representation of commonalities in forecast types.""" + + def __init__(self, weather: dict, timezone: str): self.date_time = convert_to_local_datetime(weather["dt"], timezone) self.feels_like = weather["feelsLike"] self.pressure = weather["pressure"] @@ -65,7 +73,11 @@ def __init__(self, weather, timezone): self.condition = WeatherCondition(weather["weather"][0]) @staticmethod - def _determine_wind_direction(degree_direction): + def _determine_wind_direction(degree_direction: int): + """Convert wind direction from compass degrees to compass direction. + + :param degree_direction: Degrees on a compass indicating wind direction. + """ wind_direction = None for min_degree, compass_direction in WIND_DIRECTION_CONVERSION: if degree_direction < min_degree: @@ -76,7 +88,11 @@ def _determine_wind_direction(degree_direction): return wind_direction - def determine_wind_strength(self, speed_unit): + def determine_wind_strength(self, speed_unit: str): + """Convert a wind speed to a wind strength. + + :param speed_unit: unit of measure for speed depending on device configuration + """ if speed_unit == MILES_PER_HOUR: limits = dict(strong=20, moderate=11) else: @@ -92,7 +108,9 @@ def determine_wind_strength(self, speed_unit): class CurrentWeather(Weather): - def __init__(self, weather, timezone): + """Data representation of the current weather returned by the API""" + + def __init__(self, weather: dict, timezone: str): super().__init__(weather, timezone) self.sunrise = convert_to_local_datetime(weather["sunrise"], timezone) self.sunset = convert_to_local_datetime(weather["sunset"], timezone) @@ -103,7 +121,9 @@ def __init__(self, weather, timezone): class DailyFeelsLike: - def __init__(self, temperatures): + """Data representation of a "feels like" JSON object from the API""" + + def __init__(self, temperatures: dict): self.day = round(temperatures["day"]) self.night = round(temperatures["night"]) self.evening = round(temperatures["eve"]) @@ -111,14 +131,18 @@ def __init__(self, temperatures): class DailyTemperature(DailyFeelsLike): - def __init__(self, temperatures): + """Data representation of a temperatures JSON object from the API""" + + def __init__(self, temperatures: dict): super().__init__(temperatures) self.low = round(temperatures["min"]) self.high = round(temperatures["max"]) class DailyWeather(Weather): - def __init__(self, weather, timezone): + """Data representation of a daily forecast JSON object from the API""" + + def __init__(self, weather: dict, timezone: str): super().__init__(weather, timezone) self.sunrise = convert_to_local_datetime(weather["sunrise"], timezone) self.sunset = convert_to_local_datetime(weather["sunset"], timezone) @@ -128,14 +152,18 @@ def __init__(self, weather, timezone): class HourlyWeather(Weather): - def __init__(self, weather, timezone): + """Data representation of a hourly forecast JSON object from the API""" + + def __init__(self, weather: dict, timezone: str): super().__init__(weather, timezone) self.temperature = round(weather["temp"]) self.chance_of_precipitation = int(weather["pop"] * 100) class WeatherAlert: - def __init__(self, alert, timezone): + """Data representation of a weather conditions JSON object from the API""" + + def __init__(self, alert: dict, timezone: str): self.sender = alert.get("sender_name") self.event = alert["event"] self.start = convert_to_local_datetime(alert["start"], timezone) @@ -144,6 +172,8 @@ def __init__(self, alert, timezone): class WeatherReport: + """Full representation of the data returned by the Open Weather Maps One Call API""" + def __init__(self, report): timezone = report["timezone"] self.current = CurrentWeather(report["current"], timezone) @@ -153,12 +183,12 @@ def __init__(self, report): self.current.high_temperature = today.temperature.high self.current.low_temperature = today.temperature.low if "alerts" in report: - self.alerts = [ - WeatherAlert(alert, timezone) for alert in report["alerts"]] + self.alerts = [WeatherAlert(alert, timezone) for alert in report["alerts"]] else: self.alerts = None def get_weather_for_intent(self, intent_data): + """Use the intent to determine which forecast satisfies the request""" if intent_data.timeframe == "hourly": weather = self.get_forecast_for_hour(intent_data) elif intent_data.timeframe == "daily": @@ -169,6 +199,7 @@ def get_weather_for_intent(self, intent_data): return weather def get_forecast_for_date(self, intent_data): + """Use the intent to determine which daily forecast(s) satisfies the request""" if intent_data.intent_datetime.date() == intent_data.location_datetime.date(): forecast = self.daily[0] else: @@ -180,6 +211,7 @@ def get_forecast_for_date(self, intent_data): return forecast def get_forecast_for_hour(self, intent_data): + """Use the intent to determine which hourly forecast(s) satisfies the request""" delta = intent_data.intent_datetime - intent_data.location_datetime hour_delta = int(delta / timedelta(hours=1)) hour_index = hour_delta + 1 @@ -188,6 +220,7 @@ def get_forecast_for_hour(self, intent_data): return report def get_weekend_forecast(self): + """Use the intent to determine which daily forecast(s) satisfies the request""" forecast = list() for forecast_day in self.daily: report_date = forecast_day.date_time.date() @@ -197,6 +230,7 @@ def get_weekend_forecast(self): return forecast def get_next_precipitation(self, intent_data): + """Determine when the next chance of precipitation is in the forecast""" report = None current_precipitation = True timeframe = "hourly" From 747569ab28a0d24ffa78388c00171aba20041bc5 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Tue, 13 Apr 2021 21:44:25 -0500 Subject: [PATCH 10/42] Added comments --- ui/DailyScalableDelegate.qml | 7 +++++++ ui/WeatherMarkIIDelegate.qml | 7 +++++++ ui/WeatherScalableDelegate.qml | 7 +++++++ ui/current_1_mark_ii.qml | 3 ++- ui/current_1_scalable.qml | 11 +++++++++++ ui/current_2_mark_ii.qml | 12 ++++++++++++ ui/current_2_scalable.qml | 9 +++++++++ ui/daily_1_scalable.qml | 9 +++++++++ ui/daily_2_scalable.qml | 9 +++++++++ ui/daily_mark_ii.qml | 18 +++++++++++++++++- ui/hourly_mark_ii.qml | 17 +++++++++++++++++ 11 files changed, 107 insertions(+), 2 deletions(-) diff --git a/ui/DailyScalableDelegate.qml b/ui/DailyScalableDelegate.qml index 78499d20..a1fe4b36 100644 --- a/ui/DailyScalableDelegate.qml +++ b/ui/DailyScalableDelegate.qml @@ -19,6 +19,13 @@ import org.kde.lottie 1.0 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +/* +Re-usable code to display two days forecast. + +This code written to be scalable for different screen sizes. It can be used on any +device not conforming to the Mark II screen's form factor. +*/ WeatherScalableDelegate { id: root diff --git a/ui/WeatherMarkIIDelegate.qml b/ui/WeatherMarkIIDelegate.qml index 13708667..d1ed4efc 100644 --- a/ui/WeatherMarkIIDelegate.qml +++ b/ui/WeatherMarkIIDelegate.qml @@ -11,6 +11,13 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +/* +Re-usable code that defines a map of Open Weather Map icon codes to SVGs. + +This code is specific to the Mark II device. It uses images instead of animations to +address performance concerns. Could change to use animations if the performance improves +*/ import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/WeatherScalableDelegate.qml b/ui/WeatherScalableDelegate.qml index d59d36d5..3a9f7888 100644 --- a/ui/WeatherScalableDelegate.qml +++ b/ui/WeatherScalableDelegate.qml @@ -11,6 +11,13 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +/* +Re-usable code that defines a map of Open Weather Map icon codes to animations. + +This code is specific to the Mark II device. It uses images instead of animations to +address performance concerns. Could change to use animations if the performance improves +*/ import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/current_1_mark_ii.qml b/ui/current_1_mark_ii.qml index 5740e333..7f98bf6b 100644 --- a/ui/current_1_mark_ii.qml +++ b/ui/current_1_mark_ii.qml @@ -11,10 +11,11 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + /* One of many screns that show when the user asks for the current weather. -Shows an animation with current conditions, the current temperature, and +Shows an image representing current conditions, the current temperature, and the high/low temperature for today. This code is specific to the Mark II device. It uses a grid of 32x32 pixel diff --git a/ui/current_1_scalable.qml b/ui/current_1_scalable.qml index 7088e788..0bf30ce0 100644 --- a/ui/current_1_scalable.qml +++ b/ui/current_1_scalable.qml @@ -11,6 +11,15 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License.import QtQuick.Layouts 1.4 + +/* +One of many screns that show when the user asks for the current weather. + +Shows an image representing current conditions and the current temperature. + +This code written to be scalable for different screen sizes. It can be used on any +device not conforming to the Mark II screen's form factor. +*/ import QtQuick 2.4 import QtQuick.Controls 2.0 import org.kde.kirigami 2.4 as Kirigami @@ -24,6 +33,7 @@ WeatherScalableDelegate { spacing: proportionalGridUnit * 5 LottieAnimation { + // Animation depicting the current weather conditions (e.g. sunny, cloudy, etc.) id: weatherAnimation Layout.alignment: Qt.AlignHCenter Layout.preferredWidth: Math.min(root.contentWidth, proportionalGridUnit * 50) @@ -45,6 +55,7 @@ WeatherScalableDelegate { } Mycroft.AutoFitLabel { + // Current temperature in the configured temperature unit id: temperature font.weight: Font.Bold Layout.fillWidth: true diff --git a/ui/current_2_mark_ii.qml b/ui/current_2_mark_ii.qml index 618d23c8..427bf766 100644 --- a/ui/current_2_mark_ii.qml +++ b/ui/current_2_mark_ii.qml @@ -11,6 +11,15 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +/* +One of many screns that show when the user asks for the current weather. + +Shows the current wind speed and percentage humidity. + +This code is specific to the Mark II device. It uses a grid of 32x32 pixel +squares for alignment of items. +*/ import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 @@ -29,6 +38,7 @@ WeatherMarkIIDelegate { width: parent.width GridLayout { + // Two column grid containg wind and humidity data id: weather anchors.left: parent.left anchors.leftMargin: 32 @@ -39,6 +49,7 @@ WeatherMarkIIDelegate { rowSpacing: 0 Column { + // First column of the grid, displaying a wind icon and speed. id: wind height: 352 width: 320 @@ -78,6 +89,7 @@ WeatherMarkIIDelegate { } Column { + // Second column of the grid, displaying a humidity icon and speed. id: humidity height: 352 width: 320 diff --git a/ui/current_2_scalable.qml b/ui/current_2_scalable.qml index 83a4183c..fb099d04 100644 --- a/ui/current_2_scalable.qml +++ b/ui/current_2_scalable.qml @@ -11,6 +11,15 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +/* +One of many screns that show when the user asks for the current weather. + +Shows the high/low temperature for today. + +This code written to be scalable for different screen sizes. It can be used on any +device not conforming to the Mark II screen's form factor. +*/ import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/daily_1_scalable.qml b/ui/daily_1_scalable.qml index 9eadb15e..b27276f1 100644 --- a/ui/daily_1_scalable.qml +++ b/ui/daily_1_scalable.qml @@ -11,6 +11,15 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +/* +One of many screns that show when the user asks for the current weather. + +Shows the first and second day of a four day forecast. + +This code written to be scalable for different screen sizes. It can be used on any +device not conforming to the Mark II screen's form factor. +*/ import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/daily_2_scalable.qml b/ui/daily_2_scalable.qml index 75b2efd2..f04404d3 100644 --- a/ui/daily_2_scalable.qml +++ b/ui/daily_2_scalable.qml @@ -11,6 +11,15 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +/* +One of many screns that show when the user asks for the current weather. + +Shows the third and fourth day of a four day forecast. + +This code written to be scalable for different screen sizes. It can be used on any +device not conforming to the Mark II screen's form factor. +*/ import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 diff --git a/ui/daily_mark_ii.qml b/ui/daily_mark_ii.qml index 53b6b1db..099d1003 100644 --- a/ui/daily_mark_ii.qml +++ b/ui/daily_mark_ii.qml @@ -11,6 +11,15 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License.import QtQuick.Layouts 1.4 + +/* +Shows up to four days of forecasted weather. + +Will be displayed when the user asks for a daily weather forecast. + +This code is specific to the Mark II device. It uses a grid of 32x32 pixel +squares for alignment of items. +*/ import QtQuick 2.4 import QtQuick.Controls 2.0 import org.kde.kirigami 2.4 as Kirigami @@ -20,12 +29,15 @@ import org.kde.lottie 1.0 WeatherMarkIIDelegate { Item { + // Bounding box for the content of the screen. id: hourlyCard height: parent.height width: parent.width GridLayout { - id: currentWeather + // Four column grid, one for each day of the forecast. Can be less than + // four days depending on the user's request. + id: dailyWeather anchors.left: parent.left anchors.leftMargin: 32 anchors.top: parent.top @@ -36,6 +48,7 @@ WeatherMarkIIDelegate { Layout.fillWidth: true Repeater { + // Displays one to four days of images representing weather conditions id: conditionRepeater model: sessionData.weatherCodes anchors.top: parent.top @@ -55,6 +68,7 @@ WeatherMarkIIDelegate { } Repeater { + // Displays one to four days of the abbreviated day of week. id: timeRepeater model: sessionData.days @@ -73,6 +87,7 @@ WeatherMarkIIDelegate { } Repeater { + // Displays one to four days of the forecasted high temperature id: highTemperatureRepeater model: sessionData.highTemperatures @@ -92,6 +107,7 @@ WeatherMarkIIDelegate { } Repeater { + // Displays one to four days of the forecasted low temperature id: lowTemperatureRepeater model: sessionData.lowTemperatures diff --git a/ui/hourly_mark_ii.qml b/ui/hourly_mark_ii.qml index 07a4e479..409ec894 100644 --- a/ui/hourly_mark_ii.qml +++ b/ui/hourly_mark_ii.qml @@ -11,6 +11,17 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +/* +Shows up to four hours of forecasted weather. + +Will be displayed when: + * the user asks for a hourly weather forecast. + * as the last screen when a user asks for current weather. + +This code is specific to the Mark II device. It uses a grid of 32x32 pixel +squares for alignment of items. +*/ import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 @@ -21,11 +32,13 @@ import org.kde.lottie 1.0 WeatherMarkIIDelegate { Item { + // Bounding box for the content of the screen. id: hourlyCard height: parent.height width: parent.width GridLayout { + // Four column grid, one for each hour of the forecast. id: currentWeather anchors.left: parent.left anchors.leftMargin: 32 @@ -37,6 +50,7 @@ WeatherMarkIIDelegate { Layout.fillWidth: true Repeater { + // Displays one to four hours of images representing weather conditions id: conditionRepeater model: sessionData.weatherCodes anchors.top: parent.top @@ -56,6 +70,7 @@ WeatherMarkIIDelegate { } Repeater { + // Displays one to four hours of the time. id: timeRepeater model: sessionData.times @@ -74,6 +89,7 @@ WeatherMarkIIDelegate { } Repeater { + // Displays one to four hours of the forecasted temperature id: temperatureRepeater model: sessionData.temperatures @@ -93,6 +109,7 @@ WeatherMarkIIDelegate { } Repeater { + // Displays one to four hours of the forecasted chance of precipitation id: precipitationRepeater model: sessionData.chancesOfPrecipitation From 5cafea4adb118669354aa02223ce2dc862a4ee02 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 14 Apr 2021 14:25:20 -0500 Subject: [PATCH 11/42] Fixed a bug introduced during code cleanup --- source/dialog.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/dialog.py b/source/dialog.py index 9f469463..6dcce746 100644 --- a/source/dialog.py +++ b/source/dialog.py @@ -45,8 +45,8 @@ def build_current_weather_dialog(self): """Build the components necessary to speak current weather.""" self.name = "current.weather" self.data = dict( - condition=self.weather.condition.description, - temperature=self.weather.temperature, + condition=self.weather.current.condition.description, + temperature=self.weather.current.temperature, temperature_unit=self.config.temperature_unit, ) self._add_location() @@ -55,8 +55,8 @@ def build_high_low_temperature_dialog(self): """Build the components necessary to speak high and low temperature.""" self.name = "current.temperature.high.low" self.data = dict( - high_temperature=self.weather.high_temperature, - low_temperature=self.weather.low_temperature, + high_temperature=self.weather.current.high_temperature, + low_temperature=self.weather.current.low_temperature, ) def build_hourly_weather_dialog(self): From f8284f821d4f4e535b8c6098d0207eb6c5a0a3d0 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 14 Apr 2021 14:26:14 -0500 Subject: [PATCH 12/42] Introduce a 16 pixel grid unit property and remove an unused import --- ui/WeatherMarkIIDelegate.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/WeatherMarkIIDelegate.qml b/ui/WeatherMarkIIDelegate.qml index d1ed4efc..c979e626 100644 --- a/ui/WeatherMarkIIDelegate.qml +++ b/ui/WeatherMarkIIDelegate.qml @@ -21,12 +21,14 @@ address performance concerns. Could change to use animations if the performance import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 -import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft Mycroft.Delegate { id: root + + readonly property int gridUnit: 16 + bottomPadding: 32 leftPadding: 32 rightPadding: 32 From 13526e510cee3df3bdd38586ea5355a514714bf4 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 14 Apr 2021 23:59:05 -0500 Subject: [PATCH 13/42] Renamed delegates for consistency, added abstractions to reduce code duplication. --- __init__.py | 93 +++++++++------- ui/DailyColumn.qml | 65 +++++++++++ ...Delegate.qml => DailyDelegateScalable.qml} | 2 +- ui/HourlyColumn.qml | 65 +++++++++++ ...Delegate.qml => WeatherDelegateMarkII.qml} | 0 ...legate.qml => WeatherDelegateScalable.qml} | 0 ui/WeatherImage.qml | 40 +++++++ ui/WeatherLabel.qml | 49 +++++++++ ui/current_1_mark_ii.qml | 80 ++++++-------- ui/current_1_scalable.qml | 2 +- ui/current_2_mark_ii.qml | 104 ++++++------------ ui/current_2_scalable.qml | 2 +- ui/daily_1_scalable.qml | 2 +- ui/daily_2_scalable.qml | 2 +- ui/daily_mark_ii.qml | 99 +++-------------- ui/hourly_mark_ii.qml | 98 +++-------------- 16 files changed, 372 insertions(+), 331 deletions(-) create mode 100644 ui/DailyColumn.qml rename ui/{DailyScalableDelegate.qml => DailyDelegateScalable.qml} (99%) create mode 100644 ui/HourlyColumn.qml rename ui/{WeatherMarkIIDelegate.qml => WeatherDelegateMarkII.qml} (100%) rename ui/{WeatherScalableDelegate.qml => WeatherDelegateScalable.qml} (100%) create mode 100644 ui/WeatherImage.qml create mode 100644 ui/WeatherLabel.qml diff --git a/__init__.py b/__init__.py index 73251752..9283f77d 100644 --- a/__init__.py +++ b/__init__.py @@ -49,6 +49,7 @@ # invoke datetime skill MARK_II = "mycroft_mark_2" +TWELVE_HOUR = "half" CLEAR = 0 PARTLY_CLOUDY = 1 CLOUDY = 2 @@ -85,13 +86,6 @@ def __init__(self): self.settings["api_key"] = None self.settings["use_proxy"] = True - def initialize(self): - """Initialization steps to perform after the skill loads.""" - self.weather_config.speed_unit = self.translate(self.weather_config.speed_unit) - self.weather_config.temperature_unit = self.translate( - self.weather_config.temperature_unit - ) - @intent_handler( IntentBuilder("") .one_of("Weather", "Forecast") @@ -566,7 +560,7 @@ def _report_current_weather(self, message: Message): intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: - self._display_current_conditions(weather.current) + self._display_current_conditions(weather, intent_data) dialog = WeatherDialog(weather, self.weather_config, intent_data) dialog.build_current_weather_dialog() self._speak_weather(dialog) @@ -583,7 +577,7 @@ def _report_current_weather(self, message: Message): four_day_forecast = weather.daily[1:5] self._display_forecast(four_day_forecast) - def _display_current_conditions(self, weather: WeatherReport): + def _display_current_conditions(self, weather: WeatherReport, intent_data: WeatherIntent): """Display current weather conditions on a screen. This is the first screen that shows. Others will follow. @@ -597,14 +591,27 @@ def _display_current_conditions(self, weather: WeatherReport): self.gui["currentTemperature"] = weather.current.temperature self.gui["weatherCode"] = image_code if self.platform == MARK_II: + self.gui["weatherLocation"] = self._build_display_location(intent_data) self.gui["highTemperature"] = weather.current.high_temperature self.gui["lowTemperature"] = weather.current.low_temperature - page_name = page_name.replace("generic", "mark_ii") + page_name = page_name.replace("scalable", "mark_ii") self.gui.show_page(page_name) else: self.enclosure.deactivate_mouth_events() self.enclosure.weather_display(image_code, weather.current.temperature) + def _build_display_location(self, intent_data: WeatherIntent) -> str: + if intent_data.geolocation: + location = [intent_data.geolocation["city"]] + if intent_data.geolocation["country"] == self.weather_config.country: + location.append(intent_data.geolocation["region"]) + else: + location.append(intent_data.geolocation["country"]) + else: + location = [self.weather_config.city, self.weather_config.state] + + return ", ".join(location) + def _display_more_current_conditions(self, weather: WeatherReport): """Display current weather conditions on a device that supports a GUI. @@ -617,7 +624,7 @@ def _display_more_current_conditions(self, weather: WeatherReport): if self.platform == MARK_II: self.gui["windSpeed"] = weather.current.wind_speed self.gui["humidity"] = weather.current.humidity - page_name = page_name.replace("generic", "mark_ii") + page_name = page_name.replace("scalable", "mark_ii") else: self.gui["highTemperature"] = weather.current.high_temperature self.gui["lowTemperature"] = weather.current.low_temperature @@ -644,24 +651,31 @@ def _display_hourly_forecast(self, weather: WeatherReport): :param weather: hourly weather conditions from Open Weather Maps """ - hourly_forecast = defaultdict(list) + hourly_forecast = [] for hour_count, hourly in enumerate(weather.hourly): if not hour_count: continue if hour_count > 4: break # TODO: make the timeframe aware of language/location settings - hourly_forecast["times"].append(hourly.date_time.strftime("%H:00")) - hourly_forecast["temperatures"].append(hourly.temperature) - hourly_forecast["weather_codes"].append( - self.image_codes.get(hourly.condition.icon) + if self.config_core['time_format'] == TWELVE_HOUR: + # The datetime builtin returns hour in two character format. Convert + # to a integer and back again to remove the leading zero when present. + hour = int(hourly.date_time.strftime("%I")) + am_pm = hourly.date_time.strftime(" %p") + formatted_time = str(hour) + am_pm + else: + formatted_time = hourly.date_time.strftime("%H:00") + hourly_forecast.append( + dict( + time=hourly.date_time.strftime(formatted_time), + precipitation=hourly.chance_of_precipitation, + temperature=hourly.temperature, + weatherCode=self.image_codes.get(hourly.condition.icon), + ) ) - hourly_forecast["precipitation"].append(hourly.chance_of_precipitation) self.gui.clear() - self.gui["times"] = hourly_forecast["times"] - self.gui["temperatures"] = hourly_forecast["temperatures"] - self.gui["weatherCodes"] = hourly_forecast["weather_codes"] - self.gui["chancesOfPrecipitation"] = hourly_forecast["precipitation"] + self.gui["hourlyForecast"] = dict(hours=hourly_forecast) self.gui.show_page("hourly_mark_ii.qml") def _report_multi_day_forecast(self, message: Message, days: int): @@ -732,7 +746,7 @@ def _display_forecast(self, forecast: List[DailyWeather]): if self.platform == MARK_II: self._display_forecast_mark_ii(forecast) else: - self._display_forecast_generic(forecast) + self._display_forecast_scalable(forecast) def _display_forecast_mark_ii(self, forecast: List[DailyWeather]): """Display daily forecast data on a Mark II. @@ -741,32 +755,27 @@ def _display_forecast_mark_ii(self, forecast: List[DailyWeather]): :param forecast: daily forecasts to display """ - page_one_name = "daily_mark_ii.qml" - display_data = defaultdict(list) + page_name = "daily_mark_ii.qml" + daily_forecast = [] for day in forecast: - display_data["weatherCodes"].append(self.image_codes[day.condition.icon]) - display_data["days"].append(day.date_time.strftime("%a")) - display_data["highTemperatures"].append(day.temperature.high) - display_data["lowTemperatures"].append(day.temperature.low) + daily_forecast.append( + dict( + weatherCode=self.image_codes[day.condition.icon], + day=day.date_time.strftime("%a"), + highTemperature=day.temperature.high, + lowTemperature=day.temperature.low + ) + ) self.gui.clear() - self.gui["numberOfDays"] = min([4, len(forecast)]) - self.gui["weatherCodes"] = display_data["weatherCodes"][:4] - self.gui["days"] = display_data["days"][:4] - self.gui["lowTemperatures"] = display_data["lowTemperatures"][:4] - self.gui["highTemperatures"] = display_data["highTemperatures"][:4] - self.gui.show_page(page_one_name) + self.gui["dailyForecast"] = dict(days=daily_forecast[:4]) + self.gui.show_page(page_name) if len(forecast) > 4: sleep(20) self.gui.clear() - self.gui["numberOfDays"] = min([4, len(forecast) - 4]) - self.gui["weatherCodes"] = display_data["weatherCodes"][4:] - self.gui["days"] = display_data["days"][4:] - self.gui["lowTemperatures"] = display_data["lowTemperatures"][4:] - self.gui["highTemperatures"] = display_data["highTemperatures"][4:] - self.gui.clear() - self.gui.show_page(page_one_name) + self.gui["dailyForecast"] = dict(days=daily_forecast[4:]) + self.gui.show_page(page_name) - def _display_forecast_generic(self, forecast: List[DailyWeather]): + def _display_forecast_scalable(self, forecast: List[DailyWeather]): """Display daily forecast data on GUI devices other than the Mark II. The generic layout supports displaying two days of a forecast at a time. diff --git a/ui/DailyColumn.qml b/ui/DailyColumn.qml new file mode 100644 index 00000000..d97a5cc4 --- /dev/null +++ b/ui/DailyColumn.qml @@ -0,0 +1,65 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Define the default values for a weather forecast column. + +A forecast screen has four columns, each with the same data. This abstracts out the +common bits of each column. + +This code is specific to the Mark II device. It uses a grid of 16x16 pixel +squares for alignment of items. +*/ +import QtQuick 2.4 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.3 + +Column { + id: dailyColumn + spacing: 0 + width: gridUnit * 9 + + property var forecast + + WeatherImage { + id: forecastCondition + heightUnits: 4 + imageSource: Qt.resolvedUrl(getWeatherImagery(forecast.weatherCode)) + } + + WeatherLabel { + id: forecastDay + heightUnits: 4 + fontSize: 59 + fontStyle: "Regular" + text: forecast.day + } + + WeatherLabel { + id: forecastHighTemperature + heightUnits: 6 + fontSize: 72 + fontStyle: "Bold" + text: forecast.highTemperature + "°" + } + + WeatherLabel { + id: forecastLowTemperature + heightUnits: 6 + fontSize: 72 + fontStyle: "Light" + text: forecast.lowTemperature + "°" + } +} + diff --git a/ui/DailyScalableDelegate.qml b/ui/DailyDelegateScalable.qml similarity index 99% rename from ui/DailyScalableDelegate.qml rename to ui/DailyDelegateScalable.qml index a1fe4b36..97195f96 100644 --- a/ui/DailyScalableDelegate.qml +++ b/ui/DailyDelegateScalable.qml @@ -26,7 +26,7 @@ Re-usable code to display two days forecast. This code written to be scalable for different screen sizes. It can be used on any device not conforming to the Mark II screen's form factor. */ -WeatherScalableDelegate { +WeatherDelegateScalable { id: root property alias model: forecastRepeater.model diff --git a/ui/HourlyColumn.qml b/ui/HourlyColumn.qml new file mode 100644 index 00000000..baf88036 --- /dev/null +++ b/ui/HourlyColumn.qml @@ -0,0 +1,65 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Define the default values for a weather forecast column. + +A forecast screen has four columns, each with the same data. This abstracts out the +common bits of each column. + +This code is specific to the Mark II device. It uses a grid of 16x16 pixel +squares for alignment of items. +*/ +import QtQuick 2.4 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.3 + +Column { + id: hourlyColumn + spacing: 0 + width: gridUnit * 9 + + property var forecast + + WeatherImage { + id: forecastCondition + heightUnits: 4 + imageSource: Qt.resolvedUrl(getWeatherImagery(forecast.weatherCode)) + } + + WeatherLabel { + id: forecastTime + heightUnits: 4 + fontSize: 47 + fontStyle: "Regular" + text: forecast.time + } + + WeatherLabel { + id: forecastTemperature + heightUnits: 6 + fontSize: 72 + fontStyle: "Bold" + text: forecast.temperature + "°" + } + + WeatherLabel { + id: forecastPrecipitation + heightUnits: 6 + fontSize: 72 + fontStyle: "Light" + text: forecast.precipitation + "%" + } +} + diff --git a/ui/WeatherMarkIIDelegate.qml b/ui/WeatherDelegateMarkII.qml similarity index 100% rename from ui/WeatherMarkIIDelegate.qml rename to ui/WeatherDelegateMarkII.qml diff --git a/ui/WeatherScalableDelegate.qml b/ui/WeatherDelegateScalable.qml similarity index 100% rename from ui/WeatherScalableDelegate.qml rename to ui/WeatherDelegateScalable.qml diff --git a/ui/WeatherImage.qml b/ui/WeatherImage.qml new file mode 100644 index 00000000..20b65c66 --- /dev/null +++ b/ui/WeatherImage.qml @@ -0,0 +1,40 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Abstract component for SVGs. + +This code is specific to the Mark II device. It uses a grid of 16x16 pixel +squares for alignment of items. The image is wrapped in a bounding box for +alignment purposes. +*/ +import QtQuick 2.4 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.3 + +Item { + property alias imageSource: weatherImage.source + property int heightUnits + + height: gridUnit * heightUnits + width: parent.width + + Image { + id: weatherImage + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top + height: gridUnit * heightUnits + fillMode: Image.PreserveAspectFit + } +} diff --git a/ui/WeatherLabel.qml b/ui/WeatherLabel.qml new file mode 100644 index 00000000..5ad408a4 --- /dev/null +++ b/ui/WeatherLabel.qml @@ -0,0 +1,49 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Abstract component for alphanunumeric values. + +The Mark II card design requires the ability to have a text field's baseline sit on one +of the 16 pixel grid lines. The benefit of this approach is consistent alignment of +text fields that disregards the extra space that can be included around the text for +ascenders and descenders. + +To implement this idea, a bounding box is defined around a label for alignment purposes. +The baseline of the text sits on the bottom of the bounding box and the value is +centered within the box. + +This code is specific to the Mark II device. It uses a grid of 16x16 pixel +squares for alignment of items. +*/ +import QtQuick 2.4 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.3 + +Item { + property alias fontSize: weatherLabel.font.pixelSize + property alias fontStyle: weatherLabel.font.styleName + property alias text: weatherLabel.text + property int heightUnits + + height: gridUnit * heightUnits + width: parent.width + + Label { + id: weatherLabel + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + } +} diff --git a/ui/current_1_mark_ii.qml b/ui/current_1_mark_ii.qml index 7f98bf6b..ac8f4391 100644 --- a/ui/current_1_mark_ii.qml +++ b/ui/current_1_mark_ii.qml @@ -24,12 +24,8 @@ squares for alignment of items. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 -import org.kde.kirigami 2.4 as Kirigami -import Mycroft 1.0 as Mycroft -import org.kde.lottie 1.0 - -WeatherMarkIIDelegate { +WeatherDelegateMarkII { id: root Item { @@ -38,44 +34,38 @@ WeatherMarkIIDelegate { height: parent.height width: parent.width - Item { + WeatherLabel { // City/state if in same country as device. City/country if in a different country id: weatherLocation - height: 64 - width: parent.width - - Label { - id: weatherLocationText - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.pixelSize: 48 - text: "Kansas City, Missouri" - } + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherLocation } GridLayout { id: weather anchors.left: parent.left - anchors.leftMargin: 32 + anchors.leftMargin: gridUnit * 2 anchors.top: weatherLocation.bottom - anchors.topMargin: 32 + anchors.topMargin: gridUnit * 2 columns: 2 - columnSpacing: 32 + columnSpacing: gridUnit * 2 + width: gridUnit * 20 Item { - // First row in grid + // First column in grid id: currentConditions - height: 288 - width: 320 + height: gridUnit * 18 + width: parent.width Image { // Image depicting the current weather conditions (e.g. sunny, cloudy, etc.) id: conditionsImage anchors.horizontalCenter: parent.horizontalCenter - anchors.horizontalCenterOffset: -32 + anchors.horizontalCenterOffset: gridUnit * -2 fillMode: Image.PreserveAspectFit - height: 112 + height: gridUnit * 7 source: Qt.resolvedUrl(getWeatherImagery(sessionData.weatherCode)) } @@ -83,48 +73,48 @@ WeatherMarkIIDelegate { // Current temperature in the configured temperature unit. id: currentTemperature anchors.baseline: parent.bottom - anchors.baselineOffset: -16 + anchors.baselineOffset: gridUnit * -1 anchors.horizontalCenter: parent.horizontalCenter font.family: "Noto Sans Display" font.pixelSize: 176 - font.weight: Font.Bold + font.styleName: "Bold" text: sessionData.currentTemperature + "°" } } Column { - // Second column + // Second column in grid id: highLowTemperature - height: 288 - width: 320 - spacing: 32 + height: gridUnit * 18 + width: parent.width + spacing: gridUnit * 2 Item { // High temperature for today id: highTemperature - height: 128 + height: gridUnit * 8 width: parent.width Image { id: highTemperatureIcon anchors.bottom: parent.bottom - anchors.bottomMargin: 32 + anchors.bottomMargin: gridUnit * 2 anchors.left: highTemperature.left - anchors.leftMargin: 32 + anchors.leftMargin: gridUnit * 2 fillMode: Image.PreserveAspectFit - height: 64 + height: gridUnit * 4 source: Qt.resolvedUrl("images/high_temperature.svg") } Label { id: highTemperatureValue anchors.baseline: parent.bottom - anchors.baselineOffset: -32 + anchors.baselineOffset: gridUnit * -2 anchors.left: highTemperatureIcon.right - anchors.leftMargin: 32 + anchors.leftMargin: gridUnit * 2 font.family: "Noto Sans Display" font.pixelSize: 118 - font.weight: Font.Bold + font.styleName: "SemiBold" text: sessionData.highTemperature + "°" } } @@ -132,29 +122,29 @@ WeatherMarkIIDelegate { Item { // Low temperature for today id: lowTemperature - height: 128 + height: gridUnit * 8 width: parent.width Image { id: lowTemperatureIcon anchors.bottom: parent.bottom - anchors.bottomMargin: 32 + anchors.bottomMargin: gridUnit * 2 anchors.left: lowTemperature.left - anchors.leftMargin: 32 + anchors.leftMargin: gridUnit * 2 fillMode: Image.PreserveAspectFit - height: 64 + height: gridUnit * 4 source: Qt.resolvedUrl("images/low_temperature.svg") } Label { id: lowTemperatureValue anchors.baseline: parent.bottom - anchors.baselineOffset: -32 + anchors.baselineOffset: gridUnit * -2 anchors.left: lowTemperatureIcon.right - anchors.leftMargin: 32 + anchors.leftMargin: gridUnit * 2 font.family: "Noto Sans Display" font.pixelSize: 118 - font.weight: Font.Light + font.styleName: "Light" text: sessionData.lowTemperature + "°" } } diff --git a/ui/current_1_scalable.qml b/ui/current_1_scalable.qml index 0bf30ce0..cb48a6af 100644 --- a/ui/current_1_scalable.qml +++ b/ui/current_1_scalable.qml @@ -27,7 +27,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -WeatherScalableDelegate { +WeatherDelegateScalable { id: root spacing: proportionalGridUnit * 5 diff --git a/ui/current_2_mark_ii.qml b/ui/current_2_mark_ii.qml index 427bf766..4a794ac3 100644 --- a/ui/current_2_mark_ii.qml +++ b/ui/current_2_mark_ii.qml @@ -23,12 +23,8 @@ squares for alignment of items. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 -import org.kde.kirigami 2.4 as Kirigami -import Mycroft 1.0 as Mycroft -import org.kde.lottie 1.0 - -WeatherMarkIIDelegate { +WeatherDelegateMarkII { id: root Item { @@ -41,90 +37,54 @@ WeatherMarkIIDelegate { // Two column grid containg wind and humidity data id: weather anchors.left: parent.left - anchors.leftMargin: 32 + anchors.leftMargin: gridUnit * 2 anchors.top: parent.top - anchors.topMargin: 32 + anchors.topMargin: gridUnit * 2 columns: 2 - columnSpacing: 32 + columnSpacing: gridUnit * 2 rowSpacing: 0 Column { // First column of the grid, displaying a wind icon and speed. id: wind - height: 352 - width: 320 - - Item { - id: windIconBox - height: 128 - width: parent.width - - Image { - id: windIcon - anchors.top: parent.top - anchors.horizontalCenter: parent.horizontalCenter - fillMode: Image.PreserveAspectFit - height: parent.height - source: Qt.resolvedUrl("images/wind.svg") - } + height: gridUnit * 22 + width: gridUnit * 20 + spacing: gridUnit * 4 + + WeatherImage { + id: windIcon + heightUnits: 8 + imageSource: Qt.resolvedUrl("images/wind.svg") } - Item { - id: windSpeedBox - anchors.top: windIconBox.bottom - anchors.topMargin: 32 - height: 160 - width: parent.width - - Label { - id: windSpeed - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.weight: Font.Bold - font.pixelSize: 176 - text: sessionData.windSpeed - } + WeatherLabel { + id: windSpeed + fontSize: 176 + fontStyle: "Bold" + heightUnits: 8 + text: sessionData.windSpeed } } Column { // Second column of the grid, displaying a humidity icon and speed. id: humidity - height: 352 - width: 320 - - Item { - id: humidityIconBox - height: 128 - width: parent.width - - Image { - id: humidityIcon - anchors.top: parent.top - anchors.horizontalCenter: parent.horizontalCenter - fillMode: Image.PreserveAspectFit - height: parent.height - source: Qt.resolvedUrl("images/humidity.svg") - } + height: gridUnit * 22 + width: gridUnit * 20 + spacing: gridUnit * 4 + + WeatherImage { + id: humidityIcon + heightUnits: 8 + imageSource: Qt.resolvedUrl("images/humidity.svg") } - Item { - id: humidityValueBox - anchors.top: humidityIconBox.bottom - anchors.topMargin: 32 - height: 160 - width: parent.width - - Label { - id: humidityValue - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.pixelSize: 180 - font.weight: Font.Bold - text: sessionData.humidity - } + WeatherLabel { + id: humidityPercentage + fontSize: 176 + fontStyle: "Bold" + heightUnits: 8 + text: sessionData.humidity } } } diff --git a/ui/current_2_scalable.qml b/ui/current_2_scalable.qml index fb099d04..17f896ef 100644 --- a/ui/current_2_scalable.qml +++ b/ui/current_2_scalable.qml @@ -28,7 +28,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -WeatherScalableDelegate { +WeatherDelegateScalable { id: root Mycroft.AutoFitLabel { diff --git a/ui/daily_1_scalable.qml b/ui/daily_1_scalable.qml index b27276f1..70b10ed5 100644 --- a/ui/daily_1_scalable.qml +++ b/ui/daily_1_scalable.qml @@ -28,7 +28,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -DailyScalableDelegate { +DailyDelegateScalable { id: root model: sessionData.forecast.first } diff --git a/ui/daily_2_scalable.qml b/ui/daily_2_scalable.qml index f04404d3..7d09cfce 100644 --- a/ui/daily_2_scalable.qml +++ b/ui/daily_2_scalable.qml @@ -28,7 +28,7 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft import org.kde.lottie 1.0 -DailyScalableDelegate { +DailyDelegateScalable { id: root model: sessionData.forecast.second } diff --git a/ui/daily_mark_ii.qml b/ui/daily_mark_ii.qml index 099d1003..9d224c71 100644 --- a/ui/daily_mark_ii.qml +++ b/ui/daily_mark_ii.qml @@ -22,108 +22,39 @@ squares for alignment of items. */ import QtQuick 2.4 import QtQuick.Controls 2.0 -import org.kde.kirigami 2.4 as Kirigami +import QtQuick.Layouts 1.4 -import Mycroft 1.0 as Mycroft -import org.kde.lottie 1.0 - -WeatherMarkIIDelegate { +WeatherDelegateMarkII { Item { // Bounding box for the content of the screen. - id: hourlyCard + id: dailyCard height: parent.height width: parent.width - GridLayout { + RowLayout { // Four column grid, one for each day of the forecast. Can be less than // four days depending on the user's request. id: dailyWeather anchors.left: parent.left - anchors.leftMargin: 32 + anchors.leftMargin: gridUnit * 2 anchors.top: parent.top - anchors.topMargin: 32 - columns: sessionData.numberOfDays - columnSpacing: 32 - rowSpacing: 0 - Layout.fillWidth: true - - Repeater { - // Displays one to four days of images representing weather conditions - id: conditionRepeater - model: sessionData.weatherCodes - anchors.top: parent.top - - Item { - height: 64 - width: 144 + anchors.topMargin: gridUnit * 2 + spacing: gridUnit * 2 - Image { - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: parent.top - height: 64 - fillMode: Image.PreserveAspectFit - source: Qt.resolvedUrl(getWeatherImagery(modelData)) - } - } + DailyColumn { + forecast: sessionData.dailyForecast.days[0] } - Repeater { - // Displays one to four days of the abbreviated day of week. - id: timeRepeater - model: sessionData.days - - Item { - height: 64 - width: 144 - - Label { - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.pixelSize: 59 - text: modelData - } - } + DailyColumn { + forecast: sessionData.dailyForecast.days[1] } - Repeater { - // Displays one to four days of the forecasted high temperature - id: highTemperatureRepeater - model: sessionData.highTemperatures - - Item { - height: 96 - width: 144 - - Label { - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.pixelSize: 72 - font.weight: Font.Bold - text: modelData + "°" - } - } + DailyColumn { + forecast: sessionData.dailyForecast.days[2] } - Repeater { - // Displays one to four days of the forecasted low temperature - id: lowTemperatureRepeater - model: sessionData.lowTemperatures - - Item { - height: 96 - width: 144 - - Label { - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.pixelSize: 59 - font.weight: Font.Thin - text: modelData + "°" - } - } + DailyColumn { + forecast: sessionData.dailyForecast.days[3] } } } diff --git a/ui/hourly_mark_ii.qml b/ui/hourly_mark_ii.qml index 409ec894..06671fa6 100644 --- a/ui/hourly_mark_ii.qml +++ b/ui/hourly_mark_ii.qml @@ -25,107 +25,39 @@ squares for alignment of items. import QtQuick.Layouts 1.4 import QtQuick 2.4 import QtQuick.Controls 2.0 -import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft -import org.kde.lottie 1.0 -WeatherMarkIIDelegate { +WeatherDelegateMarkII { Item { // Bounding box for the content of the screen. id: hourlyCard height: parent.height width: parent.width - GridLayout { - // Four column grid, one for each hour of the forecast. - id: currentWeather + RowLayout { + // Four rows, one for each hour of the forecast. + id: hourlyWeather anchors.left: parent.left - anchors.leftMargin: 32 + anchors.leftMargin: gridUnit * 2 anchors.top: parent.top - anchors.topMargin: 32 - columns: 4 - columnSpacing: 32 - rowSpacing: 0 - Layout.fillWidth: true + anchors.topMargin: gridUnit * 2 + spacing: gridUnit * 2 - Repeater { - // Displays one to four hours of images representing weather conditions - id: conditionRepeater - model: sessionData.weatherCodes - anchors.top: parent.top - - Item { - height: 64 - width: 144 - - Image { - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: parent.top - height: 64 - fillMode: Image.PreserveAspectFit - source: Qt.resolvedUrl(getWeatherImagery(modelData)) - } - } + HourlyColumn { + forecast: sessionData.hourlyForecast.hours[0] } - Repeater { - // Displays one to four hours of the time. - id: timeRepeater - model: sessionData.times - - Item { - height: 64 - width: 144 - - Label { - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.pixelSize: 59 - text: modelData - } - } + HourlyColumn { + forecast: sessionData.hourlyForecast.hours[1] } - Repeater { - // Displays one to four hours of the forecasted temperature - id: temperatureRepeater - model: sessionData.temperatures - - Item { - height: 96 - width: 144 - - Label { - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.pixelSize: 72 - font.weight: Font.Bold - text: modelData + "°" - } - } + HourlyColumn { + forecast: sessionData.hourlyForecast.hours[2] } - Repeater { - // Displays one to four hours of the forecasted chance of precipitation - id: precipitationRepeater - model: sessionData.chancesOfPrecipitation - - Item { - height: 96 - width: 144 - - Label { - anchors.baseline: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - font.family: "Noto Sans Display" - font.pixelSize: 59 - font.weight: Font.Thin - text: modelData + "%" - } - } + HourlyColumn { + forecast: sessionData.hourlyForecast.hours[3] } } } From 782816cb718055b51b6ebfa471859216875caf17 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Thu, 15 Apr 2021 20:45:14 -0500 Subject: [PATCH 14/42] Uncomment the feature files. --- test/behave/current-temperature-local.feature | 88 ++++---- .../current-temperature-location.feature | 94 ++++----- test/behave/current-weather-local.feature | 58 +++--- test/behave/current-weather-location.feature | 80 ++++---- test/behave/daily-temperature-local.feature | 194 +++++++++--------- test/behave/daily-weather-local.feature | 50 ++--- test/behave/weather-precipitation.feature | 172 ++++++++-------- 7 files changed, 368 insertions(+), 368 deletions(-) diff --git a/test/behave/current-temperature-local.feature b/test/behave/current-temperature-local.feature index 019bbfad..0ae0f453 100644 --- a/test/behave/current-temperature-local.feature +++ b/test/behave/current-temperature-local.feature @@ -1,44 +1,44 @@ -#Feature: Mycroft Weather Skill current local weather -# -# Scenario Outline: What is the temperature today -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.temperature.local.dialog" -# -# Examples: What is the temperature today -# | what is the temperature today | -# | what is the temperature today | -# | temperature | -# | what's the temperature | -# | what will be the temperature today | -# | temperature today | -# | what's the temp | -# | temperature outside | -# -# -# Scenario Outline: What is the high temperature today -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.temperature.high.local.dialog" -# -# Examples: What is the high temperature today -# | what is the high temperature today | -# | what is the high temperature today | -# | what's the high temp today | -# | what's the high temperature | -# | how hot will it be today | -# | how hot is it today | -# | what's the current high temperature | -# | high temperature | -# -# -# Scenario Outline: What is the low temperature today -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.temperature.low.local.dialog" -# -# Examples: What is the low temperature today -# | what is the low temperature today | -# | what is the low temperature today | -# | what will the lowest temperature be today | -# +Feature: Mycroft Weather Skill current local weather + + Scenario Outline: What is the temperature today + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.temperature.local.dialog" + + Examples: What is the temperature today + | what is the temperature today | + | what is the temperature today | + | temperature | + | what's the temperature | + | what will be the temperature today | + | temperature today | + | what's the temp | + | temperature outside | + + + Scenario Outline: What is the high temperature today + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.temperature.high.local.dialog" + + Examples: What is the high temperature today + | what is the high temperature today | + | what is the high temperature today | + | what's the high temp today | + | what's the high temperature | + | how hot will it be today | + | how hot is it today | + | what's the current high temperature | + | high temperature | + + + Scenario Outline: What is the low temperature today + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.temperature.low.local.dialog" + + Examples: What is the low temperature today + | what is the low temperature today | + | what is the low temperature today | + | what will the lowest temperature be today | + diff --git a/test/behave/current-temperature-location.feature b/test/behave/current-temperature-location.feature index 707fdf55..47b320eb 100644 --- a/test/behave/current-temperature-location.feature +++ b/test/behave/current-temperature-location.feature @@ -1,47 +1,47 @@ -#Feature: Mycroft Weather Skill current temperature at specified location -# -# Scenario Outline: User asks for the temperature today in a location -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.temperature.location.dialog" -# -# Examples: what is the temperature today in location -# | what is the temperature today in location | -# | temperature in sydney | -# | temperature today in san francisco, california | -# | temperature outside in kansas city | -# | In tokyo what's the temp | -# | what will be the temperature today in berlin | -# | what's the temperature in new york city | -# -# -# Scenario Outline: User asks for the high temperature today in a location -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.temperature.high.location.dialog" -# -# Examples: what is the high temperature today in location -# | what is the high temperature today in location | -# | what's the high temperature in san francisco california | -# | how hot will it be today in kansas city | -# | what's the current high temperature in kansas | -# | how hot is it today in tokyo | -# | what is the high temperature today in sydney | -# | what's the high temp today in berlin | -# | high temperature in new york city | -# -# -# Scenario Outline: User asks for the low temperature in a location -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.temperature.low.location.dialog" -# -# Examples: low temperature today in location -# | what is the low temperature today in location | -# | what's the low temperature in san francisco california | -# | how cold will it be today in kansas city | -# | low temperature today in sydney | -# | what's the low temp today in berlin | -# | what's the current low temperature in kansas | -# | how cold is it today in tokyo | -# | low temperature in new york city | +Feature: Mycroft Weather Skill current temperature at specified location + + Scenario Outline: User asks for the temperature today in a location + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.temperature.location.dialog" + + Examples: what is the temperature today in location + | what is the temperature today in location | + | temperature in sydney | + | temperature today in san francisco, california | + | temperature outside in kansas city | + | In tokyo what's the temp | + | what will be the temperature today in berlin | + | what's the temperature in new york city | + + + Scenario Outline: User asks for the high temperature today in a location + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.temperature.high.location.dialog" + + Examples: what is the high temperature today in location + | what is the high temperature today in location | + | what's the high temperature in san francisco california | + | how hot will it be today in kansas city | + | what's the current high temperature in kansas | + | how hot is it today in tokyo | + | what is the high temperature today in sydney | + | what's the high temp today in berlin | + | high temperature in new york city | + + + Scenario Outline: User asks for the low temperature in a location + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.temperature.low.location.dialog" + + Examples: low temperature today in location + | what is the low temperature today in location | + | what's the low temperature in san francisco california | + | how cold will it be today in kansas city | + | low temperature today in sydney | + | what's the low temp today in berlin | + | what's the current low temperature in kansas | + | how cold is it today in tokyo | + | low temperature in new york city | diff --git a/test/behave/current-weather-local.feature b/test/behave/current-weather-local.feature index 1e8b3a9e..e0b88cf1 100644 --- a/test/behave/current-weather-local.feature +++ b/test/behave/current-weather-local.feature @@ -1,29 +1,29 @@ -#Feature: Mycroft Weather Skill local current weather conditions -# -# Scenario Outline: What is the current local weather -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.weather.local.dialog" -# -# Examples: What is the current local weather -# | current local weather | -# | tell me the current weather | -# | what's the current weather like | -# | what is the current weather like | -# | current weather | -# | what is it like outside | -# | what's the current weather conditions | -# | give me the current weather | -# | tell me the current weather | -# | how's the weather | -# | tell me the weather | -# | what's the weather like | -# | weather | -# | what's the weather conditions | -# | give me the weather | -# | tell me the weather | -# | what's the forecast | -# | weather forecast | -# | what's the weather forecast | -# | how is the weather now | -# | what is it like outside right now | +Feature: Mycroft Weather Skill local current weather conditions + + Scenario Outline: What is the current local weather + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.weather.local.dialog" + + Examples: What is the current local weather + | current local weather | + | tell me the current weather | + | what's the current weather like | + | what is the current weather like | + | current weather | + | what is it like outside | + | what's the current weather conditions | + | give me the current weather | + | tell me the current weather | + | how's the weather | + | tell me the weather | + | what's the weather like | + | weather | + | what's the weather conditions | + | give me the weather | + | tell me the weather | + | what's the forecast | + | weather forecast | + | what's the weather forecast | + | how is the weather now | + | what is it like outside right now | diff --git a/test/behave/current-weather-location.feature b/test/behave/current-weather-location.feature index c554f8e4..b344d6f4 100644 --- a/test/behave/current-weather-location.feature +++ b/test/behave/current-weather-location.feature @@ -1,40 +1,40 @@ -#Feature: Mycroft Weather Skill current weather at a specified location -# -# Scenario Outline: User asks for the current weather in a location -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.weather.location.dialog" -# -# Examples: what is the current local weather in a location -# | what is the current weather in location | -# | what is the current weather in san francisco, california | -# | current weather in kansas city | -# | tell me the current weather in sydney | -# | what's the current weather like in berlin | -# | how's the weather in Paris | -# | tell me the weather in Paris, Texas | -# | give me the current weather in Kansas | -# | what is it like outside in italy | -# | In tokyo what is it like outside | -# | how is the weather in new york city | -# -# -# @xfail -# Scenario Outline: FAILING User asks for the current weather in a location -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "current.weather.location.dialog" -# -# Examples: what is the current local weather in a location -# | what is the current weather in location | -# | what's the current weather conditions in Washington, D.C. | -# -# -# Scenario Outline: User asks for the current weather in an unknown location -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "location.not.found.dialog" -# -# Examples: what is the current local weather in a location -# | what is the current weather in location | -# | tell me the current weather in Missouri | +Feature: Mycroft Weather Skill current weather at a specified location + + Scenario Outline: User asks for the current weather in a location + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.weather.location.dialog" + + Examples: what is the current local weather in a location + | what is the current weather in location | + | what is the current weather in san francisco, california | + | current weather in kansas city | + | tell me the current weather in sydney | + | what's the current weather like in berlin | + | how's the weather in Paris | + | tell me the weather in Paris, Texas | + | give me the current weather in Kansas | + | what is it like outside in italy | + | In tokyo what is it like outside | + | how is the weather in new york city | + + + @xfail + Scenario Outline: FAILING User asks for the current weather in a location + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.weather.location.dialog" + + Examples: what is the current local weather in a location + | what is the current weather in location | + | what's the current weather conditions in Washington, D.C. | + + + Scenario Outline: User asks for the current weather in an unknown location + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "location.not.found.dialog" + + Examples: what is the current local weather in a location + | what is the current weather in location | + | tell me the current weather in Missouri | diff --git a/test/behave/daily-temperature-local.feature b/test/behave/daily-temperature-local.feature index 5a7d3898..ab76d78f 100644 --- a/test/behave/daily-temperature-local.feature +++ b/test/behave/daily-temperature-local.feature @@ -1,97 +1,97 @@ -#Feature: Mycroft Weather Skill local forecasted temperatures -# -# Scenario Outline: What is the temperature for tomorrow -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" -# -# Examples: what is the temperature for tomorrow -# | what is the temperature tomorrow | -# | what will be the temperature for tomorrow | -# -# -# @xfail -# # Jira MS-98 https://mycroft.atlassian.net/browse/MS-98 -# Scenario Outline: Failing what is the temperature for tomorrow -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" -# -# Examples: what is the temperature for tomorrow -# | what is the temperature tomorrow | -# | what's the temperature tomorrow | -# -# -# Scenario Outline: what is the high temperature for tomorrow -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.temperature.high.local.dialog" -# -# Examples: what is the high temperature for tomorrow -# | what is the high temperature tomorrow | -# | what is the high temperature tomorrow | -# | tomorrow what is the high temperature | -# | tomorrow how hot will it get | -# | how hot will it be tomorrow | -# | what should I expect for a high temperature tomorrow | -# | what is the expected high temperature for tomorrow | -# -# -# Scenario Outline: what is the low temperature for tomorrow -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.temperature.low.local.dialog" -# -# Examples: what is the low temperature for tomorrow -# | what is the low temperature tomorrow | -# | what is the low temperature tomorrow | -# | tomorrow what is the low temperature | -# | how cold will it be tomorrow | -# | what should I expect for a low temperature tomorrow | -# | what is the expected low temperature for tomorrow | -# -# -# Scenario Outline: what is the temperature for a future date -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" -# -# Examples: what is the temperature for a future date -# | what is the temperature for a future date | -# | what is the temperature for wednesday | -# | what is the temperature for saturday | -# | what is the temperature 5 days from now | -# -# Scenario Outline: what is the high temperature for a future date -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.temperature.high.local.dialog" -# -# Examples: what is the high temperature for a future date -# | what is the high temperature for a future date | -# | what is the high temperature for wednesday | -# | what is the high temperature for saturday | -# | what is the high temperature 5 days from now | -# -# Scenario Outline: what is the low temperature for a future date -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.temperature.low.local.dialog" -# -# Examples: what is the low temperature for a future date -# | what is the low temperature for a future date | -# | what is the low temperature for wednesday | -# | what is the low temperature for saturday | -# | what is the low temperature 5 days from now | -# -# Scenario Outline: what is the temperature at a certain time -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "hourly.temperature.local.dialog" -# -# Examples: what is the temperature at a certain time -# | what is the temperature at a certain time | -# | what will the temperature be tonight | -# | what will the temperature be this evening | -# | what is the temperature this morning | -# | temperature in the afternoon | +Feature: Mycroft Weather Skill local forecasted temperatures + + Scenario Outline: What is the temperature for tomorrow + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" + + Examples: what is the temperature for tomorrow + | what is the temperature tomorrow | + | what will be the temperature for tomorrow | + + + @xfail + # Jira MS-98 https://mycroft.atlassian.net/browse/MS-98 + Scenario Outline: Failing what is the temperature for tomorrow + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" + + Examples: what is the temperature for tomorrow + | what is the temperature tomorrow | + | what's the temperature tomorrow | + + + Scenario Outline: what is the high temperature for tomorrow + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.temperature.high.local.dialog" + + Examples: what is the high temperature for tomorrow + | what is the high temperature tomorrow | + | what is the high temperature tomorrow | + | tomorrow what is the high temperature | + | tomorrow how hot will it get | + | how hot will it be tomorrow | + | what should I expect for a high temperature tomorrow | + | what is the expected high temperature for tomorrow | + + + Scenario Outline: what is the low temperature for tomorrow + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.temperature.low.local.dialog" + + Examples: what is the low temperature for tomorrow + | what is the low temperature tomorrow | + | what is the low temperature tomorrow | + | tomorrow what is the low temperature | + | how cold will it be tomorrow | + | what should I expect for a low temperature tomorrow | + | what is the expected low temperature for tomorrow | + + + Scenario Outline: what is the temperature for a future date + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" + + Examples: what is the temperature for a future date + | what is the temperature for a future date | + | what is the temperature for wednesday | + | what is the temperature for saturday | + | what is the temperature 5 days from now | + + Scenario Outline: what is the high temperature for a future date + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.temperature.high.local.dialog" + + Examples: what is the high temperature for a future date + | what is the high temperature for a future date | + | what is the high temperature for wednesday | + | what is the high temperature for saturday | + | what is the high temperature 5 days from now | + + Scenario Outline: what is the low temperature for a future date + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.temperature.low.local.dialog" + + Examples: what is the low temperature for a future date + | what is the low temperature for a future date | + | what is the low temperature for wednesday | + | what is the low temperature for saturday | + | what is the low temperature 5 days from now | + + Scenario Outline: what is the temperature at a certain time + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "hourly.temperature.local.dialog" + + Examples: what is the temperature at a certain time + | what is the temperature at a certain time | + | what will the temperature be tonight | + | what will the temperature be this evening | + | what is the temperature this morning | + | temperature in the afternoon | diff --git a/test/behave/daily-weather-local.feature b/test/behave/daily-weather-local.feature index f1b3f15f..1ced10f7 100644 --- a/test/behave/daily-weather-local.feature +++ b/test/behave/daily-weather-local.feature @@ -1,25 +1,25 @@ -#Feature: Mycroft Weather Skill local daily forecasts -# -# Scenario Outline: what is the forecast for tomorrow -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" -# -# Examples: What is the forecast for tomorrow -# | what is the forecast for tomorrow | -# | what is the forecast for tomorrow | -# | what is the weather tomorrow | -# | what is the weather like tomorrow | -# | tomorrow what will the weather be like | -# -# Scenario Outline: what is the forecast for a future date -# Given an english speaking user -# When the user says "" -# Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" -# -# Examples: what is the forecast for a future date -# | what is the forecast for a future date | -# | what is the weather like tuesday | -# | what is the weather like on saturday | -# | what is the weather like monday | -# | what is the weather like in 5 days from now | +Feature: Mycroft Weather Skill local daily forecasts + + Scenario Outline: what is the forecast for tomorrow + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" + + Examples: What is the forecast for tomorrow + | what is the forecast for tomorrow | + | what is the forecast for tomorrow | + | what is the weather tomorrow | + | what is the weather like tomorrow | + | tomorrow what will the weather be like | + + Scenario Outline: what is the forecast for a future date + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" + + Examples: what is the forecast for a future date + | what is the forecast for a future date | + | what is the weather like tuesday | + | what is the weather like on saturday | + | what is the weather like monday | + | what is the weather like in 5 days from now | diff --git a/test/behave/weather-precipitation.feature b/test/behave/weather-precipitation.feature index ca1ec177..f2de1665 100644 --- a/test/behave/weather-precipitation.feature +++ b/test/behave/weather-precipitation.feature @@ -1,86 +1,86 @@ -# @xfail -# Feature: Mycroft Weather Skill precipitation forecasts -# -# Scenario Outline: will it rain locally today, when it is expected -# Given an english speaking user -# And there is rain predicted for today -# When the user says "" -# Then "mycroft-weather" should reply with "rain is expected today." -# -# Examples: will it rain locally today when expected -# -# | rain locally today when expected | -# | will it rain today | -# | will it be rainy today | -# | should I bring an umbrella | -# | do I need an umbrella | -# | should I bring a rain coat | -# | do I need a rain jacket | -# | does it look like rain today | -# -# Scenario Outline: will it rain locally today, when it is not expected -# Given an english speaking user -# And there is no rain predicted for today -# When the user says "" -# Then "mycroft-weather" should reply with "no rain is expected today." -# -# Examples: will it rain locally today when not expected -# -# | rain locally today when not expected | -# | will it rain today | -# | will it be rainy today | -# | should I bring an umbrella | -# | do I need an umbrella | -# | should I bring a rain coat | -# | do I need a rain jacket | -# | does it look like rain today | -# -# Scenario Outline: will it snow locally today, when it is expected -# Given an english speaking user -# And there is snow predicted for today -# When the user says "" -# Then "mycroft-weather" should reply with "snow is expected today." -# -# Examples: will it snow locally today when expected -# -# | snow locally today when expected | -# | will it snow today | -# | will it be snowy today | -# | does it look like snow today | -# -# Scenario Outline: Will it snow locally today, when it is not expected -# Given an english speaking user -# And there is no snow predicted for today -# When the user says "" -# Then "mycroft-weather" should reply with "no snow is expected today." -# -# Examples: will it snow locally today when not expected -# -# | snow locally today when not expected | -# | will it snow today | -# | will it be snowy today | -# | does it look like snow today | -# -# Scenario Outline: Will it rain in a location today, when it is expected -# Given an english speaking user -# And there is rain predicted for today in a location -# When the user says "" -# Then "mycroft-weather" should reply with "yes, expect rain in Kansas City Missouri today" -# -# Examples: will it rain in a location today when expected -# -# | rain in a location today when expected | -# | will it rain in Kansas city today | -# | is there a chance of rain in charleston south carolina today | -# | is there a chance of rain in paris | -# -# Scenario Outline: will it rain in a location in the future, when it is expected -# Given an english speaking user -# And there is rain predicted for the future in a location -# When the user says "" -# Then "mycroft-weather" should reply with "yes, the forecast calls for light rain in charleston south carolina tomorrow" -# -# Examples: will it rain in a location in the future when expected -# -# | will it rain in charleston south carolina tomorrow | -# | will it rain in chicago on wednesday | + @xfail + Feature: Mycroft Weather Skill precipitation forecasts + + Scenario Outline: will it rain locally today, when it is expected + Given an english speaking user + And there is rain predicted for today + When the user says "" + Then "mycroft-weather" should reply with "rain is expected today." + + Examples: will it rain locally today when expected + + | rain locally today when expected | + | will it rain today | + | will it be rainy today | + | should I bring an umbrella | + | do I need an umbrella | + | should I bring a rain coat | + | do I need a rain jacket | + | does it look like rain today | + + Scenario Outline: will it rain locally today, when it is not expected + Given an english speaking user + And there is no rain predicted for today + When the user says "" + Then "mycroft-weather" should reply with "no rain is expected today." + + Examples: will it rain locally today when not expected + + | rain locally today when not expected | + | will it rain today | + | will it be rainy today | + | should I bring an umbrella | + | do I need an umbrella | + | should I bring a rain coat | + | do I need a rain jacket | + | does it look like rain today | + + Scenario Outline: will it snow locally today, when it is expected + Given an english speaking user + And there is snow predicted for today + When the user says "" + Then "mycroft-weather" should reply with "snow is expected today." + + Examples: will it snow locally today when expected + + | snow locally today when expected | + | will it snow today | + | will it be snowy today | + | does it look like snow today | + + Scenario Outline: Will it snow locally today, when it is not expected + Given an english speaking user + And there is no snow predicted for today + When the user says "" + Then "mycroft-weather" should reply with "no snow is expected today." + + Examples: will it snow locally today when not expected + + | snow locally today when not expected | + | will it snow today | + | will it be snowy today | + | does it look like snow today | + + Scenario Outline: Will it rain in a location today, when it is expected + Given an english speaking user + And there is rain predicted for today in a location + When the user says "" + Then "mycroft-weather" should reply with "yes, expect rain in Kansas City Missouri today" + + Examples: will it rain in a location today when expected + + | rain in a location today when expected | + | will it rain in Kansas city today | + | is there a chance of rain in charleston south carolina today | + | is there a chance of rain in paris | + + Scenario Outline: will it rain in a location in the future, when it is expected + Given an english speaking user + And there is rain predicted for the future in a location + When the user says "" + Then "mycroft-weather" should reply with "yes, the forecast calls for light rain in charleston south carolina tomorrow" + + Examples: will it rain in a location in the future when expected + + | will it rain in charleston south carolina tomorrow | + | will it rain in chicago on wednesday | From 368c368f8c21657d4ef2bb6cb9386976637839b2 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 12:58:30 -0500 Subject: [PATCH 15/42] Add index out of range handling for hourly requests more than 48 hours in the future and daily requests more than seven days in the future --- __init__.py | 23 ++++++++++++------- .../en-us/forty-eight.hours.available.dialog | 1 + source/weather.py | 9 ++++++++ vocab/en-us/Couple.voc | 1 - vocab/en-us/Few.voc | 1 + 5 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 dialog/en-us/forty-eight.hours.available.dialog create mode 100644 vocab/en-us/Few.voc diff --git a/__init__.py b/__init__.py index 9283f77d..d3b634f2 100644 --- a/__init__.py +++ b/__init__.py @@ -127,11 +127,10 @@ def handle_multi_day_forecast(self, message: Message): """ if self.voc_match(message.data["num"], "Couple"): days = 2 + elif self.voc_match(message.data["num"], "Few"): + days = 3 else: days = int(extract_number(message.data["num"])) - if days > 7: - self.speak_dialog("seven.days.available") - days = 7 self._report_multi_day_forecast(message, days) @intent_handler( @@ -638,10 +637,14 @@ def _report_one_hour_weather(self, message: Message): intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: - forecast = weather.get_forecast_for_hour(intent_data) - dialog = WeatherDialog(forecast, self.weather_config, intent_data) - dialog.build_hourly_weather_dialog() - self._speak_weather(dialog) + try: + forecast = weather.get_forecast_for_hour(intent_data) + except IndexError: + self.speak_dialog("forty-eight.hours.available") + else: + dialog = WeatherDialog(forecast, self.weather_config, intent_data) + dialog.build_hourly_weather_dialog() + self._speak_weather(dialog) def _display_hourly_forecast(self, weather: WeatherReport): """Display hourly forecast on a device that supports the GUI. @@ -686,7 +689,11 @@ def _report_multi_day_forecast(self, message: Message, days: int): intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: - forecast = weather.daily[1 : days + 1] + try: + forecast = weather.get_forecast_for_multiple_days(days) + except IndexError: + self.speak_dialog("seven.days.available") + forecast = weather.get_forecast_for_multiple_days(7) dialogs = self._build_forecast_dialogs(forecast, intent_data) self._display_forecast(forecast) for dialog in dialogs: diff --git a/dialog/en-us/forty-eight.hours.available.dialog b/dialog/en-us/forty-eight.hours.available.dialog new file mode 100644 index 00000000..1858d794 --- /dev/null +++ b/dialog/en-us/forty-eight.hours.available.dialog @@ -0,0 +1 @@ +Sorry, I only have 48 hours of hourly forecast data diff --git a/source/weather.py b/source/weather.py index 09a2d4cb..17a5c31f 100644 --- a/source/weather.py +++ b/source/weather.py @@ -210,6 +210,15 @@ def get_forecast_for_date(self, intent_data): return forecast + def get_forecast_for_multiple_days(self, days): + """Use the intent to determine which daily forecast(s) satisfies the request""" + if days > 7: + raise IndexError("Only seven days of forecasted weather available.") + + forecast = self.daily[1 : days + 1] + + return forecast + def get_forecast_for_hour(self, intent_data): """Use the intent to determine which hourly forecast(s) satisfies the request""" delta = intent_data.intent_datetime - intent_data.location_datetime diff --git a/vocab/en-us/Couple.voc b/vocab/en-us/Couple.voc index e581e38f..b11a8045 100644 --- a/vocab/en-us/Couple.voc +++ b/vocab/en-us/Couple.voc @@ -1,2 +1 @@ -few couple diff --git a/vocab/en-us/Few.voc b/vocab/en-us/Few.voc new file mode 100644 index 00000000..7a4016a3 --- /dev/null +++ b/vocab/en-us/Few.voc @@ -0,0 +1 @@ +few From 276a2bb249e4abb29b39e297ab9b21a1c751e557 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 14:07:04 -0500 Subject: [PATCH 16/42] Take today out of the relative day vocabulary file as it was conflicting with some of the current weather intents. --- __init__.py | 10 ++++------ vocab/en-us/RelativeDay.voc | 2 -- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/__init__.py b/__init__.py index d3b634f2..5afe0d4a 100644 --- a/__init__.py +++ b/__init__.py @@ -106,7 +106,6 @@ def handle_current_weather(self, message: Message): .require("Like") .require("Outside") .optionally("Location") - .optionally("Today") ) def handle_like_outside(self, message: Message): """Handle current weather requests such as: what's it like outside? @@ -230,14 +229,13 @@ def handle_current_temperature(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") .require("Temperature") + .optionally("Query") .optionally("Location") .optionally("Unit") .optionally("RelativeDay") - .optionally("Now") ) - def handle_simple_temperature(self, message: Message): + def handle_daily_temperature(self, message: Message): """Handle simple requests for current temperature. Examples: "What is the temperature?" @@ -248,13 +246,13 @@ def handle_simple_temperature(self, message: Message): @intent_handler( IntentBuilder("") - .require("RelativeTime") .require("Temperature") + .require("RelativeTime") .optionally("Query") .optionally("RelativeDay") .optionally("Location") ) - def handle_temperature_at_time(self, message: Message): + def handle_hourly_temperature(self, message: Message): """Handle requests for current temperature at a relative time. Examples: diff --git a/vocab/en-us/RelativeDay.voc b/vocab/en-us/RelativeDay.voc index c3c0e951..05f25243 100644 --- a/vocab/en-us/RelativeDay.voc +++ b/vocab/en-us/RelativeDay.voc @@ -1,5 +1,3 @@ -today -today's tomorrow tomorrow's yesterday From 5b8b6ceb0ecccf994cf7c41f2e571634025da208 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 14:09:55 -0500 Subject: [PATCH 17/42] Remove unused import --- __init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/__init__.py b/__init__.py index 5afe0d4a..34009fd3 100644 --- a/__init__.py +++ b/__init__.py @@ -19,7 +19,6 @@ Selene. The Selene API is also used to get geographical information about the city name provided in the request. """ -from collections import defaultdict from multi_key_dict import multi_key_dict from time import sleep from typing import List, Tuple From 09262810e585b0ce5df7c0ef82c1f717e3a34ae1 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 14:13:02 -0500 Subject: [PATCH 18/42] Minor font size change --- ui/DailyColumn.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/DailyColumn.qml b/ui/DailyColumn.qml index d97a5cc4..6f22245b 100644 --- a/ui/DailyColumn.qml +++ b/ui/DailyColumn.qml @@ -41,7 +41,7 @@ Column { WeatherLabel { id: forecastDay heightUnits: 4 - fontSize: 59 + fontSize: 47 fontStyle: "Regular" text: forecast.day } From 7c5a76ba91ec9e9de5985a261703f0ea299fa9f0 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 14:17:48 -0500 Subject: [PATCH 19/42] New feature files for hourly weather --- test/behave/hourly-weather-local.feature | 11 +++++++++++ test/behave/hourly-weather-location.feature | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 test/behave/hourly-weather-local.feature create mode 100644 test/behave/hourly-weather-location.feature diff --git a/test/behave/hourly-weather-local.feature b/test/behave/hourly-weather-local.feature new file mode 100644 index 00000000..7e0ac3cb --- /dev/null +++ b/test/behave/hourly-weather-local.feature @@ -0,0 +1,11 @@ +Feature: Mycroft Weather Skill local hourly forecasts + + Scenario Outline: what is the weather later + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" + + Examples: What is the weather later + | what is the weather later | + | what is the weather later | + | what's the weather later today | diff --git a/test/behave/hourly-weather-location.feature b/test/behave/hourly-weather-location.feature new file mode 100644 index 00000000..b625c3c5 --- /dev/null +++ b/test/behave/hourly-weather-location.feature @@ -0,0 +1,11 @@ +Feature: Mycroft Weather Skill hourly forecasts at a specified location + + Scenario Outline: User asks what the weather is later at a location + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "daily.weather.location.dialog" + + Examples: What is the weather later + | what is the weather later | + | what is the weather in Baltimore later | + | what is the weather in London later today | From 0b31a7f95c9605c0a70ed87d88a3bcaf7551da83 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 14:18:31 -0500 Subject: [PATCH 20/42] New xfail scenario example --- test/behave/current-weather-local.feature | 11 +++++++++++ test/behave/current-weather-location.feature | 1 + 2 files changed, 12 insertions(+) diff --git a/test/behave/current-weather-local.feature b/test/behave/current-weather-local.feature index e0b88cf1..5e6fbd1e 100644 --- a/test/behave/current-weather-local.feature +++ b/test/behave/current-weather-local.feature @@ -27,3 +27,14 @@ Feature: Mycroft Weather Skill local current weather conditions | what's the weather forecast | | how is the weather now | | what is it like outside right now | + | what's it like outside | + + @xfail + Scenario Outline: Current local weather matches date/time relative day intent + Given an english speaking user + When the user says "" + Then "mycroft-weather" should reply with dialog from "current.weather.local.dialog" + + Examples: What is the current local weather + | current local weather | + | what's it like outside today | diff --git a/test/behave/current-weather-location.feature b/test/behave/current-weather-location.feature index b344d6f4..fa93aead 100644 --- a/test/behave/current-weather-location.feature +++ b/test/behave/current-weather-location.feature @@ -28,6 +28,7 @@ Feature: Mycroft Weather Skill current weather at a specified location Examples: what is the current local weather in a location | what is the current weather in location | | what's the current weather conditions in Washington, D.C. | + | what is it like outside in baltimore today | Scenario Outline: User asks for the current weather in an unknown location From 74e994f8ee875389806d9e27ef761d73176790f7 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 14:49:07 -0500 Subject: [PATCH 21/42] Move dialog, vocabulary and regex files to the locale directory as per the latest convention. --- dialog/da-dk/RelativeDay.voc | 12 ------------ {vocab => locale}/ca-es/Clear.voc | 0 {vocab => locale}/ca-es/ClearAlternatives.voc | 0 {vocab => locale}/ca-es/Cloudy.voc | 0 {vocab => locale}/ca-es/CloudyAlternatives.voc | 0 {vocab => locale}/ca-es/Cold.voc | 0 {vocab => locale}/ca-es/ConfirmQuery.voc | 0 {vocab => locale}/ca-es/ConfirmQueryCurrent.voc | 0 {vocab => locale}/ca-es/ConfirmQueryFuture.voc | 0 {vocab => locale}/ca-es/Couple.voc | 0 {dialog => locale}/ca-es/E.dialog | 0 {vocab => locale}/ca-es/Fahrenheit.voc | 0 {vocab => locale}/ca-es/FogAlternatives.voc | 0 {vocab => locale}/ca-es/Foggy.voc | 0 {vocab => locale}/ca-es/Forecast.voc | 0 {vocab => locale}/ca-es/High.voc | 0 {vocab => locale}/ca-es/Hot.voc | 0 {vocab => locale}/ca-es/How.voc | 0 {vocab => locale}/ca-es/Humidity.voc | 0 {vocab => locale}/ca-es/Later.voc | 0 {vocab => locale}/ca-es/Location.voc | 0 {vocab => locale}/ca-es/Low.voc | 0 {dialog => locale}/ca-es/N.dialog | 0 {dialog => locale}/ca-es/NE.dialog | 0 {dialog => locale}/ca-es/NW.dialog | 0 {vocab => locale}/ca-es/Next.voc | 0 {vocab => locale}/ca-es/Now.voc | 0 {vocab => locale}/ca-es/Precipitation.voc | 0 {vocab => locale}/ca-es/Query.voc | 0 {vocab => locale}/ca-es/RainAlternatives.voc | 0 {vocab => locale}/ca-es/Raining.voc | 0 {vocab => locale}/ca-es/RelativeDay.voc | 0 {vocab => locale}/ca-es/RelativeTime.voc | 0 {dialog => locale}/ca-es/S.dialog | 0 {dialog => locale}/ca-es/SE.dialog | 0 {dialog => locale}/ca-es/SW.dialog | 0 {vocab => locale}/ca-es/SnowAlternatives.voc | 0 {vocab => locale}/ca-es/Snowing.voc | 0 {vocab => locale}/ca-es/Storm.voc | 0 {vocab => locale}/ca-es/StormAlternatives.voc | 0 {vocab => locale}/ca-es/Sunrise.voc | 0 {vocab => locale}/ca-es/Sunset.voc | 0 {vocab => locale}/ca-es/Temperature.voc | 0 {vocab => locale}/ca-es/ThreeDay.voc | 0 {vocab => locale}/ca-es/Today.voc | 0 {vocab => locale}/ca-es/Unit.entity | 0 {vocab => locale}/ca-es/Unit.voc | 0 {dialog => locale}/ca-es/W.dialog | 0 {vocab => locale}/ca-es/Weather.voc | 0 {vocab => locale}/ca-es/WeatherType.voc | 0 {vocab => locale}/ca-es/Week.voc | 0 {vocab => locale}/ca-es/Weekend.voc | 0 {vocab => locale}/ca-es/When.voc | 0 {vocab => locale}/ca-es/Windy.voc | 0 .../ca-es/affirmative.condition.dialog | 0 {dialog => locale}/ca-es/and.dialog | 0 .../ca-es/at.time.affirmative.condition.dialog | 0 .../ca-es/at.time.cond.alternative.dialog | 0 .../at.time.forecast.affirmative.condition.dialog | 0 .../ca-es/at.time.forecast.cond.alternative.dialog | 0 ....time.forecast.local.affirmative.condition.dialog | 0 .../at.time.forecast.local.cond.alternative.dialog | 0 .../at.time.forecast.local.no.cond.predicted.dialog | 0 .../ca-es/at.time.forecast.no.cond.predicted.dialog | 0 .../ca-es/at.time.local.affirmative.condition.dialog | 0 .../ca-es/at.time.local.cond.alternative.dialog | 0 .../ca-es/at.time.local.high.temperature.dialog | 0 .../ca-es/at.time.local.low.temperature.dialog | 0 .../ca-es/at.time.local.no.cond.predicted.dialog | 0 .../ca-es/at.time.local.temperature.dialog | 0 .../ca-es/at.time.local.weather.dialog | 0 .../ca-es/at.time.no.cond.predicted.dialog | 0 {dialog => locale}/ca-es/cant.get.forecast.dialog | 0 {dialog => locale}/ca-es/celsius.dialog | 0 {dialog => locale}/ca-es/clear sky.dialog | 0 {dialog => locale}/ca-es/clear.alternative.dialog | 0 {dialog => locale}/ca-es/clear.dialog | 0 {dialog => locale}/ca-es/clear.future.dialog | 0 {dialog => locale}/ca-es/cloudy.alternative.dialog | 0 {dialog => locale}/ca-es/condition.category.value | 0 .../ca-es/current.high.temperature.dialog | 0 {dialog => locale}/ca-es/current.hot.dialog | 0 {dialog => locale}/ca-es/current.local.cold.dialog | 0 .../ca-es/current.local.high.temperature.dialog | 0 {dialog => locale}/ca-es/current.local.hot.dialog | 0 .../ca-es/current.local.low.temperature.dialog | 0 .../ca-es/current.local.temperature.dialog | 0 .../ca-es/current.local.weather.dialog | 0 .../ca-es/current.low.temperature.dialog | 0 {dialog => locale}/ca-es/current.temperature.dialog | 0 {dialog => locale}/ca-es/current.weather.dialog | 0 {dialog => locale}/ca-es/do not know.dialog | 0 {vocab => locale}/ca-es/do.i.need.an.umbrella.intent | 0 {dialog => locale}/ca-es/fahrenheit.dialog | 0 {dialog => locale}/ca-es/fog.alternative.dialog | 0 .../ca-es/forecast.affirmative.condition.dialog | 0 .../ca-es/forecast.clear.alternative.dialog | 0 .../ca-es/forecast.cloudy.alternative.dialog | 0 .../ca-es/forecast.foggy.alternative.dialog | 0 {dialog => locale}/ca-es/forecast.hard.wind.dialog | 0 .../ca-es/forecast.high.temperature.dialog | 0 {dialog => locale}/ca-es/forecast.hot.dialog | 0 {dialog => locale}/ca-es/forecast.light.wind.dialog | 0 .../forecast.local.affirmative.condition.dialog | 0 .../ca-es/forecast.local.clear.alternative.dialog | 0 .../ca-es/forecast.local.cloudy.alternative.dialog | 0 .../ca-es/forecast.local.foggy.alternative.dialog | 0 .../ca-es/forecast.local.hard.wind.dialog | 0 .../ca-es/forecast.local.high.temperature.dialog | 0 {dialog => locale}/ca-es/forecast.local.hot.dialog | 0 .../ca-es/forecast.local.light.wind.dialog | 0 .../ca-es/forecast.local.low.temperature.dialog | 0 .../ca-es/forecast.local.medium.wind.dialog | 0 .../ca-es/forecast.local.no.clear.predicted.dialog | 0 .../ca-es/forecast.local.no.cloudy.predicted.dialog | 0 .../ca-es/forecast.local.no.fog.predicted.dialog | 0 .../ca-es/forecast.local.no.rain.predicted.dialog | 0 .../ca-es/forecast.local.no.snow.predicted.dialog | 0 .../ca-es/forecast.local.no.storm.predicted.dialog | 0 .../ca-es/forecast.local.raining.alternative.dialog | 0 .../ca-es/forecast.local.storm.alternative.dialog | 0 .../ca-es/forecast.local.temperature.dialog | 0 .../ca-es/forecast.local.weather.dialog | 0 .../ca-es/forecast.low.temperature.dialog | 0 {dialog => locale}/ca-es/forecast.medium.wind.dialog | 0 .../ca-es/forecast.no.clear.predicted.dialog | 0 .../ca-es/forecast.no.cloudy.predicted.dialog | 0 .../ca-es/forecast.no.fog.predicted.dialog | 0 .../ca-es/forecast.no.rain.predicted.dialog | 0 .../ca-es/forecast.no.snow.predicted.dialog | 0 .../ca-es/forecast.no.storm.predicted.dialog | 0 .../ca-es/forecast.raining.alternative.dialog | 0 .../ca-es/forecast.snowing.alternative.dialog | 0 .../ca-es/forecast.storm.alternative.dialog | 0 {dialog => locale}/ca-es/forecast.temperature.dialog | 0 {dialog => locale}/ca-es/forecast.weather.dialog | 0 {dialog => locale}/ca-es/from.day.dialog | 0 {dialog => locale}/ca-es/hard.wind.dialog | 0 {dialog => locale}/ca-es/heavy.dialog | 0 {dialog => locale}/ca-es/hour.local.weather.dialog | 0 {dialog => locale}/ca-es/hour.weather.dialog | 0 {dialog => locale}/ca-es/humidity.dialog | 0 {dialog => locale}/ca-es/light.dialog | 0 {dialog => locale}/ca-es/light.wind.dialog | 0 .../ca-es/local.affirmative.condition.dialog | 0 .../ca-es/local.clear.alternative.dialog | 0 .../ca-es/local.cloudy.alternative.dialog | 0 .../ca-es/local.foggy.alternative.dialog | 0 {dialog => locale}/ca-es/local.hard.wind.dialog | 0 {dialog => locale}/ca-es/local.light.wind.dialog | 0 {dialog => locale}/ca-es/local.medium.wind.dialog | 0 .../ca-es/local.no.cloudy.predicted.dialog | 0 .../ca-es/local.no.fog.predicted.dialog | 0 .../ca-es/local.no.rain.predicted.dialog | 0 .../ca-es/local.no.snow.predicted.dialog | 0 .../ca-es/local.no.storm.predicted.dialog | 0 .../ca-es/local.raining.alternative.dialog | 0 .../ca-es/local.snowing.alternative.dialog | 0 .../ca-es/local.storm.alternative.dialog | 0 {dialog => locale}/ca-es/location.not.found.dialog | 0 {regex => locale}/ca-es/location.rx | 0 {dialog => locale}/ca-es/medium.wind.dialog | 0 {dialog => locale}/ca-es/meters per second.dialog | 0 {dialog => locale}/ca-es/miles per hour.dialog | 0 {dialog => locale}/ca-es/min.max.dialog | 0 .../ca-es/no precipitation expected.dialog | 0 {dialog => locale}/ca-es/no.clear.predicted.dialog | 0 {dialog => locale}/ca-es/no.cloudy.predicted.dialog | 0 {dialog => locale}/ca-es/no.fog.predicted.dialog | 0 {dialog => locale}/ca-es/no.forecast.dialog | 0 {dialog => locale}/ca-es/no.rain.predicted.dialog | 0 {dialog => locale}/ca-es/no.snow.predicted.dialog | 0 {dialog => locale}/ca-es/no.storm.predicted.dialog | 0 {dialog => locale}/ca-es/on.date.dialog | 0 {dialog => locale}/ca-es/on.dialog | 0 {dialog => locale}/ca-es/percentage.number.dialog | 0 .../ca-es/precipitation expected.dialog | 0 {dialog => locale}/ca-es/rain.dialog | 0 {dialog => locale}/ca-es/raining.alternative.dialog | 0 .../ca-es/report.condition.at.location.dialog | 0 {dialog => locale}/ca-es/report.condition.dialog | 0 .../ca-es/report.condition.future.at.location.dialog | 0 .../ca-es/report.condition.future.dialog | 0 {dialog => locale}/ca-es/report.wind.dialog | 0 {vocab => locale}/ca-es/simple.temperature.intent | 0 {dialog => locale}/ca-es/sky is clear.future.dialog | 0 {dialog => locale}/ca-es/snow.dialog | 0 {dialog => locale}/ca-es/snowing.alternative.dialog | 0 {dialog => locale}/ca-es/storm.alternative.dialog | 0 {dialog => locale}/ca-es/storm.dialog | 0 {dialog => locale}/ca-es/sunrise.dialog | 0 {dialog => locale}/ca-es/sunset.dialog | 0 .../ca-es/tonight.local.weather.dialog | 0 .../ca-es/weekly.condition.on.day.dialog | 0 .../ca-es/weekly.conditions.mostly.one.dialog | 0 .../ca-es/weekly.conditions.seq.extra.dialog | 0 .../ca-es/weekly.conditions.seq.period.dialog | 0 .../ca-es/weekly.conditions.seq.start.dialog | 0 .../ca-es/weekly.conditions.some.days.dialog | 0 {dialog => locale}/ca-es/weekly.temp.range.dialog | 0 .../ca-es/what.is.multi.day.forecast.intent | 0 .../ca-es/what.is.three.day.forecast.intent | 0 .../ca-es/what.is.three.day.forecast.location.intent | 0 .../ca-es/what.is.two.day.forecast.intent | 0 {vocab => locale}/ca-es/whats.weather.like.intent | 0 {dialog => locale}/ca-es/wind.speed.dialog | 0 {dialog => locale}/ca-es/wind.speed.dir.dialog | 0 {dialog => locale}/ca-es/wind.strength.hard.dialog | 0 {dialog => locale}/ca-es/wind.strength.light.dialog | 0 {dialog => locale}/ca-es/wind.strength.medium.dialog | 0 {dialog => locale}/ca-es/winds.dialog | 0 {vocab => locale}/da-dk/Clear.voc | 0 {vocab => locale}/da-dk/ClearAlternatives.voc | 0 {vocab => locale}/da-dk/Cloudy.voc | 0 {vocab => locale}/da-dk/CloudyAlternatives.voc | 0 {vocab => locale}/da-dk/Cold.voc | 0 {vocab => locale}/da-dk/ConfirmQuery.voc | 0 {vocab => locale}/da-dk/ConfirmQueryCurrent.voc | 0 {vocab => locale}/da-dk/ConfirmQueryFuture.voc | 0 {vocab => locale}/da-dk/Couple.voc | 0 {dialog => locale}/da-dk/E.dialog | 0 {vocab => locale}/da-dk/Fahrenheit.voc | 0 {vocab => locale}/da-dk/FogAlternatives.voc | 0 {vocab => locale}/da-dk/Foggy.voc | 0 {vocab => locale}/da-dk/Forecast.voc | 0 {vocab => locale}/da-dk/High.voc | 0 {vocab => locale}/da-dk/Hot.voc | 0 {vocab => locale}/da-dk/How.voc | 0 {vocab => locale}/da-dk/Humidity.voc | 0 {vocab => locale}/da-dk/Later.voc | 0 {vocab => locale}/da-dk/Location.voc | 0 {vocab => locale}/da-dk/Low.voc | 0 {dialog => locale}/da-dk/N.dialog | 0 {dialog => locale}/da-dk/NE.dialog | 0 {dialog => locale}/da-dk/NW.dialog | 0 {vocab => locale}/da-dk/Next.voc | 0 {vocab => locale}/da-dk/Now.voc | 0 {vocab => locale}/da-dk/Precipitation.voc | 0 {vocab => locale}/da-dk/Query.voc | 0 {vocab => locale}/da-dk/RainAlternatives.voc | 0 {vocab => locale}/da-dk/Raining.voc | 0 {vocab => locale}/da-dk/RelativeDay.voc | 0 {vocab => locale}/da-dk/RelativeTime.voc | 0 {dialog => locale}/da-dk/S.dialog | 0 {dialog => locale}/da-dk/SE.dialog | 0 {dialog => locale}/da-dk/SW.dialog | 0 {vocab => locale}/da-dk/SnowAlternatives.voc | 0 {vocab => locale}/da-dk/Snowing.voc | 0 {vocab => locale}/da-dk/Storm.voc | 0 {vocab => locale}/da-dk/StormAlternatives.voc | 0 {vocab => locale}/da-dk/Sunrise.voc | 0 {vocab => locale}/da-dk/Sunset.voc | 0 {vocab => locale}/da-dk/Temperature.voc | 0 {vocab => locale}/da-dk/ThreeDay.voc | 0 {vocab => locale}/da-dk/Today.voc | 0 {vocab => locale}/da-dk/Unit.entity | 0 {vocab => locale}/da-dk/Unit.voc | 0 {dialog => locale}/da-dk/W.dialog | 0 {vocab => locale}/da-dk/Weather.voc | 0 {vocab => locale}/da-dk/WeatherType.voc | 0 {vocab => locale}/da-dk/Week.voc | 0 {vocab => locale}/da-dk/Weekend.voc | 0 {vocab => locale}/da-dk/When.voc | 0 {vocab => locale}/da-dk/Windy.voc | 0 .../da-dk/affirmative.condition.dialog | 0 {dialog => locale}/da-dk/and.dialog | 0 .../da-dk/at.time.affirmative.condition.dialog | 0 .../da-dk/at.time.cond.alternative.dialog | 0 .../at.time.forecast.affirmative.condition.dialog | 0 .../da-dk/at.time.forecast.cond.alternative.dialog | 0 ....time.forecast.local.affirmative.condition.dialog | 0 .../at.time.forecast.local.cond.alternative.dialog | 0 .../at.time.forecast.local.no.cond.predicted.dialog | 0 .../da-dk/at.time.forecast.no.cond.predicted.dialog | 0 .../da-dk/at.time.local.affirmative.condition.dialog | 0 .../da-dk/at.time.local.cond.alternative.dialog | 0 .../da-dk/at.time.local.high.temperature.dialog | 0 .../da-dk/at.time.local.low.temperature.dialog | 0 .../da-dk/at.time.local.no.cond.predicted.dialog | 0 .../da-dk/at.time.local.temperature.dialog | 0 .../da-dk/at.time.local.weather.dialog | 0 .../da-dk/at.time.no.cond.predicted.dialog | 0 {dialog => locale}/da-dk/cant.get.forecast.dialog | 0 {dialog => locale}/da-dk/celsius.dialog | 0 {dialog => locale}/da-dk/clear sky.dialog | 0 {dialog => locale}/da-dk/clear.alternative.dialog | 0 {dialog => locale}/da-dk/clear.dialog | 0 {dialog => locale}/da-dk/clear.future.dialog | 0 {dialog => locale}/da-dk/cloudy.alternative.dialog | 0 {dialog => locale}/da-dk/condition.category.value | 0 .../da-dk/current.high.temperature.dialog | 0 {dialog => locale}/da-dk/current.hot.dialog | 0 {dialog => locale}/da-dk/current.local.cold.dialog | 0 .../da-dk/current.local.high.temperature.dialog | 0 {dialog => locale}/da-dk/current.local.hot.dialog | 0 .../da-dk/current.local.low.temperature.dialog | 0 .../da-dk/current.local.temperature.dialog | 0 .../da-dk/current.local.weather.dialog | 0 .../da-dk/current.low.temperature.dialog | 0 {dialog => locale}/da-dk/current.temperature.dialog | 0 {dialog => locale}/da-dk/current.weather.dialog | 0 {dialog => locale}/da-dk/do not know.dialog | 0 {vocab => locale}/da-dk/do.i.need.an.umbrella.intent | 0 {dialog => locale}/da-dk/fahrenheit.dialog | 0 {dialog => locale}/da-dk/fog.alternative.dialog | 0 .../da-dk/forecast.affirmative.condition.dialog | 0 .../da-dk/forecast.clear.alternative.dialog | 0 .../da-dk/forecast.cloudy.alternative.dialog | 0 .../da-dk/forecast.foggy.alternative.dialog | 0 {dialog => locale}/da-dk/forecast.hard.wind.dialog | 0 .../da-dk/forecast.high.temperature.dialog | 0 {dialog => locale}/da-dk/forecast.hot.dialog | 0 {dialog => locale}/da-dk/forecast.light.wind.dialog | 0 .../forecast.local.affirmative.condition.dialog | 0 .../da-dk/forecast.local.clear.alternative.dialog | 0 .../da-dk/forecast.local.cloudy.alternative.dialog | 0 .../da-dk/forecast.local.foggy.alternative.dialog | 0 .../da-dk/forecast.local.hard.wind.dialog | 0 .../da-dk/forecast.local.high.temperature.dialog | 0 {dialog => locale}/da-dk/forecast.local.hot.dialog | 0 .../da-dk/forecast.local.light.wind.dialog | 0 .../da-dk/forecast.local.low.temperature.dialog | 0 .../da-dk/forecast.local.medium.wind.dialog | 0 .../da-dk/forecast.local.no.clear.predicted.dialog | 0 .../da-dk/forecast.local.no.cloudy.predicted.dialog | 0 .../da-dk/forecast.local.no.fog.predicted.dialog | 0 .../da-dk/forecast.local.no.rain.predicted.dialog | 0 .../da-dk/forecast.local.no.snow.predicted.dialog | 0 .../da-dk/forecast.local.no.storm.predicted.dialog | 0 .../da-dk/forecast.local.raining.alternative.dialog | 0 .../da-dk/forecast.local.storm.alternative.dialog | 0 .../da-dk/forecast.local.temperature.dialog | 0 .../da-dk/forecast.local.weather.dialog | 0 .../da-dk/forecast.low.temperature.dialog | 0 {dialog => locale}/da-dk/forecast.medium.wind.dialog | 0 .../da-dk/forecast.no.clear.predicted.dialog | 0 .../da-dk/forecast.no.cloudy.predicted.dialog | 0 .../da-dk/forecast.no.fog.predicted.dialog | 0 .../da-dk/forecast.no.rain.predicted.dialog | 0 .../da-dk/forecast.no.snow.predicted.dialog | 0 .../da-dk/forecast.no.storm.predicted.dialog | 0 .../da-dk/forecast.raining.alternative.dialog | 0 .../da-dk/forecast.snowing.alternative.dialog | 0 .../da-dk/forecast.storm.alternative.dialog | 0 {dialog => locale}/da-dk/forecast.temperature.dialog | 0 {dialog => locale}/da-dk/forecast.weather.dialog | 0 {dialog => locale}/da-dk/from.day.dialog | 0 {dialog => locale}/da-dk/hard.wind.dialog | 0 {dialog => locale}/da-dk/heavy.dialog | 0 {dialog => locale}/da-dk/hour.local.weather.dialog | 0 {dialog => locale}/da-dk/hour.weather.dialog | 0 {dialog => locale}/da-dk/humidity.dialog | 0 {dialog => locale}/da-dk/light.dialog | 0 {dialog => locale}/da-dk/light.wind.dialog | 0 .../da-dk/local.affirmative.condition.dialog | 0 .../da-dk/local.clear.alternative.dialog | 0 .../da-dk/local.cloudy.alternative.dialog | 0 .../da-dk/local.foggy.alternative.dialog | 0 {dialog => locale}/da-dk/local.hard.wind.dialog | 0 {dialog => locale}/da-dk/local.light.wind.dialog | 0 {dialog => locale}/da-dk/local.medium.wind.dialog | 0 .../da-dk/local.no.cloudy.predicted.dialog | 0 .../da-dk/local.no.fog.predicted.dialog | 0 .../da-dk/local.no.rain.predicted.dialog | 0 .../da-dk/local.no.snow.predicted.dialog | 0 .../da-dk/local.no.storm.predicted.dialog | 0 .../da-dk/local.raining.alternative.dialog | 0 .../da-dk/local.snowing.alternative.dialog | 0 .../da-dk/local.storm.alternative.dialog | 0 {dialog => locale}/da-dk/location.not.found.dialog | 0 {regex => locale}/da-dk/location.rx | 0 {dialog => locale}/da-dk/medium.wind.dialog | 0 {dialog => locale}/da-dk/meters per second.dialog | 0 {dialog => locale}/da-dk/miles per hour.dialog | 0 {dialog => locale}/da-dk/min.max.dialog | 0 .../da-dk/no precipitation expected.dialog | 0 {dialog => locale}/da-dk/no.clear.predicted.dialog | 0 {dialog => locale}/da-dk/no.cloudy.predicted.dialog | 0 {dialog => locale}/da-dk/no.fog.predicted.dialog | 0 {dialog => locale}/da-dk/no.forecast.dialog | 0 {dialog => locale}/da-dk/no.rain.predicted.dialog | 0 {dialog => locale}/da-dk/no.snow.predicted.dialog | 0 {dialog => locale}/da-dk/no.storm.predicted.dialog | 0 {dialog => locale}/da-dk/on.date.dialog | 0 {dialog => locale}/da-dk/on.dialog | 0 {dialog => locale}/da-dk/percentage.number.dialog | 0 .../da-dk/precipitation expected.dialog | 0 {dialog => locale}/da-dk/rain.dialog | 0 {dialog => locale}/da-dk/raining.alternative.dialog | 0 .../da-dk/report.condition.at.location.dialog | 0 {dialog => locale}/da-dk/report.condition.dialog | 0 .../da-dk/report.condition.future.at.location.dialog | 0 .../da-dk/report.condition.future.dialog | 0 {dialog => locale}/da-dk/report.wind.dialog | 0 {vocab => locale}/da-dk/simple.temperature.intent | 0 {dialog => locale}/da-dk/sky is clear.future.dialog | 0 {dialog => locale}/da-dk/snow.dialog | 0 {dialog => locale}/da-dk/snowing.alternative.dialog | 0 {dialog => locale}/da-dk/storm.alternative.dialog | 0 {dialog => locale}/da-dk/storm.dialog | 0 {dialog => locale}/da-dk/sunrise.dialog | 0 {dialog => locale}/da-dk/sunset.dialog | 0 {dialog => locale}/da-dk/this.week.dialog | 0 .../da-dk/tonight.local.weather.dialog | 0 .../da-dk/weekly.condition.on.day.dialog | 0 .../da-dk/weekly.conditions.mostly.one.dialog | 0 .../da-dk/weekly.conditions.seq.extra.dialog | 0 .../da-dk/weekly.conditions.seq.period.dialog | 0 .../da-dk/weekly.conditions.seq.start.dialog | 0 .../da-dk/weekly.conditions.some.days.dialog | 0 {dialog => locale}/da-dk/weekly.temp.range.dialog | 0 .../da-dk/what.is.multi.day.forecast.intent | 0 .../da-dk/what.is.three.day.forecast.intent | 0 .../da-dk/what.is.three.day.forecast.location.intent | 0 .../da-dk/what.is.two.day.forecast.intent | 0 {vocab => locale}/da-dk/whats.weather.like.intent | 0 {dialog => locale}/da-dk/wind.speed.dialog | 0 {dialog => locale}/da-dk/wind.speed.dir.dialog | 0 {dialog => locale}/da-dk/wind.strength.hard.dialog | 0 {dialog => locale}/da-dk/wind.strength.light.dialog | 0 {dialog => locale}/da-dk/wind.strength.medium.dialog | 0 {dialog => locale}/da-dk/winds.dialog | 0 {vocab => locale}/de-de/Clear.voc | 0 {vocab => locale}/de-de/ClearAlternatives.voc | 0 {vocab => locale}/de-de/Cloudy.voc | 0 {vocab => locale}/de-de/CloudyAlternatives.voc | 0 {vocab => locale}/de-de/Cold.voc | 0 {vocab => locale}/de-de/ConfirmQuery.voc | 0 {vocab => locale}/de-de/ConfirmQueryCurrent.voc | 0 {vocab => locale}/de-de/ConfirmQueryFuture.voc | 0 {vocab => locale}/de-de/Couple.voc | 0 {dialog => locale}/de-de/E.dialog | 0 {vocab => locale}/de-de/Fahrenheit.voc | 0 {vocab => locale}/de-de/FogAlternatives.voc | 0 {vocab => locale}/de-de/Foggy.voc | 0 {vocab => locale}/de-de/Forecast.voc | 0 {vocab => locale}/de-de/High.voc | 0 {vocab => locale}/de-de/Hot.voc | 0 {vocab => locale}/de-de/How.voc | 0 {vocab => locale}/de-de/Humidity.voc | 0 {vocab => locale}/de-de/Later.voc | 0 {vocab => locale}/de-de/Location.voc | 0 {vocab => locale}/de-de/Low.voc | 0 {dialog => locale}/de-de/N.dialog | 0 {dialog => locale}/de-de/NE.dialog | 0 {dialog => locale}/de-de/NW.dialog | 0 {vocab => locale}/de-de/Next.voc | 0 {vocab => locale}/de-de/Now.voc | 0 {vocab => locale}/de-de/Precipitation.voc | 0 {vocab => locale}/de-de/Query.voc | 0 {vocab => locale}/de-de/RainAlternatives.voc | 0 {vocab => locale}/de-de/Raining.voc | 0 {vocab => locale}/de-de/RelativeDay.voc | 0 {vocab => locale}/de-de/RelativeTime.voc | 0 {dialog => locale}/de-de/S.dialog | 0 {dialog => locale}/de-de/SE.dialog | 0 {dialog => locale}/de-de/SW.dialog | 0 {vocab => locale}/de-de/SnowAlternatives.voc | 0 {vocab => locale}/de-de/Snowing.voc | 0 {vocab => locale}/de-de/Storm.voc | 0 {vocab => locale}/de-de/StormAlternatives.voc | 0 {vocab => locale}/de-de/Sunrise.voc | 0 {vocab => locale}/de-de/Sunset.voc | 0 {vocab => locale}/de-de/Temperature.voc | 0 {vocab => locale}/de-de/ThreeDay.voc | 0 {vocab => locale}/de-de/Today.voc | 0 {vocab => locale}/de-de/Unit.entity | 0 {vocab => locale}/de-de/Unit.voc | 0 {dialog => locale}/de-de/W.dialog | 0 {vocab => locale}/de-de/Weather.voc | 0 {vocab => locale}/de-de/WeatherType.voc | 0 {vocab => locale}/de-de/Week.voc | 0 {vocab => locale}/de-de/Weekend.voc | 0 {vocab => locale}/de-de/When.voc | 0 {vocab => locale}/de-de/Windy.voc | 0 .../de-de/affirmative.condition.dialog | 0 {dialog => locale}/de-de/and.dialog | 0 .../de-de/at.time.affirmative.condition.dialog | 0 .../de-de/at.time.cond.alternative.dialog | 0 .../at.time.forecast.affirmative.condition.dialog | 0 .../de-de/at.time.forecast.cond.alternative.dialog | 0 ....time.forecast.local.affirmative.condition.dialog | 0 .../at.time.forecast.local.cond.alternative.dialog | 0 .../at.time.forecast.local.no.cond.predicted.dialog | 0 .../de-de/at.time.forecast.no.cond.predicted.dialog | 0 .../de-de/at.time.local.affirmative.condition.dialog | 0 .../de-de/at.time.local.cond.alternative.dialog | 0 .../de-de/at.time.local.high.temperature.dialog | 0 .../de-de/at.time.local.low.temperature.dialog | 0 .../de-de/at.time.local.no.cond.predicted.dialog | 0 .../de-de/at.time.local.temperature.dialog | 0 .../de-de/at.time.local.weather.dialog | 0 .../de-de/at.time.no.cond.predicted.dialog | 0 {dialog => locale}/de-de/cant.get.forecast.dialog | 0 {dialog => locale}/de-de/celsius.dialog | 0 {dialog => locale}/de-de/clear sky.dialog | 0 {dialog => locale}/de-de/clear.alternative.dialog | 0 {dialog => locale}/de-de/clear.dialog | 0 {dialog => locale}/de-de/clear.future.dialog | 0 {dialog => locale}/de-de/cloudy.alternative.dialog | 0 {dialog => locale}/de-de/condition.category.value | 0 .../de-de/current.high.temperature.dialog | 0 {dialog => locale}/de-de/current.hot.dialog | 0 {dialog => locale}/de-de/current.local.cold.dialog | 0 .../de-de/current.local.high.temperature.dialog | 0 {dialog => locale}/de-de/current.local.hot.dialog | 0 .../de-de/current.local.low.temperature.dialog | 0 .../de-de/current.local.temperature.dialog | 0 .../de-de/current.local.weather.dialog | 0 .../de-de/current.low.temperature.dialog | 0 {dialog => locale}/de-de/current.temperature.dialog | 0 {dialog => locale}/de-de/current.weather.dialog | 0 {dialog => locale}/de-de/do not know.dialog | 0 {vocab => locale}/de-de/do.i.need.an.umbrella.intent | 0 {dialog => locale}/de-de/fahrenheit.dialog | 0 {dialog => locale}/de-de/fog.alternative.dialog | 0 .../de-de/forecast.affirmative.condition.dialog | 0 .../de-de/forecast.clear.alternative.dialog | 0 .../de-de/forecast.cloudy.alternative.dialog | 0 .../de-de/forecast.foggy.alternative.dialog | 0 {dialog => locale}/de-de/forecast.hard.wind.dialog | 0 .../de-de/forecast.high.temperature.dialog | 0 {dialog => locale}/de-de/forecast.hot.dialog | 0 {dialog => locale}/de-de/forecast.light.wind.dialog | 0 .../forecast.local.affirmative.condition.dialog | 0 .../de-de/forecast.local.clear.alternative.dialog | 0 .../de-de/forecast.local.cloudy.alternative.dialog | 0 .../de-de/forecast.local.foggy.alternative.dialog | 0 .../de-de/forecast.local.hard.wind.dialog | 0 .../de-de/forecast.local.high.temperature.dialog | 0 {dialog => locale}/de-de/forecast.local.hot.dialog | 0 .../de-de/forecast.local.light.wind.dialog | 0 .../de-de/forecast.local.low.temperature.dialog | 0 .../de-de/forecast.local.medium.wind.dialog | 0 .../de-de/forecast.local.no.clear.predicted.dialog | 0 .../de-de/forecast.local.no.cloudy.predicted.dialog | 0 .../de-de/forecast.local.no.fog.predicted.dialog | 0 .../de-de/forecast.local.no.rain.predicted.dialog | 0 .../de-de/forecast.local.no.snow.predicted.dialog | 0 .../de-de/forecast.local.no.storm.predicted.dialog | 0 .../de-de/forecast.local.raining.alternative.dialog | 0 .../de-de/forecast.local.storm.alternative.dialog | 0 .../de-de/forecast.local.temperature.dialog | 0 .../de-de/forecast.local.weather.dialog | 0 .../de-de/forecast.low.temperature.dialog | 0 {dialog => locale}/de-de/forecast.medium.wind.dialog | 0 .../de-de/forecast.no.clear.predicted.dialog | 0 .../de-de/forecast.no.cloudy.predicted.dialog | 0 .../de-de/forecast.no.fog.predicted.dialog | 0 .../de-de/forecast.no.rain.predicted.dialog | 0 .../de-de/forecast.no.snow.predicted.dialog | 0 .../de-de/forecast.no.storm.predicted.dialog | 0 .../de-de/forecast.raining.alternative.dialog | 0 .../de-de/forecast.snowing.alternative.dialog | 0 .../de-de/forecast.storm.alternative.dialog | 0 {dialog => locale}/de-de/forecast.temperature.dialog | 0 {dialog => locale}/de-de/forecast.weather.dialog | 0 {dialog => locale}/de-de/from.day.dialog | 0 {dialog => locale}/de-de/hard.wind.dialog | 0 {dialog => locale}/de-de/heavy.dialog | 0 {dialog => locale}/de-de/hour.local.weather.dialog | 0 {dialog => locale}/de-de/hour.weather.dialog | 0 {dialog => locale}/de-de/humidity.dialog | 0 {dialog => locale}/de-de/light.dialog | 0 {dialog => locale}/de-de/light.wind.dialog | 0 .../de-de/local.affirmative.condition.dialog | 0 .../de-de/local.clear.alternative.dialog | 0 .../de-de/local.cloudy.alternative.dialog | 0 .../de-de/local.foggy.alternative.dialog | 0 {dialog => locale}/de-de/local.hard.wind.dialog | 0 {dialog => locale}/de-de/local.light.wind.dialog | 0 {dialog => locale}/de-de/local.medium.wind.dialog | 0 .../de-de/local.no.cloudy.predicted.dialog | 0 .../de-de/local.no.fog.predicted.dialog | 0 .../de-de/local.no.rain.predicted.dialog | 0 .../de-de/local.no.snow.predicted.dialog | 0 .../de-de/local.no.storm.predicted.dialog | 0 .../de-de/local.raining.alternative.dialog | 0 .../de-de/local.snowing.alternative.dialog | 0 .../de-de/local.storm.alternative.dialog | 0 {dialog => locale}/de-de/location.not.found.dialog | 0 {regex => locale}/de-de/location.rx | 0 {dialog => locale}/de-de/medium.wind.dialog | 0 {dialog => locale}/de-de/meters per second.dialog | 0 {dialog => locale}/de-de/miles per hour.dialog | 0 {dialog => locale}/de-de/min.max.dialog | 0 .../de-de/no precipitation expected.dialog | 0 {dialog => locale}/de-de/no.clear.predicted.dialog | 0 {dialog => locale}/de-de/no.cloudy.predicted.dialog | 0 {dialog => locale}/de-de/no.fog.predicted.dialog | 0 {dialog => locale}/de-de/no.forecast.dialog | 0 {dialog => locale}/de-de/no.rain.predicted.dialog | 0 {dialog => locale}/de-de/no.snow.predicted.dialog | 0 {dialog => locale}/de-de/no.storm.predicted.dialog | 0 {dialog => locale}/de-de/on.date.dialog | 0 {dialog => locale}/de-de/on.dialog | 0 {dialog => locale}/de-de/percentage.number.dialog | 0 .../de-de/precipitation expected.dialog | 0 {dialog => locale}/de-de/rain.dialog | 0 {dialog => locale}/de-de/raining.alternative.dialog | 0 .../de-de/report.condition.at.location.dialog | 0 {dialog => locale}/de-de/report.condition.dialog | 0 .../de-de/report.condition.future.at.location.dialog | 0 .../de-de/report.condition.future.dialog | 0 {dialog => locale}/de-de/report.wind.dialog | 0 {vocab => locale}/de-de/simple.temperature.intent | 0 {dialog => locale}/de-de/sky is clear.future.dialog | 0 {dialog => locale}/de-de/snow.dialog | 0 {dialog => locale}/de-de/snowing.alternative.dialog | 0 {dialog => locale}/de-de/storm.alternative.dialog | 0 {dialog => locale}/de-de/storm.dialog | 0 {dialog => locale}/de-de/sunrise.dialog | 0 {dialog => locale}/de-de/sunset.dialog | 0 .../de-de/tonight.local.weather.dialog | 0 .../de-de/weekly.condition.on.day.dialog | 0 .../de-de/weekly.conditions.mostly.one.dialog | 0 .../de-de/weekly.conditions.seq.extra.dialog | 0 .../de-de/weekly.conditions.seq.period.dialog | 0 .../de-de/weekly.conditions.seq.start.dialog | 0 .../de-de/weekly.conditions.some.days.dialog | 0 {dialog => locale}/de-de/weekly.temp.range.dialog | 0 .../de-de/what.is.multi.day.forecast.intent | 0 .../de-de/what.is.three.day.forecast.intent | 0 .../de-de/what.is.three.day.forecast.location.intent | 0 .../de-de/what.is.two.day.forecast.intent | 0 {vocab => locale}/de-de/whats.weather.like.intent | 0 {dialog => locale}/de-de/wind.speed.dialog | 0 {dialog => locale}/de-de/wind.speed.dir.dialog | 0 {dialog => locale}/de-de/wind.strength.hard.dialog | 0 {dialog => locale}/de-de/wind.strength.light.dialog | 0 {dialog => locale}/de-de/wind.strength.medium.dialog | 0 {dialog => locale}/de-de/winds.dialog | 0 {vocab => locale}/en-us/Clear.voc | 0 {vocab => locale}/en-us/ClearAlternatives.voc | 0 {vocab => locale}/en-us/Clouds.voc | 0 {vocab => locale}/en-us/CloudsAlternatives.voc | 0 {vocab => locale}/en-us/Cold.voc | 0 {vocab => locale}/en-us/ConfirmQuery.voc | 0 {vocab => locale}/en-us/ConfirmQueryCurrent.voc | 0 {vocab => locale}/en-us/ConfirmQueryFuture.voc | 0 {vocab => locale}/en-us/Couple.voc | 0 {vocab => locale}/en-us/Fahrenheit.voc | 0 {vocab => locale}/en-us/Few.voc | 0 {vocab => locale}/en-us/Fog.voc | 0 {vocab => locale}/en-us/FogAlternatives.voc | 0 {vocab => locale}/en-us/Forecast.voc | 0 {vocab => locale}/en-us/High.voc | 0 {vocab => locale}/en-us/Hot.voc | 0 {vocab => locale}/en-us/How.voc | 0 {vocab => locale}/en-us/Humidity.voc | 0 {vocab => locale}/en-us/Later.voc | 0 {vocab => locale}/en-us/Like.voc | 0 {vocab => locale}/en-us/Location.voc | 0 {vocab => locale}/en-us/Low.voc | 0 {vocab => locale}/en-us/Next.voc | 0 {vocab => locale}/en-us/Now.voc | 0 {vocab => locale}/en-us/Outside.voc | 0 {vocab => locale}/en-us/Precipitation.voc | 0 {vocab => locale}/en-us/Query.voc | 0 {vocab => locale}/en-us/Rain.voc | 0 {vocab => locale}/en-us/RainAlternatives.voc | 0 {vocab => locale}/en-us/RelativeDay.voc | 0 {vocab => locale}/en-us/RelativeTime.voc | 0 {vocab => locale}/en-us/Snow.voc | 0 {vocab => locale}/en-us/SnowAlternatives.voc | 0 {vocab => locale}/en-us/Sunrise.voc | 0 {vocab => locale}/en-us/Sunset.voc | 0 {vocab => locale}/en-us/Temperature.voc | 0 {vocab => locale}/en-us/ThreeDay.voc | 0 {vocab => locale}/en-us/Thunderstorm.voc | 0 {vocab => locale}/en-us/ThunderstormAlternatives.voc | 0 {vocab => locale}/en-us/Today.voc | 0 {vocab => locale}/en-us/Unit.entity | 0 {vocab => locale}/en-us/Unit.voc | 0 {vocab => locale}/en-us/Weather.voc | 0 {vocab => locale}/en-us/WeatherType.voc | 0 {vocab => locale}/en-us/Week.voc | 0 {vocab => locale}/en-us/Weekend.voc | 0 {vocab => locale}/en-us/When.voc | 0 {vocab => locale}/en-us/Windy.voc | 0 {dialog => locale}/en-us/cant.get.forecast.dialog | 0 {dialog => locale}/en-us/celsius.dialog | 0 {dialog => locale}/en-us/clear sky.dialog | 0 {dialog => locale}/en-us/clear.dialog | 0 {dialog => locale}/en-us/clear.future.dialog | 0 .../en-us/current.clear.alternative.location.dialog | 0 .../en-us/current.clear.not.expected.local.dialog | 0 .../en-us/current.clear.not.expected.location.dialog | 0 .../en-us/current.clouds.alternative.location.dialog | 0 .../en-us/current.clouds.not.expected.local.dialog | 0 .../current.clouds.not.expected.location.dialog | 0 .../en-us/current.condition.expected.local.dialog | 0 .../en-us/current.condition.expected.location.dialog | 0 .../en-us/current.fog.alternative.local.dialog | 0 .../en-us/current.fog.alternative.location.dialog | 0 .../en-us/current.fog.not.expected.local.dialog | 0 .../en-us/current.fog.not.expected.location.dialog | 0 .../en-us/current.humidity.local.dialog | 0 .../en-us/current.humidity.location.dialog | 0 .../en-us/current.rain.alternative.local.dialog | 0 .../en-us/current.rain.alternative.location.dialog | 0 .../en-us/current.rain.not.expected.local.dialog | 0 .../en-us/current.rain.not.expected.location.dialog | 0 .../en-us/current.snow.alternative.local.dialog | 0 .../en-us/current.snow.alternative.location.dialog | 0 .../en-us/current.snow.not.expected.local.dialog | 0 .../en-us/current.snow.not.expected.location.dialog | 0 .../en-us/current.sunrise.future.local.dialog | 0 .../en-us/current.sunrise.future.location.dialog | 0 .../en-us/current.sunrise.past.local.dialog | 0 .../en-us/current.sunrise.past.location.dialog | 0 .../en-us/current.sunset.future.local.dialog | 0 .../en-us/current.sunset.future.location.dialog | 0 .../en-us/current.sunset.past.local.dialog | 0 .../en-us/current.sunset.past.location.dialog | 0 .../en-us/current.temperature.high.local.dialog | 0 .../en-us/current.temperature.high.location.dialog | 0 .../en-us/current.temperature.high.low.dialog | 0 .../en-us/current.temperature.local.dialog | 0 .../en-us/current.temperature.location.dialog | 0 .../en-us/current.temperature.low.local.dialog | 0 .../en-us/current.temperature.low.location.dialog | 0 .../current.thunderstorm.alternative.local.dialog | 0 .../current.thunderstorm.alternative.location.dialog | 0 .../current.thunderstorm.not.expected.local.dialog | 0 ...current.thunderstorm.not.expected.location.dialog | 0 .../en-us/current.weather.local.dialog | 0 .../en-us/current.weather.location.dialog | 0 .../en-us/current.wind.light.local.dialog | 0 .../en-us/current.wind.light.location.dialog | 0 .../en-us/current.wind.moderate.local.dialog | 0 .../en-us/current.wind.moderate.location.dialog | 0 .../en-us/current.wind.strong.local.dialog | 0 .../en-us/current.wind.strong.location.dialog | 0 .../en-us/currrent.clouds.alternative.local.dialog | 0 .../en-us/daily.clear.alternative.local.dialog | 0 .../en-us/daily.clear.alternative.location.dialog | 0 .../en-us/daily.clear.not.expected.local.dialog | 0 .../en-us/daily.clear.not.expected.location.dialog | 0 .../en-us/daily.clouds.alternative.local.dialog | 0 .../en-us/daily.clouds.alternative.location.dialog | 0 .../en-us/daily.clouds.not.expected.local.dialog | 0 .../en-us/daily.clouds.not.expected.location.dialog | 0 .../en-us/daily.condition.expected.local.dialog | 0 .../en-us/daily.condition.expected.location.dialog | 0 .../en-us/daily.fog.alternative.local.dialog | 0 .../en-us/daily.fog.alternative.location.dialog | 0 .../en-us/daily.fog.not.expected.local.dialog | 0 .../en-us/daily.fog.not.expected.location.dialog | 0 {dialog => locale}/en-us/daily.humidity.local.dialog | 0 .../en-us/daily.humidity.location.dialog | 0 .../en-us/daily.precipitation.next.local.dialog | 0 .../en-us/daily.precipitation.next.location.dialog | 0 .../en-us/daily.precipitation.next.none.local.dialog | 0 .../daily.precipitation.next.none.location.dialog | 0 .../en-us/daily.rain.alternative.local.dialog | 0 .../en-us/daily.rain.alternative.location.dialog | 0 .../en-us/daily.rain.not.expected.local.dialog | 0 .../en-us/daily.rain.not.expected.location.dialog | 0 .../en-us/daily.snow.alternative.location.dialog | 0 .../en-us/daily.snow.not.expected.local.dialog | 0 .../en-us/daily.snow.not.expected.location.dialog | 0 {dialog => locale}/en-us/daily.sunrise.local.dialog | 0 .../en-us/daily.sunrise.location.dialog | 0 {dialog => locale}/en-us/daily.sunset.local.dialog | 0 .../en-us/daily.sunset.location.dialog | 0 .../en-us/daily.temperature.high.local.dialog | 0 .../en-us/daily.temperature.high.location.dialog | 0 .../en-us/daily.temperature.local.dialog | 0 .../en-us/daily.temperature.location.dialog | 0 .../en-us/daily.temperature.low.local.dialog | 0 .../en-us/daily.temperature.low.location.dialog | 0 .../daily.thunderstorm.alternative.local.dialog | 0 .../daily.thunderstorm.alternative.location.dialog | 0 .../daily.thunderstorm.not.expected.local.dialog | 0 .../daily.thunderstorm.not.expected.location.dialog | 0 {dialog => locale}/en-us/daily.weather.local.dialog | 0 .../en-us/daily.weather.location.dialog | 0 .../en-us/daily.wind.light.local.dialog | 0 .../en-us/daily.wind.light.location.dialog | 0 .../en-us/daily.wind.moderate.local.dialog | 0 .../en-us/daily.wind.moderate.location.dialog | 0 .../en-us/daily.wind.strong.local.dialog | 0 .../en-us/daily.wind.strong.location.dialog | 0 {dialog => locale}/en-us/do not know.dialog | 0 {vocab => locale}/en-us/do.i.need.an.umbrella.intent | 0 {dialog => locale}/en-us/east.dialog | 0 {dialog => locale}/en-us/fahrenheit.dialog | 0 .../en-us/forty-eight.hours.available.dialog | 0 {dialog => locale}/en-us/from.day.dialog | 0 {dialog => locale}/en-us/heavy.dialog | 0 .../en-us/hourly.condition.alternative.local.dialog | 0 .../hourly.condition.alternative.location.dialog | 0 .../en-us/hourly.condition.expected.local.dialog | 0 .../en-us/hourly.condition.expected.location.dialog | 0 .../en-us/hourly.precipitation.next.local.dialog | 0 .../en-us/hourly.precipitation.next.location.dialog | 0 .../en-us/hourly.temperature.local.dialog | 0 .../en-us/hourly.temperature.location.dialog | 0 {dialog => locale}/en-us/hourly.weather.local.dialog | 0 .../en-us/hourly.weather.location.dialog | 0 {dialog => locale}/en-us/humidity.dialog | 0 {dialog => locale}/en-us/light.dialog | 0 {dialog => locale}/en-us/location.not.found.dialog | 0 {regex => locale}/en-us/location.rx | 0 {dialog => locale}/en-us/meters per second.dialog | 0 {dialog => locale}/en-us/miles per hour.dialog | 0 {dialog => locale}/en-us/no.forecast.dialog | 0 {dialog => locale}/en-us/north.dialog | 0 {dialog => locale}/en-us/northeast.dialog | 0 {dialog => locale}/en-us/northwest.dialog | 0 {dialog => locale}/en-us/percentage.number.dialog | 0 {dialog => locale}/en-us/rain.dialog | 0 {dialog => locale}/en-us/seven.days.available.dialog | 0 {vocab => locale}/en-us/simple.temperature.intent | 0 {dialog => locale}/en-us/sky is clear.future.dialog | 0 {dialog => locale}/en-us/snow.dialog | 0 {dialog => locale}/en-us/south.dialog | 0 {dialog => locale}/en-us/southeast.dialog | 0 {dialog => locale}/en-us/southwest.dialog | 0 {dialog => locale}/en-us/storm.dialog | 0 {dialog => locale}/en-us/west.dialog | 0 .../en-us/what.is.multi.day.forecast.intent | 0 {dialog => locale}/es-es/E.dialog | 0 {vocab => locale}/es-es/Forecast.voc | 0 {vocab => locale}/es-es/Humidity.voc | 0 {vocab => locale}/es-es/Later.voc | 0 {vocab => locale}/es-es/Location.voc | 0 {dialog => locale}/es-es/N.dialog | 0 {dialog => locale}/es-es/NE.dialog | 0 {dialog => locale}/es-es/NW.dialog | 0 {vocab => locale}/es-es/Next.voc | 0 {vocab => locale}/es-es/Precipitation.voc | 0 {vocab => locale}/es-es/Query.voc | 0 {dialog => locale}/es-es/S.dialog | 0 {dialog => locale}/es-es/SE.dialog | 0 {dialog => locale}/es-es/SW.dialog | 0 {vocab => locale}/es-es/Sunrise.voc | 0 {vocab => locale}/es-es/Sunset.voc | 0 {dialog => locale}/es-es/W.dialog | 0 {vocab => locale}/es-es/Weather.voc | 0 {vocab => locale}/es-es/WeatherType.voc | 0 {vocab => locale}/es-es/Windy.voc | 0 {dialog => locale}/es-es/celsius.dialog | 0 .../es-es/current.local.weather.dialog | 0 {dialog => locale}/es-es/current.weather.dialog | 0 {dialog => locale}/es-es/do not know.dialog | 0 {dialog => locale}/es-es/fahrenheit.dialog | 0 .../es-es/forecast.local.weather.dialog | 0 {dialog => locale}/es-es/forecast.weather.dialog | 0 {dialog => locale}/es-es/heavy.dialog | 0 {dialog => locale}/es-es/hour.local.weather.dialog | 0 {dialog => locale}/es-es/hour.weather.dialog | 0 {dialog => locale}/es-es/humidity.dialog | 0 {dialog => locale}/es-es/light.dialog | 0 {dialog => locale}/es-es/location.not.found.dialog | 0 {regex => locale}/es-es/location.rx | 0 {dialog => locale}/es-es/meters per second.dialog | 0 {dialog => locale}/es-es/miles per hour.dialog | 0 {dialog => locale}/es-es/no forecast.dialog | 0 .../es-es/no precipitation expected.dialog | 0 .../es-es/precipitation expected.dialog | 0 {dialog => locale}/es-es/rain.dialog | 0 {dialog => locale}/es-es/report.condition.dialog | 0 .../es-es/report.future.condition.dialog | 0 {dialog => locale}/es-es/sky is clear.future.dialog | 0 {dialog => locale}/es-es/snow.dialog | 0 {dialog => locale}/es-es/wind.speed.dialog | 0 {dialog => locale}/es-es/wind.speed.dir.dialog | 0 {dialog => locale}/es-es/winds.dialog | 0 {dialog => locale}/fr-fr/E.dialog | 0 {vocab => locale}/fr-fr/Forecast.voc | 0 {vocab => locale}/fr-fr/Humidity.voc | 0 {vocab => locale}/fr-fr/Later.voc | 0 {vocab => locale}/fr-fr/Location.voc | 0 {dialog => locale}/fr-fr/N.dialog | 0 {dialog => locale}/fr-fr/NE.dialog | 0 {dialog => locale}/fr-fr/NW.dialog | 0 {vocab => locale}/fr-fr/Next.voc | 0 {vocab => locale}/fr-fr/Precipitation.voc | 0 {vocab => locale}/fr-fr/Query.voc | 0 {dialog => locale}/fr-fr/S.dialog | 0 {dialog => locale}/fr-fr/SE.dialog | 0 {dialog => locale}/fr-fr/SW.dialog | 0 {vocab => locale}/fr-fr/Sunrise.voc | 0 {vocab => locale}/fr-fr/Sunset.voc | 0 {dialog => locale}/fr-fr/W.dialog | 0 {vocab => locale}/fr-fr/Weather.voc | 0 {vocab => locale}/fr-fr/WeatherType.voc | 0 {vocab => locale}/fr-fr/Windy.voc | 0 {dialog => locale}/fr-fr/celsius.dialog | 0 .../fr-fr/current.local.weather.dialog | 0 {dialog => locale}/fr-fr/current.weather.dialog | 0 {dialog => locale}/fr-fr/do not know.dialog | 0 {dialog => locale}/fr-fr/fahrenheit.dialog | 0 .../fr-fr/forecast.local.weather.dialog | 0 {dialog => locale}/fr-fr/forecast.weather.dialog | 0 {dialog => locale}/fr-fr/heavy.dialog | 0 {dialog => locale}/fr-fr/hour.local.weather.dialog | 0 {dialog => locale}/fr-fr/hour.weather.dialog | 0 {dialog => locale}/fr-fr/humidity.dialog | 0 {dialog => locale}/fr-fr/light.dialog | 0 {dialog => locale}/fr-fr/location.not.found.dialog | 0 {regex => locale}/fr-fr/location.rx | 0 {dialog => locale}/fr-fr/meters per second.dialog | 0 {dialog => locale}/fr-fr/miles per hour.dialog | 0 {dialog => locale}/fr-fr/no forecast.dialog | 0 .../fr-fr/no precipitation expected.dialog | 0 .../fr-fr/precipitation expected.dialog | 0 {dialog => locale}/fr-fr/rain.dialog | 0 {dialog => locale}/fr-fr/report.condition.dialog | 0 .../fr-fr/report.future.condition.dialog | 0 {dialog => locale}/fr-fr/sky is clear.future.dialog | 0 {dialog => locale}/fr-fr/snow.dialog | 0 {dialog => locale}/fr-fr/wind.speed.dialog | 0 {dialog => locale}/fr-fr/wind.speed.dir.dialog | 0 {dialog => locale}/fr-fr/winds.dialog | 0 {vocab => locale}/gl-es/Clear.voc | 0 {vocab => locale}/gl-es/ClearAlternatives.voc | 0 {vocab => locale}/gl-es/Cloudy.voc | 0 {vocab => locale}/gl-es/CloudyAlternatives.voc | 0 {vocab => locale}/gl-es/Cold.voc | 0 {vocab => locale}/gl-es/ConfirmQuery.voc | 0 {vocab => locale}/gl-es/ConfirmQueryCurrent.voc | 0 {vocab => locale}/gl-es/ConfirmQueryFuture.voc | 0 {vocab => locale}/gl-es/Couple.voc | 0 {dialog => locale}/gl-es/E.dialog | 0 {vocab => locale}/gl-es/Fahrenheit.voc | 0 {vocab => locale}/gl-es/FogAlternatives.voc | 0 {vocab => locale}/gl-es/Foggy.voc | 0 {vocab => locale}/gl-es/Forecast.voc | 0 {vocab => locale}/gl-es/High.voc | 0 {vocab => locale}/gl-es/Hot.voc | 0 {vocab => locale}/gl-es/How.voc | 0 {vocab => locale}/gl-es/Humidity.voc | 0 {vocab => locale}/gl-es/Later.voc | 0 {vocab => locale}/gl-es/Location.voc | 0 {vocab => locale}/gl-es/Low.voc | 0 {dialog => locale}/gl-es/N.dialog | 0 {dialog => locale}/gl-es/NE.dialog | 0 {dialog => locale}/gl-es/NW.dialog | 0 {vocab => locale}/gl-es/Next.voc | 0 {vocab => locale}/gl-es/Now.voc | 0 {vocab => locale}/gl-es/Precipitation.voc | 0 {vocab => locale}/gl-es/Query.voc | 0 {vocab => locale}/gl-es/RainAlternatives.voc | 0 {vocab => locale}/gl-es/Raining.voc | 0 {vocab => locale}/gl-es/RelativeDay.voc | 0 {vocab => locale}/gl-es/RelativeTime.voc | 0 {dialog => locale}/gl-es/S.dialog | 0 {dialog => locale}/gl-es/SE.dialog | 0 {dialog => locale}/gl-es/SW.dialog | 0 {vocab => locale}/gl-es/SnowAlternatives.voc | 0 {vocab => locale}/gl-es/Snowing.voc | 0 {vocab => locale}/gl-es/Storm.voc | 0 {vocab => locale}/gl-es/StormAlternatives.voc | 0 {vocab => locale}/gl-es/Sunrise.voc | 0 {vocab => locale}/gl-es/Sunset.voc | 0 {vocab => locale}/gl-es/Temperature.voc | 0 {vocab => locale}/gl-es/ThreeDay.voc | 0 {vocab => locale}/gl-es/Today.voc | 0 {vocab => locale}/gl-es/Unit.entity | 0 {vocab => locale}/gl-es/Unit.voc | 0 {dialog => locale}/gl-es/W.dialog | 0 {vocab => locale}/gl-es/Weather.voc | 0 {vocab => locale}/gl-es/WeatherType.voc | 0 {vocab => locale}/gl-es/Week.voc | 0 {vocab => locale}/gl-es/Weekend.voc | 0 {vocab => locale}/gl-es/When.voc | 0 {vocab => locale}/gl-es/Windy.voc | 0 .../gl-es/affirmative.condition.dialog | 0 {dialog => locale}/gl-es/and.dialog | 0 .../gl-es/at.time.affirmative.condition.dialog | 0 .../gl-es/at.time.cond.alternative.dialog | 0 .../at.time.forecast.affirmative.condition.dialog | 0 .../gl-es/at.time.forecast.cond.alternative.dialog | 0 ....time.forecast.local.affirmative.condition.dialog | 0 .../at.time.forecast.local.cond.alternative.dialog | 0 .../at.time.forecast.local.no.cond.predicted.dialog | 0 .../gl-es/at.time.forecast.no.cond.predicted.dialog | 0 .../gl-es/at.time.local.affirmative.condition.dialog | 0 .../gl-es/at.time.local.cond.alternative.dialog | 0 .../gl-es/at.time.local.high.temperature.dialog | 0 .../gl-es/at.time.local.low.temperature.dialog | 0 .../gl-es/at.time.local.no.cond.predicted.dialog | 0 .../gl-es/at.time.local.temperature.dialog | 0 .../gl-es/at.time.local.weather.dialog | 0 .../gl-es/at.time.no.cond.predicted.dialog | 0 {dialog => locale}/gl-es/cant.get.forecast.dialog | 0 {dialog => locale}/gl-es/celsius.dialog | 0 {dialog => locale}/gl-es/clear sky.dialog | 0 {dialog => locale}/gl-es/clear.alternative.dialog | 0 {dialog => locale}/gl-es/clear.dialog | 0 {dialog => locale}/gl-es/clear.future.dialog | 0 {dialog => locale}/gl-es/cloudy.alternative.dialog | 0 {dialog => locale}/gl-es/condition.category.value | 0 .../gl-es/current.high.temperature.dialog | 0 {dialog => locale}/gl-es/current.hot.dialog | 0 {dialog => locale}/gl-es/current.local.cold.dialog | 0 .../gl-es/current.local.high.temperature.dialog | 0 {dialog => locale}/gl-es/current.local.hot.dialog | 0 .../gl-es/current.local.low.temperature.dialog | 0 .../gl-es/current.local.temperature.dialog | 0 .../gl-es/current.local.weather.dialog | 0 .../gl-es/current.low.temperature.dialog | 0 {dialog => locale}/gl-es/current.temperature.dialog | 0 {dialog => locale}/gl-es/current.weather.dialog | 0 {dialog => locale}/gl-es/do not know.dialog | 0 {vocab => locale}/gl-es/do.i.need.an.umbrella.intent | 0 {dialog => locale}/gl-es/fahrenheit.dialog | 0 {dialog => locale}/gl-es/fog.alternative.dialog | 0 .../gl-es/forecast.affirmative.condition.dialog | 0 .../gl-es/forecast.clear.alternative.dialog | 0 .../gl-es/forecast.cloudy.alternative.dialog | 0 .../gl-es/forecast.foggy.alternative.dialog | 0 {dialog => locale}/gl-es/forecast.hard.wind.dialog | 0 .../gl-es/forecast.high.temperature.dialog | 0 {dialog => locale}/gl-es/forecast.hot.dialog | 0 {dialog => locale}/gl-es/forecast.light.wind.dialog | 0 .../forecast.local.affirmative.condition.dialog | 0 .../gl-es/forecast.local.clear.alternative.dialog | 0 .../gl-es/forecast.local.cloudy.alternative.dialog | 0 .../gl-es/forecast.local.foggy.alternative.dialog | 0 .../gl-es/forecast.local.hard.wind.dialog | 0 .../gl-es/forecast.local.high.temperature.dialog | 0 {dialog => locale}/gl-es/forecast.local.hot.dialog | 0 .../gl-es/forecast.local.light.wind.dialog | 0 .../gl-es/forecast.local.low.temperature.dialog | 0 .../gl-es/forecast.local.medium.wind.dialog | 0 .../gl-es/forecast.local.no.clear.predicted.dialog | 0 .../gl-es/forecast.local.no.cloudy.predicted.dialog | 0 .../gl-es/forecast.local.no.fog.predicted.dialog | 0 .../gl-es/forecast.local.no.rain.predicted.dialog | 0 .../gl-es/forecast.local.no.snow.predicted.dialog | 0 .../gl-es/forecast.local.no.storm.predicted.dialog | 0 .../gl-es/forecast.local.raining.alternative.dialog | 0 .../gl-es/forecast.local.storm.alternative.dialog | 0 .../gl-es/forecast.local.temperature.dialog | 0 .../gl-es/forecast.local.weather.dialog | 0 .../gl-es/forecast.low.temperature.dialog | 0 {dialog => locale}/gl-es/forecast.medium.wind.dialog | 0 .../gl-es/forecast.no.clear.predicted.dialog | 0 .../gl-es/forecast.no.cloudy.predicted.dialog | 0 .../gl-es/forecast.no.fog.predicted.dialog | 0 .../gl-es/forecast.no.rain.predicted.dialog | 0 .../gl-es/forecast.no.snow.predicted.dialog | 0 .../gl-es/forecast.no.storm.predicted.dialog | 0 .../gl-es/forecast.raining.alternative.dialog | 0 .../gl-es/forecast.snowing.alternative.dialog | 0 .../gl-es/forecast.storm.alternative.dialog | 0 {dialog => locale}/gl-es/forecast.temperature.dialog | 0 {dialog => locale}/gl-es/forecast.weather.dialog | 0 {dialog => locale}/gl-es/from.day.dialog | 0 {dialog => locale}/gl-es/hard.wind.dialog | 0 {dialog => locale}/gl-es/heavy.dialog | 0 {dialog => locale}/gl-es/hour.local.weather.dialog | 0 {dialog => locale}/gl-es/hour.weather.dialog | 0 {dialog => locale}/gl-es/humidity.dialog | 0 {dialog => locale}/gl-es/light.dialog | 0 {dialog => locale}/gl-es/light.wind.dialog | 0 .../gl-es/local.affirmative.condition.dialog | 0 .../gl-es/local.clear.alternative.dialog | 0 .../gl-es/local.cloudy.alternative.dialog | 0 .../gl-es/local.foggy.alternative.dialog | 0 {dialog => locale}/gl-es/local.hard.wind.dialog | 0 {dialog => locale}/gl-es/local.light.wind.dialog | 0 {dialog => locale}/gl-es/local.medium.wind.dialog | 0 .../gl-es/local.no.cloudy.predicted.dialog | 0 .../gl-es/local.no.fog.predicted.dialog | 0 .../gl-es/local.no.rain.predicted.dialog | 0 .../gl-es/local.no.snow.predicted.dialog | 0 .../gl-es/local.no.storm.predicted.dialog | 0 .../gl-es/local.raining.alternative.dialog | 0 .../gl-es/local.snowing.alternative.dialog | 0 .../gl-es/local.storm.alternative.dialog | 0 {dialog => locale}/gl-es/location.not.found.dialog | 0 {regex => locale}/gl-es/location.rx | 0 {dialog => locale}/gl-es/medium.wind.dialog | 0 {dialog => locale}/gl-es/meters per second.dialog | 0 {dialog => locale}/gl-es/miles per hour.dialog | 0 {dialog => locale}/gl-es/min.max.dialog | 0 .../gl-es/no precipitation expected.dialog | 0 {dialog => locale}/gl-es/no.clear.predicted.dialog | 0 {dialog => locale}/gl-es/no.cloudy.predicted.dialog | 0 {dialog => locale}/gl-es/no.fog.predicted.dialog | 0 {dialog => locale}/gl-es/no.forecast.dialog | 0 {dialog => locale}/gl-es/no.rain.predicted.dialog | 0 {dialog => locale}/gl-es/no.snow.predicted.dialog | 0 {dialog => locale}/gl-es/no.storm.predicted.dialog | 0 {dialog => locale}/gl-es/on.date.dialog | 0 {dialog => locale}/gl-es/on.dialog | 0 {dialog => locale}/gl-es/percentage.number.dialog | 0 .../gl-es/precipitation expected.dialog | 0 {dialog => locale}/gl-es/rain.dialog | 0 {dialog => locale}/gl-es/raining.alternative.dialog | 0 .../gl-es/report.condition.at.location.dialog | 0 {dialog => locale}/gl-es/report.condition.dialog | 0 .../gl-es/report.condition.future.at.location.dialog | 0 .../gl-es/report.condition.future.dialog | 0 {dialog => locale}/gl-es/report.wind.dialog | 0 {vocab => locale}/gl-es/simple.temperature.intent | 0 {dialog => locale}/gl-es/sky is clear.future.dialog | 0 {dialog => locale}/gl-es/snow.dialog | 0 {dialog => locale}/gl-es/snowing.alternative.dialog | 0 {dialog => locale}/gl-es/storm.alternative.dialog | 0 {dialog => locale}/gl-es/storm.dialog | 0 {dialog => locale}/gl-es/sunrise.dialog | 0 {dialog => locale}/gl-es/sunset.dialog | 0 .../gl-es/tonight.local.weather.dialog | 0 .../gl-es/weekly.condition.on.day.dialog | 0 .../gl-es/weekly.conditions.mostly.one.dialog | 0 .../gl-es/weekly.conditions.seq.extra.dialog | 0 .../gl-es/weekly.conditions.seq.period.dialog | 0 .../gl-es/weekly.conditions.seq.start.dialog | 0 .../gl-es/weekly.conditions.some.days.dialog | 0 {dialog => locale}/gl-es/weekly.temp.range.dialog | 0 .../gl-es/what.is.multi.day.forecast.intent | 0 .../gl-es/what.is.three.day.forecast.intent | 0 .../gl-es/what.is.three.day.forecast.location.intent | 0 .../gl-es/what.is.two.day.forecast.intent | 0 {vocab => locale}/gl-es/whats.weather.like.intent | 0 {dialog => locale}/gl-es/wind.speed.dialog | 0 {dialog => locale}/gl-es/wind.speed.dir.dialog | 0 {dialog => locale}/gl-es/wind.strength.hard.dialog | 0 {dialog => locale}/gl-es/wind.strength.light.dialog | 0 {dialog => locale}/gl-es/wind.strength.medium.dialog | 0 {dialog => locale}/gl-es/winds.dialog | 0 {vocab => locale}/it-it/Clear.voc | 0 {vocab => locale}/it-it/ClearAlternatives.voc | 0 {vocab => locale}/it-it/Cloudy.voc | 0 {vocab => locale}/it-it/CloudyAlternatives.voc | 0 {vocab => locale}/it-it/Cold.voc | 0 {vocab => locale}/it-it/ConfirmQuery.voc | 0 {dialog => locale}/it-it/E.dialog | 0 {vocab => locale}/it-it/Fahrenheit.voc | 0 {vocab => locale}/it-it/Foggy.voc | 0 {vocab => locale}/it-it/FoggyAlternatives.voc | 0 {vocab => locale}/it-it/Forecast.voc | 0 {vocab => locale}/it-it/High.voc | 0 {vocab => locale}/it-it/Hot.voc | 0 {vocab => locale}/it-it/Humidity.voc | 0 {vocab => locale}/it-it/Later.voc | 0 {vocab => locale}/it-it/Location.voc | 0 {vocab => locale}/it-it/Low.voc | 0 {dialog => locale}/it-it/N.dialog | 0 {dialog => locale}/it-it/NE.dialog | 0 {dialog => locale}/it-it/NW.dialog | 0 {vocab => locale}/it-it/Next.voc | 0 {vocab => locale}/it-it/Precipitation.voc | 0 {vocab => locale}/it-it/Query.voc | 0 {vocab => locale}/it-it/RainAlternatives.voc | 0 {vocab => locale}/it-it/Raining.voc | 0 {dialog => locale}/it-it/S.dialog | 0 {dialog => locale}/it-it/SE.dialog | 0 {dialog => locale}/it-it/SW.dialog | 0 {vocab => locale}/it-it/SnowAlternatives.voc | 0 {vocab => locale}/it-it/Snowing.voc | 0 {vocab => locale}/it-it/Sunrise.voc | 0 {vocab => locale}/it-it/Sunset.voc | 0 {vocab => locale}/it-it/Temperature.voc | 0 {vocab => locale}/it-it/Unit.entity | 0 {vocab => locale}/it-it/Unit.voc | 0 {dialog => locale}/it-it/W.dialog | 0 {vocab => locale}/it-it/Weather.voc | 0 {vocab => locale}/it-it/WeatherType.voc | 0 {vocab => locale}/it-it/Weekend.voc | 0 {vocab => locale}/it-it/Windy.voc | 0 .../it-it/affirmative.condition.dialog | 0 {dialog => locale}/it-it/celsius.dialog | 0 {dialog => locale}/it-it/clear.alternative.dialog | 0 {dialog => locale}/it-it/cloudy.alternative.dialog | 0 .../it-it/current.high.temperature.dialog | 0 {dialog => locale}/it-it/current.hot.dialog | 0 {dialog => locale}/it-it/current.local.cold.dialog | 0 .../it-it/current.local.high.temperature.dialog | 0 {dialog => locale}/it-it/current.local.hot.dialog | 0 .../it-it/current.local.low.temperature.dialog | 0 .../it-it/current.local.temperature.dialog | 0 .../it-it/current.local.weather.dialog | 0 .../it-it/current.low.temperature.dialog | 0 {dialog => locale}/it-it/current.temperature.dialog | 0 {dialog => locale}/it-it/current.weather.dialog | 0 {dialog => locale}/it-it/do not know.dialog | 0 {vocab => locale}/it-it/do.i.need.an.umbrella.intent | 0 {dialog => locale}/it-it/fahrenheit.dialog | 0 {dialog => locale}/it-it/fog.alternative.dialog | 0 .../it-it/forecast.affirmative.condition.dialog | 0 .../it-it/forecast.clear.alternative.dialog | 0 .../it-it/forecast.cloudy.alternative.dialog | 0 .../it-it/forecast.foggy.alternative.dialog | 0 {dialog => locale}/it-it/forecast.hard.wind.dialog | 0 .../it-it/forecast.high.temperature.dialog | 0 {dialog => locale}/it-it/forecast.hot.dialog | 0 {dialog => locale}/it-it/forecast.light.wind.dialog | 0 .../forecast.local.affirmative.condition.dialog | 0 .../it-it/forecast.local.clear.alternative.dialog | 0 .../it-it/forecast.local.cloudy.alternative.dialog | 0 .../it-it/forecast.local.foggy.alternative.dialog | 0 .../it-it/forecast.local.hard.wind.dialog | 0 .../it-it/forecast.local.high.temperature.dialog | 0 {dialog => locale}/it-it/forecast.local.hot.dialog | 0 .../it-it/forecast.local.light.wind.dialog | 0 .../it-it/forecast.local.low.temperature.dialog | 0 .../it-it/forecast.local.medium.wind.dialog | 0 .../it-it/forecast.local.no.clear.predicted.dialog | 0 .../it-it/forecast.local.no.cloudy.predicted.dialog | 0 .../it-it/forecast.local.no.fog.predicted.dialog | 0 .../it-it/forecast.local.no.rain.predicted.dialog | 0 .../it-it/forecast.local.no.snow.predicted.dialog | 0 .../it-it/forecast.local.raining.alternative.dialog | 0 .../it-it/forecast.local.temperature.dialog | 0 .../it-it/forecast.local.weather.dialog | 0 {dialog => locale}/it-it/forecast.medium.wind.dialog | 0 .../it-it/forecast.no.clear.predicted.dialog | 0 .../it-it/forecast.no.cloudy.predicted.dialog | 0 .../it-it/forecast.no.fog.predicted.dialog | 0 .../it-it/forecast.no.rain.predicted.dialog | 0 .../it-it/forecast.no.snow.predicted.dialog | 0 .../it-it/forecast.raining.alternative.dialog | 0 .../it-it/forecast.snowing.alternative.dialog | 0 {dialog => locale}/it-it/forecast.temperature.dialog | 0 {dialog => locale}/it-it/forecast.weather.dialog | 0 {dialog => locale}/it-it/hard.wind.dialog | 0 {dialog => locale}/it-it/heavy.dialog | 0 {dialog => locale}/it-it/hour.local.weather.dialog | 0 {dialog => locale}/it-it/hour.weather.dialog | 0 {dialog => locale}/it-it/humidity.dialog | 0 {dialog => locale}/it-it/light.dialog | 0 {dialog => locale}/it-it/light.wind.dialog | 0 .../it-it/local.affirmative.condition.dialog | 0 .../it-it/local.clear.alternative.dialog | 0 .../it-it/local.cloudy.alternative.dialog | 0 .../it-it/local.foggy.alternative.dialog | 0 {dialog => locale}/it-it/local.hard.wind.dialog | 0 {dialog => locale}/it-it/local.light.wind.dialog | 0 {dialog => locale}/it-it/local.medium.wind.dialog | 0 .../it-it/local.no.fog.predicted.dialog | 0 .../it-it/local.no.rain.predicted.dialog | 0 .../it-it/local.no.snow.predicted.dialog | 0 .../it-it/local.raining.alternative.dialog | 0 .../it-it/local.snowing.alternative.dialog | 0 {dialog => locale}/it-it/location.not.found.dialog | 0 {regex => locale}/it-it/location.rx | 0 {dialog => locale}/it-it/medium.wind.dialog | 0 {dialog => locale}/it-it/meters per second.dialog | 0 {dialog => locale}/it-it/miles per hour.dialog | 0 {dialog => locale}/it-it/min.max.dialog | 0 {dialog => locale}/it-it/no forecast.dialog | 0 .../it-it/no precipitation expected.dialog | 0 {dialog => locale}/it-it/no.clear.predicted.dialog | 0 {dialog => locale}/it-it/no.cloudy.predicted.dialog | 0 {dialog => locale}/it-it/no.fog.predicted.dialog | 0 {dialog => locale}/it-it/no.rain.predicted.dialog | 0 {dialog => locale}/it-it/no.snow.predicted.dialog | 0 .../it-it/precipitation expected.dialog | 0 {dialog => locale}/it-it/rain.dialog | 0 {dialog => locale}/it-it/raining.alternative.dialog | 0 {dialog => locale}/it-it/report.condition.dialog | 0 .../it-it/report.future.condition.dialog | 0 {vocab => locale}/it-it/simple.temperature.intent | 0 {dialog => locale}/it-it/sky is clear.future.dialog | 0 {dialog => locale}/it-it/snow.dialog | 0 {dialog => locale}/it-it/snowing.alternative.dialog | 0 .../it-it/what.is.multi.day.forecast.intent | 0 .../it-it/what.is.three.day.forecast.intent | 0 .../it-it/what.is.three.day.forecast.location.intent | 0 .../it-it/what.is.two.day.forecast.intent | 0 {vocab => locale}/it-it/whats.weather.like.intent | 0 {dialog => locale}/it-it/wind.speed.dialog | 0 {dialog => locale}/it-it/wind.speed.dir.dialog | 0 {dialog => locale}/it-it/winds.dialog | 0 {dialog => locale}/nl-nl/E.dialog | 0 {vocab => locale}/nl-nl/Forecast.voc | 0 {vocab => locale}/nl-nl/Humidity.voc | 0 {vocab => locale}/nl-nl/Later.voc | 0 {vocab => locale}/nl-nl/Location.voc | 0 {dialog => locale}/nl-nl/N.dialog | 0 {dialog => locale}/nl-nl/NE.dialog | 0 {dialog => locale}/nl-nl/NW.dialog | 0 {vocab => locale}/nl-nl/Next.voc | 0 {vocab => locale}/nl-nl/Precipitation.voc | 0 {vocab => locale}/nl-nl/Query.voc | 0 {dialog => locale}/nl-nl/S.dialog | 0 {dialog => locale}/nl-nl/SE.dialog | 0 {dialog => locale}/nl-nl/SW.dialog | 0 {vocab => locale}/nl-nl/Sunrise.voc | 0 {vocab => locale}/nl-nl/Sunset.voc | 0 {dialog => locale}/nl-nl/W.dialog | 0 {vocab => locale}/nl-nl/Weather.voc | 0 {vocab => locale}/nl-nl/WeatherType.voc | 0 {vocab => locale}/nl-nl/Windy.voc | 0 {dialog => locale}/nl-nl/celsius.dialog | 0 .../nl-nl/current.local.weather.dialog | 0 {dialog => locale}/nl-nl/current.weather.dialog | 0 {dialog => locale}/nl-nl/do not know.dialog | 0 {dialog => locale}/nl-nl/fahrenheit.dialog | 0 .../nl-nl/forecast.local.weather.dialog | 0 {dialog => locale}/nl-nl/forecast.weather.dialog | 0 {dialog => locale}/nl-nl/heavy.dialog | 0 {dialog => locale}/nl-nl/hour.local.weather.dialog | 0 {dialog => locale}/nl-nl/hour.weather.dialog | 0 {dialog => locale}/nl-nl/humidity.dialog | 0 {dialog => locale}/nl-nl/light.dialog | 0 {dialog => locale}/nl-nl/location.not.found.dialog | 0 {regex => locale}/nl-nl/location.rx | 0 {dialog => locale}/nl-nl/meters per second.dialog | 0 {dialog => locale}/nl-nl/miles per hour.dialog | 0 {dialog => locale}/nl-nl/no forecast.dialog | 0 .../nl-nl/no precipitation expected.dialog | 0 .../nl-nl/precipitation expected.dialog | 0 {dialog => locale}/nl-nl/rain.dialog | 0 {dialog => locale}/nl-nl/report.condition.dialog | 0 .../nl-nl/report.future.condition.dialog | 0 {dialog => locale}/nl-nl/sky is clear.future.dialog | 0 {dialog => locale}/nl-nl/snow.dialog | 0 {dialog => locale}/nl-nl/wind.speed.dialog | 0 {dialog => locale}/nl-nl/wind.speed.dir.dialog | 0 {dialog => locale}/nl-nl/winds.dialog | 0 {vocab => locale}/pt-br/Clear.voc | 0 {vocab => locale}/pt-br/ClearAlternatives.voc | 0 {vocab => locale}/pt-br/Cloudy.voc | 0 {vocab => locale}/pt-br/CloudyAlternatives.voc | 0 {vocab => locale}/pt-br/Cold.voc | 0 {vocab => locale}/pt-br/ConfirmQuery.voc | 0 {vocab => locale}/pt-br/ConfirmQueryCurrent.voc | 0 {vocab => locale}/pt-br/ConfirmQueryFuture.voc | 0 {vocab => locale}/pt-br/Couple.voc | 0 {dialog => locale}/pt-br/E.dialog | 0 {vocab => locale}/pt-br/Fahrenheit.voc | 0 {vocab => locale}/pt-br/FogAlternatives.voc | 0 {vocab => locale}/pt-br/Foggy.voc | 0 {vocab => locale}/pt-br/Forecast.voc | 0 {vocab => locale}/pt-br/High.voc | 0 {vocab => locale}/pt-br/Hot.voc | 0 {vocab => locale}/pt-br/How.voc | 0 {vocab => locale}/pt-br/Humidity.voc | 0 {vocab => locale}/pt-br/Later.voc | 0 {vocab => locale}/pt-br/Location.voc | 0 {vocab => locale}/pt-br/Low.voc | 0 {dialog => locale}/pt-br/N.dialog | 0 {dialog => locale}/pt-br/NE.dialog | 0 {dialog => locale}/pt-br/NW.dialog | 0 {vocab => locale}/pt-br/Next.voc | 0 {vocab => locale}/pt-br/Now.voc | 0 {vocab => locale}/pt-br/Precipitation.voc | 0 {vocab => locale}/pt-br/Query.voc | 0 {vocab => locale}/pt-br/RainAlternatives.voc | 0 {vocab => locale}/pt-br/Raining.voc | 0 {vocab => locale}/pt-br/RelativeDay.voc | 0 {vocab => locale}/pt-br/RelativeTime.voc | 0 {dialog => locale}/pt-br/S.dialog | 0 {dialog => locale}/pt-br/SE.dialog | 0 {dialog => locale}/pt-br/SW.dialog | 0 {vocab => locale}/pt-br/SnowAlternatives.voc | 0 {vocab => locale}/pt-br/Snowing.voc | 0 {vocab => locale}/pt-br/Storm.voc | 0 {vocab => locale}/pt-br/StormAlternatives.voc | 0 {vocab => locale}/pt-br/Sunrise.voc | 0 {vocab => locale}/pt-br/Sunset.voc | 0 {vocab => locale}/pt-br/Temperature.voc | 0 {vocab => locale}/pt-br/ThreeDay.voc | 0 {vocab => locale}/pt-br/Today.voc | 0 {vocab => locale}/pt-br/Unit.entity | 0 {vocab => locale}/pt-br/Unit.voc | 0 {dialog => locale}/pt-br/W.dialog | 0 {vocab => locale}/pt-br/Weather.voc | 0 {vocab => locale}/pt-br/WeatherType.voc | 0 {vocab => locale}/pt-br/Week.voc | 0 {vocab => locale}/pt-br/Weekend.voc | 0 {vocab => locale}/pt-br/When.voc | 0 {vocab => locale}/pt-br/Windy.voc | 0 .../pt-br/affirmative.condition.dialog | 0 {dialog => locale}/pt-br/and.dialog | 0 .../pt-br/at.time.affirmative.condition.dialog | 0 .../pt-br/at.time.cond.alternative.dialog | 0 .../at.time.forecast.affirmative.condition.dialog | 0 .../pt-br/at.time.forecast.cond.alternative.dialog | 0 ....time.forecast.local.affirmative.condition.dialog | 0 .../at.time.forecast.local.cond.alternative.dialog | 0 .../at.time.forecast.local.no.cond.predicted.dialog | 0 .../pt-br/at.time.forecast.no.cond.predicted.dialog | 0 .../pt-br/at.time.local.affirmative.condition.dialog | 0 .../pt-br/at.time.local.cond.alternative.dialog | 0 .../pt-br/at.time.local.high.temperature.dialog | 0 .../pt-br/at.time.local.low.temperature.dialog | 0 .../pt-br/at.time.local.no.cond.predicted.dialog | 0 .../pt-br/at.time.local.temperature.dialog | 0 .../pt-br/at.time.local.weather.dialog | 0 .../pt-br/at.time.no.cond.predicted.dialog | 0 {dialog => locale}/pt-br/cant.get.forecast.dialog | 0 {dialog => locale}/pt-br/celsius.dialog | 0 {dialog => locale}/pt-br/clear sky.dialog | 0 {dialog => locale}/pt-br/clear.alternative.dialog | 0 {dialog => locale}/pt-br/clear.dialog | 0 {dialog => locale}/pt-br/clear.future.dialog | 0 {dialog => locale}/pt-br/cloudy.alternative.dialog | 0 {dialog => locale}/pt-br/condition.category.value | 0 .../pt-br/current.high.temperature.dialog | 0 {dialog => locale}/pt-br/current.hot.dialog | 0 {dialog => locale}/pt-br/current.local.cold.dialog | 0 .../pt-br/current.local.high.temperature.dialog | 0 {dialog => locale}/pt-br/current.local.hot.dialog | 0 .../pt-br/current.local.low.temperature.dialog | 0 .../pt-br/current.local.temperature.dialog | 0 .../pt-br/current.local.weather.dialog | 0 .../pt-br/current.low.temperature.dialog | 0 {dialog => locale}/pt-br/current.temperature.dialog | 0 {dialog => locale}/pt-br/current.weather.dialog | 0 {dialog => locale}/pt-br/do not know.dialog | 0 {vocab => locale}/pt-br/do.i.need.an.umbrella.intent | 0 {dialog => locale}/pt-br/fahrenheit.dialog | 0 {dialog => locale}/pt-br/fog.alternative.dialog | 0 .../pt-br/forecast.affirmative.condition.dialog | 0 .../pt-br/forecast.clear.alternative.dialog | 0 .../pt-br/forecast.cloudy.alternative.dialog | 0 .../pt-br/forecast.foggy.alternative.dialog | 0 {dialog => locale}/pt-br/forecast.hard.wind.dialog | 0 .../pt-br/forecast.high.temperature.dialog | 0 {dialog => locale}/pt-br/forecast.hot.dialog | 0 {dialog => locale}/pt-br/forecast.light.wind.dialog | 0 .../forecast.local.affirmative.condition.dialog | 0 .../pt-br/forecast.local.clear.alternative.dialog | 0 .../pt-br/forecast.local.cloudy.alternative.dialog | 0 .../pt-br/forecast.local.foggy.alternative.dialog | 0 .../pt-br/forecast.local.hard.wind.dialog | 0 .../pt-br/forecast.local.high.temperature.dialog | 0 {dialog => locale}/pt-br/forecast.local.hot.dialog | 0 .../pt-br/forecast.local.light.wind.dialog | 0 .../pt-br/forecast.local.low.temperature.dialog | 0 .../pt-br/forecast.local.medium.wind.dialog | 0 .../pt-br/forecast.local.no.clear.predicted.dialog | 0 .../pt-br/forecast.local.no.cloudy.predicted.dialog | 0 .../pt-br/forecast.local.no.fog.predicted.dialog | 0 .../pt-br/forecast.local.no.rain.predicted.dialog | 0 .../pt-br/forecast.local.no.snow.predicted.dialog | 0 .../pt-br/forecast.local.no.storm.predicted.dialog | 0 .../pt-br/forecast.local.raining.alternative.dialog | 0 .../pt-br/forecast.local.storm.alternative.dialog | 0 .../pt-br/forecast.local.temperature.dialog | 0 .../pt-br/forecast.local.weather.dialog | 0 .../pt-br/forecast.low.temperature.dialog | 0 {dialog => locale}/pt-br/forecast.medium.wind.dialog | 0 .../pt-br/forecast.no.clear.predicted.dialog | 0 .../pt-br/forecast.no.cloudy.predicted.dialog | 0 .../pt-br/forecast.no.fog.predicted.dialog | 0 .../pt-br/forecast.no.rain.predicted.dialog | 0 .../pt-br/forecast.no.snow.predicted.dialog | 0 .../pt-br/forecast.no.storm.predicted.dialog | 0 .../pt-br/forecast.raining.alternative.dialog | 0 .../pt-br/forecast.snowing.alternative.dialog | 0 .../pt-br/forecast.storm.alternative.dialog | 0 {dialog => locale}/pt-br/forecast.temperature.dialog | 0 {dialog => locale}/pt-br/forecast.weather.dialog | 0 {dialog => locale}/pt-br/from.day.dialog | 0 {dialog => locale}/pt-br/hard.wind.dialog | 0 {dialog => locale}/pt-br/heavy.dialog | 0 {dialog => locale}/pt-br/hour.local.weather.dialog | 0 {dialog => locale}/pt-br/hour.weather.dialog | 0 {dialog => locale}/pt-br/humidity.dialog | 0 {dialog => locale}/pt-br/light.dialog | 0 {dialog => locale}/pt-br/light.wind.dialog | 0 .../pt-br/local.affirmative.condition.dialog | 0 .../pt-br/local.clear.alternative.dialog | 0 .../pt-br/local.cloudy.alternative.dialog | 0 .../pt-br/local.foggy.alternative.dialog | 0 {dialog => locale}/pt-br/local.hard.wind.dialog | 0 {dialog => locale}/pt-br/local.light.wind.dialog | 0 {dialog => locale}/pt-br/local.medium.wind.dialog | 0 .../pt-br/local.no.cloudy.predicted.dialog | 0 .../pt-br/local.no.fog.predicted.dialog | 0 .../pt-br/local.no.rain.predicted.dialog | 0 .../pt-br/local.no.snow.predicted.dialog | 0 .../pt-br/local.no.storm.predicted.dialog | 0 .../pt-br/local.raining.alternative.dialog | 0 .../pt-br/local.snowing.alternative.dialog | 0 .../pt-br/local.storm.alternative.dialog | 0 {dialog => locale}/pt-br/location.not.found.dialog | 0 {regex => locale}/pt-br/location.rx | 0 {dialog => locale}/pt-br/medium.wind.dialog | 0 {dialog => locale}/pt-br/meters per second.dialog | 0 {dialog => locale}/pt-br/miles per hour.dialog | 0 {dialog => locale}/pt-br/min.max.dialog | 0 .../pt-br/no precipitation expected.dialog | 0 {dialog => locale}/pt-br/no.clear.predicted.dialog | 0 {dialog => locale}/pt-br/no.cloudy.predicted.dialog | 0 {dialog => locale}/pt-br/no.fog.predicted.dialog | 0 {dialog => locale}/pt-br/no.forecast.dialog | 0 {dialog => locale}/pt-br/no.rain.predicted.dialog | 0 {dialog => locale}/pt-br/no.snow.predicted.dialog | 0 {dialog => locale}/pt-br/no.storm.predicted.dialog | 0 {dialog => locale}/pt-br/on.date.dialog | 0 {dialog => locale}/pt-br/on.dialog | 0 {dialog => locale}/pt-br/percentage.number.dialog | 0 .../pt-br/precipitation expected.dialog | 0 {dialog => locale}/pt-br/rain.dialog | 0 {dialog => locale}/pt-br/raining.alternative.dialog | 0 .../pt-br/report.condition.at.location.dialog | 0 {dialog => locale}/pt-br/report.condition.dialog | 0 .../pt-br/report.condition.future.at.location.dialog | 0 .../pt-br/report.condition.future.dialog | 0 {dialog => locale}/pt-br/report.wind.dialog | 0 {vocab => locale}/pt-br/simple.temperature.intent | 0 {dialog => locale}/pt-br/sky is clear.future.dialog | 0 {dialog => locale}/pt-br/snow.dialog | 0 {dialog => locale}/pt-br/snowing.alternative.dialog | 0 {dialog => locale}/pt-br/storm.alternative.dialog | 0 {dialog => locale}/pt-br/storm.dialog | 0 {dialog => locale}/pt-br/sunrise.dialog | 0 {dialog => locale}/pt-br/sunset.dialog | 0 .../pt-br/tonight.local.weather.dialog | 0 .../pt-br/weekly.condition.on.day.dialog | 0 .../pt-br/weekly.conditions.mostly.one.dialog | 0 .../pt-br/weekly.conditions.seq.extra.dialog | 0 .../pt-br/weekly.conditions.seq.period.dialog | 0 .../pt-br/weekly.conditions.seq.start.dialog | 0 .../pt-br/weekly.conditions.some.days.dialog | 0 {dialog => locale}/pt-br/weekly.temp.range.dialog | 0 .../pt-br/what.is.multi.day.forecast.intent | 0 .../pt-br/what.is.three.day.forecast.intent | 0 .../pt-br/what.is.three.day.forecast.location.intent | 0 .../pt-br/what.is.two.day.forecast.intent | 0 {vocab => locale}/pt-br/whats.weather.like.intent | 0 {dialog => locale}/pt-br/wind.speed.dialog | 0 {dialog => locale}/pt-br/wind.speed.dir.dialog | 0 {dialog => locale}/pt-br/wind.strength.hard.dialog | 0 {dialog => locale}/pt-br/wind.strength.light.dialog | 0 {dialog => locale}/pt-br/wind.strength.medium.dialog | 0 {dialog => locale}/pt-br/winds.dialog | 0 {dialog => locale}/ru-ru/E.dialog | 0 {vocab => locale}/ru-ru/Forecast.voc | 0 {vocab => locale}/ru-ru/Humidity.voc | 0 {vocab => locale}/ru-ru/Later.voc | 0 {vocab => locale}/ru-ru/Location.voc | 0 {dialog => locale}/ru-ru/N.dialog | 0 {dialog => locale}/ru-ru/NE.dialog | 0 {dialog => locale}/ru-ru/NW.dialog | 0 {vocab => locale}/ru-ru/Next.voc | 0 {vocab => locale}/ru-ru/Precipitation.voc | 0 {vocab => locale}/ru-ru/Query.voc | 0 {dialog => locale}/ru-ru/S.dialog | 0 {dialog => locale}/ru-ru/SE.dialog | 0 {dialog => locale}/ru-ru/SW.dialog | 0 {vocab => locale}/ru-ru/Sunrise.voc | 0 {vocab => locale}/ru-ru/Sunset.voc | 0 {dialog => locale}/ru-ru/W.dialog | 0 {vocab => locale}/ru-ru/Weather.voc | 0 {vocab => locale}/ru-ru/WeatherType.voc | 0 {vocab => locale}/ru-ru/Windy.voc | 0 {dialog => locale}/ru-ru/celsius.dialog | 0 .../ru-ru/current.local.weather.dialog | 0 {dialog => locale}/ru-ru/current.weather.dialog | 0 {dialog => locale}/ru-ru/do not know.dialog | 0 {dialog => locale}/ru-ru/fahrenheit.dialog | 0 .../ru-ru/forecast.local.weather.dialog | 0 {dialog => locale}/ru-ru/forecast.weather.dialog | 0 {dialog => locale}/ru-ru/heavy.dialog | 0 {dialog => locale}/ru-ru/hour.local.weather.dialog | 0 {dialog => locale}/ru-ru/hour.weather.dialog | 0 {dialog => locale}/ru-ru/humidity.dialog | 0 {dialog => locale}/ru-ru/light.dialog | 0 {dialog => locale}/ru-ru/location.not.found.dialog | 0 {regex => locale}/ru-ru/location.rx | 0 {dialog => locale}/ru-ru/meters per second.dialog | 0 {dialog => locale}/ru-ru/miles per hour.dialog | 0 {dialog => locale}/ru-ru/no forecast.dialog | 0 .../ru-ru/no precipitation expected.dialog | 0 .../ru-ru/precipitation expected.dialog | 0 {dialog => locale}/ru-ru/rain.dialog | 0 {dialog => locale}/ru-ru/report.condition.dialog | 0 .../ru-ru/report.future.condition.dialog | 0 {dialog => locale}/ru-ru/sky is clear.future.dialog | 0 {dialog => locale}/ru-ru/snow.dialog | 0 {dialog => locale}/ru-ru/wind.speed.dialog | 0 {dialog => locale}/ru-ru/wind.speed.dir.dialog | 0 {dialog => locale}/ru-ru/winds.dialog | 0 {vocab => locale}/sv-se/Clear.voc | 0 {vocab => locale}/sv-se/ClearAlternatives.voc | 0 {vocab => locale}/sv-se/Cloudy.voc | 0 {vocab => locale}/sv-se/CloudyAlternatives.voc | 0 {vocab => locale}/sv-se/Cold.voc | 0 {vocab => locale}/sv-se/ConfirmQuery.voc | 0 {vocab => locale}/sv-se/ConfirmQueryCurrent.voc | 0 {vocab => locale}/sv-se/ConfirmQueryFuture.voc | 0 {vocab => locale}/sv-se/Couple.voc | 0 {dialog => locale}/sv-se/E.dialog | 0 {vocab => locale}/sv-se/Fahrenheit.voc | 0 {vocab => locale}/sv-se/FogAlternatives.voc | 0 {vocab => locale}/sv-se/Foggy.voc | 0 {vocab => locale}/sv-se/Forecast.voc | 0 {vocab => locale}/sv-se/High.voc | 0 {vocab => locale}/sv-se/Hot.voc | 0 {vocab => locale}/sv-se/How.voc | 0 {vocab => locale}/sv-se/Humidity.voc | 0 {vocab => locale}/sv-se/Later.voc | 0 {vocab => locale}/sv-se/Location.voc | 0 {vocab => locale}/sv-se/Low.voc | 0 {dialog => locale}/sv-se/N.dialog | 0 {dialog => locale}/sv-se/NE.dialog | 0 {dialog => locale}/sv-se/NW.dialog | 0 {vocab => locale}/sv-se/Next.voc | 0 {vocab => locale}/sv-se/Now.voc | 0 {vocab => locale}/sv-se/Precipitation.voc | 0 {vocab => locale}/sv-se/Query.voc | 0 {vocab => locale}/sv-se/RainAlternatives.voc | 0 {vocab => locale}/sv-se/Raining.voc | 0 {vocab => locale}/sv-se/RelativeDay.voc | 0 {vocab => locale}/sv-se/RelativeTime.voc | 0 {dialog => locale}/sv-se/S.dialog | 0 {dialog => locale}/sv-se/SE.dialog | 0 {dialog => locale}/sv-se/SW.dialog | 0 {vocab => locale}/sv-se/SnowAlternatives.voc | 0 {vocab => locale}/sv-se/Snowing.voc | 0 {vocab => locale}/sv-se/Storm.voc | 0 {vocab => locale}/sv-se/StormAlternatives.voc | 0 {vocab => locale}/sv-se/Sunrise.voc | 0 {vocab => locale}/sv-se/Sunset.voc | 0 {vocab => locale}/sv-se/Temperature.voc | 0 {vocab => locale}/sv-se/ThreeDay.voc | 0 {vocab => locale}/sv-se/Today.voc | 0 {vocab => locale}/sv-se/Unit.entity | 0 {vocab => locale}/sv-se/Unit.voc | 0 {dialog => locale}/sv-se/W.dialog | 0 {vocab => locale}/sv-se/Weather.voc | 0 {vocab => locale}/sv-se/WeatherType.voc | 0 {vocab => locale}/sv-se/Week.voc | 0 {vocab => locale}/sv-se/Weekend.voc | 0 {vocab => locale}/sv-se/When.voc | 0 {vocab => locale}/sv-se/Windy.voc | 0 .../sv-se/affirmative.condition.dialog | 0 {dialog => locale}/sv-se/and.dialog | 0 .../sv-se/at.time.affirmative.condition.dialog | 0 .../sv-se/at.time.cond.alternative.dialog | 0 .../at.time.forecast.affirmative.condition.dialog | 0 .../sv-se/at.time.forecast.cond.alternative.dialog | 0 ....time.forecast.local.affirmative.condition.dialog | 0 .../at.time.forecast.local.cond.alternative.dialog | 0 .../at.time.forecast.local.no.cond.predicted.dialog | 0 .../sv-se/at.time.forecast.no.cond.predicted.dialog | 0 .../sv-se/at.time.local.affirmative.condition.dialog | 0 .../sv-se/at.time.local.cond.alternative.dialog | 0 .../sv-se/at.time.local.high.temperature.dialog | 0 .../sv-se/at.time.local.low.temperature.dialog | 0 .../sv-se/at.time.local.no.cond.predicted.dialog | 0 .../sv-se/at.time.local.temperature.dialog | 0 .../sv-se/at.time.local.weather.dialog | 0 .../sv-se/at.time.no.cond.predicted.dialog | 0 {dialog => locale}/sv-se/cant.get.forecast.dialog | 0 {dialog => locale}/sv-se/celsius.dialog | 0 {dialog => locale}/sv-se/clear sky.dialog | 0 {dialog => locale}/sv-se/clear.alternative.dialog | 0 {dialog => locale}/sv-se/clear.dialog | 0 {dialog => locale}/sv-se/clear.future.dialog | 0 {dialog => locale}/sv-se/cloudy.alternative.dialog | 0 {dialog => locale}/sv-se/condition.category.value | 0 .../sv-se/current.high.temperature.dialog | 0 {dialog => locale}/sv-se/current.hot.dialog | 0 {dialog => locale}/sv-se/current.local.cold.dialog | 0 .../sv-se/current.local.high.temperature.dialog | 0 {dialog => locale}/sv-se/current.local.hot.dialog | 0 .../sv-se/current.local.low.temperature.dialog | 0 .../sv-se/current.local.temperature.dialog | 0 .../sv-se/current.local.weather.dialog | 0 .../sv-se/current.low.temperature.dialog | 0 {dialog => locale}/sv-se/current.temperature.dialog | 0 {dialog => locale}/sv-se/current.weather.dialog | 0 {dialog => locale}/sv-se/do not know.dialog | 0 {vocab => locale}/sv-se/do.i.need.an.umbrella.intent | 0 {dialog => locale}/sv-se/fahrenheit.dialog | 0 {dialog => locale}/sv-se/fog.alternative.dialog | 0 .../sv-se/forecast.affirmative.condition.dialog | 0 .../sv-se/forecast.clear.alternative.dialog | 0 .../sv-se/forecast.cloudy.alternative.dialog | 0 .../sv-se/forecast.foggy.alternative.dialog | 0 {dialog => locale}/sv-se/forecast.hard.wind.dialog | 0 .../sv-se/forecast.high.temperature.dialog | 0 {dialog => locale}/sv-se/forecast.hot.dialog | 0 {dialog => locale}/sv-se/forecast.light.wind.dialog | 0 .../forecast.local.affirmative.condition.dialog | 0 .../sv-se/forecast.local.clear.alternative.dialog | 0 .../sv-se/forecast.local.cloudy.alternative.dialog | 0 .../sv-se/forecast.local.foggy.alternative.dialog | 0 .../sv-se/forecast.local.hard.wind.dialog | 0 .../sv-se/forecast.local.high.temperature.dialog | 0 {dialog => locale}/sv-se/forecast.local.hot.dialog | 0 .../sv-se/forecast.local.light.wind.dialog | 0 .../sv-se/forecast.local.low.temperature.dialog | 0 .../sv-se/forecast.local.medium.wind.dialog | 0 .../sv-se/forecast.local.no.clear.predicted.dialog | 0 .../sv-se/forecast.local.no.cloudy.predicted.dialog | 0 .../sv-se/forecast.local.no.fog.predicted.dialog | 0 .../sv-se/forecast.local.no.rain.predicted.dialog | 0 .../sv-se/forecast.local.no.snow.predicted.dialog | 0 .../sv-se/forecast.local.no.storm.predicted.dialog | 0 .../sv-se/forecast.local.raining.alternative.dialog | 0 .../sv-se/forecast.local.storm.alternative.dialog | 0 .../sv-se/forecast.local.temperature.dialog | 0 .../sv-se/forecast.local.weather.dialog | 0 .../sv-se/forecast.low.temperature.dialog | 0 {dialog => locale}/sv-se/forecast.medium.wind.dialog | 0 .../sv-se/forecast.no.clear.predicted.dialog | 0 .../sv-se/forecast.no.cloudy.predicted.dialog | 0 .../sv-se/forecast.no.fog.predicted.dialog | 0 .../sv-se/forecast.no.rain.predicted.dialog | 0 .../sv-se/forecast.no.snow.predicted.dialog | 0 .../sv-se/forecast.no.storm.predicted.dialog | 0 .../sv-se/forecast.raining.alternative.dialog | 0 .../sv-se/forecast.snowing.alternative.dialog | 0 .../sv-se/forecast.storm.alternative.dialog | 0 {dialog => locale}/sv-se/forecast.temperature.dialog | 0 {dialog => locale}/sv-se/forecast.weather.dialog | 0 {dialog => locale}/sv-se/from.day.dialog | 0 {dialog => locale}/sv-se/hard.wind.dialog | 0 {dialog => locale}/sv-se/heavy.dialog | 0 {dialog => locale}/sv-se/hour.local.weather.dialog | 0 {dialog => locale}/sv-se/hour.weather.dialog | 0 {dialog => locale}/sv-se/humidity.dialog | 0 {dialog => locale}/sv-se/light.dialog | 0 {dialog => locale}/sv-se/light.wind.dialog | 0 .../sv-se/local.affirmative.condition.dialog | 0 .../sv-se/local.clear.alternative.dialog | 0 .../sv-se/local.cloudy.alternative.dialog | 0 .../sv-se/local.foggy.alternative.dialog | 0 {dialog => locale}/sv-se/local.hard.wind.dialog | 0 {dialog => locale}/sv-se/local.light.wind.dialog | 0 {dialog => locale}/sv-se/local.medium.wind.dialog | 0 .../sv-se/local.no.cloudy.predicted.dialog | 0 .../sv-se/local.no.fog.predicted.dialog | 0 .../sv-se/local.no.rain.predicted.dialog | 0 .../sv-se/local.no.snow.predicted.dialog | 0 .../sv-se/local.no.storm.predicted.dialog | 0 .../sv-se/local.raining.alternative.dialog | 0 .../sv-se/local.snowing.alternative.dialog | 0 .../sv-se/local.storm.alternative.dialog | 0 {dialog => locale}/sv-se/location.not.found.dialog | 0 {regex => locale}/sv-se/location.rx | 0 {dialog => locale}/sv-se/medium.wind.dialog | 0 {dialog => locale}/sv-se/meters per second.dialog | 0 {dialog => locale}/sv-se/miles per hour.dialog | 0 {dialog => locale}/sv-se/min.max.dialog | 0 .../sv-se/no precipitation expected.dialog | 0 {dialog => locale}/sv-se/no.clear.predicted.dialog | 0 {dialog => locale}/sv-se/no.cloudy.predicted.dialog | 0 {dialog => locale}/sv-se/no.fog.predicted.dialog | 0 {dialog => locale}/sv-se/no.forecast.dialog | 0 {dialog => locale}/sv-se/no.rain.predicted.dialog | 0 {dialog => locale}/sv-se/no.snow.predicted.dialog | 0 {dialog => locale}/sv-se/no.storm.predicted.dialog | 0 {dialog => locale}/sv-se/on.date.dialog | 0 {dialog => locale}/sv-se/on.dialog | 0 {dialog => locale}/sv-se/percentage.number.dialog | 0 .../sv-se/precipitation expected.dialog | 0 {dialog => locale}/sv-se/rain.dialog | 0 {dialog => locale}/sv-se/raining.alternative.dialog | 0 .../sv-se/report.condition.at.location.dialog | 0 {dialog => locale}/sv-se/report.condition.dialog | 0 .../sv-se/report.condition.future.at.location.dialog | 0 .../sv-se/report.condition.future.dialog | 0 {dialog => locale}/sv-se/report.wind.dialog | 0 {vocab => locale}/sv-se/simple.temperature.intent | 0 {dialog => locale}/sv-se/sky is clear.future.dialog | 0 {dialog => locale}/sv-se/snow.dialog | 0 {dialog => locale}/sv-se/snowing.alternative.dialog | 0 {dialog => locale}/sv-se/storm.alternative.dialog | 0 {dialog => locale}/sv-se/storm.dialog | 0 {dialog => locale}/sv-se/sunrise.dialog | 0 {dialog => locale}/sv-se/sunset.dialog | 0 .../sv-se/tonight.local.weather.dialog | 0 .../sv-se/weekly.condition.on.day.dialog | 0 .../sv-se/weekly.conditions.mostly.one.dialog | 0 .../sv-se/weekly.conditions.seq.extra.dialog | 0 .../sv-se/weekly.conditions.seq.period.dialog | 0 .../sv-se/weekly.conditions.seq.start.dialog | 0 .../sv-se/weekly.conditions.some.days.dialog | 0 {dialog => locale}/sv-se/weekly.temp.range.dialog | 0 .../sv-se/what.is.multi.day.forecast.intent | 0 .../sv-se/what.is.three.day.forecast.intent | 0 .../sv-se/what.is.three.day.forecast.location.intent | 0 .../sv-se/what.is.two.day.forecast.intent | 0 {vocab => locale}/sv-se/whats.weather.like.intent | 0 {dialog => locale}/sv-se/wind.speed.dialog | 0 {dialog => locale}/sv-se/wind.speed.dir.dialog | 0 {dialog => locale}/sv-se/wind.strength.hard.dialog | 0 {dialog => locale}/sv-se/wind.strength.light.dialog | 0 {dialog => locale}/sv-se/wind.strength.medium.dialog | 0 {dialog => locale}/sv-se/winds.dialog | 0 regex/da-dk/AUTO_TRANSLATED | 1 - vocab/da-dk/AUTO_TRANSLATED | 1 - 1787 files changed, 14 deletions(-) delete mode 100644 dialog/da-dk/RelativeDay.voc rename {vocab => locale}/ca-es/Clear.voc (100%) rename {vocab => locale}/ca-es/ClearAlternatives.voc (100%) rename {vocab => locale}/ca-es/Cloudy.voc (100%) rename {vocab => locale}/ca-es/CloudyAlternatives.voc (100%) rename {vocab => locale}/ca-es/Cold.voc (100%) rename {vocab => locale}/ca-es/ConfirmQuery.voc (100%) rename {vocab => locale}/ca-es/ConfirmQueryCurrent.voc (100%) rename {vocab => locale}/ca-es/ConfirmQueryFuture.voc (100%) rename {vocab => locale}/ca-es/Couple.voc (100%) rename {dialog => locale}/ca-es/E.dialog (100%) rename {vocab => locale}/ca-es/Fahrenheit.voc (100%) rename {vocab => locale}/ca-es/FogAlternatives.voc (100%) rename {vocab => locale}/ca-es/Foggy.voc (100%) rename {vocab => locale}/ca-es/Forecast.voc (100%) rename {vocab => locale}/ca-es/High.voc (100%) rename {vocab => locale}/ca-es/Hot.voc (100%) rename {vocab => locale}/ca-es/How.voc (100%) rename {vocab => locale}/ca-es/Humidity.voc (100%) rename {vocab => locale}/ca-es/Later.voc (100%) rename {vocab => locale}/ca-es/Location.voc (100%) rename {vocab => locale}/ca-es/Low.voc (100%) rename {dialog => locale}/ca-es/N.dialog (100%) rename {dialog => locale}/ca-es/NE.dialog (100%) rename {dialog => locale}/ca-es/NW.dialog (100%) rename {vocab => locale}/ca-es/Next.voc (100%) rename {vocab => locale}/ca-es/Now.voc (100%) rename {vocab => locale}/ca-es/Precipitation.voc (100%) rename {vocab => locale}/ca-es/Query.voc (100%) rename {vocab => locale}/ca-es/RainAlternatives.voc (100%) rename {vocab => locale}/ca-es/Raining.voc (100%) rename {vocab => locale}/ca-es/RelativeDay.voc (100%) rename {vocab => locale}/ca-es/RelativeTime.voc (100%) rename {dialog => locale}/ca-es/S.dialog (100%) rename {dialog => locale}/ca-es/SE.dialog (100%) rename {dialog => locale}/ca-es/SW.dialog (100%) rename {vocab => locale}/ca-es/SnowAlternatives.voc (100%) rename {vocab => locale}/ca-es/Snowing.voc (100%) rename {vocab => locale}/ca-es/Storm.voc (100%) rename {vocab => locale}/ca-es/StormAlternatives.voc (100%) rename {vocab => locale}/ca-es/Sunrise.voc (100%) rename {vocab => locale}/ca-es/Sunset.voc (100%) rename {vocab => locale}/ca-es/Temperature.voc (100%) rename {vocab => locale}/ca-es/ThreeDay.voc (100%) rename {vocab => locale}/ca-es/Today.voc (100%) rename {vocab => locale}/ca-es/Unit.entity (100%) rename {vocab => locale}/ca-es/Unit.voc (100%) rename {dialog => locale}/ca-es/W.dialog (100%) rename {vocab => locale}/ca-es/Weather.voc (100%) rename {vocab => locale}/ca-es/WeatherType.voc (100%) rename {vocab => locale}/ca-es/Week.voc (100%) rename {vocab => locale}/ca-es/Weekend.voc (100%) rename {vocab => locale}/ca-es/When.voc (100%) rename {vocab => locale}/ca-es/Windy.voc (100%) rename {dialog => locale}/ca-es/affirmative.condition.dialog (100%) rename {dialog => locale}/ca-es/and.dialog (100%) rename {dialog => locale}/ca-es/at.time.affirmative.condition.dialog (100%) rename {dialog => locale}/ca-es/at.time.cond.alternative.dialog (100%) rename {dialog => locale}/ca-es/at.time.forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/ca-es/at.time.forecast.cond.alternative.dialog (100%) rename {dialog => locale}/ca-es/at.time.forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/ca-es/at.time.forecast.local.cond.alternative.dialog (100%) rename {dialog => locale}/ca-es/at.time.forecast.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/ca-es/at.time.forecast.no.cond.predicted.dialog (100%) rename {dialog => locale}/ca-es/at.time.local.affirmative.condition.dialog (100%) rename {dialog => locale}/ca-es/at.time.local.cond.alternative.dialog (100%) rename {dialog => locale}/ca-es/at.time.local.high.temperature.dialog (100%) rename {dialog => locale}/ca-es/at.time.local.low.temperature.dialog (100%) rename {dialog => locale}/ca-es/at.time.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/ca-es/at.time.local.temperature.dialog (100%) rename {dialog => locale}/ca-es/at.time.local.weather.dialog (100%) rename {dialog => locale}/ca-es/at.time.no.cond.predicted.dialog (100%) rename {dialog => locale}/ca-es/cant.get.forecast.dialog (100%) rename {dialog => locale}/ca-es/celsius.dialog (100%) rename {dialog => locale}/ca-es/clear sky.dialog (100%) rename {dialog => locale}/ca-es/clear.alternative.dialog (100%) rename {dialog => locale}/ca-es/clear.dialog (100%) rename {dialog => locale}/ca-es/clear.future.dialog (100%) rename {dialog => locale}/ca-es/cloudy.alternative.dialog (100%) rename {dialog => locale}/ca-es/condition.category.value (100%) rename {dialog => locale}/ca-es/current.high.temperature.dialog (100%) rename {dialog => locale}/ca-es/current.hot.dialog (100%) rename {dialog => locale}/ca-es/current.local.cold.dialog (100%) rename {dialog => locale}/ca-es/current.local.high.temperature.dialog (100%) rename {dialog => locale}/ca-es/current.local.hot.dialog (100%) rename {dialog => locale}/ca-es/current.local.low.temperature.dialog (100%) rename {dialog => locale}/ca-es/current.local.temperature.dialog (100%) rename {dialog => locale}/ca-es/current.local.weather.dialog (100%) rename {dialog => locale}/ca-es/current.low.temperature.dialog (100%) rename {dialog => locale}/ca-es/current.temperature.dialog (100%) rename {dialog => locale}/ca-es/current.weather.dialog (100%) rename {dialog => locale}/ca-es/do not know.dialog (100%) rename {vocab => locale}/ca-es/do.i.need.an.umbrella.intent (100%) rename {dialog => locale}/ca-es/fahrenheit.dialog (100%) rename {dialog => locale}/ca-es/fog.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/ca-es/forecast.clear.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.cloudy.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.foggy.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.hard.wind.dialog (100%) rename {dialog => locale}/ca-es/forecast.high.temperature.dialog (100%) rename {dialog => locale}/ca-es/forecast.hot.dialog (100%) rename {dialog => locale}/ca-es/forecast.light.wind.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.clear.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.cloudy.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.foggy.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.hard.wind.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.high.temperature.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.hot.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.light.wind.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.low.temperature.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.medium.wind.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.no.clear.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.no.fog.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.no.rain.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.no.snow.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.no.storm.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.raining.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.storm.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.temperature.dialog (100%) rename {dialog => locale}/ca-es/forecast.local.weather.dialog (100%) rename {dialog => locale}/ca-es/forecast.low.temperature.dialog (100%) rename {dialog => locale}/ca-es/forecast.medium.wind.dialog (100%) rename {dialog => locale}/ca-es/forecast.no.clear.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.no.fog.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.no.rain.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.no.snow.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.no.storm.predicted.dialog (100%) rename {dialog => locale}/ca-es/forecast.raining.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.snowing.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.storm.alternative.dialog (100%) rename {dialog => locale}/ca-es/forecast.temperature.dialog (100%) rename {dialog => locale}/ca-es/forecast.weather.dialog (100%) rename {dialog => locale}/ca-es/from.day.dialog (100%) rename {dialog => locale}/ca-es/hard.wind.dialog (100%) rename {dialog => locale}/ca-es/heavy.dialog (100%) rename {dialog => locale}/ca-es/hour.local.weather.dialog (100%) rename {dialog => locale}/ca-es/hour.weather.dialog (100%) rename {dialog => locale}/ca-es/humidity.dialog (100%) rename {dialog => locale}/ca-es/light.dialog (100%) rename {dialog => locale}/ca-es/light.wind.dialog (100%) rename {dialog => locale}/ca-es/local.affirmative.condition.dialog (100%) rename {dialog => locale}/ca-es/local.clear.alternative.dialog (100%) rename {dialog => locale}/ca-es/local.cloudy.alternative.dialog (100%) rename {dialog => locale}/ca-es/local.foggy.alternative.dialog (100%) rename {dialog => locale}/ca-es/local.hard.wind.dialog (100%) rename {dialog => locale}/ca-es/local.light.wind.dialog (100%) rename {dialog => locale}/ca-es/local.medium.wind.dialog (100%) rename {dialog => locale}/ca-es/local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/ca-es/local.no.fog.predicted.dialog (100%) rename {dialog => locale}/ca-es/local.no.rain.predicted.dialog (100%) rename {dialog => locale}/ca-es/local.no.snow.predicted.dialog (100%) rename {dialog => locale}/ca-es/local.no.storm.predicted.dialog (100%) rename {dialog => locale}/ca-es/local.raining.alternative.dialog (100%) rename {dialog => locale}/ca-es/local.snowing.alternative.dialog (100%) rename {dialog => locale}/ca-es/local.storm.alternative.dialog (100%) rename {dialog => locale}/ca-es/location.not.found.dialog (100%) rename {regex => locale}/ca-es/location.rx (100%) rename {dialog => locale}/ca-es/medium.wind.dialog (100%) rename {dialog => locale}/ca-es/meters per second.dialog (100%) rename {dialog => locale}/ca-es/miles per hour.dialog (100%) rename {dialog => locale}/ca-es/min.max.dialog (100%) rename {dialog => locale}/ca-es/no precipitation expected.dialog (100%) rename {dialog => locale}/ca-es/no.clear.predicted.dialog (100%) rename {dialog => locale}/ca-es/no.cloudy.predicted.dialog (100%) rename {dialog => locale}/ca-es/no.fog.predicted.dialog (100%) rename {dialog => locale}/ca-es/no.forecast.dialog (100%) rename {dialog => locale}/ca-es/no.rain.predicted.dialog (100%) rename {dialog => locale}/ca-es/no.snow.predicted.dialog (100%) rename {dialog => locale}/ca-es/no.storm.predicted.dialog (100%) rename {dialog => locale}/ca-es/on.date.dialog (100%) rename {dialog => locale}/ca-es/on.dialog (100%) rename {dialog => locale}/ca-es/percentage.number.dialog (100%) rename {dialog => locale}/ca-es/precipitation expected.dialog (100%) rename {dialog => locale}/ca-es/rain.dialog (100%) rename {dialog => locale}/ca-es/raining.alternative.dialog (100%) rename {dialog => locale}/ca-es/report.condition.at.location.dialog (100%) rename {dialog => locale}/ca-es/report.condition.dialog (100%) rename {dialog => locale}/ca-es/report.condition.future.at.location.dialog (100%) rename {dialog => locale}/ca-es/report.condition.future.dialog (100%) rename {dialog => locale}/ca-es/report.wind.dialog (100%) rename {vocab => locale}/ca-es/simple.temperature.intent (100%) rename {dialog => locale}/ca-es/sky is clear.future.dialog (100%) rename {dialog => locale}/ca-es/snow.dialog (100%) rename {dialog => locale}/ca-es/snowing.alternative.dialog (100%) rename {dialog => locale}/ca-es/storm.alternative.dialog (100%) rename {dialog => locale}/ca-es/storm.dialog (100%) rename {dialog => locale}/ca-es/sunrise.dialog (100%) rename {dialog => locale}/ca-es/sunset.dialog (100%) rename {dialog => locale}/ca-es/tonight.local.weather.dialog (100%) rename {dialog => locale}/ca-es/weekly.condition.on.day.dialog (100%) rename {dialog => locale}/ca-es/weekly.conditions.mostly.one.dialog (100%) rename {dialog => locale}/ca-es/weekly.conditions.seq.extra.dialog (100%) rename {dialog => locale}/ca-es/weekly.conditions.seq.period.dialog (100%) rename {dialog => locale}/ca-es/weekly.conditions.seq.start.dialog (100%) rename {dialog => locale}/ca-es/weekly.conditions.some.days.dialog (100%) rename {dialog => locale}/ca-es/weekly.temp.range.dialog (100%) rename {vocab => locale}/ca-es/what.is.multi.day.forecast.intent (100%) rename {vocab => locale}/ca-es/what.is.three.day.forecast.intent (100%) rename {vocab => locale}/ca-es/what.is.three.day.forecast.location.intent (100%) rename {vocab => locale}/ca-es/what.is.two.day.forecast.intent (100%) rename {vocab => locale}/ca-es/whats.weather.like.intent (100%) rename {dialog => locale}/ca-es/wind.speed.dialog (100%) rename {dialog => locale}/ca-es/wind.speed.dir.dialog (100%) rename {dialog => locale}/ca-es/wind.strength.hard.dialog (100%) rename {dialog => locale}/ca-es/wind.strength.light.dialog (100%) rename {dialog => locale}/ca-es/wind.strength.medium.dialog (100%) rename {dialog => locale}/ca-es/winds.dialog (100%) rename {vocab => locale}/da-dk/Clear.voc (100%) rename {vocab => locale}/da-dk/ClearAlternatives.voc (100%) rename {vocab => locale}/da-dk/Cloudy.voc (100%) rename {vocab => locale}/da-dk/CloudyAlternatives.voc (100%) rename {vocab => locale}/da-dk/Cold.voc (100%) rename {vocab => locale}/da-dk/ConfirmQuery.voc (100%) rename {vocab => locale}/da-dk/ConfirmQueryCurrent.voc (100%) rename {vocab => locale}/da-dk/ConfirmQueryFuture.voc (100%) rename {vocab => locale}/da-dk/Couple.voc (100%) rename {dialog => locale}/da-dk/E.dialog (100%) rename {vocab => locale}/da-dk/Fahrenheit.voc (100%) rename {vocab => locale}/da-dk/FogAlternatives.voc (100%) rename {vocab => locale}/da-dk/Foggy.voc (100%) rename {vocab => locale}/da-dk/Forecast.voc (100%) rename {vocab => locale}/da-dk/High.voc (100%) rename {vocab => locale}/da-dk/Hot.voc (100%) rename {vocab => locale}/da-dk/How.voc (100%) rename {vocab => locale}/da-dk/Humidity.voc (100%) rename {vocab => locale}/da-dk/Later.voc (100%) rename {vocab => locale}/da-dk/Location.voc (100%) rename {vocab => locale}/da-dk/Low.voc (100%) rename {dialog => locale}/da-dk/N.dialog (100%) rename {dialog => locale}/da-dk/NE.dialog (100%) rename {dialog => locale}/da-dk/NW.dialog (100%) rename {vocab => locale}/da-dk/Next.voc (100%) rename {vocab => locale}/da-dk/Now.voc (100%) rename {vocab => locale}/da-dk/Precipitation.voc (100%) rename {vocab => locale}/da-dk/Query.voc (100%) rename {vocab => locale}/da-dk/RainAlternatives.voc (100%) rename {vocab => locale}/da-dk/Raining.voc (100%) rename {vocab => locale}/da-dk/RelativeDay.voc (100%) rename {vocab => locale}/da-dk/RelativeTime.voc (100%) rename {dialog => locale}/da-dk/S.dialog (100%) rename {dialog => locale}/da-dk/SE.dialog (100%) rename {dialog => locale}/da-dk/SW.dialog (100%) rename {vocab => locale}/da-dk/SnowAlternatives.voc (100%) rename {vocab => locale}/da-dk/Snowing.voc (100%) rename {vocab => locale}/da-dk/Storm.voc (100%) rename {vocab => locale}/da-dk/StormAlternatives.voc (100%) rename {vocab => locale}/da-dk/Sunrise.voc (100%) rename {vocab => locale}/da-dk/Sunset.voc (100%) rename {vocab => locale}/da-dk/Temperature.voc (100%) rename {vocab => locale}/da-dk/ThreeDay.voc (100%) rename {vocab => locale}/da-dk/Today.voc (100%) rename {vocab => locale}/da-dk/Unit.entity (100%) rename {vocab => locale}/da-dk/Unit.voc (100%) rename {dialog => locale}/da-dk/W.dialog (100%) rename {vocab => locale}/da-dk/Weather.voc (100%) rename {vocab => locale}/da-dk/WeatherType.voc (100%) rename {vocab => locale}/da-dk/Week.voc (100%) rename {vocab => locale}/da-dk/Weekend.voc (100%) rename {vocab => locale}/da-dk/When.voc (100%) rename {vocab => locale}/da-dk/Windy.voc (100%) rename {dialog => locale}/da-dk/affirmative.condition.dialog (100%) rename {dialog => locale}/da-dk/and.dialog (100%) rename {dialog => locale}/da-dk/at.time.affirmative.condition.dialog (100%) rename {dialog => locale}/da-dk/at.time.cond.alternative.dialog (100%) rename {dialog => locale}/da-dk/at.time.forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/da-dk/at.time.forecast.cond.alternative.dialog (100%) rename {dialog => locale}/da-dk/at.time.forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/da-dk/at.time.forecast.local.cond.alternative.dialog (100%) rename {dialog => locale}/da-dk/at.time.forecast.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/da-dk/at.time.forecast.no.cond.predicted.dialog (100%) rename {dialog => locale}/da-dk/at.time.local.affirmative.condition.dialog (100%) rename {dialog => locale}/da-dk/at.time.local.cond.alternative.dialog (100%) rename {dialog => locale}/da-dk/at.time.local.high.temperature.dialog (100%) rename {dialog => locale}/da-dk/at.time.local.low.temperature.dialog (100%) rename {dialog => locale}/da-dk/at.time.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/da-dk/at.time.local.temperature.dialog (100%) rename {dialog => locale}/da-dk/at.time.local.weather.dialog (100%) rename {dialog => locale}/da-dk/at.time.no.cond.predicted.dialog (100%) rename {dialog => locale}/da-dk/cant.get.forecast.dialog (100%) rename {dialog => locale}/da-dk/celsius.dialog (100%) rename {dialog => locale}/da-dk/clear sky.dialog (100%) rename {dialog => locale}/da-dk/clear.alternative.dialog (100%) rename {dialog => locale}/da-dk/clear.dialog (100%) rename {dialog => locale}/da-dk/clear.future.dialog (100%) rename {dialog => locale}/da-dk/cloudy.alternative.dialog (100%) rename {dialog => locale}/da-dk/condition.category.value (100%) rename {dialog => locale}/da-dk/current.high.temperature.dialog (100%) rename {dialog => locale}/da-dk/current.hot.dialog (100%) rename {dialog => locale}/da-dk/current.local.cold.dialog (100%) rename {dialog => locale}/da-dk/current.local.high.temperature.dialog (100%) rename {dialog => locale}/da-dk/current.local.hot.dialog (100%) rename {dialog => locale}/da-dk/current.local.low.temperature.dialog (100%) rename {dialog => locale}/da-dk/current.local.temperature.dialog (100%) rename {dialog => locale}/da-dk/current.local.weather.dialog (100%) rename {dialog => locale}/da-dk/current.low.temperature.dialog (100%) rename {dialog => locale}/da-dk/current.temperature.dialog (100%) rename {dialog => locale}/da-dk/current.weather.dialog (100%) rename {dialog => locale}/da-dk/do not know.dialog (100%) rename {vocab => locale}/da-dk/do.i.need.an.umbrella.intent (100%) rename {dialog => locale}/da-dk/fahrenheit.dialog (100%) rename {dialog => locale}/da-dk/fog.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/da-dk/forecast.clear.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.cloudy.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.foggy.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.hard.wind.dialog (100%) rename {dialog => locale}/da-dk/forecast.high.temperature.dialog (100%) rename {dialog => locale}/da-dk/forecast.hot.dialog (100%) rename {dialog => locale}/da-dk/forecast.light.wind.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.clear.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.cloudy.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.foggy.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.hard.wind.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.high.temperature.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.hot.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.light.wind.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.low.temperature.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.medium.wind.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.no.clear.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.no.fog.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.no.rain.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.no.snow.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.no.storm.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.raining.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.storm.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.temperature.dialog (100%) rename {dialog => locale}/da-dk/forecast.local.weather.dialog (100%) rename {dialog => locale}/da-dk/forecast.low.temperature.dialog (100%) rename {dialog => locale}/da-dk/forecast.medium.wind.dialog (100%) rename {dialog => locale}/da-dk/forecast.no.clear.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.no.fog.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.no.rain.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.no.snow.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.no.storm.predicted.dialog (100%) rename {dialog => locale}/da-dk/forecast.raining.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.snowing.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.storm.alternative.dialog (100%) rename {dialog => locale}/da-dk/forecast.temperature.dialog (100%) rename {dialog => locale}/da-dk/forecast.weather.dialog (100%) rename {dialog => locale}/da-dk/from.day.dialog (100%) rename {dialog => locale}/da-dk/hard.wind.dialog (100%) rename {dialog => locale}/da-dk/heavy.dialog (100%) rename {dialog => locale}/da-dk/hour.local.weather.dialog (100%) rename {dialog => locale}/da-dk/hour.weather.dialog (100%) rename {dialog => locale}/da-dk/humidity.dialog (100%) rename {dialog => locale}/da-dk/light.dialog (100%) rename {dialog => locale}/da-dk/light.wind.dialog (100%) rename {dialog => locale}/da-dk/local.affirmative.condition.dialog (100%) rename {dialog => locale}/da-dk/local.clear.alternative.dialog (100%) rename {dialog => locale}/da-dk/local.cloudy.alternative.dialog (100%) rename {dialog => locale}/da-dk/local.foggy.alternative.dialog (100%) rename {dialog => locale}/da-dk/local.hard.wind.dialog (100%) rename {dialog => locale}/da-dk/local.light.wind.dialog (100%) rename {dialog => locale}/da-dk/local.medium.wind.dialog (100%) rename {dialog => locale}/da-dk/local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/da-dk/local.no.fog.predicted.dialog (100%) rename {dialog => locale}/da-dk/local.no.rain.predicted.dialog (100%) rename {dialog => locale}/da-dk/local.no.snow.predicted.dialog (100%) rename {dialog => locale}/da-dk/local.no.storm.predicted.dialog (100%) rename {dialog => locale}/da-dk/local.raining.alternative.dialog (100%) rename {dialog => locale}/da-dk/local.snowing.alternative.dialog (100%) rename {dialog => locale}/da-dk/local.storm.alternative.dialog (100%) rename {dialog => locale}/da-dk/location.not.found.dialog (100%) rename {regex => locale}/da-dk/location.rx (100%) rename {dialog => locale}/da-dk/medium.wind.dialog (100%) rename {dialog => locale}/da-dk/meters per second.dialog (100%) rename {dialog => locale}/da-dk/miles per hour.dialog (100%) rename {dialog => locale}/da-dk/min.max.dialog (100%) rename {dialog => locale}/da-dk/no precipitation expected.dialog (100%) rename {dialog => locale}/da-dk/no.clear.predicted.dialog (100%) rename {dialog => locale}/da-dk/no.cloudy.predicted.dialog (100%) rename {dialog => locale}/da-dk/no.fog.predicted.dialog (100%) rename {dialog => locale}/da-dk/no.forecast.dialog (100%) rename {dialog => locale}/da-dk/no.rain.predicted.dialog (100%) rename {dialog => locale}/da-dk/no.snow.predicted.dialog (100%) rename {dialog => locale}/da-dk/no.storm.predicted.dialog (100%) rename {dialog => locale}/da-dk/on.date.dialog (100%) rename {dialog => locale}/da-dk/on.dialog (100%) rename {dialog => locale}/da-dk/percentage.number.dialog (100%) rename {dialog => locale}/da-dk/precipitation expected.dialog (100%) rename {dialog => locale}/da-dk/rain.dialog (100%) rename {dialog => locale}/da-dk/raining.alternative.dialog (100%) rename {dialog => locale}/da-dk/report.condition.at.location.dialog (100%) rename {dialog => locale}/da-dk/report.condition.dialog (100%) rename {dialog => locale}/da-dk/report.condition.future.at.location.dialog (100%) rename {dialog => locale}/da-dk/report.condition.future.dialog (100%) rename {dialog => locale}/da-dk/report.wind.dialog (100%) rename {vocab => locale}/da-dk/simple.temperature.intent (100%) rename {dialog => locale}/da-dk/sky is clear.future.dialog (100%) rename {dialog => locale}/da-dk/snow.dialog (100%) rename {dialog => locale}/da-dk/snowing.alternative.dialog (100%) rename {dialog => locale}/da-dk/storm.alternative.dialog (100%) rename {dialog => locale}/da-dk/storm.dialog (100%) rename {dialog => locale}/da-dk/sunrise.dialog (100%) rename {dialog => locale}/da-dk/sunset.dialog (100%) rename {dialog => locale}/da-dk/this.week.dialog (100%) rename {dialog => locale}/da-dk/tonight.local.weather.dialog (100%) rename {dialog => locale}/da-dk/weekly.condition.on.day.dialog (100%) rename {dialog => locale}/da-dk/weekly.conditions.mostly.one.dialog (100%) rename {dialog => locale}/da-dk/weekly.conditions.seq.extra.dialog (100%) rename {dialog => locale}/da-dk/weekly.conditions.seq.period.dialog (100%) rename {dialog => locale}/da-dk/weekly.conditions.seq.start.dialog (100%) rename {dialog => locale}/da-dk/weekly.conditions.some.days.dialog (100%) rename {dialog => locale}/da-dk/weekly.temp.range.dialog (100%) rename {vocab => locale}/da-dk/what.is.multi.day.forecast.intent (100%) rename {vocab => locale}/da-dk/what.is.three.day.forecast.intent (100%) rename {vocab => locale}/da-dk/what.is.three.day.forecast.location.intent (100%) rename {vocab => locale}/da-dk/what.is.two.day.forecast.intent (100%) rename {vocab => locale}/da-dk/whats.weather.like.intent (100%) rename {dialog => locale}/da-dk/wind.speed.dialog (100%) rename {dialog => locale}/da-dk/wind.speed.dir.dialog (100%) rename {dialog => locale}/da-dk/wind.strength.hard.dialog (100%) rename {dialog => locale}/da-dk/wind.strength.light.dialog (100%) rename {dialog => locale}/da-dk/wind.strength.medium.dialog (100%) rename {dialog => locale}/da-dk/winds.dialog (100%) rename {vocab => locale}/de-de/Clear.voc (100%) rename {vocab => locale}/de-de/ClearAlternatives.voc (100%) rename {vocab => locale}/de-de/Cloudy.voc (100%) rename {vocab => locale}/de-de/CloudyAlternatives.voc (100%) rename {vocab => locale}/de-de/Cold.voc (100%) rename {vocab => locale}/de-de/ConfirmQuery.voc (100%) rename {vocab => locale}/de-de/ConfirmQueryCurrent.voc (100%) rename {vocab => locale}/de-de/ConfirmQueryFuture.voc (100%) rename {vocab => locale}/de-de/Couple.voc (100%) rename {dialog => locale}/de-de/E.dialog (100%) rename {vocab => locale}/de-de/Fahrenheit.voc (100%) rename {vocab => locale}/de-de/FogAlternatives.voc (100%) rename {vocab => locale}/de-de/Foggy.voc (100%) rename {vocab => locale}/de-de/Forecast.voc (100%) rename {vocab => locale}/de-de/High.voc (100%) rename {vocab => locale}/de-de/Hot.voc (100%) rename {vocab => locale}/de-de/How.voc (100%) rename {vocab => locale}/de-de/Humidity.voc (100%) rename {vocab => locale}/de-de/Later.voc (100%) rename {vocab => locale}/de-de/Location.voc (100%) rename {vocab => locale}/de-de/Low.voc (100%) rename {dialog => locale}/de-de/N.dialog (100%) rename {dialog => locale}/de-de/NE.dialog (100%) rename {dialog => locale}/de-de/NW.dialog (100%) rename {vocab => locale}/de-de/Next.voc (100%) rename {vocab => locale}/de-de/Now.voc (100%) rename {vocab => locale}/de-de/Precipitation.voc (100%) rename {vocab => locale}/de-de/Query.voc (100%) rename {vocab => locale}/de-de/RainAlternatives.voc (100%) rename {vocab => locale}/de-de/Raining.voc (100%) rename {vocab => locale}/de-de/RelativeDay.voc (100%) rename {vocab => locale}/de-de/RelativeTime.voc (100%) rename {dialog => locale}/de-de/S.dialog (100%) rename {dialog => locale}/de-de/SE.dialog (100%) rename {dialog => locale}/de-de/SW.dialog (100%) rename {vocab => locale}/de-de/SnowAlternatives.voc (100%) rename {vocab => locale}/de-de/Snowing.voc (100%) rename {vocab => locale}/de-de/Storm.voc (100%) rename {vocab => locale}/de-de/StormAlternatives.voc (100%) rename {vocab => locale}/de-de/Sunrise.voc (100%) rename {vocab => locale}/de-de/Sunset.voc (100%) rename {vocab => locale}/de-de/Temperature.voc (100%) rename {vocab => locale}/de-de/ThreeDay.voc (100%) rename {vocab => locale}/de-de/Today.voc (100%) rename {vocab => locale}/de-de/Unit.entity (100%) rename {vocab => locale}/de-de/Unit.voc (100%) rename {dialog => locale}/de-de/W.dialog (100%) rename {vocab => locale}/de-de/Weather.voc (100%) rename {vocab => locale}/de-de/WeatherType.voc (100%) rename {vocab => locale}/de-de/Week.voc (100%) rename {vocab => locale}/de-de/Weekend.voc (100%) rename {vocab => locale}/de-de/When.voc (100%) rename {vocab => locale}/de-de/Windy.voc (100%) rename {dialog => locale}/de-de/affirmative.condition.dialog (100%) rename {dialog => locale}/de-de/and.dialog (100%) rename {dialog => locale}/de-de/at.time.affirmative.condition.dialog (100%) rename {dialog => locale}/de-de/at.time.cond.alternative.dialog (100%) rename {dialog => locale}/de-de/at.time.forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/de-de/at.time.forecast.cond.alternative.dialog (100%) rename {dialog => locale}/de-de/at.time.forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/de-de/at.time.forecast.local.cond.alternative.dialog (100%) rename {dialog => locale}/de-de/at.time.forecast.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/de-de/at.time.forecast.no.cond.predicted.dialog (100%) rename {dialog => locale}/de-de/at.time.local.affirmative.condition.dialog (100%) rename {dialog => locale}/de-de/at.time.local.cond.alternative.dialog (100%) rename {dialog => locale}/de-de/at.time.local.high.temperature.dialog (100%) rename {dialog => locale}/de-de/at.time.local.low.temperature.dialog (100%) rename {dialog => locale}/de-de/at.time.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/de-de/at.time.local.temperature.dialog (100%) rename {dialog => locale}/de-de/at.time.local.weather.dialog (100%) rename {dialog => locale}/de-de/at.time.no.cond.predicted.dialog (100%) rename {dialog => locale}/de-de/cant.get.forecast.dialog (100%) rename {dialog => locale}/de-de/celsius.dialog (100%) rename {dialog => locale}/de-de/clear sky.dialog (100%) rename {dialog => locale}/de-de/clear.alternative.dialog (100%) rename {dialog => locale}/de-de/clear.dialog (100%) rename {dialog => locale}/de-de/clear.future.dialog (100%) rename {dialog => locale}/de-de/cloudy.alternative.dialog (100%) rename {dialog => locale}/de-de/condition.category.value (100%) rename {dialog => locale}/de-de/current.high.temperature.dialog (100%) rename {dialog => locale}/de-de/current.hot.dialog (100%) rename {dialog => locale}/de-de/current.local.cold.dialog (100%) rename {dialog => locale}/de-de/current.local.high.temperature.dialog (100%) rename {dialog => locale}/de-de/current.local.hot.dialog (100%) rename {dialog => locale}/de-de/current.local.low.temperature.dialog (100%) rename {dialog => locale}/de-de/current.local.temperature.dialog (100%) rename {dialog => locale}/de-de/current.local.weather.dialog (100%) rename {dialog => locale}/de-de/current.low.temperature.dialog (100%) rename {dialog => locale}/de-de/current.temperature.dialog (100%) rename {dialog => locale}/de-de/current.weather.dialog (100%) rename {dialog => locale}/de-de/do not know.dialog (100%) rename {vocab => locale}/de-de/do.i.need.an.umbrella.intent (100%) rename {dialog => locale}/de-de/fahrenheit.dialog (100%) rename {dialog => locale}/de-de/fog.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/de-de/forecast.clear.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.cloudy.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.foggy.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.hard.wind.dialog (100%) rename {dialog => locale}/de-de/forecast.high.temperature.dialog (100%) rename {dialog => locale}/de-de/forecast.hot.dialog (100%) rename {dialog => locale}/de-de/forecast.light.wind.dialog (100%) rename {dialog => locale}/de-de/forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/de-de/forecast.local.clear.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.local.cloudy.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.local.foggy.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.local.hard.wind.dialog (100%) rename {dialog => locale}/de-de/forecast.local.high.temperature.dialog (100%) rename {dialog => locale}/de-de/forecast.local.hot.dialog (100%) rename {dialog => locale}/de-de/forecast.local.light.wind.dialog (100%) rename {dialog => locale}/de-de/forecast.local.low.temperature.dialog (100%) rename {dialog => locale}/de-de/forecast.local.medium.wind.dialog (100%) rename {dialog => locale}/de-de/forecast.local.no.clear.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.local.no.fog.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.local.no.rain.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.local.no.snow.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.local.no.storm.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.local.raining.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.local.storm.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.local.temperature.dialog (100%) rename {dialog => locale}/de-de/forecast.local.weather.dialog (100%) rename {dialog => locale}/de-de/forecast.low.temperature.dialog (100%) rename {dialog => locale}/de-de/forecast.medium.wind.dialog (100%) rename {dialog => locale}/de-de/forecast.no.clear.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.no.fog.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.no.rain.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.no.snow.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.no.storm.predicted.dialog (100%) rename {dialog => locale}/de-de/forecast.raining.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.snowing.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.storm.alternative.dialog (100%) rename {dialog => locale}/de-de/forecast.temperature.dialog (100%) rename {dialog => locale}/de-de/forecast.weather.dialog (100%) rename {dialog => locale}/de-de/from.day.dialog (100%) rename {dialog => locale}/de-de/hard.wind.dialog (100%) rename {dialog => locale}/de-de/heavy.dialog (100%) rename {dialog => locale}/de-de/hour.local.weather.dialog (100%) rename {dialog => locale}/de-de/hour.weather.dialog (100%) rename {dialog => locale}/de-de/humidity.dialog (100%) rename {dialog => locale}/de-de/light.dialog (100%) rename {dialog => locale}/de-de/light.wind.dialog (100%) rename {dialog => locale}/de-de/local.affirmative.condition.dialog (100%) rename {dialog => locale}/de-de/local.clear.alternative.dialog (100%) rename {dialog => locale}/de-de/local.cloudy.alternative.dialog (100%) rename {dialog => locale}/de-de/local.foggy.alternative.dialog (100%) rename {dialog => locale}/de-de/local.hard.wind.dialog (100%) rename {dialog => locale}/de-de/local.light.wind.dialog (100%) rename {dialog => locale}/de-de/local.medium.wind.dialog (100%) rename {dialog => locale}/de-de/local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/de-de/local.no.fog.predicted.dialog (100%) rename {dialog => locale}/de-de/local.no.rain.predicted.dialog (100%) rename {dialog => locale}/de-de/local.no.snow.predicted.dialog (100%) rename {dialog => locale}/de-de/local.no.storm.predicted.dialog (100%) rename {dialog => locale}/de-de/local.raining.alternative.dialog (100%) rename {dialog => locale}/de-de/local.snowing.alternative.dialog (100%) rename {dialog => locale}/de-de/local.storm.alternative.dialog (100%) rename {dialog => locale}/de-de/location.not.found.dialog (100%) rename {regex => locale}/de-de/location.rx (100%) rename {dialog => locale}/de-de/medium.wind.dialog (100%) rename {dialog => locale}/de-de/meters per second.dialog (100%) rename {dialog => locale}/de-de/miles per hour.dialog (100%) rename {dialog => locale}/de-de/min.max.dialog (100%) rename {dialog => locale}/de-de/no precipitation expected.dialog (100%) rename {dialog => locale}/de-de/no.clear.predicted.dialog (100%) rename {dialog => locale}/de-de/no.cloudy.predicted.dialog (100%) rename {dialog => locale}/de-de/no.fog.predicted.dialog (100%) rename {dialog => locale}/de-de/no.forecast.dialog (100%) rename {dialog => locale}/de-de/no.rain.predicted.dialog (100%) rename {dialog => locale}/de-de/no.snow.predicted.dialog (100%) rename {dialog => locale}/de-de/no.storm.predicted.dialog (100%) rename {dialog => locale}/de-de/on.date.dialog (100%) rename {dialog => locale}/de-de/on.dialog (100%) rename {dialog => locale}/de-de/percentage.number.dialog (100%) rename {dialog => locale}/de-de/precipitation expected.dialog (100%) rename {dialog => locale}/de-de/rain.dialog (100%) rename {dialog => locale}/de-de/raining.alternative.dialog (100%) rename {dialog => locale}/de-de/report.condition.at.location.dialog (100%) rename {dialog => locale}/de-de/report.condition.dialog (100%) rename {dialog => locale}/de-de/report.condition.future.at.location.dialog (100%) rename {dialog => locale}/de-de/report.condition.future.dialog (100%) rename {dialog => locale}/de-de/report.wind.dialog (100%) rename {vocab => locale}/de-de/simple.temperature.intent (100%) rename {dialog => locale}/de-de/sky is clear.future.dialog (100%) rename {dialog => locale}/de-de/snow.dialog (100%) rename {dialog => locale}/de-de/snowing.alternative.dialog (100%) rename {dialog => locale}/de-de/storm.alternative.dialog (100%) rename {dialog => locale}/de-de/storm.dialog (100%) rename {dialog => locale}/de-de/sunrise.dialog (100%) rename {dialog => locale}/de-de/sunset.dialog (100%) rename {dialog => locale}/de-de/tonight.local.weather.dialog (100%) rename {dialog => locale}/de-de/weekly.condition.on.day.dialog (100%) rename {dialog => locale}/de-de/weekly.conditions.mostly.one.dialog (100%) rename {dialog => locale}/de-de/weekly.conditions.seq.extra.dialog (100%) rename {dialog => locale}/de-de/weekly.conditions.seq.period.dialog (100%) rename {dialog => locale}/de-de/weekly.conditions.seq.start.dialog (100%) rename {dialog => locale}/de-de/weekly.conditions.some.days.dialog (100%) rename {dialog => locale}/de-de/weekly.temp.range.dialog (100%) rename {vocab => locale}/de-de/what.is.multi.day.forecast.intent (100%) rename {vocab => locale}/de-de/what.is.three.day.forecast.intent (100%) rename {vocab => locale}/de-de/what.is.three.day.forecast.location.intent (100%) rename {vocab => locale}/de-de/what.is.two.day.forecast.intent (100%) rename {vocab => locale}/de-de/whats.weather.like.intent (100%) rename {dialog => locale}/de-de/wind.speed.dialog (100%) rename {dialog => locale}/de-de/wind.speed.dir.dialog (100%) rename {dialog => locale}/de-de/wind.strength.hard.dialog (100%) rename {dialog => locale}/de-de/wind.strength.light.dialog (100%) rename {dialog => locale}/de-de/wind.strength.medium.dialog (100%) rename {dialog => locale}/de-de/winds.dialog (100%) rename {vocab => locale}/en-us/Clear.voc (100%) rename {vocab => locale}/en-us/ClearAlternatives.voc (100%) rename {vocab => locale}/en-us/Clouds.voc (100%) rename {vocab => locale}/en-us/CloudsAlternatives.voc (100%) rename {vocab => locale}/en-us/Cold.voc (100%) rename {vocab => locale}/en-us/ConfirmQuery.voc (100%) rename {vocab => locale}/en-us/ConfirmQueryCurrent.voc (100%) rename {vocab => locale}/en-us/ConfirmQueryFuture.voc (100%) rename {vocab => locale}/en-us/Couple.voc (100%) rename {vocab => locale}/en-us/Fahrenheit.voc (100%) rename {vocab => locale}/en-us/Few.voc (100%) rename {vocab => locale}/en-us/Fog.voc (100%) rename {vocab => locale}/en-us/FogAlternatives.voc (100%) rename {vocab => locale}/en-us/Forecast.voc (100%) rename {vocab => locale}/en-us/High.voc (100%) rename {vocab => locale}/en-us/Hot.voc (100%) rename {vocab => locale}/en-us/How.voc (100%) rename {vocab => locale}/en-us/Humidity.voc (100%) rename {vocab => locale}/en-us/Later.voc (100%) rename {vocab => locale}/en-us/Like.voc (100%) rename {vocab => locale}/en-us/Location.voc (100%) rename {vocab => locale}/en-us/Low.voc (100%) rename {vocab => locale}/en-us/Next.voc (100%) rename {vocab => locale}/en-us/Now.voc (100%) rename {vocab => locale}/en-us/Outside.voc (100%) rename {vocab => locale}/en-us/Precipitation.voc (100%) rename {vocab => locale}/en-us/Query.voc (100%) rename {vocab => locale}/en-us/Rain.voc (100%) rename {vocab => locale}/en-us/RainAlternatives.voc (100%) rename {vocab => locale}/en-us/RelativeDay.voc (100%) rename {vocab => locale}/en-us/RelativeTime.voc (100%) rename {vocab => locale}/en-us/Snow.voc (100%) rename {vocab => locale}/en-us/SnowAlternatives.voc (100%) rename {vocab => locale}/en-us/Sunrise.voc (100%) rename {vocab => locale}/en-us/Sunset.voc (100%) rename {vocab => locale}/en-us/Temperature.voc (100%) rename {vocab => locale}/en-us/ThreeDay.voc (100%) rename {vocab => locale}/en-us/Thunderstorm.voc (100%) rename {vocab => locale}/en-us/ThunderstormAlternatives.voc (100%) rename {vocab => locale}/en-us/Today.voc (100%) rename {vocab => locale}/en-us/Unit.entity (100%) rename {vocab => locale}/en-us/Unit.voc (100%) rename {vocab => locale}/en-us/Weather.voc (100%) rename {vocab => locale}/en-us/WeatherType.voc (100%) rename {vocab => locale}/en-us/Week.voc (100%) rename {vocab => locale}/en-us/Weekend.voc (100%) rename {vocab => locale}/en-us/When.voc (100%) rename {vocab => locale}/en-us/Windy.voc (100%) rename {dialog => locale}/en-us/cant.get.forecast.dialog (100%) rename {dialog => locale}/en-us/celsius.dialog (100%) rename {dialog => locale}/en-us/clear sky.dialog (100%) rename {dialog => locale}/en-us/clear.dialog (100%) rename {dialog => locale}/en-us/clear.future.dialog (100%) rename {dialog => locale}/en-us/current.clear.alternative.location.dialog (100%) rename {dialog => locale}/en-us/current.clear.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/current.clear.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/current.clouds.alternative.location.dialog (100%) rename {dialog => locale}/en-us/current.clouds.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/current.clouds.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/current.condition.expected.local.dialog (100%) rename {dialog => locale}/en-us/current.condition.expected.location.dialog (100%) rename {dialog => locale}/en-us/current.fog.alternative.local.dialog (100%) rename {dialog => locale}/en-us/current.fog.alternative.location.dialog (100%) rename {dialog => locale}/en-us/current.fog.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/current.fog.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/current.humidity.local.dialog (100%) rename {dialog => locale}/en-us/current.humidity.location.dialog (100%) rename {dialog => locale}/en-us/current.rain.alternative.local.dialog (100%) rename {dialog => locale}/en-us/current.rain.alternative.location.dialog (100%) rename {dialog => locale}/en-us/current.rain.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/current.rain.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/current.snow.alternative.local.dialog (100%) rename {dialog => locale}/en-us/current.snow.alternative.location.dialog (100%) rename {dialog => locale}/en-us/current.snow.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/current.snow.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/current.sunrise.future.local.dialog (100%) rename {dialog => locale}/en-us/current.sunrise.future.location.dialog (100%) rename {dialog => locale}/en-us/current.sunrise.past.local.dialog (100%) rename {dialog => locale}/en-us/current.sunrise.past.location.dialog (100%) rename {dialog => locale}/en-us/current.sunset.future.local.dialog (100%) rename {dialog => locale}/en-us/current.sunset.future.location.dialog (100%) rename {dialog => locale}/en-us/current.sunset.past.local.dialog (100%) rename {dialog => locale}/en-us/current.sunset.past.location.dialog (100%) rename {dialog => locale}/en-us/current.temperature.high.local.dialog (100%) rename {dialog => locale}/en-us/current.temperature.high.location.dialog (100%) rename {dialog => locale}/en-us/current.temperature.high.low.dialog (100%) rename {dialog => locale}/en-us/current.temperature.local.dialog (100%) rename {dialog => locale}/en-us/current.temperature.location.dialog (100%) rename {dialog => locale}/en-us/current.temperature.low.local.dialog (100%) rename {dialog => locale}/en-us/current.temperature.low.location.dialog (100%) rename {dialog => locale}/en-us/current.thunderstorm.alternative.local.dialog (100%) rename {dialog => locale}/en-us/current.thunderstorm.alternative.location.dialog (100%) rename {dialog => locale}/en-us/current.thunderstorm.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/current.thunderstorm.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/current.weather.local.dialog (100%) rename {dialog => locale}/en-us/current.weather.location.dialog (100%) rename {dialog => locale}/en-us/current.wind.light.local.dialog (100%) rename {dialog => locale}/en-us/current.wind.light.location.dialog (100%) rename {dialog => locale}/en-us/current.wind.moderate.local.dialog (100%) rename {dialog => locale}/en-us/current.wind.moderate.location.dialog (100%) rename {dialog => locale}/en-us/current.wind.strong.local.dialog (100%) rename {dialog => locale}/en-us/current.wind.strong.location.dialog (100%) rename {dialog => locale}/en-us/currrent.clouds.alternative.local.dialog (100%) rename {dialog => locale}/en-us/daily.clear.alternative.local.dialog (100%) rename {dialog => locale}/en-us/daily.clear.alternative.location.dialog (100%) rename {dialog => locale}/en-us/daily.clear.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/daily.clear.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/daily.clouds.alternative.local.dialog (100%) rename {dialog => locale}/en-us/daily.clouds.alternative.location.dialog (100%) rename {dialog => locale}/en-us/daily.clouds.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/daily.clouds.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/daily.condition.expected.local.dialog (100%) rename {dialog => locale}/en-us/daily.condition.expected.location.dialog (100%) rename {dialog => locale}/en-us/daily.fog.alternative.local.dialog (100%) rename {dialog => locale}/en-us/daily.fog.alternative.location.dialog (100%) rename {dialog => locale}/en-us/daily.fog.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/daily.fog.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/daily.humidity.local.dialog (100%) rename {dialog => locale}/en-us/daily.humidity.location.dialog (100%) rename {dialog => locale}/en-us/daily.precipitation.next.local.dialog (100%) rename {dialog => locale}/en-us/daily.precipitation.next.location.dialog (100%) rename {dialog => locale}/en-us/daily.precipitation.next.none.local.dialog (100%) rename {dialog => locale}/en-us/daily.precipitation.next.none.location.dialog (100%) rename {dialog => locale}/en-us/daily.rain.alternative.local.dialog (100%) rename {dialog => locale}/en-us/daily.rain.alternative.location.dialog (100%) rename {dialog => locale}/en-us/daily.rain.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/daily.rain.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/daily.snow.alternative.location.dialog (100%) rename {dialog => locale}/en-us/daily.snow.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/daily.snow.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/daily.sunrise.local.dialog (100%) rename {dialog => locale}/en-us/daily.sunrise.location.dialog (100%) rename {dialog => locale}/en-us/daily.sunset.local.dialog (100%) rename {dialog => locale}/en-us/daily.sunset.location.dialog (100%) rename {dialog => locale}/en-us/daily.temperature.high.local.dialog (100%) rename {dialog => locale}/en-us/daily.temperature.high.location.dialog (100%) rename {dialog => locale}/en-us/daily.temperature.local.dialog (100%) rename {dialog => locale}/en-us/daily.temperature.location.dialog (100%) rename {dialog => locale}/en-us/daily.temperature.low.local.dialog (100%) rename {dialog => locale}/en-us/daily.temperature.low.location.dialog (100%) rename {dialog => locale}/en-us/daily.thunderstorm.alternative.local.dialog (100%) rename {dialog => locale}/en-us/daily.thunderstorm.alternative.location.dialog (100%) rename {dialog => locale}/en-us/daily.thunderstorm.not.expected.local.dialog (100%) rename {dialog => locale}/en-us/daily.thunderstorm.not.expected.location.dialog (100%) rename {dialog => locale}/en-us/daily.weather.local.dialog (100%) rename {dialog => locale}/en-us/daily.weather.location.dialog (100%) rename {dialog => locale}/en-us/daily.wind.light.local.dialog (100%) rename {dialog => locale}/en-us/daily.wind.light.location.dialog (100%) rename {dialog => locale}/en-us/daily.wind.moderate.local.dialog (100%) rename {dialog => locale}/en-us/daily.wind.moderate.location.dialog (100%) rename {dialog => locale}/en-us/daily.wind.strong.local.dialog (100%) rename {dialog => locale}/en-us/daily.wind.strong.location.dialog (100%) rename {dialog => locale}/en-us/do not know.dialog (100%) rename {vocab => locale}/en-us/do.i.need.an.umbrella.intent (100%) rename {dialog => locale}/en-us/east.dialog (100%) rename {dialog => locale}/en-us/fahrenheit.dialog (100%) rename {dialog => locale}/en-us/forty-eight.hours.available.dialog (100%) rename {dialog => locale}/en-us/from.day.dialog (100%) rename {dialog => locale}/en-us/heavy.dialog (100%) rename {dialog => locale}/en-us/hourly.condition.alternative.local.dialog (100%) rename {dialog => locale}/en-us/hourly.condition.alternative.location.dialog (100%) rename {dialog => locale}/en-us/hourly.condition.expected.local.dialog (100%) rename {dialog => locale}/en-us/hourly.condition.expected.location.dialog (100%) rename {dialog => locale}/en-us/hourly.precipitation.next.local.dialog (100%) rename {dialog => locale}/en-us/hourly.precipitation.next.location.dialog (100%) rename {dialog => locale}/en-us/hourly.temperature.local.dialog (100%) rename {dialog => locale}/en-us/hourly.temperature.location.dialog (100%) rename {dialog => locale}/en-us/hourly.weather.local.dialog (100%) rename {dialog => locale}/en-us/hourly.weather.location.dialog (100%) rename {dialog => locale}/en-us/humidity.dialog (100%) rename {dialog => locale}/en-us/light.dialog (100%) rename {dialog => locale}/en-us/location.not.found.dialog (100%) rename {regex => locale}/en-us/location.rx (100%) rename {dialog => locale}/en-us/meters per second.dialog (100%) rename {dialog => locale}/en-us/miles per hour.dialog (100%) rename {dialog => locale}/en-us/no.forecast.dialog (100%) rename {dialog => locale}/en-us/north.dialog (100%) rename {dialog => locale}/en-us/northeast.dialog (100%) rename {dialog => locale}/en-us/northwest.dialog (100%) rename {dialog => locale}/en-us/percentage.number.dialog (100%) rename {dialog => locale}/en-us/rain.dialog (100%) rename {dialog => locale}/en-us/seven.days.available.dialog (100%) rename {vocab => locale}/en-us/simple.temperature.intent (100%) rename {dialog => locale}/en-us/sky is clear.future.dialog (100%) rename {dialog => locale}/en-us/snow.dialog (100%) rename {dialog => locale}/en-us/south.dialog (100%) rename {dialog => locale}/en-us/southeast.dialog (100%) rename {dialog => locale}/en-us/southwest.dialog (100%) rename {dialog => locale}/en-us/storm.dialog (100%) rename {dialog => locale}/en-us/west.dialog (100%) rename {vocab => locale}/en-us/what.is.multi.day.forecast.intent (100%) rename {dialog => locale}/es-es/E.dialog (100%) rename {vocab => locale}/es-es/Forecast.voc (100%) rename {vocab => locale}/es-es/Humidity.voc (100%) rename {vocab => locale}/es-es/Later.voc (100%) rename {vocab => locale}/es-es/Location.voc (100%) rename {dialog => locale}/es-es/N.dialog (100%) rename {dialog => locale}/es-es/NE.dialog (100%) rename {dialog => locale}/es-es/NW.dialog (100%) rename {vocab => locale}/es-es/Next.voc (100%) rename {vocab => locale}/es-es/Precipitation.voc (100%) rename {vocab => locale}/es-es/Query.voc (100%) rename {dialog => locale}/es-es/S.dialog (100%) rename {dialog => locale}/es-es/SE.dialog (100%) rename {dialog => locale}/es-es/SW.dialog (100%) rename {vocab => locale}/es-es/Sunrise.voc (100%) rename {vocab => locale}/es-es/Sunset.voc (100%) rename {dialog => locale}/es-es/W.dialog (100%) rename {vocab => locale}/es-es/Weather.voc (100%) rename {vocab => locale}/es-es/WeatherType.voc (100%) rename {vocab => locale}/es-es/Windy.voc (100%) rename {dialog => locale}/es-es/celsius.dialog (100%) rename {dialog => locale}/es-es/current.local.weather.dialog (100%) rename {dialog => locale}/es-es/current.weather.dialog (100%) rename {dialog => locale}/es-es/do not know.dialog (100%) rename {dialog => locale}/es-es/fahrenheit.dialog (100%) rename {dialog => locale}/es-es/forecast.local.weather.dialog (100%) rename {dialog => locale}/es-es/forecast.weather.dialog (100%) rename {dialog => locale}/es-es/heavy.dialog (100%) rename {dialog => locale}/es-es/hour.local.weather.dialog (100%) rename {dialog => locale}/es-es/hour.weather.dialog (100%) rename {dialog => locale}/es-es/humidity.dialog (100%) rename {dialog => locale}/es-es/light.dialog (100%) rename {dialog => locale}/es-es/location.not.found.dialog (100%) rename {regex => locale}/es-es/location.rx (100%) rename {dialog => locale}/es-es/meters per second.dialog (100%) rename {dialog => locale}/es-es/miles per hour.dialog (100%) rename {dialog => locale}/es-es/no forecast.dialog (100%) rename {dialog => locale}/es-es/no precipitation expected.dialog (100%) rename {dialog => locale}/es-es/precipitation expected.dialog (100%) rename {dialog => locale}/es-es/rain.dialog (100%) rename {dialog => locale}/es-es/report.condition.dialog (100%) rename {dialog => locale}/es-es/report.future.condition.dialog (100%) rename {dialog => locale}/es-es/sky is clear.future.dialog (100%) rename {dialog => locale}/es-es/snow.dialog (100%) rename {dialog => locale}/es-es/wind.speed.dialog (100%) rename {dialog => locale}/es-es/wind.speed.dir.dialog (100%) rename {dialog => locale}/es-es/winds.dialog (100%) rename {dialog => locale}/fr-fr/E.dialog (100%) rename {vocab => locale}/fr-fr/Forecast.voc (100%) rename {vocab => locale}/fr-fr/Humidity.voc (100%) rename {vocab => locale}/fr-fr/Later.voc (100%) rename {vocab => locale}/fr-fr/Location.voc (100%) rename {dialog => locale}/fr-fr/N.dialog (100%) rename {dialog => locale}/fr-fr/NE.dialog (100%) rename {dialog => locale}/fr-fr/NW.dialog (100%) rename {vocab => locale}/fr-fr/Next.voc (100%) rename {vocab => locale}/fr-fr/Precipitation.voc (100%) rename {vocab => locale}/fr-fr/Query.voc (100%) rename {dialog => locale}/fr-fr/S.dialog (100%) rename {dialog => locale}/fr-fr/SE.dialog (100%) rename {dialog => locale}/fr-fr/SW.dialog (100%) rename {vocab => locale}/fr-fr/Sunrise.voc (100%) rename {vocab => locale}/fr-fr/Sunset.voc (100%) rename {dialog => locale}/fr-fr/W.dialog (100%) rename {vocab => locale}/fr-fr/Weather.voc (100%) rename {vocab => locale}/fr-fr/WeatherType.voc (100%) rename {vocab => locale}/fr-fr/Windy.voc (100%) rename {dialog => locale}/fr-fr/celsius.dialog (100%) rename {dialog => locale}/fr-fr/current.local.weather.dialog (100%) rename {dialog => locale}/fr-fr/current.weather.dialog (100%) rename {dialog => locale}/fr-fr/do not know.dialog (100%) rename {dialog => locale}/fr-fr/fahrenheit.dialog (100%) rename {dialog => locale}/fr-fr/forecast.local.weather.dialog (100%) rename {dialog => locale}/fr-fr/forecast.weather.dialog (100%) rename {dialog => locale}/fr-fr/heavy.dialog (100%) rename {dialog => locale}/fr-fr/hour.local.weather.dialog (100%) rename {dialog => locale}/fr-fr/hour.weather.dialog (100%) rename {dialog => locale}/fr-fr/humidity.dialog (100%) rename {dialog => locale}/fr-fr/light.dialog (100%) rename {dialog => locale}/fr-fr/location.not.found.dialog (100%) rename {regex => locale}/fr-fr/location.rx (100%) rename {dialog => locale}/fr-fr/meters per second.dialog (100%) rename {dialog => locale}/fr-fr/miles per hour.dialog (100%) rename {dialog => locale}/fr-fr/no forecast.dialog (100%) rename {dialog => locale}/fr-fr/no precipitation expected.dialog (100%) rename {dialog => locale}/fr-fr/precipitation expected.dialog (100%) rename {dialog => locale}/fr-fr/rain.dialog (100%) rename {dialog => locale}/fr-fr/report.condition.dialog (100%) rename {dialog => locale}/fr-fr/report.future.condition.dialog (100%) rename {dialog => locale}/fr-fr/sky is clear.future.dialog (100%) rename {dialog => locale}/fr-fr/snow.dialog (100%) rename {dialog => locale}/fr-fr/wind.speed.dialog (100%) rename {dialog => locale}/fr-fr/wind.speed.dir.dialog (100%) rename {dialog => locale}/fr-fr/winds.dialog (100%) rename {vocab => locale}/gl-es/Clear.voc (100%) rename {vocab => locale}/gl-es/ClearAlternatives.voc (100%) rename {vocab => locale}/gl-es/Cloudy.voc (100%) rename {vocab => locale}/gl-es/CloudyAlternatives.voc (100%) rename {vocab => locale}/gl-es/Cold.voc (100%) rename {vocab => locale}/gl-es/ConfirmQuery.voc (100%) rename {vocab => locale}/gl-es/ConfirmQueryCurrent.voc (100%) rename {vocab => locale}/gl-es/ConfirmQueryFuture.voc (100%) rename {vocab => locale}/gl-es/Couple.voc (100%) rename {dialog => locale}/gl-es/E.dialog (100%) rename {vocab => locale}/gl-es/Fahrenheit.voc (100%) rename {vocab => locale}/gl-es/FogAlternatives.voc (100%) rename {vocab => locale}/gl-es/Foggy.voc (100%) rename {vocab => locale}/gl-es/Forecast.voc (100%) rename {vocab => locale}/gl-es/High.voc (100%) rename {vocab => locale}/gl-es/Hot.voc (100%) rename {vocab => locale}/gl-es/How.voc (100%) rename {vocab => locale}/gl-es/Humidity.voc (100%) rename {vocab => locale}/gl-es/Later.voc (100%) rename {vocab => locale}/gl-es/Location.voc (100%) rename {vocab => locale}/gl-es/Low.voc (100%) rename {dialog => locale}/gl-es/N.dialog (100%) rename {dialog => locale}/gl-es/NE.dialog (100%) rename {dialog => locale}/gl-es/NW.dialog (100%) rename {vocab => locale}/gl-es/Next.voc (100%) rename {vocab => locale}/gl-es/Now.voc (100%) rename {vocab => locale}/gl-es/Precipitation.voc (100%) rename {vocab => locale}/gl-es/Query.voc (100%) rename {vocab => locale}/gl-es/RainAlternatives.voc (100%) rename {vocab => locale}/gl-es/Raining.voc (100%) rename {vocab => locale}/gl-es/RelativeDay.voc (100%) rename {vocab => locale}/gl-es/RelativeTime.voc (100%) rename {dialog => locale}/gl-es/S.dialog (100%) rename {dialog => locale}/gl-es/SE.dialog (100%) rename {dialog => locale}/gl-es/SW.dialog (100%) rename {vocab => locale}/gl-es/SnowAlternatives.voc (100%) rename {vocab => locale}/gl-es/Snowing.voc (100%) rename {vocab => locale}/gl-es/Storm.voc (100%) rename {vocab => locale}/gl-es/StormAlternatives.voc (100%) rename {vocab => locale}/gl-es/Sunrise.voc (100%) rename {vocab => locale}/gl-es/Sunset.voc (100%) rename {vocab => locale}/gl-es/Temperature.voc (100%) rename {vocab => locale}/gl-es/ThreeDay.voc (100%) rename {vocab => locale}/gl-es/Today.voc (100%) rename {vocab => locale}/gl-es/Unit.entity (100%) rename {vocab => locale}/gl-es/Unit.voc (100%) rename {dialog => locale}/gl-es/W.dialog (100%) rename {vocab => locale}/gl-es/Weather.voc (100%) rename {vocab => locale}/gl-es/WeatherType.voc (100%) rename {vocab => locale}/gl-es/Week.voc (100%) rename {vocab => locale}/gl-es/Weekend.voc (100%) rename {vocab => locale}/gl-es/When.voc (100%) rename {vocab => locale}/gl-es/Windy.voc (100%) rename {dialog => locale}/gl-es/affirmative.condition.dialog (100%) rename {dialog => locale}/gl-es/and.dialog (100%) rename {dialog => locale}/gl-es/at.time.affirmative.condition.dialog (100%) rename {dialog => locale}/gl-es/at.time.cond.alternative.dialog (100%) rename {dialog => locale}/gl-es/at.time.forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/gl-es/at.time.forecast.cond.alternative.dialog (100%) rename {dialog => locale}/gl-es/at.time.forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/gl-es/at.time.forecast.local.cond.alternative.dialog (100%) rename {dialog => locale}/gl-es/at.time.forecast.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/gl-es/at.time.forecast.no.cond.predicted.dialog (100%) rename {dialog => locale}/gl-es/at.time.local.affirmative.condition.dialog (100%) rename {dialog => locale}/gl-es/at.time.local.cond.alternative.dialog (100%) rename {dialog => locale}/gl-es/at.time.local.high.temperature.dialog (100%) rename {dialog => locale}/gl-es/at.time.local.low.temperature.dialog (100%) rename {dialog => locale}/gl-es/at.time.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/gl-es/at.time.local.temperature.dialog (100%) rename {dialog => locale}/gl-es/at.time.local.weather.dialog (100%) rename {dialog => locale}/gl-es/at.time.no.cond.predicted.dialog (100%) rename {dialog => locale}/gl-es/cant.get.forecast.dialog (100%) rename {dialog => locale}/gl-es/celsius.dialog (100%) rename {dialog => locale}/gl-es/clear sky.dialog (100%) rename {dialog => locale}/gl-es/clear.alternative.dialog (100%) rename {dialog => locale}/gl-es/clear.dialog (100%) rename {dialog => locale}/gl-es/clear.future.dialog (100%) rename {dialog => locale}/gl-es/cloudy.alternative.dialog (100%) rename {dialog => locale}/gl-es/condition.category.value (100%) rename {dialog => locale}/gl-es/current.high.temperature.dialog (100%) rename {dialog => locale}/gl-es/current.hot.dialog (100%) rename {dialog => locale}/gl-es/current.local.cold.dialog (100%) rename {dialog => locale}/gl-es/current.local.high.temperature.dialog (100%) rename {dialog => locale}/gl-es/current.local.hot.dialog (100%) rename {dialog => locale}/gl-es/current.local.low.temperature.dialog (100%) rename {dialog => locale}/gl-es/current.local.temperature.dialog (100%) rename {dialog => locale}/gl-es/current.local.weather.dialog (100%) rename {dialog => locale}/gl-es/current.low.temperature.dialog (100%) rename {dialog => locale}/gl-es/current.temperature.dialog (100%) rename {dialog => locale}/gl-es/current.weather.dialog (100%) rename {dialog => locale}/gl-es/do not know.dialog (100%) rename {vocab => locale}/gl-es/do.i.need.an.umbrella.intent (100%) rename {dialog => locale}/gl-es/fahrenheit.dialog (100%) rename {dialog => locale}/gl-es/fog.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/gl-es/forecast.clear.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.cloudy.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.foggy.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.hard.wind.dialog (100%) rename {dialog => locale}/gl-es/forecast.high.temperature.dialog (100%) rename {dialog => locale}/gl-es/forecast.hot.dialog (100%) rename {dialog => locale}/gl-es/forecast.light.wind.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.clear.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.cloudy.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.foggy.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.hard.wind.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.high.temperature.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.hot.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.light.wind.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.low.temperature.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.medium.wind.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.no.clear.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.no.fog.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.no.rain.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.no.snow.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.no.storm.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.raining.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.storm.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.temperature.dialog (100%) rename {dialog => locale}/gl-es/forecast.local.weather.dialog (100%) rename {dialog => locale}/gl-es/forecast.low.temperature.dialog (100%) rename {dialog => locale}/gl-es/forecast.medium.wind.dialog (100%) rename {dialog => locale}/gl-es/forecast.no.clear.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.no.fog.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.no.rain.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.no.snow.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.no.storm.predicted.dialog (100%) rename {dialog => locale}/gl-es/forecast.raining.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.snowing.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.storm.alternative.dialog (100%) rename {dialog => locale}/gl-es/forecast.temperature.dialog (100%) rename {dialog => locale}/gl-es/forecast.weather.dialog (100%) rename {dialog => locale}/gl-es/from.day.dialog (100%) rename {dialog => locale}/gl-es/hard.wind.dialog (100%) rename {dialog => locale}/gl-es/heavy.dialog (100%) rename {dialog => locale}/gl-es/hour.local.weather.dialog (100%) rename {dialog => locale}/gl-es/hour.weather.dialog (100%) rename {dialog => locale}/gl-es/humidity.dialog (100%) rename {dialog => locale}/gl-es/light.dialog (100%) rename {dialog => locale}/gl-es/light.wind.dialog (100%) rename {dialog => locale}/gl-es/local.affirmative.condition.dialog (100%) rename {dialog => locale}/gl-es/local.clear.alternative.dialog (100%) rename {dialog => locale}/gl-es/local.cloudy.alternative.dialog (100%) rename {dialog => locale}/gl-es/local.foggy.alternative.dialog (100%) rename {dialog => locale}/gl-es/local.hard.wind.dialog (100%) rename {dialog => locale}/gl-es/local.light.wind.dialog (100%) rename {dialog => locale}/gl-es/local.medium.wind.dialog (100%) rename {dialog => locale}/gl-es/local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/gl-es/local.no.fog.predicted.dialog (100%) rename {dialog => locale}/gl-es/local.no.rain.predicted.dialog (100%) rename {dialog => locale}/gl-es/local.no.snow.predicted.dialog (100%) rename {dialog => locale}/gl-es/local.no.storm.predicted.dialog (100%) rename {dialog => locale}/gl-es/local.raining.alternative.dialog (100%) rename {dialog => locale}/gl-es/local.snowing.alternative.dialog (100%) rename {dialog => locale}/gl-es/local.storm.alternative.dialog (100%) rename {dialog => locale}/gl-es/location.not.found.dialog (100%) rename {regex => locale}/gl-es/location.rx (100%) rename {dialog => locale}/gl-es/medium.wind.dialog (100%) rename {dialog => locale}/gl-es/meters per second.dialog (100%) rename {dialog => locale}/gl-es/miles per hour.dialog (100%) rename {dialog => locale}/gl-es/min.max.dialog (100%) rename {dialog => locale}/gl-es/no precipitation expected.dialog (100%) rename {dialog => locale}/gl-es/no.clear.predicted.dialog (100%) rename {dialog => locale}/gl-es/no.cloudy.predicted.dialog (100%) rename {dialog => locale}/gl-es/no.fog.predicted.dialog (100%) rename {dialog => locale}/gl-es/no.forecast.dialog (100%) rename {dialog => locale}/gl-es/no.rain.predicted.dialog (100%) rename {dialog => locale}/gl-es/no.snow.predicted.dialog (100%) rename {dialog => locale}/gl-es/no.storm.predicted.dialog (100%) rename {dialog => locale}/gl-es/on.date.dialog (100%) rename {dialog => locale}/gl-es/on.dialog (100%) rename {dialog => locale}/gl-es/percentage.number.dialog (100%) rename {dialog => locale}/gl-es/precipitation expected.dialog (100%) rename {dialog => locale}/gl-es/rain.dialog (100%) rename {dialog => locale}/gl-es/raining.alternative.dialog (100%) rename {dialog => locale}/gl-es/report.condition.at.location.dialog (100%) rename {dialog => locale}/gl-es/report.condition.dialog (100%) rename {dialog => locale}/gl-es/report.condition.future.at.location.dialog (100%) rename {dialog => locale}/gl-es/report.condition.future.dialog (100%) rename {dialog => locale}/gl-es/report.wind.dialog (100%) rename {vocab => locale}/gl-es/simple.temperature.intent (100%) rename {dialog => locale}/gl-es/sky is clear.future.dialog (100%) rename {dialog => locale}/gl-es/snow.dialog (100%) rename {dialog => locale}/gl-es/snowing.alternative.dialog (100%) rename {dialog => locale}/gl-es/storm.alternative.dialog (100%) rename {dialog => locale}/gl-es/storm.dialog (100%) rename {dialog => locale}/gl-es/sunrise.dialog (100%) rename {dialog => locale}/gl-es/sunset.dialog (100%) rename {dialog => locale}/gl-es/tonight.local.weather.dialog (100%) rename {dialog => locale}/gl-es/weekly.condition.on.day.dialog (100%) rename {dialog => locale}/gl-es/weekly.conditions.mostly.one.dialog (100%) rename {dialog => locale}/gl-es/weekly.conditions.seq.extra.dialog (100%) rename {dialog => locale}/gl-es/weekly.conditions.seq.period.dialog (100%) rename {dialog => locale}/gl-es/weekly.conditions.seq.start.dialog (100%) rename {dialog => locale}/gl-es/weekly.conditions.some.days.dialog (100%) rename {dialog => locale}/gl-es/weekly.temp.range.dialog (100%) rename {vocab => locale}/gl-es/what.is.multi.day.forecast.intent (100%) rename {vocab => locale}/gl-es/what.is.three.day.forecast.intent (100%) rename {vocab => locale}/gl-es/what.is.three.day.forecast.location.intent (100%) rename {vocab => locale}/gl-es/what.is.two.day.forecast.intent (100%) rename {vocab => locale}/gl-es/whats.weather.like.intent (100%) rename {dialog => locale}/gl-es/wind.speed.dialog (100%) rename {dialog => locale}/gl-es/wind.speed.dir.dialog (100%) rename {dialog => locale}/gl-es/wind.strength.hard.dialog (100%) rename {dialog => locale}/gl-es/wind.strength.light.dialog (100%) rename {dialog => locale}/gl-es/wind.strength.medium.dialog (100%) rename {dialog => locale}/gl-es/winds.dialog (100%) rename {vocab => locale}/it-it/Clear.voc (100%) rename {vocab => locale}/it-it/ClearAlternatives.voc (100%) rename {vocab => locale}/it-it/Cloudy.voc (100%) rename {vocab => locale}/it-it/CloudyAlternatives.voc (100%) rename {vocab => locale}/it-it/Cold.voc (100%) rename {vocab => locale}/it-it/ConfirmQuery.voc (100%) rename {dialog => locale}/it-it/E.dialog (100%) rename {vocab => locale}/it-it/Fahrenheit.voc (100%) rename {vocab => locale}/it-it/Foggy.voc (100%) rename {vocab => locale}/it-it/FoggyAlternatives.voc (100%) rename {vocab => locale}/it-it/Forecast.voc (100%) rename {vocab => locale}/it-it/High.voc (100%) rename {vocab => locale}/it-it/Hot.voc (100%) rename {vocab => locale}/it-it/Humidity.voc (100%) rename {vocab => locale}/it-it/Later.voc (100%) rename {vocab => locale}/it-it/Location.voc (100%) rename {vocab => locale}/it-it/Low.voc (100%) rename {dialog => locale}/it-it/N.dialog (100%) rename {dialog => locale}/it-it/NE.dialog (100%) rename {dialog => locale}/it-it/NW.dialog (100%) rename {vocab => locale}/it-it/Next.voc (100%) rename {vocab => locale}/it-it/Precipitation.voc (100%) rename {vocab => locale}/it-it/Query.voc (100%) rename {vocab => locale}/it-it/RainAlternatives.voc (100%) rename {vocab => locale}/it-it/Raining.voc (100%) rename {dialog => locale}/it-it/S.dialog (100%) rename {dialog => locale}/it-it/SE.dialog (100%) rename {dialog => locale}/it-it/SW.dialog (100%) rename {vocab => locale}/it-it/SnowAlternatives.voc (100%) rename {vocab => locale}/it-it/Snowing.voc (100%) rename {vocab => locale}/it-it/Sunrise.voc (100%) rename {vocab => locale}/it-it/Sunset.voc (100%) rename {vocab => locale}/it-it/Temperature.voc (100%) rename {vocab => locale}/it-it/Unit.entity (100%) rename {vocab => locale}/it-it/Unit.voc (100%) rename {dialog => locale}/it-it/W.dialog (100%) rename {vocab => locale}/it-it/Weather.voc (100%) rename {vocab => locale}/it-it/WeatherType.voc (100%) rename {vocab => locale}/it-it/Weekend.voc (100%) rename {vocab => locale}/it-it/Windy.voc (100%) rename {dialog => locale}/it-it/affirmative.condition.dialog (100%) rename {dialog => locale}/it-it/celsius.dialog (100%) rename {dialog => locale}/it-it/clear.alternative.dialog (100%) rename {dialog => locale}/it-it/cloudy.alternative.dialog (100%) rename {dialog => locale}/it-it/current.high.temperature.dialog (100%) rename {dialog => locale}/it-it/current.hot.dialog (100%) rename {dialog => locale}/it-it/current.local.cold.dialog (100%) rename {dialog => locale}/it-it/current.local.high.temperature.dialog (100%) rename {dialog => locale}/it-it/current.local.hot.dialog (100%) rename {dialog => locale}/it-it/current.local.low.temperature.dialog (100%) rename {dialog => locale}/it-it/current.local.temperature.dialog (100%) rename {dialog => locale}/it-it/current.local.weather.dialog (100%) rename {dialog => locale}/it-it/current.low.temperature.dialog (100%) rename {dialog => locale}/it-it/current.temperature.dialog (100%) rename {dialog => locale}/it-it/current.weather.dialog (100%) rename {dialog => locale}/it-it/do not know.dialog (100%) rename {vocab => locale}/it-it/do.i.need.an.umbrella.intent (100%) rename {dialog => locale}/it-it/fahrenheit.dialog (100%) rename {dialog => locale}/it-it/fog.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/it-it/forecast.clear.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.cloudy.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.foggy.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.hard.wind.dialog (100%) rename {dialog => locale}/it-it/forecast.high.temperature.dialog (100%) rename {dialog => locale}/it-it/forecast.hot.dialog (100%) rename {dialog => locale}/it-it/forecast.light.wind.dialog (100%) rename {dialog => locale}/it-it/forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/it-it/forecast.local.clear.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.local.cloudy.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.local.foggy.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.local.hard.wind.dialog (100%) rename {dialog => locale}/it-it/forecast.local.high.temperature.dialog (100%) rename {dialog => locale}/it-it/forecast.local.hot.dialog (100%) rename {dialog => locale}/it-it/forecast.local.light.wind.dialog (100%) rename {dialog => locale}/it-it/forecast.local.low.temperature.dialog (100%) rename {dialog => locale}/it-it/forecast.local.medium.wind.dialog (100%) rename {dialog => locale}/it-it/forecast.local.no.clear.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.local.no.fog.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.local.no.rain.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.local.no.snow.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.local.raining.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.local.temperature.dialog (100%) rename {dialog => locale}/it-it/forecast.local.weather.dialog (100%) rename {dialog => locale}/it-it/forecast.medium.wind.dialog (100%) rename {dialog => locale}/it-it/forecast.no.clear.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.no.fog.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.no.rain.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.no.snow.predicted.dialog (100%) rename {dialog => locale}/it-it/forecast.raining.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.snowing.alternative.dialog (100%) rename {dialog => locale}/it-it/forecast.temperature.dialog (100%) rename {dialog => locale}/it-it/forecast.weather.dialog (100%) rename {dialog => locale}/it-it/hard.wind.dialog (100%) rename {dialog => locale}/it-it/heavy.dialog (100%) rename {dialog => locale}/it-it/hour.local.weather.dialog (100%) rename {dialog => locale}/it-it/hour.weather.dialog (100%) rename {dialog => locale}/it-it/humidity.dialog (100%) rename {dialog => locale}/it-it/light.dialog (100%) rename {dialog => locale}/it-it/light.wind.dialog (100%) rename {dialog => locale}/it-it/local.affirmative.condition.dialog (100%) rename {dialog => locale}/it-it/local.clear.alternative.dialog (100%) rename {dialog => locale}/it-it/local.cloudy.alternative.dialog (100%) rename {dialog => locale}/it-it/local.foggy.alternative.dialog (100%) rename {dialog => locale}/it-it/local.hard.wind.dialog (100%) rename {dialog => locale}/it-it/local.light.wind.dialog (100%) rename {dialog => locale}/it-it/local.medium.wind.dialog (100%) rename {dialog => locale}/it-it/local.no.fog.predicted.dialog (100%) rename {dialog => locale}/it-it/local.no.rain.predicted.dialog (100%) rename {dialog => locale}/it-it/local.no.snow.predicted.dialog (100%) rename {dialog => locale}/it-it/local.raining.alternative.dialog (100%) rename {dialog => locale}/it-it/local.snowing.alternative.dialog (100%) rename {dialog => locale}/it-it/location.not.found.dialog (100%) rename {regex => locale}/it-it/location.rx (100%) rename {dialog => locale}/it-it/medium.wind.dialog (100%) rename {dialog => locale}/it-it/meters per second.dialog (100%) rename {dialog => locale}/it-it/miles per hour.dialog (100%) rename {dialog => locale}/it-it/min.max.dialog (100%) rename {dialog => locale}/it-it/no forecast.dialog (100%) rename {dialog => locale}/it-it/no precipitation expected.dialog (100%) rename {dialog => locale}/it-it/no.clear.predicted.dialog (100%) rename {dialog => locale}/it-it/no.cloudy.predicted.dialog (100%) rename {dialog => locale}/it-it/no.fog.predicted.dialog (100%) rename {dialog => locale}/it-it/no.rain.predicted.dialog (100%) rename {dialog => locale}/it-it/no.snow.predicted.dialog (100%) rename {dialog => locale}/it-it/precipitation expected.dialog (100%) rename {dialog => locale}/it-it/rain.dialog (100%) rename {dialog => locale}/it-it/raining.alternative.dialog (100%) rename {dialog => locale}/it-it/report.condition.dialog (100%) rename {dialog => locale}/it-it/report.future.condition.dialog (100%) rename {vocab => locale}/it-it/simple.temperature.intent (100%) rename {dialog => locale}/it-it/sky is clear.future.dialog (100%) rename {dialog => locale}/it-it/snow.dialog (100%) rename {dialog => locale}/it-it/snowing.alternative.dialog (100%) rename {vocab => locale}/it-it/what.is.multi.day.forecast.intent (100%) rename {vocab => locale}/it-it/what.is.three.day.forecast.intent (100%) rename {vocab => locale}/it-it/what.is.three.day.forecast.location.intent (100%) rename {vocab => locale}/it-it/what.is.two.day.forecast.intent (100%) rename {vocab => locale}/it-it/whats.weather.like.intent (100%) rename {dialog => locale}/it-it/wind.speed.dialog (100%) rename {dialog => locale}/it-it/wind.speed.dir.dialog (100%) rename {dialog => locale}/it-it/winds.dialog (100%) rename {dialog => locale}/nl-nl/E.dialog (100%) rename {vocab => locale}/nl-nl/Forecast.voc (100%) rename {vocab => locale}/nl-nl/Humidity.voc (100%) rename {vocab => locale}/nl-nl/Later.voc (100%) rename {vocab => locale}/nl-nl/Location.voc (100%) rename {dialog => locale}/nl-nl/N.dialog (100%) rename {dialog => locale}/nl-nl/NE.dialog (100%) rename {dialog => locale}/nl-nl/NW.dialog (100%) rename {vocab => locale}/nl-nl/Next.voc (100%) rename {vocab => locale}/nl-nl/Precipitation.voc (100%) rename {vocab => locale}/nl-nl/Query.voc (100%) rename {dialog => locale}/nl-nl/S.dialog (100%) rename {dialog => locale}/nl-nl/SE.dialog (100%) rename {dialog => locale}/nl-nl/SW.dialog (100%) rename {vocab => locale}/nl-nl/Sunrise.voc (100%) rename {vocab => locale}/nl-nl/Sunset.voc (100%) rename {dialog => locale}/nl-nl/W.dialog (100%) rename {vocab => locale}/nl-nl/Weather.voc (100%) rename {vocab => locale}/nl-nl/WeatherType.voc (100%) rename {vocab => locale}/nl-nl/Windy.voc (100%) rename {dialog => locale}/nl-nl/celsius.dialog (100%) rename {dialog => locale}/nl-nl/current.local.weather.dialog (100%) rename {dialog => locale}/nl-nl/current.weather.dialog (100%) rename {dialog => locale}/nl-nl/do not know.dialog (100%) rename {dialog => locale}/nl-nl/fahrenheit.dialog (100%) rename {dialog => locale}/nl-nl/forecast.local.weather.dialog (100%) rename {dialog => locale}/nl-nl/forecast.weather.dialog (100%) rename {dialog => locale}/nl-nl/heavy.dialog (100%) rename {dialog => locale}/nl-nl/hour.local.weather.dialog (100%) rename {dialog => locale}/nl-nl/hour.weather.dialog (100%) rename {dialog => locale}/nl-nl/humidity.dialog (100%) rename {dialog => locale}/nl-nl/light.dialog (100%) rename {dialog => locale}/nl-nl/location.not.found.dialog (100%) rename {regex => locale}/nl-nl/location.rx (100%) rename {dialog => locale}/nl-nl/meters per second.dialog (100%) rename {dialog => locale}/nl-nl/miles per hour.dialog (100%) rename {dialog => locale}/nl-nl/no forecast.dialog (100%) rename {dialog => locale}/nl-nl/no precipitation expected.dialog (100%) rename {dialog => locale}/nl-nl/precipitation expected.dialog (100%) rename {dialog => locale}/nl-nl/rain.dialog (100%) rename {dialog => locale}/nl-nl/report.condition.dialog (100%) rename {dialog => locale}/nl-nl/report.future.condition.dialog (100%) rename {dialog => locale}/nl-nl/sky is clear.future.dialog (100%) rename {dialog => locale}/nl-nl/snow.dialog (100%) rename {dialog => locale}/nl-nl/wind.speed.dialog (100%) rename {dialog => locale}/nl-nl/wind.speed.dir.dialog (100%) rename {dialog => locale}/nl-nl/winds.dialog (100%) rename {vocab => locale}/pt-br/Clear.voc (100%) rename {vocab => locale}/pt-br/ClearAlternatives.voc (100%) rename {vocab => locale}/pt-br/Cloudy.voc (100%) rename {vocab => locale}/pt-br/CloudyAlternatives.voc (100%) rename {vocab => locale}/pt-br/Cold.voc (100%) rename {vocab => locale}/pt-br/ConfirmQuery.voc (100%) rename {vocab => locale}/pt-br/ConfirmQueryCurrent.voc (100%) rename {vocab => locale}/pt-br/ConfirmQueryFuture.voc (100%) rename {vocab => locale}/pt-br/Couple.voc (100%) rename {dialog => locale}/pt-br/E.dialog (100%) rename {vocab => locale}/pt-br/Fahrenheit.voc (100%) rename {vocab => locale}/pt-br/FogAlternatives.voc (100%) rename {vocab => locale}/pt-br/Foggy.voc (100%) rename {vocab => locale}/pt-br/Forecast.voc (100%) rename {vocab => locale}/pt-br/High.voc (100%) rename {vocab => locale}/pt-br/Hot.voc (100%) rename {vocab => locale}/pt-br/How.voc (100%) rename {vocab => locale}/pt-br/Humidity.voc (100%) rename {vocab => locale}/pt-br/Later.voc (100%) rename {vocab => locale}/pt-br/Location.voc (100%) rename {vocab => locale}/pt-br/Low.voc (100%) rename {dialog => locale}/pt-br/N.dialog (100%) rename {dialog => locale}/pt-br/NE.dialog (100%) rename {dialog => locale}/pt-br/NW.dialog (100%) rename {vocab => locale}/pt-br/Next.voc (100%) rename {vocab => locale}/pt-br/Now.voc (100%) rename {vocab => locale}/pt-br/Precipitation.voc (100%) rename {vocab => locale}/pt-br/Query.voc (100%) rename {vocab => locale}/pt-br/RainAlternatives.voc (100%) rename {vocab => locale}/pt-br/Raining.voc (100%) rename {vocab => locale}/pt-br/RelativeDay.voc (100%) rename {vocab => locale}/pt-br/RelativeTime.voc (100%) rename {dialog => locale}/pt-br/S.dialog (100%) rename {dialog => locale}/pt-br/SE.dialog (100%) rename {dialog => locale}/pt-br/SW.dialog (100%) rename {vocab => locale}/pt-br/SnowAlternatives.voc (100%) rename {vocab => locale}/pt-br/Snowing.voc (100%) rename {vocab => locale}/pt-br/Storm.voc (100%) rename {vocab => locale}/pt-br/StormAlternatives.voc (100%) rename {vocab => locale}/pt-br/Sunrise.voc (100%) rename {vocab => locale}/pt-br/Sunset.voc (100%) rename {vocab => locale}/pt-br/Temperature.voc (100%) rename {vocab => locale}/pt-br/ThreeDay.voc (100%) rename {vocab => locale}/pt-br/Today.voc (100%) rename {vocab => locale}/pt-br/Unit.entity (100%) rename {vocab => locale}/pt-br/Unit.voc (100%) rename {dialog => locale}/pt-br/W.dialog (100%) rename {vocab => locale}/pt-br/Weather.voc (100%) rename {vocab => locale}/pt-br/WeatherType.voc (100%) rename {vocab => locale}/pt-br/Week.voc (100%) rename {vocab => locale}/pt-br/Weekend.voc (100%) rename {vocab => locale}/pt-br/When.voc (100%) rename {vocab => locale}/pt-br/Windy.voc (100%) rename {dialog => locale}/pt-br/affirmative.condition.dialog (100%) rename {dialog => locale}/pt-br/and.dialog (100%) rename {dialog => locale}/pt-br/at.time.affirmative.condition.dialog (100%) rename {dialog => locale}/pt-br/at.time.cond.alternative.dialog (100%) rename {dialog => locale}/pt-br/at.time.forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/pt-br/at.time.forecast.cond.alternative.dialog (100%) rename {dialog => locale}/pt-br/at.time.forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/pt-br/at.time.forecast.local.cond.alternative.dialog (100%) rename {dialog => locale}/pt-br/at.time.forecast.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/pt-br/at.time.forecast.no.cond.predicted.dialog (100%) rename {dialog => locale}/pt-br/at.time.local.affirmative.condition.dialog (100%) rename {dialog => locale}/pt-br/at.time.local.cond.alternative.dialog (100%) rename {dialog => locale}/pt-br/at.time.local.high.temperature.dialog (100%) rename {dialog => locale}/pt-br/at.time.local.low.temperature.dialog (100%) rename {dialog => locale}/pt-br/at.time.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/pt-br/at.time.local.temperature.dialog (100%) rename {dialog => locale}/pt-br/at.time.local.weather.dialog (100%) rename {dialog => locale}/pt-br/at.time.no.cond.predicted.dialog (100%) rename {dialog => locale}/pt-br/cant.get.forecast.dialog (100%) rename {dialog => locale}/pt-br/celsius.dialog (100%) rename {dialog => locale}/pt-br/clear sky.dialog (100%) rename {dialog => locale}/pt-br/clear.alternative.dialog (100%) rename {dialog => locale}/pt-br/clear.dialog (100%) rename {dialog => locale}/pt-br/clear.future.dialog (100%) rename {dialog => locale}/pt-br/cloudy.alternative.dialog (100%) rename {dialog => locale}/pt-br/condition.category.value (100%) rename {dialog => locale}/pt-br/current.high.temperature.dialog (100%) rename {dialog => locale}/pt-br/current.hot.dialog (100%) rename {dialog => locale}/pt-br/current.local.cold.dialog (100%) rename {dialog => locale}/pt-br/current.local.high.temperature.dialog (100%) rename {dialog => locale}/pt-br/current.local.hot.dialog (100%) rename {dialog => locale}/pt-br/current.local.low.temperature.dialog (100%) rename {dialog => locale}/pt-br/current.local.temperature.dialog (100%) rename {dialog => locale}/pt-br/current.local.weather.dialog (100%) rename {dialog => locale}/pt-br/current.low.temperature.dialog (100%) rename {dialog => locale}/pt-br/current.temperature.dialog (100%) rename {dialog => locale}/pt-br/current.weather.dialog (100%) rename {dialog => locale}/pt-br/do not know.dialog (100%) rename {vocab => locale}/pt-br/do.i.need.an.umbrella.intent (100%) rename {dialog => locale}/pt-br/fahrenheit.dialog (100%) rename {dialog => locale}/pt-br/fog.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/pt-br/forecast.clear.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.cloudy.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.foggy.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.hard.wind.dialog (100%) rename {dialog => locale}/pt-br/forecast.high.temperature.dialog (100%) rename {dialog => locale}/pt-br/forecast.hot.dialog (100%) rename {dialog => locale}/pt-br/forecast.light.wind.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.clear.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.cloudy.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.foggy.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.hard.wind.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.high.temperature.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.hot.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.light.wind.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.low.temperature.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.medium.wind.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.no.clear.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.no.fog.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.no.rain.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.no.snow.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.no.storm.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.raining.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.storm.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.temperature.dialog (100%) rename {dialog => locale}/pt-br/forecast.local.weather.dialog (100%) rename {dialog => locale}/pt-br/forecast.low.temperature.dialog (100%) rename {dialog => locale}/pt-br/forecast.medium.wind.dialog (100%) rename {dialog => locale}/pt-br/forecast.no.clear.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.no.fog.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.no.rain.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.no.snow.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.no.storm.predicted.dialog (100%) rename {dialog => locale}/pt-br/forecast.raining.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.snowing.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.storm.alternative.dialog (100%) rename {dialog => locale}/pt-br/forecast.temperature.dialog (100%) rename {dialog => locale}/pt-br/forecast.weather.dialog (100%) rename {dialog => locale}/pt-br/from.day.dialog (100%) rename {dialog => locale}/pt-br/hard.wind.dialog (100%) rename {dialog => locale}/pt-br/heavy.dialog (100%) rename {dialog => locale}/pt-br/hour.local.weather.dialog (100%) rename {dialog => locale}/pt-br/hour.weather.dialog (100%) rename {dialog => locale}/pt-br/humidity.dialog (100%) rename {dialog => locale}/pt-br/light.dialog (100%) rename {dialog => locale}/pt-br/light.wind.dialog (100%) rename {dialog => locale}/pt-br/local.affirmative.condition.dialog (100%) rename {dialog => locale}/pt-br/local.clear.alternative.dialog (100%) rename {dialog => locale}/pt-br/local.cloudy.alternative.dialog (100%) rename {dialog => locale}/pt-br/local.foggy.alternative.dialog (100%) rename {dialog => locale}/pt-br/local.hard.wind.dialog (100%) rename {dialog => locale}/pt-br/local.light.wind.dialog (100%) rename {dialog => locale}/pt-br/local.medium.wind.dialog (100%) rename {dialog => locale}/pt-br/local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/pt-br/local.no.fog.predicted.dialog (100%) rename {dialog => locale}/pt-br/local.no.rain.predicted.dialog (100%) rename {dialog => locale}/pt-br/local.no.snow.predicted.dialog (100%) rename {dialog => locale}/pt-br/local.no.storm.predicted.dialog (100%) rename {dialog => locale}/pt-br/local.raining.alternative.dialog (100%) rename {dialog => locale}/pt-br/local.snowing.alternative.dialog (100%) rename {dialog => locale}/pt-br/local.storm.alternative.dialog (100%) rename {dialog => locale}/pt-br/location.not.found.dialog (100%) rename {regex => locale}/pt-br/location.rx (100%) rename {dialog => locale}/pt-br/medium.wind.dialog (100%) rename {dialog => locale}/pt-br/meters per second.dialog (100%) rename {dialog => locale}/pt-br/miles per hour.dialog (100%) rename {dialog => locale}/pt-br/min.max.dialog (100%) rename {dialog => locale}/pt-br/no precipitation expected.dialog (100%) rename {dialog => locale}/pt-br/no.clear.predicted.dialog (100%) rename {dialog => locale}/pt-br/no.cloudy.predicted.dialog (100%) rename {dialog => locale}/pt-br/no.fog.predicted.dialog (100%) rename {dialog => locale}/pt-br/no.forecast.dialog (100%) rename {dialog => locale}/pt-br/no.rain.predicted.dialog (100%) rename {dialog => locale}/pt-br/no.snow.predicted.dialog (100%) rename {dialog => locale}/pt-br/no.storm.predicted.dialog (100%) rename {dialog => locale}/pt-br/on.date.dialog (100%) rename {dialog => locale}/pt-br/on.dialog (100%) rename {dialog => locale}/pt-br/percentage.number.dialog (100%) rename {dialog => locale}/pt-br/precipitation expected.dialog (100%) rename {dialog => locale}/pt-br/rain.dialog (100%) rename {dialog => locale}/pt-br/raining.alternative.dialog (100%) rename {dialog => locale}/pt-br/report.condition.at.location.dialog (100%) rename {dialog => locale}/pt-br/report.condition.dialog (100%) rename {dialog => locale}/pt-br/report.condition.future.at.location.dialog (100%) rename {dialog => locale}/pt-br/report.condition.future.dialog (100%) rename {dialog => locale}/pt-br/report.wind.dialog (100%) rename {vocab => locale}/pt-br/simple.temperature.intent (100%) rename {dialog => locale}/pt-br/sky is clear.future.dialog (100%) rename {dialog => locale}/pt-br/snow.dialog (100%) rename {dialog => locale}/pt-br/snowing.alternative.dialog (100%) rename {dialog => locale}/pt-br/storm.alternative.dialog (100%) rename {dialog => locale}/pt-br/storm.dialog (100%) rename {dialog => locale}/pt-br/sunrise.dialog (100%) rename {dialog => locale}/pt-br/sunset.dialog (100%) rename {dialog => locale}/pt-br/tonight.local.weather.dialog (100%) rename {dialog => locale}/pt-br/weekly.condition.on.day.dialog (100%) rename {dialog => locale}/pt-br/weekly.conditions.mostly.one.dialog (100%) rename {dialog => locale}/pt-br/weekly.conditions.seq.extra.dialog (100%) rename {dialog => locale}/pt-br/weekly.conditions.seq.period.dialog (100%) rename {dialog => locale}/pt-br/weekly.conditions.seq.start.dialog (100%) rename {dialog => locale}/pt-br/weekly.conditions.some.days.dialog (100%) rename {dialog => locale}/pt-br/weekly.temp.range.dialog (100%) rename {vocab => locale}/pt-br/what.is.multi.day.forecast.intent (100%) rename {vocab => locale}/pt-br/what.is.three.day.forecast.intent (100%) rename {vocab => locale}/pt-br/what.is.three.day.forecast.location.intent (100%) rename {vocab => locale}/pt-br/what.is.two.day.forecast.intent (100%) rename {vocab => locale}/pt-br/whats.weather.like.intent (100%) rename {dialog => locale}/pt-br/wind.speed.dialog (100%) rename {dialog => locale}/pt-br/wind.speed.dir.dialog (100%) rename {dialog => locale}/pt-br/wind.strength.hard.dialog (100%) rename {dialog => locale}/pt-br/wind.strength.light.dialog (100%) rename {dialog => locale}/pt-br/wind.strength.medium.dialog (100%) rename {dialog => locale}/pt-br/winds.dialog (100%) rename {dialog => locale}/ru-ru/E.dialog (100%) rename {vocab => locale}/ru-ru/Forecast.voc (100%) rename {vocab => locale}/ru-ru/Humidity.voc (100%) rename {vocab => locale}/ru-ru/Later.voc (100%) rename {vocab => locale}/ru-ru/Location.voc (100%) rename {dialog => locale}/ru-ru/N.dialog (100%) rename {dialog => locale}/ru-ru/NE.dialog (100%) rename {dialog => locale}/ru-ru/NW.dialog (100%) rename {vocab => locale}/ru-ru/Next.voc (100%) rename {vocab => locale}/ru-ru/Precipitation.voc (100%) rename {vocab => locale}/ru-ru/Query.voc (100%) rename {dialog => locale}/ru-ru/S.dialog (100%) rename {dialog => locale}/ru-ru/SE.dialog (100%) rename {dialog => locale}/ru-ru/SW.dialog (100%) rename {vocab => locale}/ru-ru/Sunrise.voc (100%) rename {vocab => locale}/ru-ru/Sunset.voc (100%) rename {dialog => locale}/ru-ru/W.dialog (100%) rename {vocab => locale}/ru-ru/Weather.voc (100%) rename {vocab => locale}/ru-ru/WeatherType.voc (100%) rename {vocab => locale}/ru-ru/Windy.voc (100%) rename {dialog => locale}/ru-ru/celsius.dialog (100%) rename {dialog => locale}/ru-ru/current.local.weather.dialog (100%) rename {dialog => locale}/ru-ru/current.weather.dialog (100%) rename {dialog => locale}/ru-ru/do not know.dialog (100%) rename {dialog => locale}/ru-ru/fahrenheit.dialog (100%) rename {dialog => locale}/ru-ru/forecast.local.weather.dialog (100%) rename {dialog => locale}/ru-ru/forecast.weather.dialog (100%) rename {dialog => locale}/ru-ru/heavy.dialog (100%) rename {dialog => locale}/ru-ru/hour.local.weather.dialog (100%) rename {dialog => locale}/ru-ru/hour.weather.dialog (100%) rename {dialog => locale}/ru-ru/humidity.dialog (100%) rename {dialog => locale}/ru-ru/light.dialog (100%) rename {dialog => locale}/ru-ru/location.not.found.dialog (100%) rename {regex => locale}/ru-ru/location.rx (100%) rename {dialog => locale}/ru-ru/meters per second.dialog (100%) rename {dialog => locale}/ru-ru/miles per hour.dialog (100%) rename {dialog => locale}/ru-ru/no forecast.dialog (100%) rename {dialog => locale}/ru-ru/no precipitation expected.dialog (100%) rename {dialog => locale}/ru-ru/precipitation expected.dialog (100%) rename {dialog => locale}/ru-ru/rain.dialog (100%) rename {dialog => locale}/ru-ru/report.condition.dialog (100%) rename {dialog => locale}/ru-ru/report.future.condition.dialog (100%) rename {dialog => locale}/ru-ru/sky is clear.future.dialog (100%) rename {dialog => locale}/ru-ru/snow.dialog (100%) rename {dialog => locale}/ru-ru/wind.speed.dialog (100%) rename {dialog => locale}/ru-ru/wind.speed.dir.dialog (100%) rename {dialog => locale}/ru-ru/winds.dialog (100%) rename {vocab => locale}/sv-se/Clear.voc (100%) rename {vocab => locale}/sv-se/ClearAlternatives.voc (100%) rename {vocab => locale}/sv-se/Cloudy.voc (100%) rename {vocab => locale}/sv-se/CloudyAlternatives.voc (100%) rename {vocab => locale}/sv-se/Cold.voc (100%) rename {vocab => locale}/sv-se/ConfirmQuery.voc (100%) rename {vocab => locale}/sv-se/ConfirmQueryCurrent.voc (100%) rename {vocab => locale}/sv-se/ConfirmQueryFuture.voc (100%) rename {vocab => locale}/sv-se/Couple.voc (100%) rename {dialog => locale}/sv-se/E.dialog (100%) rename {vocab => locale}/sv-se/Fahrenheit.voc (100%) rename {vocab => locale}/sv-se/FogAlternatives.voc (100%) rename {vocab => locale}/sv-se/Foggy.voc (100%) rename {vocab => locale}/sv-se/Forecast.voc (100%) rename {vocab => locale}/sv-se/High.voc (100%) rename {vocab => locale}/sv-se/Hot.voc (100%) rename {vocab => locale}/sv-se/How.voc (100%) rename {vocab => locale}/sv-se/Humidity.voc (100%) rename {vocab => locale}/sv-se/Later.voc (100%) rename {vocab => locale}/sv-se/Location.voc (100%) rename {vocab => locale}/sv-se/Low.voc (100%) rename {dialog => locale}/sv-se/N.dialog (100%) rename {dialog => locale}/sv-se/NE.dialog (100%) rename {dialog => locale}/sv-se/NW.dialog (100%) rename {vocab => locale}/sv-se/Next.voc (100%) rename {vocab => locale}/sv-se/Now.voc (100%) rename {vocab => locale}/sv-se/Precipitation.voc (100%) rename {vocab => locale}/sv-se/Query.voc (100%) rename {vocab => locale}/sv-se/RainAlternatives.voc (100%) rename {vocab => locale}/sv-se/Raining.voc (100%) rename {vocab => locale}/sv-se/RelativeDay.voc (100%) rename {vocab => locale}/sv-se/RelativeTime.voc (100%) rename {dialog => locale}/sv-se/S.dialog (100%) rename {dialog => locale}/sv-se/SE.dialog (100%) rename {dialog => locale}/sv-se/SW.dialog (100%) rename {vocab => locale}/sv-se/SnowAlternatives.voc (100%) rename {vocab => locale}/sv-se/Snowing.voc (100%) rename {vocab => locale}/sv-se/Storm.voc (100%) rename {vocab => locale}/sv-se/StormAlternatives.voc (100%) rename {vocab => locale}/sv-se/Sunrise.voc (100%) rename {vocab => locale}/sv-se/Sunset.voc (100%) rename {vocab => locale}/sv-se/Temperature.voc (100%) rename {vocab => locale}/sv-se/ThreeDay.voc (100%) rename {vocab => locale}/sv-se/Today.voc (100%) rename {vocab => locale}/sv-se/Unit.entity (100%) rename {vocab => locale}/sv-se/Unit.voc (100%) rename {dialog => locale}/sv-se/W.dialog (100%) rename {vocab => locale}/sv-se/Weather.voc (100%) rename {vocab => locale}/sv-se/WeatherType.voc (100%) rename {vocab => locale}/sv-se/Week.voc (100%) rename {vocab => locale}/sv-se/Weekend.voc (100%) rename {vocab => locale}/sv-se/When.voc (100%) rename {vocab => locale}/sv-se/Windy.voc (100%) rename {dialog => locale}/sv-se/affirmative.condition.dialog (100%) rename {dialog => locale}/sv-se/and.dialog (100%) rename {dialog => locale}/sv-se/at.time.affirmative.condition.dialog (100%) rename {dialog => locale}/sv-se/at.time.cond.alternative.dialog (100%) rename {dialog => locale}/sv-se/at.time.forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/sv-se/at.time.forecast.cond.alternative.dialog (100%) rename {dialog => locale}/sv-se/at.time.forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/sv-se/at.time.forecast.local.cond.alternative.dialog (100%) rename {dialog => locale}/sv-se/at.time.forecast.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/sv-se/at.time.forecast.no.cond.predicted.dialog (100%) rename {dialog => locale}/sv-se/at.time.local.affirmative.condition.dialog (100%) rename {dialog => locale}/sv-se/at.time.local.cond.alternative.dialog (100%) rename {dialog => locale}/sv-se/at.time.local.high.temperature.dialog (100%) rename {dialog => locale}/sv-se/at.time.local.low.temperature.dialog (100%) rename {dialog => locale}/sv-se/at.time.local.no.cond.predicted.dialog (100%) rename {dialog => locale}/sv-se/at.time.local.temperature.dialog (100%) rename {dialog => locale}/sv-se/at.time.local.weather.dialog (100%) rename {dialog => locale}/sv-se/at.time.no.cond.predicted.dialog (100%) rename {dialog => locale}/sv-se/cant.get.forecast.dialog (100%) rename {dialog => locale}/sv-se/celsius.dialog (100%) rename {dialog => locale}/sv-se/clear sky.dialog (100%) rename {dialog => locale}/sv-se/clear.alternative.dialog (100%) rename {dialog => locale}/sv-se/clear.dialog (100%) rename {dialog => locale}/sv-se/clear.future.dialog (100%) rename {dialog => locale}/sv-se/cloudy.alternative.dialog (100%) rename {dialog => locale}/sv-se/condition.category.value (100%) rename {dialog => locale}/sv-se/current.high.temperature.dialog (100%) rename {dialog => locale}/sv-se/current.hot.dialog (100%) rename {dialog => locale}/sv-se/current.local.cold.dialog (100%) rename {dialog => locale}/sv-se/current.local.high.temperature.dialog (100%) rename {dialog => locale}/sv-se/current.local.hot.dialog (100%) rename {dialog => locale}/sv-se/current.local.low.temperature.dialog (100%) rename {dialog => locale}/sv-se/current.local.temperature.dialog (100%) rename {dialog => locale}/sv-se/current.local.weather.dialog (100%) rename {dialog => locale}/sv-se/current.low.temperature.dialog (100%) rename {dialog => locale}/sv-se/current.temperature.dialog (100%) rename {dialog => locale}/sv-se/current.weather.dialog (100%) rename {dialog => locale}/sv-se/do not know.dialog (100%) rename {vocab => locale}/sv-se/do.i.need.an.umbrella.intent (100%) rename {dialog => locale}/sv-se/fahrenheit.dialog (100%) rename {dialog => locale}/sv-se/fog.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.affirmative.condition.dialog (100%) rename {dialog => locale}/sv-se/forecast.clear.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.cloudy.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.foggy.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.hard.wind.dialog (100%) rename {dialog => locale}/sv-se/forecast.high.temperature.dialog (100%) rename {dialog => locale}/sv-se/forecast.hot.dialog (100%) rename {dialog => locale}/sv-se/forecast.light.wind.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.affirmative.condition.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.clear.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.cloudy.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.foggy.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.hard.wind.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.high.temperature.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.hot.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.light.wind.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.low.temperature.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.medium.wind.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.no.clear.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.no.fog.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.no.rain.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.no.snow.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.no.storm.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.raining.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.storm.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.temperature.dialog (100%) rename {dialog => locale}/sv-se/forecast.local.weather.dialog (100%) rename {dialog => locale}/sv-se/forecast.low.temperature.dialog (100%) rename {dialog => locale}/sv-se/forecast.medium.wind.dialog (100%) rename {dialog => locale}/sv-se/forecast.no.clear.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.no.fog.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.no.rain.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.no.snow.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.no.storm.predicted.dialog (100%) rename {dialog => locale}/sv-se/forecast.raining.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.snowing.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.storm.alternative.dialog (100%) rename {dialog => locale}/sv-se/forecast.temperature.dialog (100%) rename {dialog => locale}/sv-se/forecast.weather.dialog (100%) rename {dialog => locale}/sv-se/from.day.dialog (100%) rename {dialog => locale}/sv-se/hard.wind.dialog (100%) rename {dialog => locale}/sv-se/heavy.dialog (100%) rename {dialog => locale}/sv-se/hour.local.weather.dialog (100%) rename {dialog => locale}/sv-se/hour.weather.dialog (100%) rename {dialog => locale}/sv-se/humidity.dialog (100%) rename {dialog => locale}/sv-se/light.dialog (100%) rename {dialog => locale}/sv-se/light.wind.dialog (100%) rename {dialog => locale}/sv-se/local.affirmative.condition.dialog (100%) rename {dialog => locale}/sv-se/local.clear.alternative.dialog (100%) rename {dialog => locale}/sv-se/local.cloudy.alternative.dialog (100%) rename {dialog => locale}/sv-se/local.foggy.alternative.dialog (100%) rename {dialog => locale}/sv-se/local.hard.wind.dialog (100%) rename {dialog => locale}/sv-se/local.light.wind.dialog (100%) rename {dialog => locale}/sv-se/local.medium.wind.dialog (100%) rename {dialog => locale}/sv-se/local.no.cloudy.predicted.dialog (100%) rename {dialog => locale}/sv-se/local.no.fog.predicted.dialog (100%) rename {dialog => locale}/sv-se/local.no.rain.predicted.dialog (100%) rename {dialog => locale}/sv-se/local.no.snow.predicted.dialog (100%) rename {dialog => locale}/sv-se/local.no.storm.predicted.dialog (100%) rename {dialog => locale}/sv-se/local.raining.alternative.dialog (100%) rename {dialog => locale}/sv-se/local.snowing.alternative.dialog (100%) rename {dialog => locale}/sv-se/local.storm.alternative.dialog (100%) rename {dialog => locale}/sv-se/location.not.found.dialog (100%) rename {regex => locale}/sv-se/location.rx (100%) rename {dialog => locale}/sv-se/medium.wind.dialog (100%) rename {dialog => locale}/sv-se/meters per second.dialog (100%) rename {dialog => locale}/sv-se/miles per hour.dialog (100%) rename {dialog => locale}/sv-se/min.max.dialog (100%) rename {dialog => locale}/sv-se/no precipitation expected.dialog (100%) rename {dialog => locale}/sv-se/no.clear.predicted.dialog (100%) rename {dialog => locale}/sv-se/no.cloudy.predicted.dialog (100%) rename {dialog => locale}/sv-se/no.fog.predicted.dialog (100%) rename {dialog => locale}/sv-se/no.forecast.dialog (100%) rename {dialog => locale}/sv-se/no.rain.predicted.dialog (100%) rename {dialog => locale}/sv-se/no.snow.predicted.dialog (100%) rename {dialog => locale}/sv-se/no.storm.predicted.dialog (100%) rename {dialog => locale}/sv-se/on.date.dialog (100%) rename {dialog => locale}/sv-se/on.dialog (100%) rename {dialog => locale}/sv-se/percentage.number.dialog (100%) rename {dialog => locale}/sv-se/precipitation expected.dialog (100%) rename {dialog => locale}/sv-se/rain.dialog (100%) rename {dialog => locale}/sv-se/raining.alternative.dialog (100%) rename {dialog => locale}/sv-se/report.condition.at.location.dialog (100%) rename {dialog => locale}/sv-se/report.condition.dialog (100%) rename {dialog => locale}/sv-se/report.condition.future.at.location.dialog (100%) rename {dialog => locale}/sv-se/report.condition.future.dialog (100%) rename {dialog => locale}/sv-se/report.wind.dialog (100%) rename {vocab => locale}/sv-se/simple.temperature.intent (100%) rename {dialog => locale}/sv-se/sky is clear.future.dialog (100%) rename {dialog => locale}/sv-se/snow.dialog (100%) rename {dialog => locale}/sv-se/snowing.alternative.dialog (100%) rename {dialog => locale}/sv-se/storm.alternative.dialog (100%) rename {dialog => locale}/sv-se/storm.dialog (100%) rename {dialog => locale}/sv-se/sunrise.dialog (100%) rename {dialog => locale}/sv-se/sunset.dialog (100%) rename {dialog => locale}/sv-se/tonight.local.weather.dialog (100%) rename {dialog => locale}/sv-se/weekly.condition.on.day.dialog (100%) rename {dialog => locale}/sv-se/weekly.conditions.mostly.one.dialog (100%) rename {dialog => locale}/sv-se/weekly.conditions.seq.extra.dialog (100%) rename {dialog => locale}/sv-se/weekly.conditions.seq.period.dialog (100%) rename {dialog => locale}/sv-se/weekly.conditions.seq.start.dialog (100%) rename {dialog => locale}/sv-se/weekly.conditions.some.days.dialog (100%) rename {dialog => locale}/sv-se/weekly.temp.range.dialog (100%) rename {vocab => locale}/sv-se/what.is.multi.day.forecast.intent (100%) rename {vocab => locale}/sv-se/what.is.three.day.forecast.intent (100%) rename {vocab => locale}/sv-se/what.is.three.day.forecast.location.intent (100%) rename {vocab => locale}/sv-se/what.is.two.day.forecast.intent (100%) rename {vocab => locale}/sv-se/whats.weather.like.intent (100%) rename {dialog => locale}/sv-se/wind.speed.dialog (100%) rename {dialog => locale}/sv-se/wind.speed.dir.dialog (100%) rename {dialog => locale}/sv-se/wind.strength.hard.dialog (100%) rename {dialog => locale}/sv-se/wind.strength.light.dialog (100%) rename {dialog => locale}/sv-se/wind.strength.medium.dialog (100%) rename {dialog => locale}/sv-se/winds.dialog (100%) delete mode 100644 regex/da-dk/AUTO_TRANSLATED delete mode 100644 vocab/da-dk/AUTO_TRANSLATED diff --git a/dialog/da-dk/RelativeDay.voc b/dialog/da-dk/RelativeDay.voc deleted file mode 100644 index 881c2f0f..00000000 --- a/dialog/da-dk/RelativeDay.voc +++ /dev/null @@ -1,12 +0,0 @@ -# today -i dag -# today's -nutidens -# tomorrow -i morgen -# tomorrow's -morgendagens -# yesterday -i går -# yesterday's -gårsdagens diff --git a/vocab/ca-es/Clear.voc b/locale/ca-es/Clear.voc similarity index 100% rename from vocab/ca-es/Clear.voc rename to locale/ca-es/Clear.voc diff --git a/vocab/ca-es/ClearAlternatives.voc b/locale/ca-es/ClearAlternatives.voc similarity index 100% rename from vocab/ca-es/ClearAlternatives.voc rename to locale/ca-es/ClearAlternatives.voc diff --git a/vocab/ca-es/Cloudy.voc b/locale/ca-es/Cloudy.voc similarity index 100% rename from vocab/ca-es/Cloudy.voc rename to locale/ca-es/Cloudy.voc diff --git a/vocab/ca-es/CloudyAlternatives.voc b/locale/ca-es/CloudyAlternatives.voc similarity index 100% rename from vocab/ca-es/CloudyAlternatives.voc rename to locale/ca-es/CloudyAlternatives.voc diff --git a/vocab/ca-es/Cold.voc b/locale/ca-es/Cold.voc similarity index 100% rename from vocab/ca-es/Cold.voc rename to locale/ca-es/Cold.voc diff --git a/vocab/ca-es/ConfirmQuery.voc b/locale/ca-es/ConfirmQuery.voc similarity index 100% rename from vocab/ca-es/ConfirmQuery.voc rename to locale/ca-es/ConfirmQuery.voc diff --git a/vocab/ca-es/ConfirmQueryCurrent.voc b/locale/ca-es/ConfirmQueryCurrent.voc similarity index 100% rename from vocab/ca-es/ConfirmQueryCurrent.voc rename to locale/ca-es/ConfirmQueryCurrent.voc diff --git a/vocab/ca-es/ConfirmQueryFuture.voc b/locale/ca-es/ConfirmQueryFuture.voc similarity index 100% rename from vocab/ca-es/ConfirmQueryFuture.voc rename to locale/ca-es/ConfirmQueryFuture.voc diff --git a/vocab/ca-es/Couple.voc b/locale/ca-es/Couple.voc similarity index 100% rename from vocab/ca-es/Couple.voc rename to locale/ca-es/Couple.voc diff --git a/dialog/ca-es/E.dialog b/locale/ca-es/E.dialog similarity index 100% rename from dialog/ca-es/E.dialog rename to locale/ca-es/E.dialog diff --git a/vocab/ca-es/Fahrenheit.voc b/locale/ca-es/Fahrenheit.voc similarity index 100% rename from vocab/ca-es/Fahrenheit.voc rename to locale/ca-es/Fahrenheit.voc diff --git a/vocab/ca-es/FogAlternatives.voc b/locale/ca-es/FogAlternatives.voc similarity index 100% rename from vocab/ca-es/FogAlternatives.voc rename to locale/ca-es/FogAlternatives.voc diff --git a/vocab/ca-es/Foggy.voc b/locale/ca-es/Foggy.voc similarity index 100% rename from vocab/ca-es/Foggy.voc rename to locale/ca-es/Foggy.voc diff --git a/vocab/ca-es/Forecast.voc b/locale/ca-es/Forecast.voc similarity index 100% rename from vocab/ca-es/Forecast.voc rename to locale/ca-es/Forecast.voc diff --git a/vocab/ca-es/High.voc b/locale/ca-es/High.voc similarity index 100% rename from vocab/ca-es/High.voc rename to locale/ca-es/High.voc diff --git a/vocab/ca-es/Hot.voc b/locale/ca-es/Hot.voc similarity index 100% rename from vocab/ca-es/Hot.voc rename to locale/ca-es/Hot.voc diff --git a/vocab/ca-es/How.voc b/locale/ca-es/How.voc similarity index 100% rename from vocab/ca-es/How.voc rename to locale/ca-es/How.voc diff --git a/vocab/ca-es/Humidity.voc b/locale/ca-es/Humidity.voc similarity index 100% rename from vocab/ca-es/Humidity.voc rename to locale/ca-es/Humidity.voc diff --git a/vocab/ca-es/Later.voc b/locale/ca-es/Later.voc similarity index 100% rename from vocab/ca-es/Later.voc rename to locale/ca-es/Later.voc diff --git a/vocab/ca-es/Location.voc b/locale/ca-es/Location.voc similarity index 100% rename from vocab/ca-es/Location.voc rename to locale/ca-es/Location.voc diff --git a/vocab/ca-es/Low.voc b/locale/ca-es/Low.voc similarity index 100% rename from vocab/ca-es/Low.voc rename to locale/ca-es/Low.voc diff --git a/dialog/ca-es/N.dialog b/locale/ca-es/N.dialog similarity index 100% rename from dialog/ca-es/N.dialog rename to locale/ca-es/N.dialog diff --git a/dialog/ca-es/NE.dialog b/locale/ca-es/NE.dialog similarity index 100% rename from dialog/ca-es/NE.dialog rename to locale/ca-es/NE.dialog diff --git a/dialog/ca-es/NW.dialog b/locale/ca-es/NW.dialog similarity index 100% rename from dialog/ca-es/NW.dialog rename to locale/ca-es/NW.dialog diff --git a/vocab/ca-es/Next.voc b/locale/ca-es/Next.voc similarity index 100% rename from vocab/ca-es/Next.voc rename to locale/ca-es/Next.voc diff --git a/vocab/ca-es/Now.voc b/locale/ca-es/Now.voc similarity index 100% rename from vocab/ca-es/Now.voc rename to locale/ca-es/Now.voc diff --git a/vocab/ca-es/Precipitation.voc b/locale/ca-es/Precipitation.voc similarity index 100% rename from vocab/ca-es/Precipitation.voc rename to locale/ca-es/Precipitation.voc diff --git a/vocab/ca-es/Query.voc b/locale/ca-es/Query.voc similarity index 100% rename from vocab/ca-es/Query.voc rename to locale/ca-es/Query.voc diff --git a/vocab/ca-es/RainAlternatives.voc b/locale/ca-es/RainAlternatives.voc similarity index 100% rename from vocab/ca-es/RainAlternatives.voc rename to locale/ca-es/RainAlternatives.voc diff --git a/vocab/ca-es/Raining.voc b/locale/ca-es/Raining.voc similarity index 100% rename from vocab/ca-es/Raining.voc rename to locale/ca-es/Raining.voc diff --git a/vocab/ca-es/RelativeDay.voc b/locale/ca-es/RelativeDay.voc similarity index 100% rename from vocab/ca-es/RelativeDay.voc rename to locale/ca-es/RelativeDay.voc diff --git a/vocab/ca-es/RelativeTime.voc b/locale/ca-es/RelativeTime.voc similarity index 100% rename from vocab/ca-es/RelativeTime.voc rename to locale/ca-es/RelativeTime.voc diff --git a/dialog/ca-es/S.dialog b/locale/ca-es/S.dialog similarity index 100% rename from dialog/ca-es/S.dialog rename to locale/ca-es/S.dialog diff --git a/dialog/ca-es/SE.dialog b/locale/ca-es/SE.dialog similarity index 100% rename from dialog/ca-es/SE.dialog rename to locale/ca-es/SE.dialog diff --git a/dialog/ca-es/SW.dialog b/locale/ca-es/SW.dialog similarity index 100% rename from dialog/ca-es/SW.dialog rename to locale/ca-es/SW.dialog diff --git a/vocab/ca-es/SnowAlternatives.voc b/locale/ca-es/SnowAlternatives.voc similarity index 100% rename from vocab/ca-es/SnowAlternatives.voc rename to locale/ca-es/SnowAlternatives.voc diff --git a/vocab/ca-es/Snowing.voc b/locale/ca-es/Snowing.voc similarity index 100% rename from vocab/ca-es/Snowing.voc rename to locale/ca-es/Snowing.voc diff --git a/vocab/ca-es/Storm.voc b/locale/ca-es/Storm.voc similarity index 100% rename from vocab/ca-es/Storm.voc rename to locale/ca-es/Storm.voc diff --git a/vocab/ca-es/StormAlternatives.voc b/locale/ca-es/StormAlternatives.voc similarity index 100% rename from vocab/ca-es/StormAlternatives.voc rename to locale/ca-es/StormAlternatives.voc diff --git a/vocab/ca-es/Sunrise.voc b/locale/ca-es/Sunrise.voc similarity index 100% rename from vocab/ca-es/Sunrise.voc rename to locale/ca-es/Sunrise.voc diff --git a/vocab/ca-es/Sunset.voc b/locale/ca-es/Sunset.voc similarity index 100% rename from vocab/ca-es/Sunset.voc rename to locale/ca-es/Sunset.voc diff --git a/vocab/ca-es/Temperature.voc b/locale/ca-es/Temperature.voc similarity index 100% rename from vocab/ca-es/Temperature.voc rename to locale/ca-es/Temperature.voc diff --git a/vocab/ca-es/ThreeDay.voc b/locale/ca-es/ThreeDay.voc similarity index 100% rename from vocab/ca-es/ThreeDay.voc rename to locale/ca-es/ThreeDay.voc diff --git a/vocab/ca-es/Today.voc b/locale/ca-es/Today.voc similarity index 100% rename from vocab/ca-es/Today.voc rename to locale/ca-es/Today.voc diff --git a/vocab/ca-es/Unit.entity b/locale/ca-es/Unit.entity similarity index 100% rename from vocab/ca-es/Unit.entity rename to locale/ca-es/Unit.entity diff --git a/vocab/ca-es/Unit.voc b/locale/ca-es/Unit.voc similarity index 100% rename from vocab/ca-es/Unit.voc rename to locale/ca-es/Unit.voc diff --git a/dialog/ca-es/W.dialog b/locale/ca-es/W.dialog similarity index 100% rename from dialog/ca-es/W.dialog rename to locale/ca-es/W.dialog diff --git a/vocab/ca-es/Weather.voc b/locale/ca-es/Weather.voc similarity index 100% rename from vocab/ca-es/Weather.voc rename to locale/ca-es/Weather.voc diff --git a/vocab/ca-es/WeatherType.voc b/locale/ca-es/WeatherType.voc similarity index 100% rename from vocab/ca-es/WeatherType.voc rename to locale/ca-es/WeatherType.voc diff --git a/vocab/ca-es/Week.voc b/locale/ca-es/Week.voc similarity index 100% rename from vocab/ca-es/Week.voc rename to locale/ca-es/Week.voc diff --git a/vocab/ca-es/Weekend.voc b/locale/ca-es/Weekend.voc similarity index 100% rename from vocab/ca-es/Weekend.voc rename to locale/ca-es/Weekend.voc diff --git a/vocab/ca-es/When.voc b/locale/ca-es/When.voc similarity index 100% rename from vocab/ca-es/When.voc rename to locale/ca-es/When.voc diff --git a/vocab/ca-es/Windy.voc b/locale/ca-es/Windy.voc similarity index 100% rename from vocab/ca-es/Windy.voc rename to locale/ca-es/Windy.voc diff --git a/dialog/ca-es/affirmative.condition.dialog b/locale/ca-es/affirmative.condition.dialog similarity index 100% rename from dialog/ca-es/affirmative.condition.dialog rename to locale/ca-es/affirmative.condition.dialog diff --git a/dialog/ca-es/and.dialog b/locale/ca-es/and.dialog similarity index 100% rename from dialog/ca-es/and.dialog rename to locale/ca-es/and.dialog diff --git a/dialog/ca-es/at.time.affirmative.condition.dialog b/locale/ca-es/at.time.affirmative.condition.dialog similarity index 100% rename from dialog/ca-es/at.time.affirmative.condition.dialog rename to locale/ca-es/at.time.affirmative.condition.dialog diff --git a/dialog/ca-es/at.time.cond.alternative.dialog b/locale/ca-es/at.time.cond.alternative.dialog similarity index 100% rename from dialog/ca-es/at.time.cond.alternative.dialog rename to locale/ca-es/at.time.cond.alternative.dialog diff --git a/dialog/ca-es/at.time.forecast.affirmative.condition.dialog b/locale/ca-es/at.time.forecast.affirmative.condition.dialog similarity index 100% rename from dialog/ca-es/at.time.forecast.affirmative.condition.dialog rename to locale/ca-es/at.time.forecast.affirmative.condition.dialog diff --git a/dialog/ca-es/at.time.forecast.cond.alternative.dialog b/locale/ca-es/at.time.forecast.cond.alternative.dialog similarity index 100% rename from dialog/ca-es/at.time.forecast.cond.alternative.dialog rename to locale/ca-es/at.time.forecast.cond.alternative.dialog diff --git a/dialog/ca-es/at.time.forecast.local.affirmative.condition.dialog b/locale/ca-es/at.time.forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/ca-es/at.time.forecast.local.affirmative.condition.dialog rename to locale/ca-es/at.time.forecast.local.affirmative.condition.dialog diff --git a/dialog/ca-es/at.time.forecast.local.cond.alternative.dialog b/locale/ca-es/at.time.forecast.local.cond.alternative.dialog similarity index 100% rename from dialog/ca-es/at.time.forecast.local.cond.alternative.dialog rename to locale/ca-es/at.time.forecast.local.cond.alternative.dialog diff --git a/dialog/ca-es/at.time.forecast.local.no.cond.predicted.dialog b/locale/ca-es/at.time.forecast.local.no.cond.predicted.dialog similarity index 100% rename from dialog/ca-es/at.time.forecast.local.no.cond.predicted.dialog rename to locale/ca-es/at.time.forecast.local.no.cond.predicted.dialog diff --git a/dialog/ca-es/at.time.forecast.no.cond.predicted.dialog b/locale/ca-es/at.time.forecast.no.cond.predicted.dialog similarity index 100% rename from dialog/ca-es/at.time.forecast.no.cond.predicted.dialog rename to locale/ca-es/at.time.forecast.no.cond.predicted.dialog diff --git a/dialog/ca-es/at.time.local.affirmative.condition.dialog b/locale/ca-es/at.time.local.affirmative.condition.dialog similarity index 100% rename from dialog/ca-es/at.time.local.affirmative.condition.dialog rename to locale/ca-es/at.time.local.affirmative.condition.dialog diff --git a/dialog/ca-es/at.time.local.cond.alternative.dialog b/locale/ca-es/at.time.local.cond.alternative.dialog similarity index 100% rename from dialog/ca-es/at.time.local.cond.alternative.dialog rename to locale/ca-es/at.time.local.cond.alternative.dialog diff --git a/dialog/ca-es/at.time.local.high.temperature.dialog b/locale/ca-es/at.time.local.high.temperature.dialog similarity index 100% rename from dialog/ca-es/at.time.local.high.temperature.dialog rename to locale/ca-es/at.time.local.high.temperature.dialog diff --git a/dialog/ca-es/at.time.local.low.temperature.dialog b/locale/ca-es/at.time.local.low.temperature.dialog similarity index 100% rename from dialog/ca-es/at.time.local.low.temperature.dialog rename to locale/ca-es/at.time.local.low.temperature.dialog diff --git a/dialog/ca-es/at.time.local.no.cond.predicted.dialog b/locale/ca-es/at.time.local.no.cond.predicted.dialog similarity index 100% rename from dialog/ca-es/at.time.local.no.cond.predicted.dialog rename to locale/ca-es/at.time.local.no.cond.predicted.dialog diff --git a/dialog/ca-es/at.time.local.temperature.dialog b/locale/ca-es/at.time.local.temperature.dialog similarity index 100% rename from dialog/ca-es/at.time.local.temperature.dialog rename to locale/ca-es/at.time.local.temperature.dialog diff --git a/dialog/ca-es/at.time.local.weather.dialog b/locale/ca-es/at.time.local.weather.dialog similarity index 100% rename from dialog/ca-es/at.time.local.weather.dialog rename to locale/ca-es/at.time.local.weather.dialog diff --git a/dialog/ca-es/at.time.no.cond.predicted.dialog b/locale/ca-es/at.time.no.cond.predicted.dialog similarity index 100% rename from dialog/ca-es/at.time.no.cond.predicted.dialog rename to locale/ca-es/at.time.no.cond.predicted.dialog diff --git a/dialog/ca-es/cant.get.forecast.dialog b/locale/ca-es/cant.get.forecast.dialog similarity index 100% rename from dialog/ca-es/cant.get.forecast.dialog rename to locale/ca-es/cant.get.forecast.dialog diff --git a/dialog/ca-es/celsius.dialog b/locale/ca-es/celsius.dialog similarity index 100% rename from dialog/ca-es/celsius.dialog rename to locale/ca-es/celsius.dialog diff --git a/dialog/ca-es/clear sky.dialog b/locale/ca-es/clear sky.dialog similarity index 100% rename from dialog/ca-es/clear sky.dialog rename to locale/ca-es/clear sky.dialog diff --git a/dialog/ca-es/clear.alternative.dialog b/locale/ca-es/clear.alternative.dialog similarity index 100% rename from dialog/ca-es/clear.alternative.dialog rename to locale/ca-es/clear.alternative.dialog diff --git a/dialog/ca-es/clear.dialog b/locale/ca-es/clear.dialog similarity index 100% rename from dialog/ca-es/clear.dialog rename to locale/ca-es/clear.dialog diff --git a/dialog/ca-es/clear.future.dialog b/locale/ca-es/clear.future.dialog similarity index 100% rename from dialog/ca-es/clear.future.dialog rename to locale/ca-es/clear.future.dialog diff --git a/dialog/ca-es/cloudy.alternative.dialog b/locale/ca-es/cloudy.alternative.dialog similarity index 100% rename from dialog/ca-es/cloudy.alternative.dialog rename to locale/ca-es/cloudy.alternative.dialog diff --git a/dialog/ca-es/condition.category.value b/locale/ca-es/condition.category.value similarity index 100% rename from dialog/ca-es/condition.category.value rename to locale/ca-es/condition.category.value diff --git a/dialog/ca-es/current.high.temperature.dialog b/locale/ca-es/current.high.temperature.dialog similarity index 100% rename from dialog/ca-es/current.high.temperature.dialog rename to locale/ca-es/current.high.temperature.dialog diff --git a/dialog/ca-es/current.hot.dialog b/locale/ca-es/current.hot.dialog similarity index 100% rename from dialog/ca-es/current.hot.dialog rename to locale/ca-es/current.hot.dialog diff --git a/dialog/ca-es/current.local.cold.dialog b/locale/ca-es/current.local.cold.dialog similarity index 100% rename from dialog/ca-es/current.local.cold.dialog rename to locale/ca-es/current.local.cold.dialog diff --git a/dialog/ca-es/current.local.high.temperature.dialog b/locale/ca-es/current.local.high.temperature.dialog similarity index 100% rename from dialog/ca-es/current.local.high.temperature.dialog rename to locale/ca-es/current.local.high.temperature.dialog diff --git a/dialog/ca-es/current.local.hot.dialog b/locale/ca-es/current.local.hot.dialog similarity index 100% rename from dialog/ca-es/current.local.hot.dialog rename to locale/ca-es/current.local.hot.dialog diff --git a/dialog/ca-es/current.local.low.temperature.dialog b/locale/ca-es/current.local.low.temperature.dialog similarity index 100% rename from dialog/ca-es/current.local.low.temperature.dialog rename to locale/ca-es/current.local.low.temperature.dialog diff --git a/dialog/ca-es/current.local.temperature.dialog b/locale/ca-es/current.local.temperature.dialog similarity index 100% rename from dialog/ca-es/current.local.temperature.dialog rename to locale/ca-es/current.local.temperature.dialog diff --git a/dialog/ca-es/current.local.weather.dialog b/locale/ca-es/current.local.weather.dialog similarity index 100% rename from dialog/ca-es/current.local.weather.dialog rename to locale/ca-es/current.local.weather.dialog diff --git a/dialog/ca-es/current.low.temperature.dialog b/locale/ca-es/current.low.temperature.dialog similarity index 100% rename from dialog/ca-es/current.low.temperature.dialog rename to locale/ca-es/current.low.temperature.dialog diff --git a/dialog/ca-es/current.temperature.dialog b/locale/ca-es/current.temperature.dialog similarity index 100% rename from dialog/ca-es/current.temperature.dialog rename to locale/ca-es/current.temperature.dialog diff --git a/dialog/ca-es/current.weather.dialog b/locale/ca-es/current.weather.dialog similarity index 100% rename from dialog/ca-es/current.weather.dialog rename to locale/ca-es/current.weather.dialog diff --git a/dialog/ca-es/do not know.dialog b/locale/ca-es/do not know.dialog similarity index 100% rename from dialog/ca-es/do not know.dialog rename to locale/ca-es/do not know.dialog diff --git a/vocab/ca-es/do.i.need.an.umbrella.intent b/locale/ca-es/do.i.need.an.umbrella.intent similarity index 100% rename from vocab/ca-es/do.i.need.an.umbrella.intent rename to locale/ca-es/do.i.need.an.umbrella.intent diff --git a/dialog/ca-es/fahrenheit.dialog b/locale/ca-es/fahrenheit.dialog similarity index 100% rename from dialog/ca-es/fahrenheit.dialog rename to locale/ca-es/fahrenheit.dialog diff --git a/dialog/ca-es/fog.alternative.dialog b/locale/ca-es/fog.alternative.dialog similarity index 100% rename from dialog/ca-es/fog.alternative.dialog rename to locale/ca-es/fog.alternative.dialog diff --git a/dialog/ca-es/forecast.affirmative.condition.dialog b/locale/ca-es/forecast.affirmative.condition.dialog similarity index 100% rename from dialog/ca-es/forecast.affirmative.condition.dialog rename to locale/ca-es/forecast.affirmative.condition.dialog diff --git a/dialog/ca-es/forecast.clear.alternative.dialog b/locale/ca-es/forecast.clear.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.clear.alternative.dialog rename to locale/ca-es/forecast.clear.alternative.dialog diff --git a/dialog/ca-es/forecast.cloudy.alternative.dialog b/locale/ca-es/forecast.cloudy.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.cloudy.alternative.dialog rename to locale/ca-es/forecast.cloudy.alternative.dialog diff --git a/dialog/ca-es/forecast.foggy.alternative.dialog b/locale/ca-es/forecast.foggy.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.foggy.alternative.dialog rename to locale/ca-es/forecast.foggy.alternative.dialog diff --git a/dialog/ca-es/forecast.hard.wind.dialog b/locale/ca-es/forecast.hard.wind.dialog similarity index 100% rename from dialog/ca-es/forecast.hard.wind.dialog rename to locale/ca-es/forecast.hard.wind.dialog diff --git a/dialog/ca-es/forecast.high.temperature.dialog b/locale/ca-es/forecast.high.temperature.dialog similarity index 100% rename from dialog/ca-es/forecast.high.temperature.dialog rename to locale/ca-es/forecast.high.temperature.dialog diff --git a/dialog/ca-es/forecast.hot.dialog b/locale/ca-es/forecast.hot.dialog similarity index 100% rename from dialog/ca-es/forecast.hot.dialog rename to locale/ca-es/forecast.hot.dialog diff --git a/dialog/ca-es/forecast.light.wind.dialog b/locale/ca-es/forecast.light.wind.dialog similarity index 100% rename from dialog/ca-es/forecast.light.wind.dialog rename to locale/ca-es/forecast.light.wind.dialog diff --git a/dialog/ca-es/forecast.local.affirmative.condition.dialog b/locale/ca-es/forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/ca-es/forecast.local.affirmative.condition.dialog rename to locale/ca-es/forecast.local.affirmative.condition.dialog diff --git a/dialog/ca-es/forecast.local.clear.alternative.dialog b/locale/ca-es/forecast.local.clear.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.local.clear.alternative.dialog rename to locale/ca-es/forecast.local.clear.alternative.dialog diff --git a/dialog/ca-es/forecast.local.cloudy.alternative.dialog b/locale/ca-es/forecast.local.cloudy.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.local.cloudy.alternative.dialog rename to locale/ca-es/forecast.local.cloudy.alternative.dialog diff --git a/dialog/ca-es/forecast.local.foggy.alternative.dialog b/locale/ca-es/forecast.local.foggy.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.local.foggy.alternative.dialog rename to locale/ca-es/forecast.local.foggy.alternative.dialog diff --git a/dialog/ca-es/forecast.local.hard.wind.dialog b/locale/ca-es/forecast.local.hard.wind.dialog similarity index 100% rename from dialog/ca-es/forecast.local.hard.wind.dialog rename to locale/ca-es/forecast.local.hard.wind.dialog diff --git a/dialog/ca-es/forecast.local.high.temperature.dialog b/locale/ca-es/forecast.local.high.temperature.dialog similarity index 100% rename from dialog/ca-es/forecast.local.high.temperature.dialog rename to locale/ca-es/forecast.local.high.temperature.dialog diff --git a/dialog/ca-es/forecast.local.hot.dialog b/locale/ca-es/forecast.local.hot.dialog similarity index 100% rename from dialog/ca-es/forecast.local.hot.dialog rename to locale/ca-es/forecast.local.hot.dialog diff --git a/dialog/ca-es/forecast.local.light.wind.dialog b/locale/ca-es/forecast.local.light.wind.dialog similarity index 100% rename from dialog/ca-es/forecast.local.light.wind.dialog rename to locale/ca-es/forecast.local.light.wind.dialog diff --git a/dialog/ca-es/forecast.local.low.temperature.dialog b/locale/ca-es/forecast.local.low.temperature.dialog similarity index 100% rename from dialog/ca-es/forecast.local.low.temperature.dialog rename to locale/ca-es/forecast.local.low.temperature.dialog diff --git a/dialog/ca-es/forecast.local.medium.wind.dialog b/locale/ca-es/forecast.local.medium.wind.dialog similarity index 100% rename from dialog/ca-es/forecast.local.medium.wind.dialog rename to locale/ca-es/forecast.local.medium.wind.dialog diff --git a/dialog/ca-es/forecast.local.no.clear.predicted.dialog b/locale/ca-es/forecast.local.no.clear.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.local.no.clear.predicted.dialog rename to locale/ca-es/forecast.local.no.clear.predicted.dialog diff --git a/dialog/ca-es/forecast.local.no.cloudy.predicted.dialog b/locale/ca-es/forecast.local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.local.no.cloudy.predicted.dialog rename to locale/ca-es/forecast.local.no.cloudy.predicted.dialog diff --git a/dialog/ca-es/forecast.local.no.fog.predicted.dialog b/locale/ca-es/forecast.local.no.fog.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.local.no.fog.predicted.dialog rename to locale/ca-es/forecast.local.no.fog.predicted.dialog diff --git a/dialog/ca-es/forecast.local.no.rain.predicted.dialog b/locale/ca-es/forecast.local.no.rain.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.local.no.rain.predicted.dialog rename to locale/ca-es/forecast.local.no.rain.predicted.dialog diff --git a/dialog/ca-es/forecast.local.no.snow.predicted.dialog b/locale/ca-es/forecast.local.no.snow.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.local.no.snow.predicted.dialog rename to locale/ca-es/forecast.local.no.snow.predicted.dialog diff --git a/dialog/ca-es/forecast.local.no.storm.predicted.dialog b/locale/ca-es/forecast.local.no.storm.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.local.no.storm.predicted.dialog rename to locale/ca-es/forecast.local.no.storm.predicted.dialog diff --git a/dialog/ca-es/forecast.local.raining.alternative.dialog b/locale/ca-es/forecast.local.raining.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.local.raining.alternative.dialog rename to locale/ca-es/forecast.local.raining.alternative.dialog diff --git a/dialog/ca-es/forecast.local.storm.alternative.dialog b/locale/ca-es/forecast.local.storm.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.local.storm.alternative.dialog rename to locale/ca-es/forecast.local.storm.alternative.dialog diff --git a/dialog/ca-es/forecast.local.temperature.dialog b/locale/ca-es/forecast.local.temperature.dialog similarity index 100% rename from dialog/ca-es/forecast.local.temperature.dialog rename to locale/ca-es/forecast.local.temperature.dialog diff --git a/dialog/ca-es/forecast.local.weather.dialog b/locale/ca-es/forecast.local.weather.dialog similarity index 100% rename from dialog/ca-es/forecast.local.weather.dialog rename to locale/ca-es/forecast.local.weather.dialog diff --git a/dialog/ca-es/forecast.low.temperature.dialog b/locale/ca-es/forecast.low.temperature.dialog similarity index 100% rename from dialog/ca-es/forecast.low.temperature.dialog rename to locale/ca-es/forecast.low.temperature.dialog diff --git a/dialog/ca-es/forecast.medium.wind.dialog b/locale/ca-es/forecast.medium.wind.dialog similarity index 100% rename from dialog/ca-es/forecast.medium.wind.dialog rename to locale/ca-es/forecast.medium.wind.dialog diff --git a/dialog/ca-es/forecast.no.clear.predicted.dialog b/locale/ca-es/forecast.no.clear.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.no.clear.predicted.dialog rename to locale/ca-es/forecast.no.clear.predicted.dialog diff --git a/dialog/ca-es/forecast.no.cloudy.predicted.dialog b/locale/ca-es/forecast.no.cloudy.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.no.cloudy.predicted.dialog rename to locale/ca-es/forecast.no.cloudy.predicted.dialog diff --git a/dialog/ca-es/forecast.no.fog.predicted.dialog b/locale/ca-es/forecast.no.fog.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.no.fog.predicted.dialog rename to locale/ca-es/forecast.no.fog.predicted.dialog diff --git a/dialog/ca-es/forecast.no.rain.predicted.dialog b/locale/ca-es/forecast.no.rain.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.no.rain.predicted.dialog rename to locale/ca-es/forecast.no.rain.predicted.dialog diff --git a/dialog/ca-es/forecast.no.snow.predicted.dialog b/locale/ca-es/forecast.no.snow.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.no.snow.predicted.dialog rename to locale/ca-es/forecast.no.snow.predicted.dialog diff --git a/dialog/ca-es/forecast.no.storm.predicted.dialog b/locale/ca-es/forecast.no.storm.predicted.dialog similarity index 100% rename from dialog/ca-es/forecast.no.storm.predicted.dialog rename to locale/ca-es/forecast.no.storm.predicted.dialog diff --git a/dialog/ca-es/forecast.raining.alternative.dialog b/locale/ca-es/forecast.raining.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.raining.alternative.dialog rename to locale/ca-es/forecast.raining.alternative.dialog diff --git a/dialog/ca-es/forecast.snowing.alternative.dialog b/locale/ca-es/forecast.snowing.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.snowing.alternative.dialog rename to locale/ca-es/forecast.snowing.alternative.dialog diff --git a/dialog/ca-es/forecast.storm.alternative.dialog b/locale/ca-es/forecast.storm.alternative.dialog similarity index 100% rename from dialog/ca-es/forecast.storm.alternative.dialog rename to locale/ca-es/forecast.storm.alternative.dialog diff --git a/dialog/ca-es/forecast.temperature.dialog b/locale/ca-es/forecast.temperature.dialog similarity index 100% rename from dialog/ca-es/forecast.temperature.dialog rename to locale/ca-es/forecast.temperature.dialog diff --git a/dialog/ca-es/forecast.weather.dialog b/locale/ca-es/forecast.weather.dialog similarity index 100% rename from dialog/ca-es/forecast.weather.dialog rename to locale/ca-es/forecast.weather.dialog diff --git a/dialog/ca-es/from.day.dialog b/locale/ca-es/from.day.dialog similarity index 100% rename from dialog/ca-es/from.day.dialog rename to locale/ca-es/from.day.dialog diff --git a/dialog/ca-es/hard.wind.dialog b/locale/ca-es/hard.wind.dialog similarity index 100% rename from dialog/ca-es/hard.wind.dialog rename to locale/ca-es/hard.wind.dialog diff --git a/dialog/ca-es/heavy.dialog b/locale/ca-es/heavy.dialog similarity index 100% rename from dialog/ca-es/heavy.dialog rename to locale/ca-es/heavy.dialog diff --git a/dialog/ca-es/hour.local.weather.dialog b/locale/ca-es/hour.local.weather.dialog similarity index 100% rename from dialog/ca-es/hour.local.weather.dialog rename to locale/ca-es/hour.local.weather.dialog diff --git a/dialog/ca-es/hour.weather.dialog b/locale/ca-es/hour.weather.dialog similarity index 100% rename from dialog/ca-es/hour.weather.dialog rename to locale/ca-es/hour.weather.dialog diff --git a/dialog/ca-es/humidity.dialog b/locale/ca-es/humidity.dialog similarity index 100% rename from dialog/ca-es/humidity.dialog rename to locale/ca-es/humidity.dialog diff --git a/dialog/ca-es/light.dialog b/locale/ca-es/light.dialog similarity index 100% rename from dialog/ca-es/light.dialog rename to locale/ca-es/light.dialog diff --git a/dialog/ca-es/light.wind.dialog b/locale/ca-es/light.wind.dialog similarity index 100% rename from dialog/ca-es/light.wind.dialog rename to locale/ca-es/light.wind.dialog diff --git a/dialog/ca-es/local.affirmative.condition.dialog b/locale/ca-es/local.affirmative.condition.dialog similarity index 100% rename from dialog/ca-es/local.affirmative.condition.dialog rename to locale/ca-es/local.affirmative.condition.dialog diff --git a/dialog/ca-es/local.clear.alternative.dialog b/locale/ca-es/local.clear.alternative.dialog similarity index 100% rename from dialog/ca-es/local.clear.alternative.dialog rename to locale/ca-es/local.clear.alternative.dialog diff --git a/dialog/ca-es/local.cloudy.alternative.dialog b/locale/ca-es/local.cloudy.alternative.dialog similarity index 100% rename from dialog/ca-es/local.cloudy.alternative.dialog rename to locale/ca-es/local.cloudy.alternative.dialog diff --git a/dialog/ca-es/local.foggy.alternative.dialog b/locale/ca-es/local.foggy.alternative.dialog similarity index 100% rename from dialog/ca-es/local.foggy.alternative.dialog rename to locale/ca-es/local.foggy.alternative.dialog diff --git a/dialog/ca-es/local.hard.wind.dialog b/locale/ca-es/local.hard.wind.dialog similarity index 100% rename from dialog/ca-es/local.hard.wind.dialog rename to locale/ca-es/local.hard.wind.dialog diff --git a/dialog/ca-es/local.light.wind.dialog b/locale/ca-es/local.light.wind.dialog similarity index 100% rename from dialog/ca-es/local.light.wind.dialog rename to locale/ca-es/local.light.wind.dialog diff --git a/dialog/ca-es/local.medium.wind.dialog b/locale/ca-es/local.medium.wind.dialog similarity index 100% rename from dialog/ca-es/local.medium.wind.dialog rename to locale/ca-es/local.medium.wind.dialog diff --git a/dialog/ca-es/local.no.cloudy.predicted.dialog b/locale/ca-es/local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/ca-es/local.no.cloudy.predicted.dialog rename to locale/ca-es/local.no.cloudy.predicted.dialog diff --git a/dialog/ca-es/local.no.fog.predicted.dialog b/locale/ca-es/local.no.fog.predicted.dialog similarity index 100% rename from dialog/ca-es/local.no.fog.predicted.dialog rename to locale/ca-es/local.no.fog.predicted.dialog diff --git a/dialog/ca-es/local.no.rain.predicted.dialog b/locale/ca-es/local.no.rain.predicted.dialog similarity index 100% rename from dialog/ca-es/local.no.rain.predicted.dialog rename to locale/ca-es/local.no.rain.predicted.dialog diff --git a/dialog/ca-es/local.no.snow.predicted.dialog b/locale/ca-es/local.no.snow.predicted.dialog similarity index 100% rename from dialog/ca-es/local.no.snow.predicted.dialog rename to locale/ca-es/local.no.snow.predicted.dialog diff --git a/dialog/ca-es/local.no.storm.predicted.dialog b/locale/ca-es/local.no.storm.predicted.dialog similarity index 100% rename from dialog/ca-es/local.no.storm.predicted.dialog rename to locale/ca-es/local.no.storm.predicted.dialog diff --git a/dialog/ca-es/local.raining.alternative.dialog b/locale/ca-es/local.raining.alternative.dialog similarity index 100% rename from dialog/ca-es/local.raining.alternative.dialog rename to locale/ca-es/local.raining.alternative.dialog diff --git a/dialog/ca-es/local.snowing.alternative.dialog b/locale/ca-es/local.snowing.alternative.dialog similarity index 100% rename from dialog/ca-es/local.snowing.alternative.dialog rename to locale/ca-es/local.snowing.alternative.dialog diff --git a/dialog/ca-es/local.storm.alternative.dialog b/locale/ca-es/local.storm.alternative.dialog similarity index 100% rename from dialog/ca-es/local.storm.alternative.dialog rename to locale/ca-es/local.storm.alternative.dialog diff --git a/dialog/ca-es/location.not.found.dialog b/locale/ca-es/location.not.found.dialog similarity index 100% rename from dialog/ca-es/location.not.found.dialog rename to locale/ca-es/location.not.found.dialog diff --git a/regex/ca-es/location.rx b/locale/ca-es/location.rx similarity index 100% rename from regex/ca-es/location.rx rename to locale/ca-es/location.rx diff --git a/dialog/ca-es/medium.wind.dialog b/locale/ca-es/medium.wind.dialog similarity index 100% rename from dialog/ca-es/medium.wind.dialog rename to locale/ca-es/medium.wind.dialog diff --git a/dialog/ca-es/meters per second.dialog b/locale/ca-es/meters per second.dialog similarity index 100% rename from dialog/ca-es/meters per second.dialog rename to locale/ca-es/meters per second.dialog diff --git a/dialog/ca-es/miles per hour.dialog b/locale/ca-es/miles per hour.dialog similarity index 100% rename from dialog/ca-es/miles per hour.dialog rename to locale/ca-es/miles per hour.dialog diff --git a/dialog/ca-es/min.max.dialog b/locale/ca-es/min.max.dialog similarity index 100% rename from dialog/ca-es/min.max.dialog rename to locale/ca-es/min.max.dialog diff --git a/dialog/ca-es/no precipitation expected.dialog b/locale/ca-es/no precipitation expected.dialog similarity index 100% rename from dialog/ca-es/no precipitation expected.dialog rename to locale/ca-es/no precipitation expected.dialog diff --git a/dialog/ca-es/no.clear.predicted.dialog b/locale/ca-es/no.clear.predicted.dialog similarity index 100% rename from dialog/ca-es/no.clear.predicted.dialog rename to locale/ca-es/no.clear.predicted.dialog diff --git a/dialog/ca-es/no.cloudy.predicted.dialog b/locale/ca-es/no.cloudy.predicted.dialog similarity index 100% rename from dialog/ca-es/no.cloudy.predicted.dialog rename to locale/ca-es/no.cloudy.predicted.dialog diff --git a/dialog/ca-es/no.fog.predicted.dialog b/locale/ca-es/no.fog.predicted.dialog similarity index 100% rename from dialog/ca-es/no.fog.predicted.dialog rename to locale/ca-es/no.fog.predicted.dialog diff --git a/dialog/ca-es/no.forecast.dialog b/locale/ca-es/no.forecast.dialog similarity index 100% rename from dialog/ca-es/no.forecast.dialog rename to locale/ca-es/no.forecast.dialog diff --git a/dialog/ca-es/no.rain.predicted.dialog b/locale/ca-es/no.rain.predicted.dialog similarity index 100% rename from dialog/ca-es/no.rain.predicted.dialog rename to locale/ca-es/no.rain.predicted.dialog diff --git a/dialog/ca-es/no.snow.predicted.dialog b/locale/ca-es/no.snow.predicted.dialog similarity index 100% rename from dialog/ca-es/no.snow.predicted.dialog rename to locale/ca-es/no.snow.predicted.dialog diff --git a/dialog/ca-es/no.storm.predicted.dialog b/locale/ca-es/no.storm.predicted.dialog similarity index 100% rename from dialog/ca-es/no.storm.predicted.dialog rename to locale/ca-es/no.storm.predicted.dialog diff --git a/dialog/ca-es/on.date.dialog b/locale/ca-es/on.date.dialog similarity index 100% rename from dialog/ca-es/on.date.dialog rename to locale/ca-es/on.date.dialog diff --git a/dialog/ca-es/on.dialog b/locale/ca-es/on.dialog similarity index 100% rename from dialog/ca-es/on.dialog rename to locale/ca-es/on.dialog diff --git a/dialog/ca-es/percentage.number.dialog b/locale/ca-es/percentage.number.dialog similarity index 100% rename from dialog/ca-es/percentage.number.dialog rename to locale/ca-es/percentage.number.dialog diff --git a/dialog/ca-es/precipitation expected.dialog b/locale/ca-es/precipitation expected.dialog similarity index 100% rename from dialog/ca-es/precipitation expected.dialog rename to locale/ca-es/precipitation expected.dialog diff --git a/dialog/ca-es/rain.dialog b/locale/ca-es/rain.dialog similarity index 100% rename from dialog/ca-es/rain.dialog rename to locale/ca-es/rain.dialog diff --git a/dialog/ca-es/raining.alternative.dialog b/locale/ca-es/raining.alternative.dialog similarity index 100% rename from dialog/ca-es/raining.alternative.dialog rename to locale/ca-es/raining.alternative.dialog diff --git a/dialog/ca-es/report.condition.at.location.dialog b/locale/ca-es/report.condition.at.location.dialog similarity index 100% rename from dialog/ca-es/report.condition.at.location.dialog rename to locale/ca-es/report.condition.at.location.dialog diff --git a/dialog/ca-es/report.condition.dialog b/locale/ca-es/report.condition.dialog similarity index 100% rename from dialog/ca-es/report.condition.dialog rename to locale/ca-es/report.condition.dialog diff --git a/dialog/ca-es/report.condition.future.at.location.dialog b/locale/ca-es/report.condition.future.at.location.dialog similarity index 100% rename from dialog/ca-es/report.condition.future.at.location.dialog rename to locale/ca-es/report.condition.future.at.location.dialog diff --git a/dialog/ca-es/report.condition.future.dialog b/locale/ca-es/report.condition.future.dialog similarity index 100% rename from dialog/ca-es/report.condition.future.dialog rename to locale/ca-es/report.condition.future.dialog diff --git a/dialog/ca-es/report.wind.dialog b/locale/ca-es/report.wind.dialog similarity index 100% rename from dialog/ca-es/report.wind.dialog rename to locale/ca-es/report.wind.dialog diff --git a/vocab/ca-es/simple.temperature.intent b/locale/ca-es/simple.temperature.intent similarity index 100% rename from vocab/ca-es/simple.temperature.intent rename to locale/ca-es/simple.temperature.intent diff --git a/dialog/ca-es/sky is clear.future.dialog b/locale/ca-es/sky is clear.future.dialog similarity index 100% rename from dialog/ca-es/sky is clear.future.dialog rename to locale/ca-es/sky is clear.future.dialog diff --git a/dialog/ca-es/snow.dialog b/locale/ca-es/snow.dialog similarity index 100% rename from dialog/ca-es/snow.dialog rename to locale/ca-es/snow.dialog diff --git a/dialog/ca-es/snowing.alternative.dialog b/locale/ca-es/snowing.alternative.dialog similarity index 100% rename from dialog/ca-es/snowing.alternative.dialog rename to locale/ca-es/snowing.alternative.dialog diff --git a/dialog/ca-es/storm.alternative.dialog b/locale/ca-es/storm.alternative.dialog similarity index 100% rename from dialog/ca-es/storm.alternative.dialog rename to locale/ca-es/storm.alternative.dialog diff --git a/dialog/ca-es/storm.dialog b/locale/ca-es/storm.dialog similarity index 100% rename from dialog/ca-es/storm.dialog rename to locale/ca-es/storm.dialog diff --git a/dialog/ca-es/sunrise.dialog b/locale/ca-es/sunrise.dialog similarity index 100% rename from dialog/ca-es/sunrise.dialog rename to locale/ca-es/sunrise.dialog diff --git a/dialog/ca-es/sunset.dialog b/locale/ca-es/sunset.dialog similarity index 100% rename from dialog/ca-es/sunset.dialog rename to locale/ca-es/sunset.dialog diff --git a/dialog/ca-es/tonight.local.weather.dialog b/locale/ca-es/tonight.local.weather.dialog similarity index 100% rename from dialog/ca-es/tonight.local.weather.dialog rename to locale/ca-es/tonight.local.weather.dialog diff --git a/dialog/ca-es/weekly.condition.on.day.dialog b/locale/ca-es/weekly.condition.on.day.dialog similarity index 100% rename from dialog/ca-es/weekly.condition.on.day.dialog rename to locale/ca-es/weekly.condition.on.day.dialog diff --git a/dialog/ca-es/weekly.conditions.mostly.one.dialog b/locale/ca-es/weekly.conditions.mostly.one.dialog similarity index 100% rename from dialog/ca-es/weekly.conditions.mostly.one.dialog rename to locale/ca-es/weekly.conditions.mostly.one.dialog diff --git a/dialog/ca-es/weekly.conditions.seq.extra.dialog b/locale/ca-es/weekly.conditions.seq.extra.dialog similarity index 100% rename from dialog/ca-es/weekly.conditions.seq.extra.dialog rename to locale/ca-es/weekly.conditions.seq.extra.dialog diff --git a/dialog/ca-es/weekly.conditions.seq.period.dialog b/locale/ca-es/weekly.conditions.seq.period.dialog similarity index 100% rename from dialog/ca-es/weekly.conditions.seq.period.dialog rename to locale/ca-es/weekly.conditions.seq.period.dialog diff --git a/dialog/ca-es/weekly.conditions.seq.start.dialog b/locale/ca-es/weekly.conditions.seq.start.dialog similarity index 100% rename from dialog/ca-es/weekly.conditions.seq.start.dialog rename to locale/ca-es/weekly.conditions.seq.start.dialog diff --git a/dialog/ca-es/weekly.conditions.some.days.dialog b/locale/ca-es/weekly.conditions.some.days.dialog similarity index 100% rename from dialog/ca-es/weekly.conditions.some.days.dialog rename to locale/ca-es/weekly.conditions.some.days.dialog diff --git a/dialog/ca-es/weekly.temp.range.dialog b/locale/ca-es/weekly.temp.range.dialog similarity index 100% rename from dialog/ca-es/weekly.temp.range.dialog rename to locale/ca-es/weekly.temp.range.dialog diff --git a/vocab/ca-es/what.is.multi.day.forecast.intent b/locale/ca-es/what.is.multi.day.forecast.intent similarity index 100% rename from vocab/ca-es/what.is.multi.day.forecast.intent rename to locale/ca-es/what.is.multi.day.forecast.intent diff --git a/vocab/ca-es/what.is.three.day.forecast.intent b/locale/ca-es/what.is.three.day.forecast.intent similarity index 100% rename from vocab/ca-es/what.is.three.day.forecast.intent rename to locale/ca-es/what.is.three.day.forecast.intent diff --git a/vocab/ca-es/what.is.three.day.forecast.location.intent b/locale/ca-es/what.is.three.day.forecast.location.intent similarity index 100% rename from vocab/ca-es/what.is.three.day.forecast.location.intent rename to locale/ca-es/what.is.three.day.forecast.location.intent diff --git a/vocab/ca-es/what.is.two.day.forecast.intent b/locale/ca-es/what.is.two.day.forecast.intent similarity index 100% rename from vocab/ca-es/what.is.two.day.forecast.intent rename to locale/ca-es/what.is.two.day.forecast.intent diff --git a/vocab/ca-es/whats.weather.like.intent b/locale/ca-es/whats.weather.like.intent similarity index 100% rename from vocab/ca-es/whats.weather.like.intent rename to locale/ca-es/whats.weather.like.intent diff --git a/dialog/ca-es/wind.speed.dialog b/locale/ca-es/wind.speed.dialog similarity index 100% rename from dialog/ca-es/wind.speed.dialog rename to locale/ca-es/wind.speed.dialog diff --git a/dialog/ca-es/wind.speed.dir.dialog b/locale/ca-es/wind.speed.dir.dialog similarity index 100% rename from dialog/ca-es/wind.speed.dir.dialog rename to locale/ca-es/wind.speed.dir.dialog diff --git a/dialog/ca-es/wind.strength.hard.dialog b/locale/ca-es/wind.strength.hard.dialog similarity index 100% rename from dialog/ca-es/wind.strength.hard.dialog rename to locale/ca-es/wind.strength.hard.dialog diff --git a/dialog/ca-es/wind.strength.light.dialog b/locale/ca-es/wind.strength.light.dialog similarity index 100% rename from dialog/ca-es/wind.strength.light.dialog rename to locale/ca-es/wind.strength.light.dialog diff --git a/dialog/ca-es/wind.strength.medium.dialog b/locale/ca-es/wind.strength.medium.dialog similarity index 100% rename from dialog/ca-es/wind.strength.medium.dialog rename to locale/ca-es/wind.strength.medium.dialog diff --git a/dialog/ca-es/winds.dialog b/locale/ca-es/winds.dialog similarity index 100% rename from dialog/ca-es/winds.dialog rename to locale/ca-es/winds.dialog diff --git a/vocab/da-dk/Clear.voc b/locale/da-dk/Clear.voc similarity index 100% rename from vocab/da-dk/Clear.voc rename to locale/da-dk/Clear.voc diff --git a/vocab/da-dk/ClearAlternatives.voc b/locale/da-dk/ClearAlternatives.voc similarity index 100% rename from vocab/da-dk/ClearAlternatives.voc rename to locale/da-dk/ClearAlternatives.voc diff --git a/vocab/da-dk/Cloudy.voc b/locale/da-dk/Cloudy.voc similarity index 100% rename from vocab/da-dk/Cloudy.voc rename to locale/da-dk/Cloudy.voc diff --git a/vocab/da-dk/CloudyAlternatives.voc b/locale/da-dk/CloudyAlternatives.voc similarity index 100% rename from vocab/da-dk/CloudyAlternatives.voc rename to locale/da-dk/CloudyAlternatives.voc diff --git a/vocab/da-dk/Cold.voc b/locale/da-dk/Cold.voc similarity index 100% rename from vocab/da-dk/Cold.voc rename to locale/da-dk/Cold.voc diff --git a/vocab/da-dk/ConfirmQuery.voc b/locale/da-dk/ConfirmQuery.voc similarity index 100% rename from vocab/da-dk/ConfirmQuery.voc rename to locale/da-dk/ConfirmQuery.voc diff --git a/vocab/da-dk/ConfirmQueryCurrent.voc b/locale/da-dk/ConfirmQueryCurrent.voc similarity index 100% rename from vocab/da-dk/ConfirmQueryCurrent.voc rename to locale/da-dk/ConfirmQueryCurrent.voc diff --git a/vocab/da-dk/ConfirmQueryFuture.voc b/locale/da-dk/ConfirmQueryFuture.voc similarity index 100% rename from vocab/da-dk/ConfirmQueryFuture.voc rename to locale/da-dk/ConfirmQueryFuture.voc diff --git a/vocab/da-dk/Couple.voc b/locale/da-dk/Couple.voc similarity index 100% rename from vocab/da-dk/Couple.voc rename to locale/da-dk/Couple.voc diff --git a/dialog/da-dk/E.dialog b/locale/da-dk/E.dialog similarity index 100% rename from dialog/da-dk/E.dialog rename to locale/da-dk/E.dialog diff --git a/vocab/da-dk/Fahrenheit.voc b/locale/da-dk/Fahrenheit.voc similarity index 100% rename from vocab/da-dk/Fahrenheit.voc rename to locale/da-dk/Fahrenheit.voc diff --git a/vocab/da-dk/FogAlternatives.voc b/locale/da-dk/FogAlternatives.voc similarity index 100% rename from vocab/da-dk/FogAlternatives.voc rename to locale/da-dk/FogAlternatives.voc diff --git a/vocab/da-dk/Foggy.voc b/locale/da-dk/Foggy.voc similarity index 100% rename from vocab/da-dk/Foggy.voc rename to locale/da-dk/Foggy.voc diff --git a/vocab/da-dk/Forecast.voc b/locale/da-dk/Forecast.voc similarity index 100% rename from vocab/da-dk/Forecast.voc rename to locale/da-dk/Forecast.voc diff --git a/vocab/da-dk/High.voc b/locale/da-dk/High.voc similarity index 100% rename from vocab/da-dk/High.voc rename to locale/da-dk/High.voc diff --git a/vocab/da-dk/Hot.voc b/locale/da-dk/Hot.voc similarity index 100% rename from vocab/da-dk/Hot.voc rename to locale/da-dk/Hot.voc diff --git a/vocab/da-dk/How.voc b/locale/da-dk/How.voc similarity index 100% rename from vocab/da-dk/How.voc rename to locale/da-dk/How.voc diff --git a/vocab/da-dk/Humidity.voc b/locale/da-dk/Humidity.voc similarity index 100% rename from vocab/da-dk/Humidity.voc rename to locale/da-dk/Humidity.voc diff --git a/vocab/da-dk/Later.voc b/locale/da-dk/Later.voc similarity index 100% rename from vocab/da-dk/Later.voc rename to locale/da-dk/Later.voc diff --git a/vocab/da-dk/Location.voc b/locale/da-dk/Location.voc similarity index 100% rename from vocab/da-dk/Location.voc rename to locale/da-dk/Location.voc diff --git a/vocab/da-dk/Low.voc b/locale/da-dk/Low.voc similarity index 100% rename from vocab/da-dk/Low.voc rename to locale/da-dk/Low.voc diff --git a/dialog/da-dk/N.dialog b/locale/da-dk/N.dialog similarity index 100% rename from dialog/da-dk/N.dialog rename to locale/da-dk/N.dialog diff --git a/dialog/da-dk/NE.dialog b/locale/da-dk/NE.dialog similarity index 100% rename from dialog/da-dk/NE.dialog rename to locale/da-dk/NE.dialog diff --git a/dialog/da-dk/NW.dialog b/locale/da-dk/NW.dialog similarity index 100% rename from dialog/da-dk/NW.dialog rename to locale/da-dk/NW.dialog diff --git a/vocab/da-dk/Next.voc b/locale/da-dk/Next.voc similarity index 100% rename from vocab/da-dk/Next.voc rename to locale/da-dk/Next.voc diff --git a/vocab/da-dk/Now.voc b/locale/da-dk/Now.voc similarity index 100% rename from vocab/da-dk/Now.voc rename to locale/da-dk/Now.voc diff --git a/vocab/da-dk/Precipitation.voc b/locale/da-dk/Precipitation.voc similarity index 100% rename from vocab/da-dk/Precipitation.voc rename to locale/da-dk/Precipitation.voc diff --git a/vocab/da-dk/Query.voc b/locale/da-dk/Query.voc similarity index 100% rename from vocab/da-dk/Query.voc rename to locale/da-dk/Query.voc diff --git a/vocab/da-dk/RainAlternatives.voc b/locale/da-dk/RainAlternatives.voc similarity index 100% rename from vocab/da-dk/RainAlternatives.voc rename to locale/da-dk/RainAlternatives.voc diff --git a/vocab/da-dk/Raining.voc b/locale/da-dk/Raining.voc similarity index 100% rename from vocab/da-dk/Raining.voc rename to locale/da-dk/Raining.voc diff --git a/vocab/da-dk/RelativeDay.voc b/locale/da-dk/RelativeDay.voc similarity index 100% rename from vocab/da-dk/RelativeDay.voc rename to locale/da-dk/RelativeDay.voc diff --git a/vocab/da-dk/RelativeTime.voc b/locale/da-dk/RelativeTime.voc similarity index 100% rename from vocab/da-dk/RelativeTime.voc rename to locale/da-dk/RelativeTime.voc diff --git a/dialog/da-dk/S.dialog b/locale/da-dk/S.dialog similarity index 100% rename from dialog/da-dk/S.dialog rename to locale/da-dk/S.dialog diff --git a/dialog/da-dk/SE.dialog b/locale/da-dk/SE.dialog similarity index 100% rename from dialog/da-dk/SE.dialog rename to locale/da-dk/SE.dialog diff --git a/dialog/da-dk/SW.dialog b/locale/da-dk/SW.dialog similarity index 100% rename from dialog/da-dk/SW.dialog rename to locale/da-dk/SW.dialog diff --git a/vocab/da-dk/SnowAlternatives.voc b/locale/da-dk/SnowAlternatives.voc similarity index 100% rename from vocab/da-dk/SnowAlternatives.voc rename to locale/da-dk/SnowAlternatives.voc diff --git a/vocab/da-dk/Snowing.voc b/locale/da-dk/Snowing.voc similarity index 100% rename from vocab/da-dk/Snowing.voc rename to locale/da-dk/Snowing.voc diff --git a/vocab/da-dk/Storm.voc b/locale/da-dk/Storm.voc similarity index 100% rename from vocab/da-dk/Storm.voc rename to locale/da-dk/Storm.voc diff --git a/vocab/da-dk/StormAlternatives.voc b/locale/da-dk/StormAlternatives.voc similarity index 100% rename from vocab/da-dk/StormAlternatives.voc rename to locale/da-dk/StormAlternatives.voc diff --git a/vocab/da-dk/Sunrise.voc b/locale/da-dk/Sunrise.voc similarity index 100% rename from vocab/da-dk/Sunrise.voc rename to locale/da-dk/Sunrise.voc diff --git a/vocab/da-dk/Sunset.voc b/locale/da-dk/Sunset.voc similarity index 100% rename from vocab/da-dk/Sunset.voc rename to locale/da-dk/Sunset.voc diff --git a/vocab/da-dk/Temperature.voc b/locale/da-dk/Temperature.voc similarity index 100% rename from vocab/da-dk/Temperature.voc rename to locale/da-dk/Temperature.voc diff --git a/vocab/da-dk/ThreeDay.voc b/locale/da-dk/ThreeDay.voc similarity index 100% rename from vocab/da-dk/ThreeDay.voc rename to locale/da-dk/ThreeDay.voc diff --git a/vocab/da-dk/Today.voc b/locale/da-dk/Today.voc similarity index 100% rename from vocab/da-dk/Today.voc rename to locale/da-dk/Today.voc diff --git a/vocab/da-dk/Unit.entity b/locale/da-dk/Unit.entity similarity index 100% rename from vocab/da-dk/Unit.entity rename to locale/da-dk/Unit.entity diff --git a/vocab/da-dk/Unit.voc b/locale/da-dk/Unit.voc similarity index 100% rename from vocab/da-dk/Unit.voc rename to locale/da-dk/Unit.voc diff --git a/dialog/da-dk/W.dialog b/locale/da-dk/W.dialog similarity index 100% rename from dialog/da-dk/W.dialog rename to locale/da-dk/W.dialog diff --git a/vocab/da-dk/Weather.voc b/locale/da-dk/Weather.voc similarity index 100% rename from vocab/da-dk/Weather.voc rename to locale/da-dk/Weather.voc diff --git a/vocab/da-dk/WeatherType.voc b/locale/da-dk/WeatherType.voc similarity index 100% rename from vocab/da-dk/WeatherType.voc rename to locale/da-dk/WeatherType.voc diff --git a/vocab/da-dk/Week.voc b/locale/da-dk/Week.voc similarity index 100% rename from vocab/da-dk/Week.voc rename to locale/da-dk/Week.voc diff --git a/vocab/da-dk/Weekend.voc b/locale/da-dk/Weekend.voc similarity index 100% rename from vocab/da-dk/Weekend.voc rename to locale/da-dk/Weekend.voc diff --git a/vocab/da-dk/When.voc b/locale/da-dk/When.voc similarity index 100% rename from vocab/da-dk/When.voc rename to locale/da-dk/When.voc diff --git a/vocab/da-dk/Windy.voc b/locale/da-dk/Windy.voc similarity index 100% rename from vocab/da-dk/Windy.voc rename to locale/da-dk/Windy.voc diff --git a/dialog/da-dk/affirmative.condition.dialog b/locale/da-dk/affirmative.condition.dialog similarity index 100% rename from dialog/da-dk/affirmative.condition.dialog rename to locale/da-dk/affirmative.condition.dialog diff --git a/dialog/da-dk/and.dialog b/locale/da-dk/and.dialog similarity index 100% rename from dialog/da-dk/and.dialog rename to locale/da-dk/and.dialog diff --git a/dialog/da-dk/at.time.affirmative.condition.dialog b/locale/da-dk/at.time.affirmative.condition.dialog similarity index 100% rename from dialog/da-dk/at.time.affirmative.condition.dialog rename to locale/da-dk/at.time.affirmative.condition.dialog diff --git a/dialog/da-dk/at.time.cond.alternative.dialog b/locale/da-dk/at.time.cond.alternative.dialog similarity index 100% rename from dialog/da-dk/at.time.cond.alternative.dialog rename to locale/da-dk/at.time.cond.alternative.dialog diff --git a/dialog/da-dk/at.time.forecast.affirmative.condition.dialog b/locale/da-dk/at.time.forecast.affirmative.condition.dialog similarity index 100% rename from dialog/da-dk/at.time.forecast.affirmative.condition.dialog rename to locale/da-dk/at.time.forecast.affirmative.condition.dialog diff --git a/dialog/da-dk/at.time.forecast.cond.alternative.dialog b/locale/da-dk/at.time.forecast.cond.alternative.dialog similarity index 100% rename from dialog/da-dk/at.time.forecast.cond.alternative.dialog rename to locale/da-dk/at.time.forecast.cond.alternative.dialog diff --git a/dialog/da-dk/at.time.forecast.local.affirmative.condition.dialog b/locale/da-dk/at.time.forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/da-dk/at.time.forecast.local.affirmative.condition.dialog rename to locale/da-dk/at.time.forecast.local.affirmative.condition.dialog diff --git a/dialog/da-dk/at.time.forecast.local.cond.alternative.dialog b/locale/da-dk/at.time.forecast.local.cond.alternative.dialog similarity index 100% rename from dialog/da-dk/at.time.forecast.local.cond.alternative.dialog rename to locale/da-dk/at.time.forecast.local.cond.alternative.dialog diff --git a/dialog/da-dk/at.time.forecast.local.no.cond.predicted.dialog b/locale/da-dk/at.time.forecast.local.no.cond.predicted.dialog similarity index 100% rename from dialog/da-dk/at.time.forecast.local.no.cond.predicted.dialog rename to locale/da-dk/at.time.forecast.local.no.cond.predicted.dialog diff --git a/dialog/da-dk/at.time.forecast.no.cond.predicted.dialog b/locale/da-dk/at.time.forecast.no.cond.predicted.dialog similarity index 100% rename from dialog/da-dk/at.time.forecast.no.cond.predicted.dialog rename to locale/da-dk/at.time.forecast.no.cond.predicted.dialog diff --git a/dialog/da-dk/at.time.local.affirmative.condition.dialog b/locale/da-dk/at.time.local.affirmative.condition.dialog similarity index 100% rename from dialog/da-dk/at.time.local.affirmative.condition.dialog rename to locale/da-dk/at.time.local.affirmative.condition.dialog diff --git a/dialog/da-dk/at.time.local.cond.alternative.dialog b/locale/da-dk/at.time.local.cond.alternative.dialog similarity index 100% rename from dialog/da-dk/at.time.local.cond.alternative.dialog rename to locale/da-dk/at.time.local.cond.alternative.dialog diff --git a/dialog/da-dk/at.time.local.high.temperature.dialog b/locale/da-dk/at.time.local.high.temperature.dialog similarity index 100% rename from dialog/da-dk/at.time.local.high.temperature.dialog rename to locale/da-dk/at.time.local.high.temperature.dialog diff --git a/dialog/da-dk/at.time.local.low.temperature.dialog b/locale/da-dk/at.time.local.low.temperature.dialog similarity index 100% rename from dialog/da-dk/at.time.local.low.temperature.dialog rename to locale/da-dk/at.time.local.low.temperature.dialog diff --git a/dialog/da-dk/at.time.local.no.cond.predicted.dialog b/locale/da-dk/at.time.local.no.cond.predicted.dialog similarity index 100% rename from dialog/da-dk/at.time.local.no.cond.predicted.dialog rename to locale/da-dk/at.time.local.no.cond.predicted.dialog diff --git a/dialog/da-dk/at.time.local.temperature.dialog b/locale/da-dk/at.time.local.temperature.dialog similarity index 100% rename from dialog/da-dk/at.time.local.temperature.dialog rename to locale/da-dk/at.time.local.temperature.dialog diff --git a/dialog/da-dk/at.time.local.weather.dialog b/locale/da-dk/at.time.local.weather.dialog similarity index 100% rename from dialog/da-dk/at.time.local.weather.dialog rename to locale/da-dk/at.time.local.weather.dialog diff --git a/dialog/da-dk/at.time.no.cond.predicted.dialog b/locale/da-dk/at.time.no.cond.predicted.dialog similarity index 100% rename from dialog/da-dk/at.time.no.cond.predicted.dialog rename to locale/da-dk/at.time.no.cond.predicted.dialog diff --git a/dialog/da-dk/cant.get.forecast.dialog b/locale/da-dk/cant.get.forecast.dialog similarity index 100% rename from dialog/da-dk/cant.get.forecast.dialog rename to locale/da-dk/cant.get.forecast.dialog diff --git a/dialog/da-dk/celsius.dialog b/locale/da-dk/celsius.dialog similarity index 100% rename from dialog/da-dk/celsius.dialog rename to locale/da-dk/celsius.dialog diff --git a/dialog/da-dk/clear sky.dialog b/locale/da-dk/clear sky.dialog similarity index 100% rename from dialog/da-dk/clear sky.dialog rename to locale/da-dk/clear sky.dialog diff --git a/dialog/da-dk/clear.alternative.dialog b/locale/da-dk/clear.alternative.dialog similarity index 100% rename from dialog/da-dk/clear.alternative.dialog rename to locale/da-dk/clear.alternative.dialog diff --git a/dialog/da-dk/clear.dialog b/locale/da-dk/clear.dialog similarity index 100% rename from dialog/da-dk/clear.dialog rename to locale/da-dk/clear.dialog diff --git a/dialog/da-dk/clear.future.dialog b/locale/da-dk/clear.future.dialog similarity index 100% rename from dialog/da-dk/clear.future.dialog rename to locale/da-dk/clear.future.dialog diff --git a/dialog/da-dk/cloudy.alternative.dialog b/locale/da-dk/cloudy.alternative.dialog similarity index 100% rename from dialog/da-dk/cloudy.alternative.dialog rename to locale/da-dk/cloudy.alternative.dialog diff --git a/dialog/da-dk/condition.category.value b/locale/da-dk/condition.category.value similarity index 100% rename from dialog/da-dk/condition.category.value rename to locale/da-dk/condition.category.value diff --git a/dialog/da-dk/current.high.temperature.dialog b/locale/da-dk/current.high.temperature.dialog similarity index 100% rename from dialog/da-dk/current.high.temperature.dialog rename to locale/da-dk/current.high.temperature.dialog diff --git a/dialog/da-dk/current.hot.dialog b/locale/da-dk/current.hot.dialog similarity index 100% rename from dialog/da-dk/current.hot.dialog rename to locale/da-dk/current.hot.dialog diff --git a/dialog/da-dk/current.local.cold.dialog b/locale/da-dk/current.local.cold.dialog similarity index 100% rename from dialog/da-dk/current.local.cold.dialog rename to locale/da-dk/current.local.cold.dialog diff --git a/dialog/da-dk/current.local.high.temperature.dialog b/locale/da-dk/current.local.high.temperature.dialog similarity index 100% rename from dialog/da-dk/current.local.high.temperature.dialog rename to locale/da-dk/current.local.high.temperature.dialog diff --git a/dialog/da-dk/current.local.hot.dialog b/locale/da-dk/current.local.hot.dialog similarity index 100% rename from dialog/da-dk/current.local.hot.dialog rename to locale/da-dk/current.local.hot.dialog diff --git a/dialog/da-dk/current.local.low.temperature.dialog b/locale/da-dk/current.local.low.temperature.dialog similarity index 100% rename from dialog/da-dk/current.local.low.temperature.dialog rename to locale/da-dk/current.local.low.temperature.dialog diff --git a/dialog/da-dk/current.local.temperature.dialog b/locale/da-dk/current.local.temperature.dialog similarity index 100% rename from dialog/da-dk/current.local.temperature.dialog rename to locale/da-dk/current.local.temperature.dialog diff --git a/dialog/da-dk/current.local.weather.dialog b/locale/da-dk/current.local.weather.dialog similarity index 100% rename from dialog/da-dk/current.local.weather.dialog rename to locale/da-dk/current.local.weather.dialog diff --git a/dialog/da-dk/current.low.temperature.dialog b/locale/da-dk/current.low.temperature.dialog similarity index 100% rename from dialog/da-dk/current.low.temperature.dialog rename to locale/da-dk/current.low.temperature.dialog diff --git a/dialog/da-dk/current.temperature.dialog b/locale/da-dk/current.temperature.dialog similarity index 100% rename from dialog/da-dk/current.temperature.dialog rename to locale/da-dk/current.temperature.dialog diff --git a/dialog/da-dk/current.weather.dialog b/locale/da-dk/current.weather.dialog similarity index 100% rename from dialog/da-dk/current.weather.dialog rename to locale/da-dk/current.weather.dialog diff --git a/dialog/da-dk/do not know.dialog b/locale/da-dk/do not know.dialog similarity index 100% rename from dialog/da-dk/do not know.dialog rename to locale/da-dk/do not know.dialog diff --git a/vocab/da-dk/do.i.need.an.umbrella.intent b/locale/da-dk/do.i.need.an.umbrella.intent similarity index 100% rename from vocab/da-dk/do.i.need.an.umbrella.intent rename to locale/da-dk/do.i.need.an.umbrella.intent diff --git a/dialog/da-dk/fahrenheit.dialog b/locale/da-dk/fahrenheit.dialog similarity index 100% rename from dialog/da-dk/fahrenheit.dialog rename to locale/da-dk/fahrenheit.dialog diff --git a/dialog/da-dk/fog.alternative.dialog b/locale/da-dk/fog.alternative.dialog similarity index 100% rename from dialog/da-dk/fog.alternative.dialog rename to locale/da-dk/fog.alternative.dialog diff --git a/dialog/da-dk/forecast.affirmative.condition.dialog b/locale/da-dk/forecast.affirmative.condition.dialog similarity index 100% rename from dialog/da-dk/forecast.affirmative.condition.dialog rename to locale/da-dk/forecast.affirmative.condition.dialog diff --git a/dialog/da-dk/forecast.clear.alternative.dialog b/locale/da-dk/forecast.clear.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.clear.alternative.dialog rename to locale/da-dk/forecast.clear.alternative.dialog diff --git a/dialog/da-dk/forecast.cloudy.alternative.dialog b/locale/da-dk/forecast.cloudy.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.cloudy.alternative.dialog rename to locale/da-dk/forecast.cloudy.alternative.dialog diff --git a/dialog/da-dk/forecast.foggy.alternative.dialog b/locale/da-dk/forecast.foggy.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.foggy.alternative.dialog rename to locale/da-dk/forecast.foggy.alternative.dialog diff --git a/dialog/da-dk/forecast.hard.wind.dialog b/locale/da-dk/forecast.hard.wind.dialog similarity index 100% rename from dialog/da-dk/forecast.hard.wind.dialog rename to locale/da-dk/forecast.hard.wind.dialog diff --git a/dialog/da-dk/forecast.high.temperature.dialog b/locale/da-dk/forecast.high.temperature.dialog similarity index 100% rename from dialog/da-dk/forecast.high.temperature.dialog rename to locale/da-dk/forecast.high.temperature.dialog diff --git a/dialog/da-dk/forecast.hot.dialog b/locale/da-dk/forecast.hot.dialog similarity index 100% rename from dialog/da-dk/forecast.hot.dialog rename to locale/da-dk/forecast.hot.dialog diff --git a/dialog/da-dk/forecast.light.wind.dialog b/locale/da-dk/forecast.light.wind.dialog similarity index 100% rename from dialog/da-dk/forecast.light.wind.dialog rename to locale/da-dk/forecast.light.wind.dialog diff --git a/dialog/da-dk/forecast.local.affirmative.condition.dialog b/locale/da-dk/forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/da-dk/forecast.local.affirmative.condition.dialog rename to locale/da-dk/forecast.local.affirmative.condition.dialog diff --git a/dialog/da-dk/forecast.local.clear.alternative.dialog b/locale/da-dk/forecast.local.clear.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.local.clear.alternative.dialog rename to locale/da-dk/forecast.local.clear.alternative.dialog diff --git a/dialog/da-dk/forecast.local.cloudy.alternative.dialog b/locale/da-dk/forecast.local.cloudy.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.local.cloudy.alternative.dialog rename to locale/da-dk/forecast.local.cloudy.alternative.dialog diff --git a/dialog/da-dk/forecast.local.foggy.alternative.dialog b/locale/da-dk/forecast.local.foggy.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.local.foggy.alternative.dialog rename to locale/da-dk/forecast.local.foggy.alternative.dialog diff --git a/dialog/da-dk/forecast.local.hard.wind.dialog b/locale/da-dk/forecast.local.hard.wind.dialog similarity index 100% rename from dialog/da-dk/forecast.local.hard.wind.dialog rename to locale/da-dk/forecast.local.hard.wind.dialog diff --git a/dialog/da-dk/forecast.local.high.temperature.dialog b/locale/da-dk/forecast.local.high.temperature.dialog similarity index 100% rename from dialog/da-dk/forecast.local.high.temperature.dialog rename to locale/da-dk/forecast.local.high.temperature.dialog diff --git a/dialog/da-dk/forecast.local.hot.dialog b/locale/da-dk/forecast.local.hot.dialog similarity index 100% rename from dialog/da-dk/forecast.local.hot.dialog rename to locale/da-dk/forecast.local.hot.dialog diff --git a/dialog/da-dk/forecast.local.light.wind.dialog b/locale/da-dk/forecast.local.light.wind.dialog similarity index 100% rename from dialog/da-dk/forecast.local.light.wind.dialog rename to locale/da-dk/forecast.local.light.wind.dialog diff --git a/dialog/da-dk/forecast.local.low.temperature.dialog b/locale/da-dk/forecast.local.low.temperature.dialog similarity index 100% rename from dialog/da-dk/forecast.local.low.temperature.dialog rename to locale/da-dk/forecast.local.low.temperature.dialog diff --git a/dialog/da-dk/forecast.local.medium.wind.dialog b/locale/da-dk/forecast.local.medium.wind.dialog similarity index 100% rename from dialog/da-dk/forecast.local.medium.wind.dialog rename to locale/da-dk/forecast.local.medium.wind.dialog diff --git a/dialog/da-dk/forecast.local.no.clear.predicted.dialog b/locale/da-dk/forecast.local.no.clear.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.local.no.clear.predicted.dialog rename to locale/da-dk/forecast.local.no.clear.predicted.dialog diff --git a/dialog/da-dk/forecast.local.no.cloudy.predicted.dialog b/locale/da-dk/forecast.local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.local.no.cloudy.predicted.dialog rename to locale/da-dk/forecast.local.no.cloudy.predicted.dialog diff --git a/dialog/da-dk/forecast.local.no.fog.predicted.dialog b/locale/da-dk/forecast.local.no.fog.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.local.no.fog.predicted.dialog rename to locale/da-dk/forecast.local.no.fog.predicted.dialog diff --git a/dialog/da-dk/forecast.local.no.rain.predicted.dialog b/locale/da-dk/forecast.local.no.rain.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.local.no.rain.predicted.dialog rename to locale/da-dk/forecast.local.no.rain.predicted.dialog diff --git a/dialog/da-dk/forecast.local.no.snow.predicted.dialog b/locale/da-dk/forecast.local.no.snow.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.local.no.snow.predicted.dialog rename to locale/da-dk/forecast.local.no.snow.predicted.dialog diff --git a/dialog/da-dk/forecast.local.no.storm.predicted.dialog b/locale/da-dk/forecast.local.no.storm.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.local.no.storm.predicted.dialog rename to locale/da-dk/forecast.local.no.storm.predicted.dialog diff --git a/dialog/da-dk/forecast.local.raining.alternative.dialog b/locale/da-dk/forecast.local.raining.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.local.raining.alternative.dialog rename to locale/da-dk/forecast.local.raining.alternative.dialog diff --git a/dialog/da-dk/forecast.local.storm.alternative.dialog b/locale/da-dk/forecast.local.storm.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.local.storm.alternative.dialog rename to locale/da-dk/forecast.local.storm.alternative.dialog diff --git a/dialog/da-dk/forecast.local.temperature.dialog b/locale/da-dk/forecast.local.temperature.dialog similarity index 100% rename from dialog/da-dk/forecast.local.temperature.dialog rename to locale/da-dk/forecast.local.temperature.dialog diff --git a/dialog/da-dk/forecast.local.weather.dialog b/locale/da-dk/forecast.local.weather.dialog similarity index 100% rename from dialog/da-dk/forecast.local.weather.dialog rename to locale/da-dk/forecast.local.weather.dialog diff --git a/dialog/da-dk/forecast.low.temperature.dialog b/locale/da-dk/forecast.low.temperature.dialog similarity index 100% rename from dialog/da-dk/forecast.low.temperature.dialog rename to locale/da-dk/forecast.low.temperature.dialog diff --git a/dialog/da-dk/forecast.medium.wind.dialog b/locale/da-dk/forecast.medium.wind.dialog similarity index 100% rename from dialog/da-dk/forecast.medium.wind.dialog rename to locale/da-dk/forecast.medium.wind.dialog diff --git a/dialog/da-dk/forecast.no.clear.predicted.dialog b/locale/da-dk/forecast.no.clear.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.no.clear.predicted.dialog rename to locale/da-dk/forecast.no.clear.predicted.dialog diff --git a/dialog/da-dk/forecast.no.cloudy.predicted.dialog b/locale/da-dk/forecast.no.cloudy.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.no.cloudy.predicted.dialog rename to locale/da-dk/forecast.no.cloudy.predicted.dialog diff --git a/dialog/da-dk/forecast.no.fog.predicted.dialog b/locale/da-dk/forecast.no.fog.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.no.fog.predicted.dialog rename to locale/da-dk/forecast.no.fog.predicted.dialog diff --git a/dialog/da-dk/forecast.no.rain.predicted.dialog b/locale/da-dk/forecast.no.rain.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.no.rain.predicted.dialog rename to locale/da-dk/forecast.no.rain.predicted.dialog diff --git a/dialog/da-dk/forecast.no.snow.predicted.dialog b/locale/da-dk/forecast.no.snow.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.no.snow.predicted.dialog rename to locale/da-dk/forecast.no.snow.predicted.dialog diff --git a/dialog/da-dk/forecast.no.storm.predicted.dialog b/locale/da-dk/forecast.no.storm.predicted.dialog similarity index 100% rename from dialog/da-dk/forecast.no.storm.predicted.dialog rename to locale/da-dk/forecast.no.storm.predicted.dialog diff --git a/dialog/da-dk/forecast.raining.alternative.dialog b/locale/da-dk/forecast.raining.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.raining.alternative.dialog rename to locale/da-dk/forecast.raining.alternative.dialog diff --git a/dialog/da-dk/forecast.snowing.alternative.dialog b/locale/da-dk/forecast.snowing.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.snowing.alternative.dialog rename to locale/da-dk/forecast.snowing.alternative.dialog diff --git a/dialog/da-dk/forecast.storm.alternative.dialog b/locale/da-dk/forecast.storm.alternative.dialog similarity index 100% rename from dialog/da-dk/forecast.storm.alternative.dialog rename to locale/da-dk/forecast.storm.alternative.dialog diff --git a/dialog/da-dk/forecast.temperature.dialog b/locale/da-dk/forecast.temperature.dialog similarity index 100% rename from dialog/da-dk/forecast.temperature.dialog rename to locale/da-dk/forecast.temperature.dialog diff --git a/dialog/da-dk/forecast.weather.dialog b/locale/da-dk/forecast.weather.dialog similarity index 100% rename from dialog/da-dk/forecast.weather.dialog rename to locale/da-dk/forecast.weather.dialog diff --git a/dialog/da-dk/from.day.dialog b/locale/da-dk/from.day.dialog similarity index 100% rename from dialog/da-dk/from.day.dialog rename to locale/da-dk/from.day.dialog diff --git a/dialog/da-dk/hard.wind.dialog b/locale/da-dk/hard.wind.dialog similarity index 100% rename from dialog/da-dk/hard.wind.dialog rename to locale/da-dk/hard.wind.dialog diff --git a/dialog/da-dk/heavy.dialog b/locale/da-dk/heavy.dialog similarity index 100% rename from dialog/da-dk/heavy.dialog rename to locale/da-dk/heavy.dialog diff --git a/dialog/da-dk/hour.local.weather.dialog b/locale/da-dk/hour.local.weather.dialog similarity index 100% rename from dialog/da-dk/hour.local.weather.dialog rename to locale/da-dk/hour.local.weather.dialog diff --git a/dialog/da-dk/hour.weather.dialog b/locale/da-dk/hour.weather.dialog similarity index 100% rename from dialog/da-dk/hour.weather.dialog rename to locale/da-dk/hour.weather.dialog diff --git a/dialog/da-dk/humidity.dialog b/locale/da-dk/humidity.dialog similarity index 100% rename from dialog/da-dk/humidity.dialog rename to locale/da-dk/humidity.dialog diff --git a/dialog/da-dk/light.dialog b/locale/da-dk/light.dialog similarity index 100% rename from dialog/da-dk/light.dialog rename to locale/da-dk/light.dialog diff --git a/dialog/da-dk/light.wind.dialog b/locale/da-dk/light.wind.dialog similarity index 100% rename from dialog/da-dk/light.wind.dialog rename to locale/da-dk/light.wind.dialog diff --git a/dialog/da-dk/local.affirmative.condition.dialog b/locale/da-dk/local.affirmative.condition.dialog similarity index 100% rename from dialog/da-dk/local.affirmative.condition.dialog rename to locale/da-dk/local.affirmative.condition.dialog diff --git a/dialog/da-dk/local.clear.alternative.dialog b/locale/da-dk/local.clear.alternative.dialog similarity index 100% rename from dialog/da-dk/local.clear.alternative.dialog rename to locale/da-dk/local.clear.alternative.dialog diff --git a/dialog/da-dk/local.cloudy.alternative.dialog b/locale/da-dk/local.cloudy.alternative.dialog similarity index 100% rename from dialog/da-dk/local.cloudy.alternative.dialog rename to locale/da-dk/local.cloudy.alternative.dialog diff --git a/dialog/da-dk/local.foggy.alternative.dialog b/locale/da-dk/local.foggy.alternative.dialog similarity index 100% rename from dialog/da-dk/local.foggy.alternative.dialog rename to locale/da-dk/local.foggy.alternative.dialog diff --git a/dialog/da-dk/local.hard.wind.dialog b/locale/da-dk/local.hard.wind.dialog similarity index 100% rename from dialog/da-dk/local.hard.wind.dialog rename to locale/da-dk/local.hard.wind.dialog diff --git a/dialog/da-dk/local.light.wind.dialog b/locale/da-dk/local.light.wind.dialog similarity index 100% rename from dialog/da-dk/local.light.wind.dialog rename to locale/da-dk/local.light.wind.dialog diff --git a/dialog/da-dk/local.medium.wind.dialog b/locale/da-dk/local.medium.wind.dialog similarity index 100% rename from dialog/da-dk/local.medium.wind.dialog rename to locale/da-dk/local.medium.wind.dialog diff --git a/dialog/da-dk/local.no.cloudy.predicted.dialog b/locale/da-dk/local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/da-dk/local.no.cloudy.predicted.dialog rename to locale/da-dk/local.no.cloudy.predicted.dialog diff --git a/dialog/da-dk/local.no.fog.predicted.dialog b/locale/da-dk/local.no.fog.predicted.dialog similarity index 100% rename from dialog/da-dk/local.no.fog.predicted.dialog rename to locale/da-dk/local.no.fog.predicted.dialog diff --git a/dialog/da-dk/local.no.rain.predicted.dialog b/locale/da-dk/local.no.rain.predicted.dialog similarity index 100% rename from dialog/da-dk/local.no.rain.predicted.dialog rename to locale/da-dk/local.no.rain.predicted.dialog diff --git a/dialog/da-dk/local.no.snow.predicted.dialog b/locale/da-dk/local.no.snow.predicted.dialog similarity index 100% rename from dialog/da-dk/local.no.snow.predicted.dialog rename to locale/da-dk/local.no.snow.predicted.dialog diff --git a/dialog/da-dk/local.no.storm.predicted.dialog b/locale/da-dk/local.no.storm.predicted.dialog similarity index 100% rename from dialog/da-dk/local.no.storm.predicted.dialog rename to locale/da-dk/local.no.storm.predicted.dialog diff --git a/dialog/da-dk/local.raining.alternative.dialog b/locale/da-dk/local.raining.alternative.dialog similarity index 100% rename from dialog/da-dk/local.raining.alternative.dialog rename to locale/da-dk/local.raining.alternative.dialog diff --git a/dialog/da-dk/local.snowing.alternative.dialog b/locale/da-dk/local.snowing.alternative.dialog similarity index 100% rename from dialog/da-dk/local.snowing.alternative.dialog rename to locale/da-dk/local.snowing.alternative.dialog diff --git a/dialog/da-dk/local.storm.alternative.dialog b/locale/da-dk/local.storm.alternative.dialog similarity index 100% rename from dialog/da-dk/local.storm.alternative.dialog rename to locale/da-dk/local.storm.alternative.dialog diff --git a/dialog/da-dk/location.not.found.dialog b/locale/da-dk/location.not.found.dialog similarity index 100% rename from dialog/da-dk/location.not.found.dialog rename to locale/da-dk/location.not.found.dialog diff --git a/regex/da-dk/location.rx b/locale/da-dk/location.rx similarity index 100% rename from regex/da-dk/location.rx rename to locale/da-dk/location.rx diff --git a/dialog/da-dk/medium.wind.dialog b/locale/da-dk/medium.wind.dialog similarity index 100% rename from dialog/da-dk/medium.wind.dialog rename to locale/da-dk/medium.wind.dialog diff --git a/dialog/da-dk/meters per second.dialog b/locale/da-dk/meters per second.dialog similarity index 100% rename from dialog/da-dk/meters per second.dialog rename to locale/da-dk/meters per second.dialog diff --git a/dialog/da-dk/miles per hour.dialog b/locale/da-dk/miles per hour.dialog similarity index 100% rename from dialog/da-dk/miles per hour.dialog rename to locale/da-dk/miles per hour.dialog diff --git a/dialog/da-dk/min.max.dialog b/locale/da-dk/min.max.dialog similarity index 100% rename from dialog/da-dk/min.max.dialog rename to locale/da-dk/min.max.dialog diff --git a/dialog/da-dk/no precipitation expected.dialog b/locale/da-dk/no precipitation expected.dialog similarity index 100% rename from dialog/da-dk/no precipitation expected.dialog rename to locale/da-dk/no precipitation expected.dialog diff --git a/dialog/da-dk/no.clear.predicted.dialog b/locale/da-dk/no.clear.predicted.dialog similarity index 100% rename from dialog/da-dk/no.clear.predicted.dialog rename to locale/da-dk/no.clear.predicted.dialog diff --git a/dialog/da-dk/no.cloudy.predicted.dialog b/locale/da-dk/no.cloudy.predicted.dialog similarity index 100% rename from dialog/da-dk/no.cloudy.predicted.dialog rename to locale/da-dk/no.cloudy.predicted.dialog diff --git a/dialog/da-dk/no.fog.predicted.dialog b/locale/da-dk/no.fog.predicted.dialog similarity index 100% rename from dialog/da-dk/no.fog.predicted.dialog rename to locale/da-dk/no.fog.predicted.dialog diff --git a/dialog/da-dk/no.forecast.dialog b/locale/da-dk/no.forecast.dialog similarity index 100% rename from dialog/da-dk/no.forecast.dialog rename to locale/da-dk/no.forecast.dialog diff --git a/dialog/da-dk/no.rain.predicted.dialog b/locale/da-dk/no.rain.predicted.dialog similarity index 100% rename from dialog/da-dk/no.rain.predicted.dialog rename to locale/da-dk/no.rain.predicted.dialog diff --git a/dialog/da-dk/no.snow.predicted.dialog b/locale/da-dk/no.snow.predicted.dialog similarity index 100% rename from dialog/da-dk/no.snow.predicted.dialog rename to locale/da-dk/no.snow.predicted.dialog diff --git a/dialog/da-dk/no.storm.predicted.dialog b/locale/da-dk/no.storm.predicted.dialog similarity index 100% rename from dialog/da-dk/no.storm.predicted.dialog rename to locale/da-dk/no.storm.predicted.dialog diff --git a/dialog/da-dk/on.date.dialog b/locale/da-dk/on.date.dialog similarity index 100% rename from dialog/da-dk/on.date.dialog rename to locale/da-dk/on.date.dialog diff --git a/dialog/da-dk/on.dialog b/locale/da-dk/on.dialog similarity index 100% rename from dialog/da-dk/on.dialog rename to locale/da-dk/on.dialog diff --git a/dialog/da-dk/percentage.number.dialog b/locale/da-dk/percentage.number.dialog similarity index 100% rename from dialog/da-dk/percentage.number.dialog rename to locale/da-dk/percentage.number.dialog diff --git a/dialog/da-dk/precipitation expected.dialog b/locale/da-dk/precipitation expected.dialog similarity index 100% rename from dialog/da-dk/precipitation expected.dialog rename to locale/da-dk/precipitation expected.dialog diff --git a/dialog/da-dk/rain.dialog b/locale/da-dk/rain.dialog similarity index 100% rename from dialog/da-dk/rain.dialog rename to locale/da-dk/rain.dialog diff --git a/dialog/da-dk/raining.alternative.dialog b/locale/da-dk/raining.alternative.dialog similarity index 100% rename from dialog/da-dk/raining.alternative.dialog rename to locale/da-dk/raining.alternative.dialog diff --git a/dialog/da-dk/report.condition.at.location.dialog b/locale/da-dk/report.condition.at.location.dialog similarity index 100% rename from dialog/da-dk/report.condition.at.location.dialog rename to locale/da-dk/report.condition.at.location.dialog diff --git a/dialog/da-dk/report.condition.dialog b/locale/da-dk/report.condition.dialog similarity index 100% rename from dialog/da-dk/report.condition.dialog rename to locale/da-dk/report.condition.dialog diff --git a/dialog/da-dk/report.condition.future.at.location.dialog b/locale/da-dk/report.condition.future.at.location.dialog similarity index 100% rename from dialog/da-dk/report.condition.future.at.location.dialog rename to locale/da-dk/report.condition.future.at.location.dialog diff --git a/dialog/da-dk/report.condition.future.dialog b/locale/da-dk/report.condition.future.dialog similarity index 100% rename from dialog/da-dk/report.condition.future.dialog rename to locale/da-dk/report.condition.future.dialog diff --git a/dialog/da-dk/report.wind.dialog b/locale/da-dk/report.wind.dialog similarity index 100% rename from dialog/da-dk/report.wind.dialog rename to locale/da-dk/report.wind.dialog diff --git a/vocab/da-dk/simple.temperature.intent b/locale/da-dk/simple.temperature.intent similarity index 100% rename from vocab/da-dk/simple.temperature.intent rename to locale/da-dk/simple.temperature.intent diff --git a/dialog/da-dk/sky is clear.future.dialog b/locale/da-dk/sky is clear.future.dialog similarity index 100% rename from dialog/da-dk/sky is clear.future.dialog rename to locale/da-dk/sky is clear.future.dialog diff --git a/dialog/da-dk/snow.dialog b/locale/da-dk/snow.dialog similarity index 100% rename from dialog/da-dk/snow.dialog rename to locale/da-dk/snow.dialog diff --git a/dialog/da-dk/snowing.alternative.dialog b/locale/da-dk/snowing.alternative.dialog similarity index 100% rename from dialog/da-dk/snowing.alternative.dialog rename to locale/da-dk/snowing.alternative.dialog diff --git a/dialog/da-dk/storm.alternative.dialog b/locale/da-dk/storm.alternative.dialog similarity index 100% rename from dialog/da-dk/storm.alternative.dialog rename to locale/da-dk/storm.alternative.dialog diff --git a/dialog/da-dk/storm.dialog b/locale/da-dk/storm.dialog similarity index 100% rename from dialog/da-dk/storm.dialog rename to locale/da-dk/storm.dialog diff --git a/dialog/da-dk/sunrise.dialog b/locale/da-dk/sunrise.dialog similarity index 100% rename from dialog/da-dk/sunrise.dialog rename to locale/da-dk/sunrise.dialog diff --git a/dialog/da-dk/sunset.dialog b/locale/da-dk/sunset.dialog similarity index 100% rename from dialog/da-dk/sunset.dialog rename to locale/da-dk/sunset.dialog diff --git a/dialog/da-dk/this.week.dialog b/locale/da-dk/this.week.dialog similarity index 100% rename from dialog/da-dk/this.week.dialog rename to locale/da-dk/this.week.dialog diff --git a/dialog/da-dk/tonight.local.weather.dialog b/locale/da-dk/tonight.local.weather.dialog similarity index 100% rename from dialog/da-dk/tonight.local.weather.dialog rename to locale/da-dk/tonight.local.weather.dialog diff --git a/dialog/da-dk/weekly.condition.on.day.dialog b/locale/da-dk/weekly.condition.on.day.dialog similarity index 100% rename from dialog/da-dk/weekly.condition.on.day.dialog rename to locale/da-dk/weekly.condition.on.day.dialog diff --git a/dialog/da-dk/weekly.conditions.mostly.one.dialog b/locale/da-dk/weekly.conditions.mostly.one.dialog similarity index 100% rename from dialog/da-dk/weekly.conditions.mostly.one.dialog rename to locale/da-dk/weekly.conditions.mostly.one.dialog diff --git a/dialog/da-dk/weekly.conditions.seq.extra.dialog b/locale/da-dk/weekly.conditions.seq.extra.dialog similarity index 100% rename from dialog/da-dk/weekly.conditions.seq.extra.dialog rename to locale/da-dk/weekly.conditions.seq.extra.dialog diff --git a/dialog/da-dk/weekly.conditions.seq.period.dialog b/locale/da-dk/weekly.conditions.seq.period.dialog similarity index 100% rename from dialog/da-dk/weekly.conditions.seq.period.dialog rename to locale/da-dk/weekly.conditions.seq.period.dialog diff --git a/dialog/da-dk/weekly.conditions.seq.start.dialog b/locale/da-dk/weekly.conditions.seq.start.dialog similarity index 100% rename from dialog/da-dk/weekly.conditions.seq.start.dialog rename to locale/da-dk/weekly.conditions.seq.start.dialog diff --git a/dialog/da-dk/weekly.conditions.some.days.dialog b/locale/da-dk/weekly.conditions.some.days.dialog similarity index 100% rename from dialog/da-dk/weekly.conditions.some.days.dialog rename to locale/da-dk/weekly.conditions.some.days.dialog diff --git a/dialog/da-dk/weekly.temp.range.dialog b/locale/da-dk/weekly.temp.range.dialog similarity index 100% rename from dialog/da-dk/weekly.temp.range.dialog rename to locale/da-dk/weekly.temp.range.dialog diff --git a/vocab/da-dk/what.is.multi.day.forecast.intent b/locale/da-dk/what.is.multi.day.forecast.intent similarity index 100% rename from vocab/da-dk/what.is.multi.day.forecast.intent rename to locale/da-dk/what.is.multi.day.forecast.intent diff --git a/vocab/da-dk/what.is.three.day.forecast.intent b/locale/da-dk/what.is.three.day.forecast.intent similarity index 100% rename from vocab/da-dk/what.is.three.day.forecast.intent rename to locale/da-dk/what.is.three.day.forecast.intent diff --git a/vocab/da-dk/what.is.three.day.forecast.location.intent b/locale/da-dk/what.is.three.day.forecast.location.intent similarity index 100% rename from vocab/da-dk/what.is.three.day.forecast.location.intent rename to locale/da-dk/what.is.three.day.forecast.location.intent diff --git a/vocab/da-dk/what.is.two.day.forecast.intent b/locale/da-dk/what.is.two.day.forecast.intent similarity index 100% rename from vocab/da-dk/what.is.two.day.forecast.intent rename to locale/da-dk/what.is.two.day.forecast.intent diff --git a/vocab/da-dk/whats.weather.like.intent b/locale/da-dk/whats.weather.like.intent similarity index 100% rename from vocab/da-dk/whats.weather.like.intent rename to locale/da-dk/whats.weather.like.intent diff --git a/dialog/da-dk/wind.speed.dialog b/locale/da-dk/wind.speed.dialog similarity index 100% rename from dialog/da-dk/wind.speed.dialog rename to locale/da-dk/wind.speed.dialog diff --git a/dialog/da-dk/wind.speed.dir.dialog b/locale/da-dk/wind.speed.dir.dialog similarity index 100% rename from dialog/da-dk/wind.speed.dir.dialog rename to locale/da-dk/wind.speed.dir.dialog diff --git a/dialog/da-dk/wind.strength.hard.dialog b/locale/da-dk/wind.strength.hard.dialog similarity index 100% rename from dialog/da-dk/wind.strength.hard.dialog rename to locale/da-dk/wind.strength.hard.dialog diff --git a/dialog/da-dk/wind.strength.light.dialog b/locale/da-dk/wind.strength.light.dialog similarity index 100% rename from dialog/da-dk/wind.strength.light.dialog rename to locale/da-dk/wind.strength.light.dialog diff --git a/dialog/da-dk/wind.strength.medium.dialog b/locale/da-dk/wind.strength.medium.dialog similarity index 100% rename from dialog/da-dk/wind.strength.medium.dialog rename to locale/da-dk/wind.strength.medium.dialog diff --git a/dialog/da-dk/winds.dialog b/locale/da-dk/winds.dialog similarity index 100% rename from dialog/da-dk/winds.dialog rename to locale/da-dk/winds.dialog diff --git a/vocab/de-de/Clear.voc b/locale/de-de/Clear.voc similarity index 100% rename from vocab/de-de/Clear.voc rename to locale/de-de/Clear.voc diff --git a/vocab/de-de/ClearAlternatives.voc b/locale/de-de/ClearAlternatives.voc similarity index 100% rename from vocab/de-de/ClearAlternatives.voc rename to locale/de-de/ClearAlternatives.voc diff --git a/vocab/de-de/Cloudy.voc b/locale/de-de/Cloudy.voc similarity index 100% rename from vocab/de-de/Cloudy.voc rename to locale/de-de/Cloudy.voc diff --git a/vocab/de-de/CloudyAlternatives.voc b/locale/de-de/CloudyAlternatives.voc similarity index 100% rename from vocab/de-de/CloudyAlternatives.voc rename to locale/de-de/CloudyAlternatives.voc diff --git a/vocab/de-de/Cold.voc b/locale/de-de/Cold.voc similarity index 100% rename from vocab/de-de/Cold.voc rename to locale/de-de/Cold.voc diff --git a/vocab/de-de/ConfirmQuery.voc b/locale/de-de/ConfirmQuery.voc similarity index 100% rename from vocab/de-de/ConfirmQuery.voc rename to locale/de-de/ConfirmQuery.voc diff --git a/vocab/de-de/ConfirmQueryCurrent.voc b/locale/de-de/ConfirmQueryCurrent.voc similarity index 100% rename from vocab/de-de/ConfirmQueryCurrent.voc rename to locale/de-de/ConfirmQueryCurrent.voc diff --git a/vocab/de-de/ConfirmQueryFuture.voc b/locale/de-de/ConfirmQueryFuture.voc similarity index 100% rename from vocab/de-de/ConfirmQueryFuture.voc rename to locale/de-de/ConfirmQueryFuture.voc diff --git a/vocab/de-de/Couple.voc b/locale/de-de/Couple.voc similarity index 100% rename from vocab/de-de/Couple.voc rename to locale/de-de/Couple.voc diff --git a/dialog/de-de/E.dialog b/locale/de-de/E.dialog similarity index 100% rename from dialog/de-de/E.dialog rename to locale/de-de/E.dialog diff --git a/vocab/de-de/Fahrenheit.voc b/locale/de-de/Fahrenheit.voc similarity index 100% rename from vocab/de-de/Fahrenheit.voc rename to locale/de-de/Fahrenheit.voc diff --git a/vocab/de-de/FogAlternatives.voc b/locale/de-de/FogAlternatives.voc similarity index 100% rename from vocab/de-de/FogAlternatives.voc rename to locale/de-de/FogAlternatives.voc diff --git a/vocab/de-de/Foggy.voc b/locale/de-de/Foggy.voc similarity index 100% rename from vocab/de-de/Foggy.voc rename to locale/de-de/Foggy.voc diff --git a/vocab/de-de/Forecast.voc b/locale/de-de/Forecast.voc similarity index 100% rename from vocab/de-de/Forecast.voc rename to locale/de-de/Forecast.voc diff --git a/vocab/de-de/High.voc b/locale/de-de/High.voc similarity index 100% rename from vocab/de-de/High.voc rename to locale/de-de/High.voc diff --git a/vocab/de-de/Hot.voc b/locale/de-de/Hot.voc similarity index 100% rename from vocab/de-de/Hot.voc rename to locale/de-de/Hot.voc diff --git a/vocab/de-de/How.voc b/locale/de-de/How.voc similarity index 100% rename from vocab/de-de/How.voc rename to locale/de-de/How.voc diff --git a/vocab/de-de/Humidity.voc b/locale/de-de/Humidity.voc similarity index 100% rename from vocab/de-de/Humidity.voc rename to locale/de-de/Humidity.voc diff --git a/vocab/de-de/Later.voc b/locale/de-de/Later.voc similarity index 100% rename from vocab/de-de/Later.voc rename to locale/de-de/Later.voc diff --git a/vocab/de-de/Location.voc b/locale/de-de/Location.voc similarity index 100% rename from vocab/de-de/Location.voc rename to locale/de-de/Location.voc diff --git a/vocab/de-de/Low.voc b/locale/de-de/Low.voc similarity index 100% rename from vocab/de-de/Low.voc rename to locale/de-de/Low.voc diff --git a/dialog/de-de/N.dialog b/locale/de-de/N.dialog similarity index 100% rename from dialog/de-de/N.dialog rename to locale/de-de/N.dialog diff --git a/dialog/de-de/NE.dialog b/locale/de-de/NE.dialog similarity index 100% rename from dialog/de-de/NE.dialog rename to locale/de-de/NE.dialog diff --git a/dialog/de-de/NW.dialog b/locale/de-de/NW.dialog similarity index 100% rename from dialog/de-de/NW.dialog rename to locale/de-de/NW.dialog diff --git a/vocab/de-de/Next.voc b/locale/de-de/Next.voc similarity index 100% rename from vocab/de-de/Next.voc rename to locale/de-de/Next.voc diff --git a/vocab/de-de/Now.voc b/locale/de-de/Now.voc similarity index 100% rename from vocab/de-de/Now.voc rename to locale/de-de/Now.voc diff --git a/vocab/de-de/Precipitation.voc b/locale/de-de/Precipitation.voc similarity index 100% rename from vocab/de-de/Precipitation.voc rename to locale/de-de/Precipitation.voc diff --git a/vocab/de-de/Query.voc b/locale/de-de/Query.voc similarity index 100% rename from vocab/de-de/Query.voc rename to locale/de-de/Query.voc diff --git a/vocab/de-de/RainAlternatives.voc b/locale/de-de/RainAlternatives.voc similarity index 100% rename from vocab/de-de/RainAlternatives.voc rename to locale/de-de/RainAlternatives.voc diff --git a/vocab/de-de/Raining.voc b/locale/de-de/Raining.voc similarity index 100% rename from vocab/de-de/Raining.voc rename to locale/de-de/Raining.voc diff --git a/vocab/de-de/RelativeDay.voc b/locale/de-de/RelativeDay.voc similarity index 100% rename from vocab/de-de/RelativeDay.voc rename to locale/de-de/RelativeDay.voc diff --git a/vocab/de-de/RelativeTime.voc b/locale/de-de/RelativeTime.voc similarity index 100% rename from vocab/de-de/RelativeTime.voc rename to locale/de-de/RelativeTime.voc diff --git a/dialog/de-de/S.dialog b/locale/de-de/S.dialog similarity index 100% rename from dialog/de-de/S.dialog rename to locale/de-de/S.dialog diff --git a/dialog/de-de/SE.dialog b/locale/de-de/SE.dialog similarity index 100% rename from dialog/de-de/SE.dialog rename to locale/de-de/SE.dialog diff --git a/dialog/de-de/SW.dialog b/locale/de-de/SW.dialog similarity index 100% rename from dialog/de-de/SW.dialog rename to locale/de-de/SW.dialog diff --git a/vocab/de-de/SnowAlternatives.voc b/locale/de-de/SnowAlternatives.voc similarity index 100% rename from vocab/de-de/SnowAlternatives.voc rename to locale/de-de/SnowAlternatives.voc diff --git a/vocab/de-de/Snowing.voc b/locale/de-de/Snowing.voc similarity index 100% rename from vocab/de-de/Snowing.voc rename to locale/de-de/Snowing.voc diff --git a/vocab/de-de/Storm.voc b/locale/de-de/Storm.voc similarity index 100% rename from vocab/de-de/Storm.voc rename to locale/de-de/Storm.voc diff --git a/vocab/de-de/StormAlternatives.voc b/locale/de-de/StormAlternatives.voc similarity index 100% rename from vocab/de-de/StormAlternatives.voc rename to locale/de-de/StormAlternatives.voc diff --git a/vocab/de-de/Sunrise.voc b/locale/de-de/Sunrise.voc similarity index 100% rename from vocab/de-de/Sunrise.voc rename to locale/de-de/Sunrise.voc diff --git a/vocab/de-de/Sunset.voc b/locale/de-de/Sunset.voc similarity index 100% rename from vocab/de-de/Sunset.voc rename to locale/de-de/Sunset.voc diff --git a/vocab/de-de/Temperature.voc b/locale/de-de/Temperature.voc similarity index 100% rename from vocab/de-de/Temperature.voc rename to locale/de-de/Temperature.voc diff --git a/vocab/de-de/ThreeDay.voc b/locale/de-de/ThreeDay.voc similarity index 100% rename from vocab/de-de/ThreeDay.voc rename to locale/de-de/ThreeDay.voc diff --git a/vocab/de-de/Today.voc b/locale/de-de/Today.voc similarity index 100% rename from vocab/de-de/Today.voc rename to locale/de-de/Today.voc diff --git a/vocab/de-de/Unit.entity b/locale/de-de/Unit.entity similarity index 100% rename from vocab/de-de/Unit.entity rename to locale/de-de/Unit.entity diff --git a/vocab/de-de/Unit.voc b/locale/de-de/Unit.voc similarity index 100% rename from vocab/de-de/Unit.voc rename to locale/de-de/Unit.voc diff --git a/dialog/de-de/W.dialog b/locale/de-de/W.dialog similarity index 100% rename from dialog/de-de/W.dialog rename to locale/de-de/W.dialog diff --git a/vocab/de-de/Weather.voc b/locale/de-de/Weather.voc similarity index 100% rename from vocab/de-de/Weather.voc rename to locale/de-de/Weather.voc diff --git a/vocab/de-de/WeatherType.voc b/locale/de-de/WeatherType.voc similarity index 100% rename from vocab/de-de/WeatherType.voc rename to locale/de-de/WeatherType.voc diff --git a/vocab/de-de/Week.voc b/locale/de-de/Week.voc similarity index 100% rename from vocab/de-de/Week.voc rename to locale/de-de/Week.voc diff --git a/vocab/de-de/Weekend.voc b/locale/de-de/Weekend.voc similarity index 100% rename from vocab/de-de/Weekend.voc rename to locale/de-de/Weekend.voc diff --git a/vocab/de-de/When.voc b/locale/de-de/When.voc similarity index 100% rename from vocab/de-de/When.voc rename to locale/de-de/When.voc diff --git a/vocab/de-de/Windy.voc b/locale/de-de/Windy.voc similarity index 100% rename from vocab/de-de/Windy.voc rename to locale/de-de/Windy.voc diff --git a/dialog/de-de/affirmative.condition.dialog b/locale/de-de/affirmative.condition.dialog similarity index 100% rename from dialog/de-de/affirmative.condition.dialog rename to locale/de-de/affirmative.condition.dialog diff --git a/dialog/de-de/and.dialog b/locale/de-de/and.dialog similarity index 100% rename from dialog/de-de/and.dialog rename to locale/de-de/and.dialog diff --git a/dialog/de-de/at.time.affirmative.condition.dialog b/locale/de-de/at.time.affirmative.condition.dialog similarity index 100% rename from dialog/de-de/at.time.affirmative.condition.dialog rename to locale/de-de/at.time.affirmative.condition.dialog diff --git a/dialog/de-de/at.time.cond.alternative.dialog b/locale/de-de/at.time.cond.alternative.dialog similarity index 100% rename from dialog/de-de/at.time.cond.alternative.dialog rename to locale/de-de/at.time.cond.alternative.dialog diff --git a/dialog/de-de/at.time.forecast.affirmative.condition.dialog b/locale/de-de/at.time.forecast.affirmative.condition.dialog similarity index 100% rename from dialog/de-de/at.time.forecast.affirmative.condition.dialog rename to locale/de-de/at.time.forecast.affirmative.condition.dialog diff --git a/dialog/de-de/at.time.forecast.cond.alternative.dialog b/locale/de-de/at.time.forecast.cond.alternative.dialog similarity index 100% rename from dialog/de-de/at.time.forecast.cond.alternative.dialog rename to locale/de-de/at.time.forecast.cond.alternative.dialog diff --git a/dialog/de-de/at.time.forecast.local.affirmative.condition.dialog b/locale/de-de/at.time.forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/de-de/at.time.forecast.local.affirmative.condition.dialog rename to locale/de-de/at.time.forecast.local.affirmative.condition.dialog diff --git a/dialog/de-de/at.time.forecast.local.cond.alternative.dialog b/locale/de-de/at.time.forecast.local.cond.alternative.dialog similarity index 100% rename from dialog/de-de/at.time.forecast.local.cond.alternative.dialog rename to locale/de-de/at.time.forecast.local.cond.alternative.dialog diff --git a/dialog/de-de/at.time.forecast.local.no.cond.predicted.dialog b/locale/de-de/at.time.forecast.local.no.cond.predicted.dialog similarity index 100% rename from dialog/de-de/at.time.forecast.local.no.cond.predicted.dialog rename to locale/de-de/at.time.forecast.local.no.cond.predicted.dialog diff --git a/dialog/de-de/at.time.forecast.no.cond.predicted.dialog b/locale/de-de/at.time.forecast.no.cond.predicted.dialog similarity index 100% rename from dialog/de-de/at.time.forecast.no.cond.predicted.dialog rename to locale/de-de/at.time.forecast.no.cond.predicted.dialog diff --git a/dialog/de-de/at.time.local.affirmative.condition.dialog b/locale/de-de/at.time.local.affirmative.condition.dialog similarity index 100% rename from dialog/de-de/at.time.local.affirmative.condition.dialog rename to locale/de-de/at.time.local.affirmative.condition.dialog diff --git a/dialog/de-de/at.time.local.cond.alternative.dialog b/locale/de-de/at.time.local.cond.alternative.dialog similarity index 100% rename from dialog/de-de/at.time.local.cond.alternative.dialog rename to locale/de-de/at.time.local.cond.alternative.dialog diff --git a/dialog/de-de/at.time.local.high.temperature.dialog b/locale/de-de/at.time.local.high.temperature.dialog similarity index 100% rename from dialog/de-de/at.time.local.high.temperature.dialog rename to locale/de-de/at.time.local.high.temperature.dialog diff --git a/dialog/de-de/at.time.local.low.temperature.dialog b/locale/de-de/at.time.local.low.temperature.dialog similarity index 100% rename from dialog/de-de/at.time.local.low.temperature.dialog rename to locale/de-de/at.time.local.low.temperature.dialog diff --git a/dialog/de-de/at.time.local.no.cond.predicted.dialog b/locale/de-de/at.time.local.no.cond.predicted.dialog similarity index 100% rename from dialog/de-de/at.time.local.no.cond.predicted.dialog rename to locale/de-de/at.time.local.no.cond.predicted.dialog diff --git a/dialog/de-de/at.time.local.temperature.dialog b/locale/de-de/at.time.local.temperature.dialog similarity index 100% rename from dialog/de-de/at.time.local.temperature.dialog rename to locale/de-de/at.time.local.temperature.dialog diff --git a/dialog/de-de/at.time.local.weather.dialog b/locale/de-de/at.time.local.weather.dialog similarity index 100% rename from dialog/de-de/at.time.local.weather.dialog rename to locale/de-de/at.time.local.weather.dialog diff --git a/dialog/de-de/at.time.no.cond.predicted.dialog b/locale/de-de/at.time.no.cond.predicted.dialog similarity index 100% rename from dialog/de-de/at.time.no.cond.predicted.dialog rename to locale/de-de/at.time.no.cond.predicted.dialog diff --git a/dialog/de-de/cant.get.forecast.dialog b/locale/de-de/cant.get.forecast.dialog similarity index 100% rename from dialog/de-de/cant.get.forecast.dialog rename to locale/de-de/cant.get.forecast.dialog diff --git a/dialog/de-de/celsius.dialog b/locale/de-de/celsius.dialog similarity index 100% rename from dialog/de-de/celsius.dialog rename to locale/de-de/celsius.dialog diff --git a/dialog/de-de/clear sky.dialog b/locale/de-de/clear sky.dialog similarity index 100% rename from dialog/de-de/clear sky.dialog rename to locale/de-de/clear sky.dialog diff --git a/dialog/de-de/clear.alternative.dialog b/locale/de-de/clear.alternative.dialog similarity index 100% rename from dialog/de-de/clear.alternative.dialog rename to locale/de-de/clear.alternative.dialog diff --git a/dialog/de-de/clear.dialog b/locale/de-de/clear.dialog similarity index 100% rename from dialog/de-de/clear.dialog rename to locale/de-de/clear.dialog diff --git a/dialog/de-de/clear.future.dialog b/locale/de-de/clear.future.dialog similarity index 100% rename from dialog/de-de/clear.future.dialog rename to locale/de-de/clear.future.dialog diff --git a/dialog/de-de/cloudy.alternative.dialog b/locale/de-de/cloudy.alternative.dialog similarity index 100% rename from dialog/de-de/cloudy.alternative.dialog rename to locale/de-de/cloudy.alternative.dialog diff --git a/dialog/de-de/condition.category.value b/locale/de-de/condition.category.value similarity index 100% rename from dialog/de-de/condition.category.value rename to locale/de-de/condition.category.value diff --git a/dialog/de-de/current.high.temperature.dialog b/locale/de-de/current.high.temperature.dialog similarity index 100% rename from dialog/de-de/current.high.temperature.dialog rename to locale/de-de/current.high.temperature.dialog diff --git a/dialog/de-de/current.hot.dialog b/locale/de-de/current.hot.dialog similarity index 100% rename from dialog/de-de/current.hot.dialog rename to locale/de-de/current.hot.dialog diff --git a/dialog/de-de/current.local.cold.dialog b/locale/de-de/current.local.cold.dialog similarity index 100% rename from dialog/de-de/current.local.cold.dialog rename to locale/de-de/current.local.cold.dialog diff --git a/dialog/de-de/current.local.high.temperature.dialog b/locale/de-de/current.local.high.temperature.dialog similarity index 100% rename from dialog/de-de/current.local.high.temperature.dialog rename to locale/de-de/current.local.high.temperature.dialog diff --git a/dialog/de-de/current.local.hot.dialog b/locale/de-de/current.local.hot.dialog similarity index 100% rename from dialog/de-de/current.local.hot.dialog rename to locale/de-de/current.local.hot.dialog diff --git a/dialog/de-de/current.local.low.temperature.dialog b/locale/de-de/current.local.low.temperature.dialog similarity index 100% rename from dialog/de-de/current.local.low.temperature.dialog rename to locale/de-de/current.local.low.temperature.dialog diff --git a/dialog/de-de/current.local.temperature.dialog b/locale/de-de/current.local.temperature.dialog similarity index 100% rename from dialog/de-de/current.local.temperature.dialog rename to locale/de-de/current.local.temperature.dialog diff --git a/dialog/de-de/current.local.weather.dialog b/locale/de-de/current.local.weather.dialog similarity index 100% rename from dialog/de-de/current.local.weather.dialog rename to locale/de-de/current.local.weather.dialog diff --git a/dialog/de-de/current.low.temperature.dialog b/locale/de-de/current.low.temperature.dialog similarity index 100% rename from dialog/de-de/current.low.temperature.dialog rename to locale/de-de/current.low.temperature.dialog diff --git a/dialog/de-de/current.temperature.dialog b/locale/de-de/current.temperature.dialog similarity index 100% rename from dialog/de-de/current.temperature.dialog rename to locale/de-de/current.temperature.dialog diff --git a/dialog/de-de/current.weather.dialog b/locale/de-de/current.weather.dialog similarity index 100% rename from dialog/de-de/current.weather.dialog rename to locale/de-de/current.weather.dialog diff --git a/dialog/de-de/do not know.dialog b/locale/de-de/do not know.dialog similarity index 100% rename from dialog/de-de/do not know.dialog rename to locale/de-de/do not know.dialog diff --git a/vocab/de-de/do.i.need.an.umbrella.intent b/locale/de-de/do.i.need.an.umbrella.intent similarity index 100% rename from vocab/de-de/do.i.need.an.umbrella.intent rename to locale/de-de/do.i.need.an.umbrella.intent diff --git a/dialog/de-de/fahrenheit.dialog b/locale/de-de/fahrenheit.dialog similarity index 100% rename from dialog/de-de/fahrenheit.dialog rename to locale/de-de/fahrenheit.dialog diff --git a/dialog/de-de/fog.alternative.dialog b/locale/de-de/fog.alternative.dialog similarity index 100% rename from dialog/de-de/fog.alternative.dialog rename to locale/de-de/fog.alternative.dialog diff --git a/dialog/de-de/forecast.affirmative.condition.dialog b/locale/de-de/forecast.affirmative.condition.dialog similarity index 100% rename from dialog/de-de/forecast.affirmative.condition.dialog rename to locale/de-de/forecast.affirmative.condition.dialog diff --git a/dialog/de-de/forecast.clear.alternative.dialog b/locale/de-de/forecast.clear.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.clear.alternative.dialog rename to locale/de-de/forecast.clear.alternative.dialog diff --git a/dialog/de-de/forecast.cloudy.alternative.dialog b/locale/de-de/forecast.cloudy.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.cloudy.alternative.dialog rename to locale/de-de/forecast.cloudy.alternative.dialog diff --git a/dialog/de-de/forecast.foggy.alternative.dialog b/locale/de-de/forecast.foggy.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.foggy.alternative.dialog rename to locale/de-de/forecast.foggy.alternative.dialog diff --git a/dialog/de-de/forecast.hard.wind.dialog b/locale/de-de/forecast.hard.wind.dialog similarity index 100% rename from dialog/de-de/forecast.hard.wind.dialog rename to locale/de-de/forecast.hard.wind.dialog diff --git a/dialog/de-de/forecast.high.temperature.dialog b/locale/de-de/forecast.high.temperature.dialog similarity index 100% rename from dialog/de-de/forecast.high.temperature.dialog rename to locale/de-de/forecast.high.temperature.dialog diff --git a/dialog/de-de/forecast.hot.dialog b/locale/de-de/forecast.hot.dialog similarity index 100% rename from dialog/de-de/forecast.hot.dialog rename to locale/de-de/forecast.hot.dialog diff --git a/dialog/de-de/forecast.light.wind.dialog b/locale/de-de/forecast.light.wind.dialog similarity index 100% rename from dialog/de-de/forecast.light.wind.dialog rename to locale/de-de/forecast.light.wind.dialog diff --git a/dialog/de-de/forecast.local.affirmative.condition.dialog b/locale/de-de/forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/de-de/forecast.local.affirmative.condition.dialog rename to locale/de-de/forecast.local.affirmative.condition.dialog diff --git a/dialog/de-de/forecast.local.clear.alternative.dialog b/locale/de-de/forecast.local.clear.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.local.clear.alternative.dialog rename to locale/de-de/forecast.local.clear.alternative.dialog diff --git a/dialog/de-de/forecast.local.cloudy.alternative.dialog b/locale/de-de/forecast.local.cloudy.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.local.cloudy.alternative.dialog rename to locale/de-de/forecast.local.cloudy.alternative.dialog diff --git a/dialog/de-de/forecast.local.foggy.alternative.dialog b/locale/de-de/forecast.local.foggy.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.local.foggy.alternative.dialog rename to locale/de-de/forecast.local.foggy.alternative.dialog diff --git a/dialog/de-de/forecast.local.hard.wind.dialog b/locale/de-de/forecast.local.hard.wind.dialog similarity index 100% rename from dialog/de-de/forecast.local.hard.wind.dialog rename to locale/de-de/forecast.local.hard.wind.dialog diff --git a/dialog/de-de/forecast.local.high.temperature.dialog b/locale/de-de/forecast.local.high.temperature.dialog similarity index 100% rename from dialog/de-de/forecast.local.high.temperature.dialog rename to locale/de-de/forecast.local.high.temperature.dialog diff --git a/dialog/de-de/forecast.local.hot.dialog b/locale/de-de/forecast.local.hot.dialog similarity index 100% rename from dialog/de-de/forecast.local.hot.dialog rename to locale/de-de/forecast.local.hot.dialog diff --git a/dialog/de-de/forecast.local.light.wind.dialog b/locale/de-de/forecast.local.light.wind.dialog similarity index 100% rename from dialog/de-de/forecast.local.light.wind.dialog rename to locale/de-de/forecast.local.light.wind.dialog diff --git a/dialog/de-de/forecast.local.low.temperature.dialog b/locale/de-de/forecast.local.low.temperature.dialog similarity index 100% rename from dialog/de-de/forecast.local.low.temperature.dialog rename to locale/de-de/forecast.local.low.temperature.dialog diff --git a/dialog/de-de/forecast.local.medium.wind.dialog b/locale/de-de/forecast.local.medium.wind.dialog similarity index 100% rename from dialog/de-de/forecast.local.medium.wind.dialog rename to locale/de-de/forecast.local.medium.wind.dialog diff --git a/dialog/de-de/forecast.local.no.clear.predicted.dialog b/locale/de-de/forecast.local.no.clear.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.local.no.clear.predicted.dialog rename to locale/de-de/forecast.local.no.clear.predicted.dialog diff --git a/dialog/de-de/forecast.local.no.cloudy.predicted.dialog b/locale/de-de/forecast.local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.local.no.cloudy.predicted.dialog rename to locale/de-de/forecast.local.no.cloudy.predicted.dialog diff --git a/dialog/de-de/forecast.local.no.fog.predicted.dialog b/locale/de-de/forecast.local.no.fog.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.local.no.fog.predicted.dialog rename to locale/de-de/forecast.local.no.fog.predicted.dialog diff --git a/dialog/de-de/forecast.local.no.rain.predicted.dialog b/locale/de-de/forecast.local.no.rain.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.local.no.rain.predicted.dialog rename to locale/de-de/forecast.local.no.rain.predicted.dialog diff --git a/dialog/de-de/forecast.local.no.snow.predicted.dialog b/locale/de-de/forecast.local.no.snow.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.local.no.snow.predicted.dialog rename to locale/de-de/forecast.local.no.snow.predicted.dialog diff --git a/dialog/de-de/forecast.local.no.storm.predicted.dialog b/locale/de-de/forecast.local.no.storm.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.local.no.storm.predicted.dialog rename to locale/de-de/forecast.local.no.storm.predicted.dialog diff --git a/dialog/de-de/forecast.local.raining.alternative.dialog b/locale/de-de/forecast.local.raining.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.local.raining.alternative.dialog rename to locale/de-de/forecast.local.raining.alternative.dialog diff --git a/dialog/de-de/forecast.local.storm.alternative.dialog b/locale/de-de/forecast.local.storm.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.local.storm.alternative.dialog rename to locale/de-de/forecast.local.storm.alternative.dialog diff --git a/dialog/de-de/forecast.local.temperature.dialog b/locale/de-de/forecast.local.temperature.dialog similarity index 100% rename from dialog/de-de/forecast.local.temperature.dialog rename to locale/de-de/forecast.local.temperature.dialog diff --git a/dialog/de-de/forecast.local.weather.dialog b/locale/de-de/forecast.local.weather.dialog similarity index 100% rename from dialog/de-de/forecast.local.weather.dialog rename to locale/de-de/forecast.local.weather.dialog diff --git a/dialog/de-de/forecast.low.temperature.dialog b/locale/de-de/forecast.low.temperature.dialog similarity index 100% rename from dialog/de-de/forecast.low.temperature.dialog rename to locale/de-de/forecast.low.temperature.dialog diff --git a/dialog/de-de/forecast.medium.wind.dialog b/locale/de-de/forecast.medium.wind.dialog similarity index 100% rename from dialog/de-de/forecast.medium.wind.dialog rename to locale/de-de/forecast.medium.wind.dialog diff --git a/dialog/de-de/forecast.no.clear.predicted.dialog b/locale/de-de/forecast.no.clear.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.no.clear.predicted.dialog rename to locale/de-de/forecast.no.clear.predicted.dialog diff --git a/dialog/de-de/forecast.no.cloudy.predicted.dialog b/locale/de-de/forecast.no.cloudy.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.no.cloudy.predicted.dialog rename to locale/de-de/forecast.no.cloudy.predicted.dialog diff --git a/dialog/de-de/forecast.no.fog.predicted.dialog b/locale/de-de/forecast.no.fog.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.no.fog.predicted.dialog rename to locale/de-de/forecast.no.fog.predicted.dialog diff --git a/dialog/de-de/forecast.no.rain.predicted.dialog b/locale/de-de/forecast.no.rain.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.no.rain.predicted.dialog rename to locale/de-de/forecast.no.rain.predicted.dialog diff --git a/dialog/de-de/forecast.no.snow.predicted.dialog b/locale/de-de/forecast.no.snow.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.no.snow.predicted.dialog rename to locale/de-de/forecast.no.snow.predicted.dialog diff --git a/dialog/de-de/forecast.no.storm.predicted.dialog b/locale/de-de/forecast.no.storm.predicted.dialog similarity index 100% rename from dialog/de-de/forecast.no.storm.predicted.dialog rename to locale/de-de/forecast.no.storm.predicted.dialog diff --git a/dialog/de-de/forecast.raining.alternative.dialog b/locale/de-de/forecast.raining.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.raining.alternative.dialog rename to locale/de-de/forecast.raining.alternative.dialog diff --git a/dialog/de-de/forecast.snowing.alternative.dialog b/locale/de-de/forecast.snowing.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.snowing.alternative.dialog rename to locale/de-de/forecast.snowing.alternative.dialog diff --git a/dialog/de-de/forecast.storm.alternative.dialog b/locale/de-de/forecast.storm.alternative.dialog similarity index 100% rename from dialog/de-de/forecast.storm.alternative.dialog rename to locale/de-de/forecast.storm.alternative.dialog diff --git a/dialog/de-de/forecast.temperature.dialog b/locale/de-de/forecast.temperature.dialog similarity index 100% rename from dialog/de-de/forecast.temperature.dialog rename to locale/de-de/forecast.temperature.dialog diff --git a/dialog/de-de/forecast.weather.dialog b/locale/de-de/forecast.weather.dialog similarity index 100% rename from dialog/de-de/forecast.weather.dialog rename to locale/de-de/forecast.weather.dialog diff --git a/dialog/de-de/from.day.dialog b/locale/de-de/from.day.dialog similarity index 100% rename from dialog/de-de/from.day.dialog rename to locale/de-de/from.day.dialog diff --git a/dialog/de-de/hard.wind.dialog b/locale/de-de/hard.wind.dialog similarity index 100% rename from dialog/de-de/hard.wind.dialog rename to locale/de-de/hard.wind.dialog diff --git a/dialog/de-de/heavy.dialog b/locale/de-de/heavy.dialog similarity index 100% rename from dialog/de-de/heavy.dialog rename to locale/de-de/heavy.dialog diff --git a/dialog/de-de/hour.local.weather.dialog b/locale/de-de/hour.local.weather.dialog similarity index 100% rename from dialog/de-de/hour.local.weather.dialog rename to locale/de-de/hour.local.weather.dialog diff --git a/dialog/de-de/hour.weather.dialog b/locale/de-de/hour.weather.dialog similarity index 100% rename from dialog/de-de/hour.weather.dialog rename to locale/de-de/hour.weather.dialog diff --git a/dialog/de-de/humidity.dialog b/locale/de-de/humidity.dialog similarity index 100% rename from dialog/de-de/humidity.dialog rename to locale/de-de/humidity.dialog diff --git a/dialog/de-de/light.dialog b/locale/de-de/light.dialog similarity index 100% rename from dialog/de-de/light.dialog rename to locale/de-de/light.dialog diff --git a/dialog/de-de/light.wind.dialog b/locale/de-de/light.wind.dialog similarity index 100% rename from dialog/de-de/light.wind.dialog rename to locale/de-de/light.wind.dialog diff --git a/dialog/de-de/local.affirmative.condition.dialog b/locale/de-de/local.affirmative.condition.dialog similarity index 100% rename from dialog/de-de/local.affirmative.condition.dialog rename to locale/de-de/local.affirmative.condition.dialog diff --git a/dialog/de-de/local.clear.alternative.dialog b/locale/de-de/local.clear.alternative.dialog similarity index 100% rename from dialog/de-de/local.clear.alternative.dialog rename to locale/de-de/local.clear.alternative.dialog diff --git a/dialog/de-de/local.cloudy.alternative.dialog b/locale/de-de/local.cloudy.alternative.dialog similarity index 100% rename from dialog/de-de/local.cloudy.alternative.dialog rename to locale/de-de/local.cloudy.alternative.dialog diff --git a/dialog/de-de/local.foggy.alternative.dialog b/locale/de-de/local.foggy.alternative.dialog similarity index 100% rename from dialog/de-de/local.foggy.alternative.dialog rename to locale/de-de/local.foggy.alternative.dialog diff --git a/dialog/de-de/local.hard.wind.dialog b/locale/de-de/local.hard.wind.dialog similarity index 100% rename from dialog/de-de/local.hard.wind.dialog rename to locale/de-de/local.hard.wind.dialog diff --git a/dialog/de-de/local.light.wind.dialog b/locale/de-de/local.light.wind.dialog similarity index 100% rename from dialog/de-de/local.light.wind.dialog rename to locale/de-de/local.light.wind.dialog diff --git a/dialog/de-de/local.medium.wind.dialog b/locale/de-de/local.medium.wind.dialog similarity index 100% rename from dialog/de-de/local.medium.wind.dialog rename to locale/de-de/local.medium.wind.dialog diff --git a/dialog/de-de/local.no.cloudy.predicted.dialog b/locale/de-de/local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/de-de/local.no.cloudy.predicted.dialog rename to locale/de-de/local.no.cloudy.predicted.dialog diff --git a/dialog/de-de/local.no.fog.predicted.dialog b/locale/de-de/local.no.fog.predicted.dialog similarity index 100% rename from dialog/de-de/local.no.fog.predicted.dialog rename to locale/de-de/local.no.fog.predicted.dialog diff --git a/dialog/de-de/local.no.rain.predicted.dialog b/locale/de-de/local.no.rain.predicted.dialog similarity index 100% rename from dialog/de-de/local.no.rain.predicted.dialog rename to locale/de-de/local.no.rain.predicted.dialog diff --git a/dialog/de-de/local.no.snow.predicted.dialog b/locale/de-de/local.no.snow.predicted.dialog similarity index 100% rename from dialog/de-de/local.no.snow.predicted.dialog rename to locale/de-de/local.no.snow.predicted.dialog diff --git a/dialog/de-de/local.no.storm.predicted.dialog b/locale/de-de/local.no.storm.predicted.dialog similarity index 100% rename from dialog/de-de/local.no.storm.predicted.dialog rename to locale/de-de/local.no.storm.predicted.dialog diff --git a/dialog/de-de/local.raining.alternative.dialog b/locale/de-de/local.raining.alternative.dialog similarity index 100% rename from dialog/de-de/local.raining.alternative.dialog rename to locale/de-de/local.raining.alternative.dialog diff --git a/dialog/de-de/local.snowing.alternative.dialog b/locale/de-de/local.snowing.alternative.dialog similarity index 100% rename from dialog/de-de/local.snowing.alternative.dialog rename to locale/de-de/local.snowing.alternative.dialog diff --git a/dialog/de-de/local.storm.alternative.dialog b/locale/de-de/local.storm.alternative.dialog similarity index 100% rename from dialog/de-de/local.storm.alternative.dialog rename to locale/de-de/local.storm.alternative.dialog diff --git a/dialog/de-de/location.not.found.dialog b/locale/de-de/location.not.found.dialog similarity index 100% rename from dialog/de-de/location.not.found.dialog rename to locale/de-de/location.not.found.dialog diff --git a/regex/de-de/location.rx b/locale/de-de/location.rx similarity index 100% rename from regex/de-de/location.rx rename to locale/de-de/location.rx diff --git a/dialog/de-de/medium.wind.dialog b/locale/de-de/medium.wind.dialog similarity index 100% rename from dialog/de-de/medium.wind.dialog rename to locale/de-de/medium.wind.dialog diff --git a/dialog/de-de/meters per second.dialog b/locale/de-de/meters per second.dialog similarity index 100% rename from dialog/de-de/meters per second.dialog rename to locale/de-de/meters per second.dialog diff --git a/dialog/de-de/miles per hour.dialog b/locale/de-de/miles per hour.dialog similarity index 100% rename from dialog/de-de/miles per hour.dialog rename to locale/de-de/miles per hour.dialog diff --git a/dialog/de-de/min.max.dialog b/locale/de-de/min.max.dialog similarity index 100% rename from dialog/de-de/min.max.dialog rename to locale/de-de/min.max.dialog diff --git a/dialog/de-de/no precipitation expected.dialog b/locale/de-de/no precipitation expected.dialog similarity index 100% rename from dialog/de-de/no precipitation expected.dialog rename to locale/de-de/no precipitation expected.dialog diff --git a/dialog/de-de/no.clear.predicted.dialog b/locale/de-de/no.clear.predicted.dialog similarity index 100% rename from dialog/de-de/no.clear.predicted.dialog rename to locale/de-de/no.clear.predicted.dialog diff --git a/dialog/de-de/no.cloudy.predicted.dialog b/locale/de-de/no.cloudy.predicted.dialog similarity index 100% rename from dialog/de-de/no.cloudy.predicted.dialog rename to locale/de-de/no.cloudy.predicted.dialog diff --git a/dialog/de-de/no.fog.predicted.dialog b/locale/de-de/no.fog.predicted.dialog similarity index 100% rename from dialog/de-de/no.fog.predicted.dialog rename to locale/de-de/no.fog.predicted.dialog diff --git a/dialog/de-de/no.forecast.dialog b/locale/de-de/no.forecast.dialog similarity index 100% rename from dialog/de-de/no.forecast.dialog rename to locale/de-de/no.forecast.dialog diff --git a/dialog/de-de/no.rain.predicted.dialog b/locale/de-de/no.rain.predicted.dialog similarity index 100% rename from dialog/de-de/no.rain.predicted.dialog rename to locale/de-de/no.rain.predicted.dialog diff --git a/dialog/de-de/no.snow.predicted.dialog b/locale/de-de/no.snow.predicted.dialog similarity index 100% rename from dialog/de-de/no.snow.predicted.dialog rename to locale/de-de/no.snow.predicted.dialog diff --git a/dialog/de-de/no.storm.predicted.dialog b/locale/de-de/no.storm.predicted.dialog similarity index 100% rename from dialog/de-de/no.storm.predicted.dialog rename to locale/de-de/no.storm.predicted.dialog diff --git a/dialog/de-de/on.date.dialog b/locale/de-de/on.date.dialog similarity index 100% rename from dialog/de-de/on.date.dialog rename to locale/de-de/on.date.dialog diff --git a/dialog/de-de/on.dialog b/locale/de-de/on.dialog similarity index 100% rename from dialog/de-de/on.dialog rename to locale/de-de/on.dialog diff --git a/dialog/de-de/percentage.number.dialog b/locale/de-de/percentage.number.dialog similarity index 100% rename from dialog/de-de/percentage.number.dialog rename to locale/de-de/percentage.number.dialog diff --git a/dialog/de-de/precipitation expected.dialog b/locale/de-de/precipitation expected.dialog similarity index 100% rename from dialog/de-de/precipitation expected.dialog rename to locale/de-de/precipitation expected.dialog diff --git a/dialog/de-de/rain.dialog b/locale/de-de/rain.dialog similarity index 100% rename from dialog/de-de/rain.dialog rename to locale/de-de/rain.dialog diff --git a/dialog/de-de/raining.alternative.dialog b/locale/de-de/raining.alternative.dialog similarity index 100% rename from dialog/de-de/raining.alternative.dialog rename to locale/de-de/raining.alternative.dialog diff --git a/dialog/de-de/report.condition.at.location.dialog b/locale/de-de/report.condition.at.location.dialog similarity index 100% rename from dialog/de-de/report.condition.at.location.dialog rename to locale/de-de/report.condition.at.location.dialog diff --git a/dialog/de-de/report.condition.dialog b/locale/de-de/report.condition.dialog similarity index 100% rename from dialog/de-de/report.condition.dialog rename to locale/de-de/report.condition.dialog diff --git a/dialog/de-de/report.condition.future.at.location.dialog b/locale/de-de/report.condition.future.at.location.dialog similarity index 100% rename from dialog/de-de/report.condition.future.at.location.dialog rename to locale/de-de/report.condition.future.at.location.dialog diff --git a/dialog/de-de/report.condition.future.dialog b/locale/de-de/report.condition.future.dialog similarity index 100% rename from dialog/de-de/report.condition.future.dialog rename to locale/de-de/report.condition.future.dialog diff --git a/dialog/de-de/report.wind.dialog b/locale/de-de/report.wind.dialog similarity index 100% rename from dialog/de-de/report.wind.dialog rename to locale/de-de/report.wind.dialog diff --git a/vocab/de-de/simple.temperature.intent b/locale/de-de/simple.temperature.intent similarity index 100% rename from vocab/de-de/simple.temperature.intent rename to locale/de-de/simple.temperature.intent diff --git a/dialog/de-de/sky is clear.future.dialog b/locale/de-de/sky is clear.future.dialog similarity index 100% rename from dialog/de-de/sky is clear.future.dialog rename to locale/de-de/sky is clear.future.dialog diff --git a/dialog/de-de/snow.dialog b/locale/de-de/snow.dialog similarity index 100% rename from dialog/de-de/snow.dialog rename to locale/de-de/snow.dialog diff --git a/dialog/de-de/snowing.alternative.dialog b/locale/de-de/snowing.alternative.dialog similarity index 100% rename from dialog/de-de/snowing.alternative.dialog rename to locale/de-de/snowing.alternative.dialog diff --git a/dialog/de-de/storm.alternative.dialog b/locale/de-de/storm.alternative.dialog similarity index 100% rename from dialog/de-de/storm.alternative.dialog rename to locale/de-de/storm.alternative.dialog diff --git a/dialog/de-de/storm.dialog b/locale/de-de/storm.dialog similarity index 100% rename from dialog/de-de/storm.dialog rename to locale/de-de/storm.dialog diff --git a/dialog/de-de/sunrise.dialog b/locale/de-de/sunrise.dialog similarity index 100% rename from dialog/de-de/sunrise.dialog rename to locale/de-de/sunrise.dialog diff --git a/dialog/de-de/sunset.dialog b/locale/de-de/sunset.dialog similarity index 100% rename from dialog/de-de/sunset.dialog rename to locale/de-de/sunset.dialog diff --git a/dialog/de-de/tonight.local.weather.dialog b/locale/de-de/tonight.local.weather.dialog similarity index 100% rename from dialog/de-de/tonight.local.weather.dialog rename to locale/de-de/tonight.local.weather.dialog diff --git a/dialog/de-de/weekly.condition.on.day.dialog b/locale/de-de/weekly.condition.on.day.dialog similarity index 100% rename from dialog/de-de/weekly.condition.on.day.dialog rename to locale/de-de/weekly.condition.on.day.dialog diff --git a/dialog/de-de/weekly.conditions.mostly.one.dialog b/locale/de-de/weekly.conditions.mostly.one.dialog similarity index 100% rename from dialog/de-de/weekly.conditions.mostly.one.dialog rename to locale/de-de/weekly.conditions.mostly.one.dialog diff --git a/dialog/de-de/weekly.conditions.seq.extra.dialog b/locale/de-de/weekly.conditions.seq.extra.dialog similarity index 100% rename from dialog/de-de/weekly.conditions.seq.extra.dialog rename to locale/de-de/weekly.conditions.seq.extra.dialog diff --git a/dialog/de-de/weekly.conditions.seq.period.dialog b/locale/de-de/weekly.conditions.seq.period.dialog similarity index 100% rename from dialog/de-de/weekly.conditions.seq.period.dialog rename to locale/de-de/weekly.conditions.seq.period.dialog diff --git a/dialog/de-de/weekly.conditions.seq.start.dialog b/locale/de-de/weekly.conditions.seq.start.dialog similarity index 100% rename from dialog/de-de/weekly.conditions.seq.start.dialog rename to locale/de-de/weekly.conditions.seq.start.dialog diff --git a/dialog/de-de/weekly.conditions.some.days.dialog b/locale/de-de/weekly.conditions.some.days.dialog similarity index 100% rename from dialog/de-de/weekly.conditions.some.days.dialog rename to locale/de-de/weekly.conditions.some.days.dialog diff --git a/dialog/de-de/weekly.temp.range.dialog b/locale/de-de/weekly.temp.range.dialog similarity index 100% rename from dialog/de-de/weekly.temp.range.dialog rename to locale/de-de/weekly.temp.range.dialog diff --git a/vocab/de-de/what.is.multi.day.forecast.intent b/locale/de-de/what.is.multi.day.forecast.intent similarity index 100% rename from vocab/de-de/what.is.multi.day.forecast.intent rename to locale/de-de/what.is.multi.day.forecast.intent diff --git a/vocab/de-de/what.is.three.day.forecast.intent b/locale/de-de/what.is.three.day.forecast.intent similarity index 100% rename from vocab/de-de/what.is.three.day.forecast.intent rename to locale/de-de/what.is.three.day.forecast.intent diff --git a/vocab/de-de/what.is.three.day.forecast.location.intent b/locale/de-de/what.is.three.day.forecast.location.intent similarity index 100% rename from vocab/de-de/what.is.three.day.forecast.location.intent rename to locale/de-de/what.is.three.day.forecast.location.intent diff --git a/vocab/de-de/what.is.two.day.forecast.intent b/locale/de-de/what.is.two.day.forecast.intent similarity index 100% rename from vocab/de-de/what.is.two.day.forecast.intent rename to locale/de-de/what.is.two.day.forecast.intent diff --git a/vocab/de-de/whats.weather.like.intent b/locale/de-de/whats.weather.like.intent similarity index 100% rename from vocab/de-de/whats.weather.like.intent rename to locale/de-de/whats.weather.like.intent diff --git a/dialog/de-de/wind.speed.dialog b/locale/de-de/wind.speed.dialog similarity index 100% rename from dialog/de-de/wind.speed.dialog rename to locale/de-de/wind.speed.dialog diff --git a/dialog/de-de/wind.speed.dir.dialog b/locale/de-de/wind.speed.dir.dialog similarity index 100% rename from dialog/de-de/wind.speed.dir.dialog rename to locale/de-de/wind.speed.dir.dialog diff --git a/dialog/de-de/wind.strength.hard.dialog b/locale/de-de/wind.strength.hard.dialog similarity index 100% rename from dialog/de-de/wind.strength.hard.dialog rename to locale/de-de/wind.strength.hard.dialog diff --git a/dialog/de-de/wind.strength.light.dialog b/locale/de-de/wind.strength.light.dialog similarity index 100% rename from dialog/de-de/wind.strength.light.dialog rename to locale/de-de/wind.strength.light.dialog diff --git a/dialog/de-de/wind.strength.medium.dialog b/locale/de-de/wind.strength.medium.dialog similarity index 100% rename from dialog/de-de/wind.strength.medium.dialog rename to locale/de-de/wind.strength.medium.dialog diff --git a/dialog/de-de/winds.dialog b/locale/de-de/winds.dialog similarity index 100% rename from dialog/de-de/winds.dialog rename to locale/de-de/winds.dialog diff --git a/vocab/en-us/Clear.voc b/locale/en-us/Clear.voc similarity index 100% rename from vocab/en-us/Clear.voc rename to locale/en-us/Clear.voc diff --git a/vocab/en-us/ClearAlternatives.voc b/locale/en-us/ClearAlternatives.voc similarity index 100% rename from vocab/en-us/ClearAlternatives.voc rename to locale/en-us/ClearAlternatives.voc diff --git a/vocab/en-us/Clouds.voc b/locale/en-us/Clouds.voc similarity index 100% rename from vocab/en-us/Clouds.voc rename to locale/en-us/Clouds.voc diff --git a/vocab/en-us/CloudsAlternatives.voc b/locale/en-us/CloudsAlternatives.voc similarity index 100% rename from vocab/en-us/CloudsAlternatives.voc rename to locale/en-us/CloudsAlternatives.voc diff --git a/vocab/en-us/Cold.voc b/locale/en-us/Cold.voc similarity index 100% rename from vocab/en-us/Cold.voc rename to locale/en-us/Cold.voc diff --git a/vocab/en-us/ConfirmQuery.voc b/locale/en-us/ConfirmQuery.voc similarity index 100% rename from vocab/en-us/ConfirmQuery.voc rename to locale/en-us/ConfirmQuery.voc diff --git a/vocab/en-us/ConfirmQueryCurrent.voc b/locale/en-us/ConfirmQueryCurrent.voc similarity index 100% rename from vocab/en-us/ConfirmQueryCurrent.voc rename to locale/en-us/ConfirmQueryCurrent.voc diff --git a/vocab/en-us/ConfirmQueryFuture.voc b/locale/en-us/ConfirmQueryFuture.voc similarity index 100% rename from vocab/en-us/ConfirmQueryFuture.voc rename to locale/en-us/ConfirmQueryFuture.voc diff --git a/vocab/en-us/Couple.voc b/locale/en-us/Couple.voc similarity index 100% rename from vocab/en-us/Couple.voc rename to locale/en-us/Couple.voc diff --git a/vocab/en-us/Fahrenheit.voc b/locale/en-us/Fahrenheit.voc similarity index 100% rename from vocab/en-us/Fahrenheit.voc rename to locale/en-us/Fahrenheit.voc diff --git a/vocab/en-us/Few.voc b/locale/en-us/Few.voc similarity index 100% rename from vocab/en-us/Few.voc rename to locale/en-us/Few.voc diff --git a/vocab/en-us/Fog.voc b/locale/en-us/Fog.voc similarity index 100% rename from vocab/en-us/Fog.voc rename to locale/en-us/Fog.voc diff --git a/vocab/en-us/FogAlternatives.voc b/locale/en-us/FogAlternatives.voc similarity index 100% rename from vocab/en-us/FogAlternatives.voc rename to locale/en-us/FogAlternatives.voc diff --git a/vocab/en-us/Forecast.voc b/locale/en-us/Forecast.voc similarity index 100% rename from vocab/en-us/Forecast.voc rename to locale/en-us/Forecast.voc diff --git a/vocab/en-us/High.voc b/locale/en-us/High.voc similarity index 100% rename from vocab/en-us/High.voc rename to locale/en-us/High.voc diff --git a/vocab/en-us/Hot.voc b/locale/en-us/Hot.voc similarity index 100% rename from vocab/en-us/Hot.voc rename to locale/en-us/Hot.voc diff --git a/vocab/en-us/How.voc b/locale/en-us/How.voc similarity index 100% rename from vocab/en-us/How.voc rename to locale/en-us/How.voc diff --git a/vocab/en-us/Humidity.voc b/locale/en-us/Humidity.voc similarity index 100% rename from vocab/en-us/Humidity.voc rename to locale/en-us/Humidity.voc diff --git a/vocab/en-us/Later.voc b/locale/en-us/Later.voc similarity index 100% rename from vocab/en-us/Later.voc rename to locale/en-us/Later.voc diff --git a/vocab/en-us/Like.voc b/locale/en-us/Like.voc similarity index 100% rename from vocab/en-us/Like.voc rename to locale/en-us/Like.voc diff --git a/vocab/en-us/Location.voc b/locale/en-us/Location.voc similarity index 100% rename from vocab/en-us/Location.voc rename to locale/en-us/Location.voc diff --git a/vocab/en-us/Low.voc b/locale/en-us/Low.voc similarity index 100% rename from vocab/en-us/Low.voc rename to locale/en-us/Low.voc diff --git a/vocab/en-us/Next.voc b/locale/en-us/Next.voc similarity index 100% rename from vocab/en-us/Next.voc rename to locale/en-us/Next.voc diff --git a/vocab/en-us/Now.voc b/locale/en-us/Now.voc similarity index 100% rename from vocab/en-us/Now.voc rename to locale/en-us/Now.voc diff --git a/vocab/en-us/Outside.voc b/locale/en-us/Outside.voc similarity index 100% rename from vocab/en-us/Outside.voc rename to locale/en-us/Outside.voc diff --git a/vocab/en-us/Precipitation.voc b/locale/en-us/Precipitation.voc similarity index 100% rename from vocab/en-us/Precipitation.voc rename to locale/en-us/Precipitation.voc diff --git a/vocab/en-us/Query.voc b/locale/en-us/Query.voc similarity index 100% rename from vocab/en-us/Query.voc rename to locale/en-us/Query.voc diff --git a/vocab/en-us/Rain.voc b/locale/en-us/Rain.voc similarity index 100% rename from vocab/en-us/Rain.voc rename to locale/en-us/Rain.voc diff --git a/vocab/en-us/RainAlternatives.voc b/locale/en-us/RainAlternatives.voc similarity index 100% rename from vocab/en-us/RainAlternatives.voc rename to locale/en-us/RainAlternatives.voc diff --git a/vocab/en-us/RelativeDay.voc b/locale/en-us/RelativeDay.voc similarity index 100% rename from vocab/en-us/RelativeDay.voc rename to locale/en-us/RelativeDay.voc diff --git a/vocab/en-us/RelativeTime.voc b/locale/en-us/RelativeTime.voc similarity index 100% rename from vocab/en-us/RelativeTime.voc rename to locale/en-us/RelativeTime.voc diff --git a/vocab/en-us/Snow.voc b/locale/en-us/Snow.voc similarity index 100% rename from vocab/en-us/Snow.voc rename to locale/en-us/Snow.voc diff --git a/vocab/en-us/SnowAlternatives.voc b/locale/en-us/SnowAlternatives.voc similarity index 100% rename from vocab/en-us/SnowAlternatives.voc rename to locale/en-us/SnowAlternatives.voc diff --git a/vocab/en-us/Sunrise.voc b/locale/en-us/Sunrise.voc similarity index 100% rename from vocab/en-us/Sunrise.voc rename to locale/en-us/Sunrise.voc diff --git a/vocab/en-us/Sunset.voc b/locale/en-us/Sunset.voc similarity index 100% rename from vocab/en-us/Sunset.voc rename to locale/en-us/Sunset.voc diff --git a/vocab/en-us/Temperature.voc b/locale/en-us/Temperature.voc similarity index 100% rename from vocab/en-us/Temperature.voc rename to locale/en-us/Temperature.voc diff --git a/vocab/en-us/ThreeDay.voc b/locale/en-us/ThreeDay.voc similarity index 100% rename from vocab/en-us/ThreeDay.voc rename to locale/en-us/ThreeDay.voc diff --git a/vocab/en-us/Thunderstorm.voc b/locale/en-us/Thunderstorm.voc similarity index 100% rename from vocab/en-us/Thunderstorm.voc rename to locale/en-us/Thunderstorm.voc diff --git a/vocab/en-us/ThunderstormAlternatives.voc b/locale/en-us/ThunderstormAlternatives.voc similarity index 100% rename from vocab/en-us/ThunderstormAlternatives.voc rename to locale/en-us/ThunderstormAlternatives.voc diff --git a/vocab/en-us/Today.voc b/locale/en-us/Today.voc similarity index 100% rename from vocab/en-us/Today.voc rename to locale/en-us/Today.voc diff --git a/vocab/en-us/Unit.entity b/locale/en-us/Unit.entity similarity index 100% rename from vocab/en-us/Unit.entity rename to locale/en-us/Unit.entity diff --git a/vocab/en-us/Unit.voc b/locale/en-us/Unit.voc similarity index 100% rename from vocab/en-us/Unit.voc rename to locale/en-us/Unit.voc diff --git a/vocab/en-us/Weather.voc b/locale/en-us/Weather.voc similarity index 100% rename from vocab/en-us/Weather.voc rename to locale/en-us/Weather.voc diff --git a/vocab/en-us/WeatherType.voc b/locale/en-us/WeatherType.voc similarity index 100% rename from vocab/en-us/WeatherType.voc rename to locale/en-us/WeatherType.voc diff --git a/vocab/en-us/Week.voc b/locale/en-us/Week.voc similarity index 100% rename from vocab/en-us/Week.voc rename to locale/en-us/Week.voc diff --git a/vocab/en-us/Weekend.voc b/locale/en-us/Weekend.voc similarity index 100% rename from vocab/en-us/Weekend.voc rename to locale/en-us/Weekend.voc diff --git a/vocab/en-us/When.voc b/locale/en-us/When.voc similarity index 100% rename from vocab/en-us/When.voc rename to locale/en-us/When.voc diff --git a/vocab/en-us/Windy.voc b/locale/en-us/Windy.voc similarity index 100% rename from vocab/en-us/Windy.voc rename to locale/en-us/Windy.voc diff --git a/dialog/en-us/cant.get.forecast.dialog b/locale/en-us/cant.get.forecast.dialog similarity index 100% rename from dialog/en-us/cant.get.forecast.dialog rename to locale/en-us/cant.get.forecast.dialog diff --git a/dialog/en-us/celsius.dialog b/locale/en-us/celsius.dialog similarity index 100% rename from dialog/en-us/celsius.dialog rename to locale/en-us/celsius.dialog diff --git a/dialog/en-us/clear sky.dialog b/locale/en-us/clear sky.dialog similarity index 100% rename from dialog/en-us/clear sky.dialog rename to locale/en-us/clear sky.dialog diff --git a/dialog/en-us/clear.dialog b/locale/en-us/clear.dialog similarity index 100% rename from dialog/en-us/clear.dialog rename to locale/en-us/clear.dialog diff --git a/dialog/en-us/clear.future.dialog b/locale/en-us/clear.future.dialog similarity index 100% rename from dialog/en-us/clear.future.dialog rename to locale/en-us/clear.future.dialog diff --git a/dialog/en-us/current.clear.alternative.location.dialog b/locale/en-us/current.clear.alternative.location.dialog similarity index 100% rename from dialog/en-us/current.clear.alternative.location.dialog rename to locale/en-us/current.clear.alternative.location.dialog diff --git a/dialog/en-us/current.clear.not.expected.local.dialog b/locale/en-us/current.clear.not.expected.local.dialog similarity index 100% rename from dialog/en-us/current.clear.not.expected.local.dialog rename to locale/en-us/current.clear.not.expected.local.dialog diff --git a/dialog/en-us/current.clear.not.expected.location.dialog b/locale/en-us/current.clear.not.expected.location.dialog similarity index 100% rename from dialog/en-us/current.clear.not.expected.location.dialog rename to locale/en-us/current.clear.not.expected.location.dialog diff --git a/dialog/en-us/current.clouds.alternative.location.dialog b/locale/en-us/current.clouds.alternative.location.dialog similarity index 100% rename from dialog/en-us/current.clouds.alternative.location.dialog rename to locale/en-us/current.clouds.alternative.location.dialog diff --git a/dialog/en-us/current.clouds.not.expected.local.dialog b/locale/en-us/current.clouds.not.expected.local.dialog similarity index 100% rename from dialog/en-us/current.clouds.not.expected.local.dialog rename to locale/en-us/current.clouds.not.expected.local.dialog diff --git a/dialog/en-us/current.clouds.not.expected.location.dialog b/locale/en-us/current.clouds.not.expected.location.dialog similarity index 100% rename from dialog/en-us/current.clouds.not.expected.location.dialog rename to locale/en-us/current.clouds.not.expected.location.dialog diff --git a/dialog/en-us/current.condition.expected.local.dialog b/locale/en-us/current.condition.expected.local.dialog similarity index 100% rename from dialog/en-us/current.condition.expected.local.dialog rename to locale/en-us/current.condition.expected.local.dialog diff --git a/dialog/en-us/current.condition.expected.location.dialog b/locale/en-us/current.condition.expected.location.dialog similarity index 100% rename from dialog/en-us/current.condition.expected.location.dialog rename to locale/en-us/current.condition.expected.location.dialog diff --git a/dialog/en-us/current.fog.alternative.local.dialog b/locale/en-us/current.fog.alternative.local.dialog similarity index 100% rename from dialog/en-us/current.fog.alternative.local.dialog rename to locale/en-us/current.fog.alternative.local.dialog diff --git a/dialog/en-us/current.fog.alternative.location.dialog b/locale/en-us/current.fog.alternative.location.dialog similarity index 100% rename from dialog/en-us/current.fog.alternative.location.dialog rename to locale/en-us/current.fog.alternative.location.dialog diff --git a/dialog/en-us/current.fog.not.expected.local.dialog b/locale/en-us/current.fog.not.expected.local.dialog similarity index 100% rename from dialog/en-us/current.fog.not.expected.local.dialog rename to locale/en-us/current.fog.not.expected.local.dialog diff --git a/dialog/en-us/current.fog.not.expected.location.dialog b/locale/en-us/current.fog.not.expected.location.dialog similarity index 100% rename from dialog/en-us/current.fog.not.expected.location.dialog rename to locale/en-us/current.fog.not.expected.location.dialog diff --git a/dialog/en-us/current.humidity.local.dialog b/locale/en-us/current.humidity.local.dialog similarity index 100% rename from dialog/en-us/current.humidity.local.dialog rename to locale/en-us/current.humidity.local.dialog diff --git a/dialog/en-us/current.humidity.location.dialog b/locale/en-us/current.humidity.location.dialog similarity index 100% rename from dialog/en-us/current.humidity.location.dialog rename to locale/en-us/current.humidity.location.dialog diff --git a/dialog/en-us/current.rain.alternative.local.dialog b/locale/en-us/current.rain.alternative.local.dialog similarity index 100% rename from dialog/en-us/current.rain.alternative.local.dialog rename to locale/en-us/current.rain.alternative.local.dialog diff --git a/dialog/en-us/current.rain.alternative.location.dialog b/locale/en-us/current.rain.alternative.location.dialog similarity index 100% rename from dialog/en-us/current.rain.alternative.location.dialog rename to locale/en-us/current.rain.alternative.location.dialog diff --git a/dialog/en-us/current.rain.not.expected.local.dialog b/locale/en-us/current.rain.not.expected.local.dialog similarity index 100% rename from dialog/en-us/current.rain.not.expected.local.dialog rename to locale/en-us/current.rain.not.expected.local.dialog diff --git a/dialog/en-us/current.rain.not.expected.location.dialog b/locale/en-us/current.rain.not.expected.location.dialog similarity index 100% rename from dialog/en-us/current.rain.not.expected.location.dialog rename to locale/en-us/current.rain.not.expected.location.dialog diff --git a/dialog/en-us/current.snow.alternative.local.dialog b/locale/en-us/current.snow.alternative.local.dialog similarity index 100% rename from dialog/en-us/current.snow.alternative.local.dialog rename to locale/en-us/current.snow.alternative.local.dialog diff --git a/dialog/en-us/current.snow.alternative.location.dialog b/locale/en-us/current.snow.alternative.location.dialog similarity index 100% rename from dialog/en-us/current.snow.alternative.location.dialog rename to locale/en-us/current.snow.alternative.location.dialog diff --git a/dialog/en-us/current.snow.not.expected.local.dialog b/locale/en-us/current.snow.not.expected.local.dialog similarity index 100% rename from dialog/en-us/current.snow.not.expected.local.dialog rename to locale/en-us/current.snow.not.expected.local.dialog diff --git a/dialog/en-us/current.snow.not.expected.location.dialog b/locale/en-us/current.snow.not.expected.location.dialog similarity index 100% rename from dialog/en-us/current.snow.not.expected.location.dialog rename to locale/en-us/current.snow.not.expected.location.dialog diff --git a/dialog/en-us/current.sunrise.future.local.dialog b/locale/en-us/current.sunrise.future.local.dialog similarity index 100% rename from dialog/en-us/current.sunrise.future.local.dialog rename to locale/en-us/current.sunrise.future.local.dialog diff --git a/dialog/en-us/current.sunrise.future.location.dialog b/locale/en-us/current.sunrise.future.location.dialog similarity index 100% rename from dialog/en-us/current.sunrise.future.location.dialog rename to locale/en-us/current.sunrise.future.location.dialog diff --git a/dialog/en-us/current.sunrise.past.local.dialog b/locale/en-us/current.sunrise.past.local.dialog similarity index 100% rename from dialog/en-us/current.sunrise.past.local.dialog rename to locale/en-us/current.sunrise.past.local.dialog diff --git a/dialog/en-us/current.sunrise.past.location.dialog b/locale/en-us/current.sunrise.past.location.dialog similarity index 100% rename from dialog/en-us/current.sunrise.past.location.dialog rename to locale/en-us/current.sunrise.past.location.dialog diff --git a/dialog/en-us/current.sunset.future.local.dialog b/locale/en-us/current.sunset.future.local.dialog similarity index 100% rename from dialog/en-us/current.sunset.future.local.dialog rename to locale/en-us/current.sunset.future.local.dialog diff --git a/dialog/en-us/current.sunset.future.location.dialog b/locale/en-us/current.sunset.future.location.dialog similarity index 100% rename from dialog/en-us/current.sunset.future.location.dialog rename to locale/en-us/current.sunset.future.location.dialog diff --git a/dialog/en-us/current.sunset.past.local.dialog b/locale/en-us/current.sunset.past.local.dialog similarity index 100% rename from dialog/en-us/current.sunset.past.local.dialog rename to locale/en-us/current.sunset.past.local.dialog diff --git a/dialog/en-us/current.sunset.past.location.dialog b/locale/en-us/current.sunset.past.location.dialog similarity index 100% rename from dialog/en-us/current.sunset.past.location.dialog rename to locale/en-us/current.sunset.past.location.dialog diff --git a/dialog/en-us/current.temperature.high.local.dialog b/locale/en-us/current.temperature.high.local.dialog similarity index 100% rename from dialog/en-us/current.temperature.high.local.dialog rename to locale/en-us/current.temperature.high.local.dialog diff --git a/dialog/en-us/current.temperature.high.location.dialog b/locale/en-us/current.temperature.high.location.dialog similarity index 100% rename from dialog/en-us/current.temperature.high.location.dialog rename to locale/en-us/current.temperature.high.location.dialog diff --git a/dialog/en-us/current.temperature.high.low.dialog b/locale/en-us/current.temperature.high.low.dialog similarity index 100% rename from dialog/en-us/current.temperature.high.low.dialog rename to locale/en-us/current.temperature.high.low.dialog diff --git a/dialog/en-us/current.temperature.local.dialog b/locale/en-us/current.temperature.local.dialog similarity index 100% rename from dialog/en-us/current.temperature.local.dialog rename to locale/en-us/current.temperature.local.dialog diff --git a/dialog/en-us/current.temperature.location.dialog b/locale/en-us/current.temperature.location.dialog similarity index 100% rename from dialog/en-us/current.temperature.location.dialog rename to locale/en-us/current.temperature.location.dialog diff --git a/dialog/en-us/current.temperature.low.local.dialog b/locale/en-us/current.temperature.low.local.dialog similarity index 100% rename from dialog/en-us/current.temperature.low.local.dialog rename to locale/en-us/current.temperature.low.local.dialog diff --git a/dialog/en-us/current.temperature.low.location.dialog b/locale/en-us/current.temperature.low.location.dialog similarity index 100% rename from dialog/en-us/current.temperature.low.location.dialog rename to locale/en-us/current.temperature.low.location.dialog diff --git a/dialog/en-us/current.thunderstorm.alternative.local.dialog b/locale/en-us/current.thunderstorm.alternative.local.dialog similarity index 100% rename from dialog/en-us/current.thunderstorm.alternative.local.dialog rename to locale/en-us/current.thunderstorm.alternative.local.dialog diff --git a/dialog/en-us/current.thunderstorm.alternative.location.dialog b/locale/en-us/current.thunderstorm.alternative.location.dialog similarity index 100% rename from dialog/en-us/current.thunderstorm.alternative.location.dialog rename to locale/en-us/current.thunderstorm.alternative.location.dialog diff --git a/dialog/en-us/current.thunderstorm.not.expected.local.dialog b/locale/en-us/current.thunderstorm.not.expected.local.dialog similarity index 100% rename from dialog/en-us/current.thunderstorm.not.expected.local.dialog rename to locale/en-us/current.thunderstorm.not.expected.local.dialog diff --git a/dialog/en-us/current.thunderstorm.not.expected.location.dialog b/locale/en-us/current.thunderstorm.not.expected.location.dialog similarity index 100% rename from dialog/en-us/current.thunderstorm.not.expected.location.dialog rename to locale/en-us/current.thunderstorm.not.expected.location.dialog diff --git a/dialog/en-us/current.weather.local.dialog b/locale/en-us/current.weather.local.dialog similarity index 100% rename from dialog/en-us/current.weather.local.dialog rename to locale/en-us/current.weather.local.dialog diff --git a/dialog/en-us/current.weather.location.dialog b/locale/en-us/current.weather.location.dialog similarity index 100% rename from dialog/en-us/current.weather.location.dialog rename to locale/en-us/current.weather.location.dialog diff --git a/dialog/en-us/current.wind.light.local.dialog b/locale/en-us/current.wind.light.local.dialog similarity index 100% rename from dialog/en-us/current.wind.light.local.dialog rename to locale/en-us/current.wind.light.local.dialog diff --git a/dialog/en-us/current.wind.light.location.dialog b/locale/en-us/current.wind.light.location.dialog similarity index 100% rename from dialog/en-us/current.wind.light.location.dialog rename to locale/en-us/current.wind.light.location.dialog diff --git a/dialog/en-us/current.wind.moderate.local.dialog b/locale/en-us/current.wind.moderate.local.dialog similarity index 100% rename from dialog/en-us/current.wind.moderate.local.dialog rename to locale/en-us/current.wind.moderate.local.dialog diff --git a/dialog/en-us/current.wind.moderate.location.dialog b/locale/en-us/current.wind.moderate.location.dialog similarity index 100% rename from dialog/en-us/current.wind.moderate.location.dialog rename to locale/en-us/current.wind.moderate.location.dialog diff --git a/dialog/en-us/current.wind.strong.local.dialog b/locale/en-us/current.wind.strong.local.dialog similarity index 100% rename from dialog/en-us/current.wind.strong.local.dialog rename to locale/en-us/current.wind.strong.local.dialog diff --git a/dialog/en-us/current.wind.strong.location.dialog b/locale/en-us/current.wind.strong.location.dialog similarity index 100% rename from dialog/en-us/current.wind.strong.location.dialog rename to locale/en-us/current.wind.strong.location.dialog diff --git a/dialog/en-us/currrent.clouds.alternative.local.dialog b/locale/en-us/currrent.clouds.alternative.local.dialog similarity index 100% rename from dialog/en-us/currrent.clouds.alternative.local.dialog rename to locale/en-us/currrent.clouds.alternative.local.dialog diff --git a/dialog/en-us/daily.clear.alternative.local.dialog b/locale/en-us/daily.clear.alternative.local.dialog similarity index 100% rename from dialog/en-us/daily.clear.alternative.local.dialog rename to locale/en-us/daily.clear.alternative.local.dialog diff --git a/dialog/en-us/daily.clear.alternative.location.dialog b/locale/en-us/daily.clear.alternative.location.dialog similarity index 100% rename from dialog/en-us/daily.clear.alternative.location.dialog rename to locale/en-us/daily.clear.alternative.location.dialog diff --git a/dialog/en-us/daily.clear.not.expected.local.dialog b/locale/en-us/daily.clear.not.expected.local.dialog similarity index 100% rename from dialog/en-us/daily.clear.not.expected.local.dialog rename to locale/en-us/daily.clear.not.expected.local.dialog diff --git a/dialog/en-us/daily.clear.not.expected.location.dialog b/locale/en-us/daily.clear.not.expected.location.dialog similarity index 100% rename from dialog/en-us/daily.clear.not.expected.location.dialog rename to locale/en-us/daily.clear.not.expected.location.dialog diff --git a/dialog/en-us/daily.clouds.alternative.local.dialog b/locale/en-us/daily.clouds.alternative.local.dialog similarity index 100% rename from dialog/en-us/daily.clouds.alternative.local.dialog rename to locale/en-us/daily.clouds.alternative.local.dialog diff --git a/dialog/en-us/daily.clouds.alternative.location.dialog b/locale/en-us/daily.clouds.alternative.location.dialog similarity index 100% rename from dialog/en-us/daily.clouds.alternative.location.dialog rename to locale/en-us/daily.clouds.alternative.location.dialog diff --git a/dialog/en-us/daily.clouds.not.expected.local.dialog b/locale/en-us/daily.clouds.not.expected.local.dialog similarity index 100% rename from dialog/en-us/daily.clouds.not.expected.local.dialog rename to locale/en-us/daily.clouds.not.expected.local.dialog diff --git a/dialog/en-us/daily.clouds.not.expected.location.dialog b/locale/en-us/daily.clouds.not.expected.location.dialog similarity index 100% rename from dialog/en-us/daily.clouds.not.expected.location.dialog rename to locale/en-us/daily.clouds.not.expected.location.dialog diff --git a/dialog/en-us/daily.condition.expected.local.dialog b/locale/en-us/daily.condition.expected.local.dialog similarity index 100% rename from dialog/en-us/daily.condition.expected.local.dialog rename to locale/en-us/daily.condition.expected.local.dialog diff --git a/dialog/en-us/daily.condition.expected.location.dialog b/locale/en-us/daily.condition.expected.location.dialog similarity index 100% rename from dialog/en-us/daily.condition.expected.location.dialog rename to locale/en-us/daily.condition.expected.location.dialog diff --git a/dialog/en-us/daily.fog.alternative.local.dialog b/locale/en-us/daily.fog.alternative.local.dialog similarity index 100% rename from dialog/en-us/daily.fog.alternative.local.dialog rename to locale/en-us/daily.fog.alternative.local.dialog diff --git a/dialog/en-us/daily.fog.alternative.location.dialog b/locale/en-us/daily.fog.alternative.location.dialog similarity index 100% rename from dialog/en-us/daily.fog.alternative.location.dialog rename to locale/en-us/daily.fog.alternative.location.dialog diff --git a/dialog/en-us/daily.fog.not.expected.local.dialog b/locale/en-us/daily.fog.not.expected.local.dialog similarity index 100% rename from dialog/en-us/daily.fog.not.expected.local.dialog rename to locale/en-us/daily.fog.not.expected.local.dialog diff --git a/dialog/en-us/daily.fog.not.expected.location.dialog b/locale/en-us/daily.fog.not.expected.location.dialog similarity index 100% rename from dialog/en-us/daily.fog.not.expected.location.dialog rename to locale/en-us/daily.fog.not.expected.location.dialog diff --git a/dialog/en-us/daily.humidity.local.dialog b/locale/en-us/daily.humidity.local.dialog similarity index 100% rename from dialog/en-us/daily.humidity.local.dialog rename to locale/en-us/daily.humidity.local.dialog diff --git a/dialog/en-us/daily.humidity.location.dialog b/locale/en-us/daily.humidity.location.dialog similarity index 100% rename from dialog/en-us/daily.humidity.location.dialog rename to locale/en-us/daily.humidity.location.dialog diff --git a/dialog/en-us/daily.precipitation.next.local.dialog b/locale/en-us/daily.precipitation.next.local.dialog similarity index 100% rename from dialog/en-us/daily.precipitation.next.local.dialog rename to locale/en-us/daily.precipitation.next.local.dialog diff --git a/dialog/en-us/daily.precipitation.next.location.dialog b/locale/en-us/daily.precipitation.next.location.dialog similarity index 100% rename from dialog/en-us/daily.precipitation.next.location.dialog rename to locale/en-us/daily.precipitation.next.location.dialog diff --git a/dialog/en-us/daily.precipitation.next.none.local.dialog b/locale/en-us/daily.precipitation.next.none.local.dialog similarity index 100% rename from dialog/en-us/daily.precipitation.next.none.local.dialog rename to locale/en-us/daily.precipitation.next.none.local.dialog diff --git a/dialog/en-us/daily.precipitation.next.none.location.dialog b/locale/en-us/daily.precipitation.next.none.location.dialog similarity index 100% rename from dialog/en-us/daily.precipitation.next.none.location.dialog rename to locale/en-us/daily.precipitation.next.none.location.dialog diff --git a/dialog/en-us/daily.rain.alternative.local.dialog b/locale/en-us/daily.rain.alternative.local.dialog similarity index 100% rename from dialog/en-us/daily.rain.alternative.local.dialog rename to locale/en-us/daily.rain.alternative.local.dialog diff --git a/dialog/en-us/daily.rain.alternative.location.dialog b/locale/en-us/daily.rain.alternative.location.dialog similarity index 100% rename from dialog/en-us/daily.rain.alternative.location.dialog rename to locale/en-us/daily.rain.alternative.location.dialog diff --git a/dialog/en-us/daily.rain.not.expected.local.dialog b/locale/en-us/daily.rain.not.expected.local.dialog similarity index 100% rename from dialog/en-us/daily.rain.not.expected.local.dialog rename to locale/en-us/daily.rain.not.expected.local.dialog diff --git a/dialog/en-us/daily.rain.not.expected.location.dialog b/locale/en-us/daily.rain.not.expected.location.dialog similarity index 100% rename from dialog/en-us/daily.rain.not.expected.location.dialog rename to locale/en-us/daily.rain.not.expected.location.dialog diff --git a/dialog/en-us/daily.snow.alternative.location.dialog b/locale/en-us/daily.snow.alternative.location.dialog similarity index 100% rename from dialog/en-us/daily.snow.alternative.location.dialog rename to locale/en-us/daily.snow.alternative.location.dialog diff --git a/dialog/en-us/daily.snow.not.expected.local.dialog b/locale/en-us/daily.snow.not.expected.local.dialog similarity index 100% rename from dialog/en-us/daily.snow.not.expected.local.dialog rename to locale/en-us/daily.snow.not.expected.local.dialog diff --git a/dialog/en-us/daily.snow.not.expected.location.dialog b/locale/en-us/daily.snow.not.expected.location.dialog similarity index 100% rename from dialog/en-us/daily.snow.not.expected.location.dialog rename to locale/en-us/daily.snow.not.expected.location.dialog diff --git a/dialog/en-us/daily.sunrise.local.dialog b/locale/en-us/daily.sunrise.local.dialog similarity index 100% rename from dialog/en-us/daily.sunrise.local.dialog rename to locale/en-us/daily.sunrise.local.dialog diff --git a/dialog/en-us/daily.sunrise.location.dialog b/locale/en-us/daily.sunrise.location.dialog similarity index 100% rename from dialog/en-us/daily.sunrise.location.dialog rename to locale/en-us/daily.sunrise.location.dialog diff --git a/dialog/en-us/daily.sunset.local.dialog b/locale/en-us/daily.sunset.local.dialog similarity index 100% rename from dialog/en-us/daily.sunset.local.dialog rename to locale/en-us/daily.sunset.local.dialog diff --git a/dialog/en-us/daily.sunset.location.dialog b/locale/en-us/daily.sunset.location.dialog similarity index 100% rename from dialog/en-us/daily.sunset.location.dialog rename to locale/en-us/daily.sunset.location.dialog diff --git a/dialog/en-us/daily.temperature.high.local.dialog b/locale/en-us/daily.temperature.high.local.dialog similarity index 100% rename from dialog/en-us/daily.temperature.high.local.dialog rename to locale/en-us/daily.temperature.high.local.dialog diff --git a/dialog/en-us/daily.temperature.high.location.dialog b/locale/en-us/daily.temperature.high.location.dialog similarity index 100% rename from dialog/en-us/daily.temperature.high.location.dialog rename to locale/en-us/daily.temperature.high.location.dialog diff --git a/dialog/en-us/daily.temperature.local.dialog b/locale/en-us/daily.temperature.local.dialog similarity index 100% rename from dialog/en-us/daily.temperature.local.dialog rename to locale/en-us/daily.temperature.local.dialog diff --git a/dialog/en-us/daily.temperature.location.dialog b/locale/en-us/daily.temperature.location.dialog similarity index 100% rename from dialog/en-us/daily.temperature.location.dialog rename to locale/en-us/daily.temperature.location.dialog diff --git a/dialog/en-us/daily.temperature.low.local.dialog b/locale/en-us/daily.temperature.low.local.dialog similarity index 100% rename from dialog/en-us/daily.temperature.low.local.dialog rename to locale/en-us/daily.temperature.low.local.dialog diff --git a/dialog/en-us/daily.temperature.low.location.dialog b/locale/en-us/daily.temperature.low.location.dialog similarity index 100% rename from dialog/en-us/daily.temperature.low.location.dialog rename to locale/en-us/daily.temperature.low.location.dialog diff --git a/dialog/en-us/daily.thunderstorm.alternative.local.dialog b/locale/en-us/daily.thunderstorm.alternative.local.dialog similarity index 100% rename from dialog/en-us/daily.thunderstorm.alternative.local.dialog rename to locale/en-us/daily.thunderstorm.alternative.local.dialog diff --git a/dialog/en-us/daily.thunderstorm.alternative.location.dialog b/locale/en-us/daily.thunderstorm.alternative.location.dialog similarity index 100% rename from dialog/en-us/daily.thunderstorm.alternative.location.dialog rename to locale/en-us/daily.thunderstorm.alternative.location.dialog diff --git a/dialog/en-us/daily.thunderstorm.not.expected.local.dialog b/locale/en-us/daily.thunderstorm.not.expected.local.dialog similarity index 100% rename from dialog/en-us/daily.thunderstorm.not.expected.local.dialog rename to locale/en-us/daily.thunderstorm.not.expected.local.dialog diff --git a/dialog/en-us/daily.thunderstorm.not.expected.location.dialog b/locale/en-us/daily.thunderstorm.not.expected.location.dialog similarity index 100% rename from dialog/en-us/daily.thunderstorm.not.expected.location.dialog rename to locale/en-us/daily.thunderstorm.not.expected.location.dialog diff --git a/dialog/en-us/daily.weather.local.dialog b/locale/en-us/daily.weather.local.dialog similarity index 100% rename from dialog/en-us/daily.weather.local.dialog rename to locale/en-us/daily.weather.local.dialog diff --git a/dialog/en-us/daily.weather.location.dialog b/locale/en-us/daily.weather.location.dialog similarity index 100% rename from dialog/en-us/daily.weather.location.dialog rename to locale/en-us/daily.weather.location.dialog diff --git a/dialog/en-us/daily.wind.light.local.dialog b/locale/en-us/daily.wind.light.local.dialog similarity index 100% rename from dialog/en-us/daily.wind.light.local.dialog rename to locale/en-us/daily.wind.light.local.dialog diff --git a/dialog/en-us/daily.wind.light.location.dialog b/locale/en-us/daily.wind.light.location.dialog similarity index 100% rename from dialog/en-us/daily.wind.light.location.dialog rename to locale/en-us/daily.wind.light.location.dialog diff --git a/dialog/en-us/daily.wind.moderate.local.dialog b/locale/en-us/daily.wind.moderate.local.dialog similarity index 100% rename from dialog/en-us/daily.wind.moderate.local.dialog rename to locale/en-us/daily.wind.moderate.local.dialog diff --git a/dialog/en-us/daily.wind.moderate.location.dialog b/locale/en-us/daily.wind.moderate.location.dialog similarity index 100% rename from dialog/en-us/daily.wind.moderate.location.dialog rename to locale/en-us/daily.wind.moderate.location.dialog diff --git a/dialog/en-us/daily.wind.strong.local.dialog b/locale/en-us/daily.wind.strong.local.dialog similarity index 100% rename from dialog/en-us/daily.wind.strong.local.dialog rename to locale/en-us/daily.wind.strong.local.dialog diff --git a/dialog/en-us/daily.wind.strong.location.dialog b/locale/en-us/daily.wind.strong.location.dialog similarity index 100% rename from dialog/en-us/daily.wind.strong.location.dialog rename to locale/en-us/daily.wind.strong.location.dialog diff --git a/dialog/en-us/do not know.dialog b/locale/en-us/do not know.dialog similarity index 100% rename from dialog/en-us/do not know.dialog rename to locale/en-us/do not know.dialog diff --git a/vocab/en-us/do.i.need.an.umbrella.intent b/locale/en-us/do.i.need.an.umbrella.intent similarity index 100% rename from vocab/en-us/do.i.need.an.umbrella.intent rename to locale/en-us/do.i.need.an.umbrella.intent diff --git a/dialog/en-us/east.dialog b/locale/en-us/east.dialog similarity index 100% rename from dialog/en-us/east.dialog rename to locale/en-us/east.dialog diff --git a/dialog/en-us/fahrenheit.dialog b/locale/en-us/fahrenheit.dialog similarity index 100% rename from dialog/en-us/fahrenheit.dialog rename to locale/en-us/fahrenheit.dialog diff --git a/dialog/en-us/forty-eight.hours.available.dialog b/locale/en-us/forty-eight.hours.available.dialog similarity index 100% rename from dialog/en-us/forty-eight.hours.available.dialog rename to locale/en-us/forty-eight.hours.available.dialog diff --git a/dialog/en-us/from.day.dialog b/locale/en-us/from.day.dialog similarity index 100% rename from dialog/en-us/from.day.dialog rename to locale/en-us/from.day.dialog diff --git a/dialog/en-us/heavy.dialog b/locale/en-us/heavy.dialog similarity index 100% rename from dialog/en-us/heavy.dialog rename to locale/en-us/heavy.dialog diff --git a/dialog/en-us/hourly.condition.alternative.local.dialog b/locale/en-us/hourly.condition.alternative.local.dialog similarity index 100% rename from dialog/en-us/hourly.condition.alternative.local.dialog rename to locale/en-us/hourly.condition.alternative.local.dialog diff --git a/dialog/en-us/hourly.condition.alternative.location.dialog b/locale/en-us/hourly.condition.alternative.location.dialog similarity index 100% rename from dialog/en-us/hourly.condition.alternative.location.dialog rename to locale/en-us/hourly.condition.alternative.location.dialog diff --git a/dialog/en-us/hourly.condition.expected.local.dialog b/locale/en-us/hourly.condition.expected.local.dialog similarity index 100% rename from dialog/en-us/hourly.condition.expected.local.dialog rename to locale/en-us/hourly.condition.expected.local.dialog diff --git a/dialog/en-us/hourly.condition.expected.location.dialog b/locale/en-us/hourly.condition.expected.location.dialog similarity index 100% rename from dialog/en-us/hourly.condition.expected.location.dialog rename to locale/en-us/hourly.condition.expected.location.dialog diff --git a/dialog/en-us/hourly.precipitation.next.local.dialog b/locale/en-us/hourly.precipitation.next.local.dialog similarity index 100% rename from dialog/en-us/hourly.precipitation.next.local.dialog rename to locale/en-us/hourly.precipitation.next.local.dialog diff --git a/dialog/en-us/hourly.precipitation.next.location.dialog b/locale/en-us/hourly.precipitation.next.location.dialog similarity index 100% rename from dialog/en-us/hourly.precipitation.next.location.dialog rename to locale/en-us/hourly.precipitation.next.location.dialog diff --git a/dialog/en-us/hourly.temperature.local.dialog b/locale/en-us/hourly.temperature.local.dialog similarity index 100% rename from dialog/en-us/hourly.temperature.local.dialog rename to locale/en-us/hourly.temperature.local.dialog diff --git a/dialog/en-us/hourly.temperature.location.dialog b/locale/en-us/hourly.temperature.location.dialog similarity index 100% rename from dialog/en-us/hourly.temperature.location.dialog rename to locale/en-us/hourly.temperature.location.dialog diff --git a/dialog/en-us/hourly.weather.local.dialog b/locale/en-us/hourly.weather.local.dialog similarity index 100% rename from dialog/en-us/hourly.weather.local.dialog rename to locale/en-us/hourly.weather.local.dialog diff --git a/dialog/en-us/hourly.weather.location.dialog b/locale/en-us/hourly.weather.location.dialog similarity index 100% rename from dialog/en-us/hourly.weather.location.dialog rename to locale/en-us/hourly.weather.location.dialog diff --git a/dialog/en-us/humidity.dialog b/locale/en-us/humidity.dialog similarity index 100% rename from dialog/en-us/humidity.dialog rename to locale/en-us/humidity.dialog diff --git a/dialog/en-us/light.dialog b/locale/en-us/light.dialog similarity index 100% rename from dialog/en-us/light.dialog rename to locale/en-us/light.dialog diff --git a/dialog/en-us/location.not.found.dialog b/locale/en-us/location.not.found.dialog similarity index 100% rename from dialog/en-us/location.not.found.dialog rename to locale/en-us/location.not.found.dialog diff --git a/regex/en-us/location.rx b/locale/en-us/location.rx similarity index 100% rename from regex/en-us/location.rx rename to locale/en-us/location.rx diff --git a/dialog/en-us/meters per second.dialog b/locale/en-us/meters per second.dialog similarity index 100% rename from dialog/en-us/meters per second.dialog rename to locale/en-us/meters per second.dialog diff --git a/dialog/en-us/miles per hour.dialog b/locale/en-us/miles per hour.dialog similarity index 100% rename from dialog/en-us/miles per hour.dialog rename to locale/en-us/miles per hour.dialog diff --git a/dialog/en-us/no.forecast.dialog b/locale/en-us/no.forecast.dialog similarity index 100% rename from dialog/en-us/no.forecast.dialog rename to locale/en-us/no.forecast.dialog diff --git a/dialog/en-us/north.dialog b/locale/en-us/north.dialog similarity index 100% rename from dialog/en-us/north.dialog rename to locale/en-us/north.dialog diff --git a/dialog/en-us/northeast.dialog b/locale/en-us/northeast.dialog similarity index 100% rename from dialog/en-us/northeast.dialog rename to locale/en-us/northeast.dialog diff --git a/dialog/en-us/northwest.dialog b/locale/en-us/northwest.dialog similarity index 100% rename from dialog/en-us/northwest.dialog rename to locale/en-us/northwest.dialog diff --git a/dialog/en-us/percentage.number.dialog b/locale/en-us/percentage.number.dialog similarity index 100% rename from dialog/en-us/percentage.number.dialog rename to locale/en-us/percentage.number.dialog diff --git a/dialog/en-us/rain.dialog b/locale/en-us/rain.dialog similarity index 100% rename from dialog/en-us/rain.dialog rename to locale/en-us/rain.dialog diff --git a/dialog/en-us/seven.days.available.dialog b/locale/en-us/seven.days.available.dialog similarity index 100% rename from dialog/en-us/seven.days.available.dialog rename to locale/en-us/seven.days.available.dialog diff --git a/vocab/en-us/simple.temperature.intent b/locale/en-us/simple.temperature.intent similarity index 100% rename from vocab/en-us/simple.temperature.intent rename to locale/en-us/simple.temperature.intent diff --git a/dialog/en-us/sky is clear.future.dialog b/locale/en-us/sky is clear.future.dialog similarity index 100% rename from dialog/en-us/sky is clear.future.dialog rename to locale/en-us/sky is clear.future.dialog diff --git a/dialog/en-us/snow.dialog b/locale/en-us/snow.dialog similarity index 100% rename from dialog/en-us/snow.dialog rename to locale/en-us/snow.dialog diff --git a/dialog/en-us/south.dialog b/locale/en-us/south.dialog similarity index 100% rename from dialog/en-us/south.dialog rename to locale/en-us/south.dialog diff --git a/dialog/en-us/southeast.dialog b/locale/en-us/southeast.dialog similarity index 100% rename from dialog/en-us/southeast.dialog rename to locale/en-us/southeast.dialog diff --git a/dialog/en-us/southwest.dialog b/locale/en-us/southwest.dialog similarity index 100% rename from dialog/en-us/southwest.dialog rename to locale/en-us/southwest.dialog diff --git a/dialog/en-us/storm.dialog b/locale/en-us/storm.dialog similarity index 100% rename from dialog/en-us/storm.dialog rename to locale/en-us/storm.dialog diff --git a/dialog/en-us/west.dialog b/locale/en-us/west.dialog similarity index 100% rename from dialog/en-us/west.dialog rename to locale/en-us/west.dialog diff --git a/vocab/en-us/what.is.multi.day.forecast.intent b/locale/en-us/what.is.multi.day.forecast.intent similarity index 100% rename from vocab/en-us/what.is.multi.day.forecast.intent rename to locale/en-us/what.is.multi.day.forecast.intent diff --git a/dialog/es-es/E.dialog b/locale/es-es/E.dialog similarity index 100% rename from dialog/es-es/E.dialog rename to locale/es-es/E.dialog diff --git a/vocab/es-es/Forecast.voc b/locale/es-es/Forecast.voc similarity index 100% rename from vocab/es-es/Forecast.voc rename to locale/es-es/Forecast.voc diff --git a/vocab/es-es/Humidity.voc b/locale/es-es/Humidity.voc similarity index 100% rename from vocab/es-es/Humidity.voc rename to locale/es-es/Humidity.voc diff --git a/vocab/es-es/Later.voc b/locale/es-es/Later.voc similarity index 100% rename from vocab/es-es/Later.voc rename to locale/es-es/Later.voc diff --git a/vocab/es-es/Location.voc b/locale/es-es/Location.voc similarity index 100% rename from vocab/es-es/Location.voc rename to locale/es-es/Location.voc diff --git a/dialog/es-es/N.dialog b/locale/es-es/N.dialog similarity index 100% rename from dialog/es-es/N.dialog rename to locale/es-es/N.dialog diff --git a/dialog/es-es/NE.dialog b/locale/es-es/NE.dialog similarity index 100% rename from dialog/es-es/NE.dialog rename to locale/es-es/NE.dialog diff --git a/dialog/es-es/NW.dialog b/locale/es-es/NW.dialog similarity index 100% rename from dialog/es-es/NW.dialog rename to locale/es-es/NW.dialog diff --git a/vocab/es-es/Next.voc b/locale/es-es/Next.voc similarity index 100% rename from vocab/es-es/Next.voc rename to locale/es-es/Next.voc diff --git a/vocab/es-es/Precipitation.voc b/locale/es-es/Precipitation.voc similarity index 100% rename from vocab/es-es/Precipitation.voc rename to locale/es-es/Precipitation.voc diff --git a/vocab/es-es/Query.voc b/locale/es-es/Query.voc similarity index 100% rename from vocab/es-es/Query.voc rename to locale/es-es/Query.voc diff --git a/dialog/es-es/S.dialog b/locale/es-es/S.dialog similarity index 100% rename from dialog/es-es/S.dialog rename to locale/es-es/S.dialog diff --git a/dialog/es-es/SE.dialog b/locale/es-es/SE.dialog similarity index 100% rename from dialog/es-es/SE.dialog rename to locale/es-es/SE.dialog diff --git a/dialog/es-es/SW.dialog b/locale/es-es/SW.dialog similarity index 100% rename from dialog/es-es/SW.dialog rename to locale/es-es/SW.dialog diff --git a/vocab/es-es/Sunrise.voc b/locale/es-es/Sunrise.voc similarity index 100% rename from vocab/es-es/Sunrise.voc rename to locale/es-es/Sunrise.voc diff --git a/vocab/es-es/Sunset.voc b/locale/es-es/Sunset.voc similarity index 100% rename from vocab/es-es/Sunset.voc rename to locale/es-es/Sunset.voc diff --git a/dialog/es-es/W.dialog b/locale/es-es/W.dialog similarity index 100% rename from dialog/es-es/W.dialog rename to locale/es-es/W.dialog diff --git a/vocab/es-es/Weather.voc b/locale/es-es/Weather.voc similarity index 100% rename from vocab/es-es/Weather.voc rename to locale/es-es/Weather.voc diff --git a/vocab/es-es/WeatherType.voc b/locale/es-es/WeatherType.voc similarity index 100% rename from vocab/es-es/WeatherType.voc rename to locale/es-es/WeatherType.voc diff --git a/vocab/es-es/Windy.voc b/locale/es-es/Windy.voc similarity index 100% rename from vocab/es-es/Windy.voc rename to locale/es-es/Windy.voc diff --git a/dialog/es-es/celsius.dialog b/locale/es-es/celsius.dialog similarity index 100% rename from dialog/es-es/celsius.dialog rename to locale/es-es/celsius.dialog diff --git a/dialog/es-es/current.local.weather.dialog b/locale/es-es/current.local.weather.dialog similarity index 100% rename from dialog/es-es/current.local.weather.dialog rename to locale/es-es/current.local.weather.dialog diff --git a/dialog/es-es/current.weather.dialog b/locale/es-es/current.weather.dialog similarity index 100% rename from dialog/es-es/current.weather.dialog rename to locale/es-es/current.weather.dialog diff --git a/dialog/es-es/do not know.dialog b/locale/es-es/do not know.dialog similarity index 100% rename from dialog/es-es/do not know.dialog rename to locale/es-es/do not know.dialog diff --git a/dialog/es-es/fahrenheit.dialog b/locale/es-es/fahrenheit.dialog similarity index 100% rename from dialog/es-es/fahrenheit.dialog rename to locale/es-es/fahrenheit.dialog diff --git a/dialog/es-es/forecast.local.weather.dialog b/locale/es-es/forecast.local.weather.dialog similarity index 100% rename from dialog/es-es/forecast.local.weather.dialog rename to locale/es-es/forecast.local.weather.dialog diff --git a/dialog/es-es/forecast.weather.dialog b/locale/es-es/forecast.weather.dialog similarity index 100% rename from dialog/es-es/forecast.weather.dialog rename to locale/es-es/forecast.weather.dialog diff --git a/dialog/es-es/heavy.dialog b/locale/es-es/heavy.dialog similarity index 100% rename from dialog/es-es/heavy.dialog rename to locale/es-es/heavy.dialog diff --git a/dialog/es-es/hour.local.weather.dialog b/locale/es-es/hour.local.weather.dialog similarity index 100% rename from dialog/es-es/hour.local.weather.dialog rename to locale/es-es/hour.local.weather.dialog diff --git a/dialog/es-es/hour.weather.dialog b/locale/es-es/hour.weather.dialog similarity index 100% rename from dialog/es-es/hour.weather.dialog rename to locale/es-es/hour.weather.dialog diff --git a/dialog/es-es/humidity.dialog b/locale/es-es/humidity.dialog similarity index 100% rename from dialog/es-es/humidity.dialog rename to locale/es-es/humidity.dialog diff --git a/dialog/es-es/light.dialog b/locale/es-es/light.dialog similarity index 100% rename from dialog/es-es/light.dialog rename to locale/es-es/light.dialog diff --git a/dialog/es-es/location.not.found.dialog b/locale/es-es/location.not.found.dialog similarity index 100% rename from dialog/es-es/location.not.found.dialog rename to locale/es-es/location.not.found.dialog diff --git a/regex/es-es/location.rx b/locale/es-es/location.rx similarity index 100% rename from regex/es-es/location.rx rename to locale/es-es/location.rx diff --git a/dialog/es-es/meters per second.dialog b/locale/es-es/meters per second.dialog similarity index 100% rename from dialog/es-es/meters per second.dialog rename to locale/es-es/meters per second.dialog diff --git a/dialog/es-es/miles per hour.dialog b/locale/es-es/miles per hour.dialog similarity index 100% rename from dialog/es-es/miles per hour.dialog rename to locale/es-es/miles per hour.dialog diff --git a/dialog/es-es/no forecast.dialog b/locale/es-es/no forecast.dialog similarity index 100% rename from dialog/es-es/no forecast.dialog rename to locale/es-es/no forecast.dialog diff --git a/dialog/es-es/no precipitation expected.dialog b/locale/es-es/no precipitation expected.dialog similarity index 100% rename from dialog/es-es/no precipitation expected.dialog rename to locale/es-es/no precipitation expected.dialog diff --git a/dialog/es-es/precipitation expected.dialog b/locale/es-es/precipitation expected.dialog similarity index 100% rename from dialog/es-es/precipitation expected.dialog rename to locale/es-es/precipitation expected.dialog diff --git a/dialog/es-es/rain.dialog b/locale/es-es/rain.dialog similarity index 100% rename from dialog/es-es/rain.dialog rename to locale/es-es/rain.dialog diff --git a/dialog/es-es/report.condition.dialog b/locale/es-es/report.condition.dialog similarity index 100% rename from dialog/es-es/report.condition.dialog rename to locale/es-es/report.condition.dialog diff --git a/dialog/es-es/report.future.condition.dialog b/locale/es-es/report.future.condition.dialog similarity index 100% rename from dialog/es-es/report.future.condition.dialog rename to locale/es-es/report.future.condition.dialog diff --git a/dialog/es-es/sky is clear.future.dialog b/locale/es-es/sky is clear.future.dialog similarity index 100% rename from dialog/es-es/sky is clear.future.dialog rename to locale/es-es/sky is clear.future.dialog diff --git a/dialog/es-es/snow.dialog b/locale/es-es/snow.dialog similarity index 100% rename from dialog/es-es/snow.dialog rename to locale/es-es/snow.dialog diff --git a/dialog/es-es/wind.speed.dialog b/locale/es-es/wind.speed.dialog similarity index 100% rename from dialog/es-es/wind.speed.dialog rename to locale/es-es/wind.speed.dialog diff --git a/dialog/es-es/wind.speed.dir.dialog b/locale/es-es/wind.speed.dir.dialog similarity index 100% rename from dialog/es-es/wind.speed.dir.dialog rename to locale/es-es/wind.speed.dir.dialog diff --git a/dialog/es-es/winds.dialog b/locale/es-es/winds.dialog similarity index 100% rename from dialog/es-es/winds.dialog rename to locale/es-es/winds.dialog diff --git a/dialog/fr-fr/E.dialog b/locale/fr-fr/E.dialog similarity index 100% rename from dialog/fr-fr/E.dialog rename to locale/fr-fr/E.dialog diff --git a/vocab/fr-fr/Forecast.voc b/locale/fr-fr/Forecast.voc similarity index 100% rename from vocab/fr-fr/Forecast.voc rename to locale/fr-fr/Forecast.voc diff --git a/vocab/fr-fr/Humidity.voc b/locale/fr-fr/Humidity.voc similarity index 100% rename from vocab/fr-fr/Humidity.voc rename to locale/fr-fr/Humidity.voc diff --git a/vocab/fr-fr/Later.voc b/locale/fr-fr/Later.voc similarity index 100% rename from vocab/fr-fr/Later.voc rename to locale/fr-fr/Later.voc diff --git a/vocab/fr-fr/Location.voc b/locale/fr-fr/Location.voc similarity index 100% rename from vocab/fr-fr/Location.voc rename to locale/fr-fr/Location.voc diff --git a/dialog/fr-fr/N.dialog b/locale/fr-fr/N.dialog similarity index 100% rename from dialog/fr-fr/N.dialog rename to locale/fr-fr/N.dialog diff --git a/dialog/fr-fr/NE.dialog b/locale/fr-fr/NE.dialog similarity index 100% rename from dialog/fr-fr/NE.dialog rename to locale/fr-fr/NE.dialog diff --git a/dialog/fr-fr/NW.dialog b/locale/fr-fr/NW.dialog similarity index 100% rename from dialog/fr-fr/NW.dialog rename to locale/fr-fr/NW.dialog diff --git a/vocab/fr-fr/Next.voc b/locale/fr-fr/Next.voc similarity index 100% rename from vocab/fr-fr/Next.voc rename to locale/fr-fr/Next.voc diff --git a/vocab/fr-fr/Precipitation.voc b/locale/fr-fr/Precipitation.voc similarity index 100% rename from vocab/fr-fr/Precipitation.voc rename to locale/fr-fr/Precipitation.voc diff --git a/vocab/fr-fr/Query.voc b/locale/fr-fr/Query.voc similarity index 100% rename from vocab/fr-fr/Query.voc rename to locale/fr-fr/Query.voc diff --git a/dialog/fr-fr/S.dialog b/locale/fr-fr/S.dialog similarity index 100% rename from dialog/fr-fr/S.dialog rename to locale/fr-fr/S.dialog diff --git a/dialog/fr-fr/SE.dialog b/locale/fr-fr/SE.dialog similarity index 100% rename from dialog/fr-fr/SE.dialog rename to locale/fr-fr/SE.dialog diff --git a/dialog/fr-fr/SW.dialog b/locale/fr-fr/SW.dialog similarity index 100% rename from dialog/fr-fr/SW.dialog rename to locale/fr-fr/SW.dialog diff --git a/vocab/fr-fr/Sunrise.voc b/locale/fr-fr/Sunrise.voc similarity index 100% rename from vocab/fr-fr/Sunrise.voc rename to locale/fr-fr/Sunrise.voc diff --git a/vocab/fr-fr/Sunset.voc b/locale/fr-fr/Sunset.voc similarity index 100% rename from vocab/fr-fr/Sunset.voc rename to locale/fr-fr/Sunset.voc diff --git a/dialog/fr-fr/W.dialog b/locale/fr-fr/W.dialog similarity index 100% rename from dialog/fr-fr/W.dialog rename to locale/fr-fr/W.dialog diff --git a/vocab/fr-fr/Weather.voc b/locale/fr-fr/Weather.voc similarity index 100% rename from vocab/fr-fr/Weather.voc rename to locale/fr-fr/Weather.voc diff --git a/vocab/fr-fr/WeatherType.voc b/locale/fr-fr/WeatherType.voc similarity index 100% rename from vocab/fr-fr/WeatherType.voc rename to locale/fr-fr/WeatherType.voc diff --git a/vocab/fr-fr/Windy.voc b/locale/fr-fr/Windy.voc similarity index 100% rename from vocab/fr-fr/Windy.voc rename to locale/fr-fr/Windy.voc diff --git a/dialog/fr-fr/celsius.dialog b/locale/fr-fr/celsius.dialog similarity index 100% rename from dialog/fr-fr/celsius.dialog rename to locale/fr-fr/celsius.dialog diff --git a/dialog/fr-fr/current.local.weather.dialog b/locale/fr-fr/current.local.weather.dialog similarity index 100% rename from dialog/fr-fr/current.local.weather.dialog rename to locale/fr-fr/current.local.weather.dialog diff --git a/dialog/fr-fr/current.weather.dialog b/locale/fr-fr/current.weather.dialog similarity index 100% rename from dialog/fr-fr/current.weather.dialog rename to locale/fr-fr/current.weather.dialog diff --git a/dialog/fr-fr/do not know.dialog b/locale/fr-fr/do not know.dialog similarity index 100% rename from dialog/fr-fr/do not know.dialog rename to locale/fr-fr/do not know.dialog diff --git a/dialog/fr-fr/fahrenheit.dialog b/locale/fr-fr/fahrenheit.dialog similarity index 100% rename from dialog/fr-fr/fahrenheit.dialog rename to locale/fr-fr/fahrenheit.dialog diff --git a/dialog/fr-fr/forecast.local.weather.dialog b/locale/fr-fr/forecast.local.weather.dialog similarity index 100% rename from dialog/fr-fr/forecast.local.weather.dialog rename to locale/fr-fr/forecast.local.weather.dialog diff --git a/dialog/fr-fr/forecast.weather.dialog b/locale/fr-fr/forecast.weather.dialog similarity index 100% rename from dialog/fr-fr/forecast.weather.dialog rename to locale/fr-fr/forecast.weather.dialog diff --git a/dialog/fr-fr/heavy.dialog b/locale/fr-fr/heavy.dialog similarity index 100% rename from dialog/fr-fr/heavy.dialog rename to locale/fr-fr/heavy.dialog diff --git a/dialog/fr-fr/hour.local.weather.dialog b/locale/fr-fr/hour.local.weather.dialog similarity index 100% rename from dialog/fr-fr/hour.local.weather.dialog rename to locale/fr-fr/hour.local.weather.dialog diff --git a/dialog/fr-fr/hour.weather.dialog b/locale/fr-fr/hour.weather.dialog similarity index 100% rename from dialog/fr-fr/hour.weather.dialog rename to locale/fr-fr/hour.weather.dialog diff --git a/dialog/fr-fr/humidity.dialog b/locale/fr-fr/humidity.dialog similarity index 100% rename from dialog/fr-fr/humidity.dialog rename to locale/fr-fr/humidity.dialog diff --git a/dialog/fr-fr/light.dialog b/locale/fr-fr/light.dialog similarity index 100% rename from dialog/fr-fr/light.dialog rename to locale/fr-fr/light.dialog diff --git a/dialog/fr-fr/location.not.found.dialog b/locale/fr-fr/location.not.found.dialog similarity index 100% rename from dialog/fr-fr/location.not.found.dialog rename to locale/fr-fr/location.not.found.dialog diff --git a/regex/fr-fr/location.rx b/locale/fr-fr/location.rx similarity index 100% rename from regex/fr-fr/location.rx rename to locale/fr-fr/location.rx diff --git a/dialog/fr-fr/meters per second.dialog b/locale/fr-fr/meters per second.dialog similarity index 100% rename from dialog/fr-fr/meters per second.dialog rename to locale/fr-fr/meters per second.dialog diff --git a/dialog/fr-fr/miles per hour.dialog b/locale/fr-fr/miles per hour.dialog similarity index 100% rename from dialog/fr-fr/miles per hour.dialog rename to locale/fr-fr/miles per hour.dialog diff --git a/dialog/fr-fr/no forecast.dialog b/locale/fr-fr/no forecast.dialog similarity index 100% rename from dialog/fr-fr/no forecast.dialog rename to locale/fr-fr/no forecast.dialog diff --git a/dialog/fr-fr/no precipitation expected.dialog b/locale/fr-fr/no precipitation expected.dialog similarity index 100% rename from dialog/fr-fr/no precipitation expected.dialog rename to locale/fr-fr/no precipitation expected.dialog diff --git a/dialog/fr-fr/precipitation expected.dialog b/locale/fr-fr/precipitation expected.dialog similarity index 100% rename from dialog/fr-fr/precipitation expected.dialog rename to locale/fr-fr/precipitation expected.dialog diff --git a/dialog/fr-fr/rain.dialog b/locale/fr-fr/rain.dialog similarity index 100% rename from dialog/fr-fr/rain.dialog rename to locale/fr-fr/rain.dialog diff --git a/dialog/fr-fr/report.condition.dialog b/locale/fr-fr/report.condition.dialog similarity index 100% rename from dialog/fr-fr/report.condition.dialog rename to locale/fr-fr/report.condition.dialog diff --git a/dialog/fr-fr/report.future.condition.dialog b/locale/fr-fr/report.future.condition.dialog similarity index 100% rename from dialog/fr-fr/report.future.condition.dialog rename to locale/fr-fr/report.future.condition.dialog diff --git a/dialog/fr-fr/sky is clear.future.dialog b/locale/fr-fr/sky is clear.future.dialog similarity index 100% rename from dialog/fr-fr/sky is clear.future.dialog rename to locale/fr-fr/sky is clear.future.dialog diff --git a/dialog/fr-fr/snow.dialog b/locale/fr-fr/snow.dialog similarity index 100% rename from dialog/fr-fr/snow.dialog rename to locale/fr-fr/snow.dialog diff --git a/dialog/fr-fr/wind.speed.dialog b/locale/fr-fr/wind.speed.dialog similarity index 100% rename from dialog/fr-fr/wind.speed.dialog rename to locale/fr-fr/wind.speed.dialog diff --git a/dialog/fr-fr/wind.speed.dir.dialog b/locale/fr-fr/wind.speed.dir.dialog similarity index 100% rename from dialog/fr-fr/wind.speed.dir.dialog rename to locale/fr-fr/wind.speed.dir.dialog diff --git a/dialog/fr-fr/winds.dialog b/locale/fr-fr/winds.dialog similarity index 100% rename from dialog/fr-fr/winds.dialog rename to locale/fr-fr/winds.dialog diff --git a/vocab/gl-es/Clear.voc b/locale/gl-es/Clear.voc similarity index 100% rename from vocab/gl-es/Clear.voc rename to locale/gl-es/Clear.voc diff --git a/vocab/gl-es/ClearAlternatives.voc b/locale/gl-es/ClearAlternatives.voc similarity index 100% rename from vocab/gl-es/ClearAlternatives.voc rename to locale/gl-es/ClearAlternatives.voc diff --git a/vocab/gl-es/Cloudy.voc b/locale/gl-es/Cloudy.voc similarity index 100% rename from vocab/gl-es/Cloudy.voc rename to locale/gl-es/Cloudy.voc diff --git a/vocab/gl-es/CloudyAlternatives.voc b/locale/gl-es/CloudyAlternatives.voc similarity index 100% rename from vocab/gl-es/CloudyAlternatives.voc rename to locale/gl-es/CloudyAlternatives.voc diff --git a/vocab/gl-es/Cold.voc b/locale/gl-es/Cold.voc similarity index 100% rename from vocab/gl-es/Cold.voc rename to locale/gl-es/Cold.voc diff --git a/vocab/gl-es/ConfirmQuery.voc b/locale/gl-es/ConfirmQuery.voc similarity index 100% rename from vocab/gl-es/ConfirmQuery.voc rename to locale/gl-es/ConfirmQuery.voc diff --git a/vocab/gl-es/ConfirmQueryCurrent.voc b/locale/gl-es/ConfirmQueryCurrent.voc similarity index 100% rename from vocab/gl-es/ConfirmQueryCurrent.voc rename to locale/gl-es/ConfirmQueryCurrent.voc diff --git a/vocab/gl-es/ConfirmQueryFuture.voc b/locale/gl-es/ConfirmQueryFuture.voc similarity index 100% rename from vocab/gl-es/ConfirmQueryFuture.voc rename to locale/gl-es/ConfirmQueryFuture.voc diff --git a/vocab/gl-es/Couple.voc b/locale/gl-es/Couple.voc similarity index 100% rename from vocab/gl-es/Couple.voc rename to locale/gl-es/Couple.voc diff --git a/dialog/gl-es/E.dialog b/locale/gl-es/E.dialog similarity index 100% rename from dialog/gl-es/E.dialog rename to locale/gl-es/E.dialog diff --git a/vocab/gl-es/Fahrenheit.voc b/locale/gl-es/Fahrenheit.voc similarity index 100% rename from vocab/gl-es/Fahrenheit.voc rename to locale/gl-es/Fahrenheit.voc diff --git a/vocab/gl-es/FogAlternatives.voc b/locale/gl-es/FogAlternatives.voc similarity index 100% rename from vocab/gl-es/FogAlternatives.voc rename to locale/gl-es/FogAlternatives.voc diff --git a/vocab/gl-es/Foggy.voc b/locale/gl-es/Foggy.voc similarity index 100% rename from vocab/gl-es/Foggy.voc rename to locale/gl-es/Foggy.voc diff --git a/vocab/gl-es/Forecast.voc b/locale/gl-es/Forecast.voc similarity index 100% rename from vocab/gl-es/Forecast.voc rename to locale/gl-es/Forecast.voc diff --git a/vocab/gl-es/High.voc b/locale/gl-es/High.voc similarity index 100% rename from vocab/gl-es/High.voc rename to locale/gl-es/High.voc diff --git a/vocab/gl-es/Hot.voc b/locale/gl-es/Hot.voc similarity index 100% rename from vocab/gl-es/Hot.voc rename to locale/gl-es/Hot.voc diff --git a/vocab/gl-es/How.voc b/locale/gl-es/How.voc similarity index 100% rename from vocab/gl-es/How.voc rename to locale/gl-es/How.voc diff --git a/vocab/gl-es/Humidity.voc b/locale/gl-es/Humidity.voc similarity index 100% rename from vocab/gl-es/Humidity.voc rename to locale/gl-es/Humidity.voc diff --git a/vocab/gl-es/Later.voc b/locale/gl-es/Later.voc similarity index 100% rename from vocab/gl-es/Later.voc rename to locale/gl-es/Later.voc diff --git a/vocab/gl-es/Location.voc b/locale/gl-es/Location.voc similarity index 100% rename from vocab/gl-es/Location.voc rename to locale/gl-es/Location.voc diff --git a/vocab/gl-es/Low.voc b/locale/gl-es/Low.voc similarity index 100% rename from vocab/gl-es/Low.voc rename to locale/gl-es/Low.voc diff --git a/dialog/gl-es/N.dialog b/locale/gl-es/N.dialog similarity index 100% rename from dialog/gl-es/N.dialog rename to locale/gl-es/N.dialog diff --git a/dialog/gl-es/NE.dialog b/locale/gl-es/NE.dialog similarity index 100% rename from dialog/gl-es/NE.dialog rename to locale/gl-es/NE.dialog diff --git a/dialog/gl-es/NW.dialog b/locale/gl-es/NW.dialog similarity index 100% rename from dialog/gl-es/NW.dialog rename to locale/gl-es/NW.dialog diff --git a/vocab/gl-es/Next.voc b/locale/gl-es/Next.voc similarity index 100% rename from vocab/gl-es/Next.voc rename to locale/gl-es/Next.voc diff --git a/vocab/gl-es/Now.voc b/locale/gl-es/Now.voc similarity index 100% rename from vocab/gl-es/Now.voc rename to locale/gl-es/Now.voc diff --git a/vocab/gl-es/Precipitation.voc b/locale/gl-es/Precipitation.voc similarity index 100% rename from vocab/gl-es/Precipitation.voc rename to locale/gl-es/Precipitation.voc diff --git a/vocab/gl-es/Query.voc b/locale/gl-es/Query.voc similarity index 100% rename from vocab/gl-es/Query.voc rename to locale/gl-es/Query.voc diff --git a/vocab/gl-es/RainAlternatives.voc b/locale/gl-es/RainAlternatives.voc similarity index 100% rename from vocab/gl-es/RainAlternatives.voc rename to locale/gl-es/RainAlternatives.voc diff --git a/vocab/gl-es/Raining.voc b/locale/gl-es/Raining.voc similarity index 100% rename from vocab/gl-es/Raining.voc rename to locale/gl-es/Raining.voc diff --git a/vocab/gl-es/RelativeDay.voc b/locale/gl-es/RelativeDay.voc similarity index 100% rename from vocab/gl-es/RelativeDay.voc rename to locale/gl-es/RelativeDay.voc diff --git a/vocab/gl-es/RelativeTime.voc b/locale/gl-es/RelativeTime.voc similarity index 100% rename from vocab/gl-es/RelativeTime.voc rename to locale/gl-es/RelativeTime.voc diff --git a/dialog/gl-es/S.dialog b/locale/gl-es/S.dialog similarity index 100% rename from dialog/gl-es/S.dialog rename to locale/gl-es/S.dialog diff --git a/dialog/gl-es/SE.dialog b/locale/gl-es/SE.dialog similarity index 100% rename from dialog/gl-es/SE.dialog rename to locale/gl-es/SE.dialog diff --git a/dialog/gl-es/SW.dialog b/locale/gl-es/SW.dialog similarity index 100% rename from dialog/gl-es/SW.dialog rename to locale/gl-es/SW.dialog diff --git a/vocab/gl-es/SnowAlternatives.voc b/locale/gl-es/SnowAlternatives.voc similarity index 100% rename from vocab/gl-es/SnowAlternatives.voc rename to locale/gl-es/SnowAlternatives.voc diff --git a/vocab/gl-es/Snowing.voc b/locale/gl-es/Snowing.voc similarity index 100% rename from vocab/gl-es/Snowing.voc rename to locale/gl-es/Snowing.voc diff --git a/vocab/gl-es/Storm.voc b/locale/gl-es/Storm.voc similarity index 100% rename from vocab/gl-es/Storm.voc rename to locale/gl-es/Storm.voc diff --git a/vocab/gl-es/StormAlternatives.voc b/locale/gl-es/StormAlternatives.voc similarity index 100% rename from vocab/gl-es/StormAlternatives.voc rename to locale/gl-es/StormAlternatives.voc diff --git a/vocab/gl-es/Sunrise.voc b/locale/gl-es/Sunrise.voc similarity index 100% rename from vocab/gl-es/Sunrise.voc rename to locale/gl-es/Sunrise.voc diff --git a/vocab/gl-es/Sunset.voc b/locale/gl-es/Sunset.voc similarity index 100% rename from vocab/gl-es/Sunset.voc rename to locale/gl-es/Sunset.voc diff --git a/vocab/gl-es/Temperature.voc b/locale/gl-es/Temperature.voc similarity index 100% rename from vocab/gl-es/Temperature.voc rename to locale/gl-es/Temperature.voc diff --git a/vocab/gl-es/ThreeDay.voc b/locale/gl-es/ThreeDay.voc similarity index 100% rename from vocab/gl-es/ThreeDay.voc rename to locale/gl-es/ThreeDay.voc diff --git a/vocab/gl-es/Today.voc b/locale/gl-es/Today.voc similarity index 100% rename from vocab/gl-es/Today.voc rename to locale/gl-es/Today.voc diff --git a/vocab/gl-es/Unit.entity b/locale/gl-es/Unit.entity similarity index 100% rename from vocab/gl-es/Unit.entity rename to locale/gl-es/Unit.entity diff --git a/vocab/gl-es/Unit.voc b/locale/gl-es/Unit.voc similarity index 100% rename from vocab/gl-es/Unit.voc rename to locale/gl-es/Unit.voc diff --git a/dialog/gl-es/W.dialog b/locale/gl-es/W.dialog similarity index 100% rename from dialog/gl-es/W.dialog rename to locale/gl-es/W.dialog diff --git a/vocab/gl-es/Weather.voc b/locale/gl-es/Weather.voc similarity index 100% rename from vocab/gl-es/Weather.voc rename to locale/gl-es/Weather.voc diff --git a/vocab/gl-es/WeatherType.voc b/locale/gl-es/WeatherType.voc similarity index 100% rename from vocab/gl-es/WeatherType.voc rename to locale/gl-es/WeatherType.voc diff --git a/vocab/gl-es/Week.voc b/locale/gl-es/Week.voc similarity index 100% rename from vocab/gl-es/Week.voc rename to locale/gl-es/Week.voc diff --git a/vocab/gl-es/Weekend.voc b/locale/gl-es/Weekend.voc similarity index 100% rename from vocab/gl-es/Weekend.voc rename to locale/gl-es/Weekend.voc diff --git a/vocab/gl-es/When.voc b/locale/gl-es/When.voc similarity index 100% rename from vocab/gl-es/When.voc rename to locale/gl-es/When.voc diff --git a/vocab/gl-es/Windy.voc b/locale/gl-es/Windy.voc similarity index 100% rename from vocab/gl-es/Windy.voc rename to locale/gl-es/Windy.voc diff --git a/dialog/gl-es/affirmative.condition.dialog b/locale/gl-es/affirmative.condition.dialog similarity index 100% rename from dialog/gl-es/affirmative.condition.dialog rename to locale/gl-es/affirmative.condition.dialog diff --git a/dialog/gl-es/and.dialog b/locale/gl-es/and.dialog similarity index 100% rename from dialog/gl-es/and.dialog rename to locale/gl-es/and.dialog diff --git a/dialog/gl-es/at.time.affirmative.condition.dialog b/locale/gl-es/at.time.affirmative.condition.dialog similarity index 100% rename from dialog/gl-es/at.time.affirmative.condition.dialog rename to locale/gl-es/at.time.affirmative.condition.dialog diff --git a/dialog/gl-es/at.time.cond.alternative.dialog b/locale/gl-es/at.time.cond.alternative.dialog similarity index 100% rename from dialog/gl-es/at.time.cond.alternative.dialog rename to locale/gl-es/at.time.cond.alternative.dialog diff --git a/dialog/gl-es/at.time.forecast.affirmative.condition.dialog b/locale/gl-es/at.time.forecast.affirmative.condition.dialog similarity index 100% rename from dialog/gl-es/at.time.forecast.affirmative.condition.dialog rename to locale/gl-es/at.time.forecast.affirmative.condition.dialog diff --git a/dialog/gl-es/at.time.forecast.cond.alternative.dialog b/locale/gl-es/at.time.forecast.cond.alternative.dialog similarity index 100% rename from dialog/gl-es/at.time.forecast.cond.alternative.dialog rename to locale/gl-es/at.time.forecast.cond.alternative.dialog diff --git a/dialog/gl-es/at.time.forecast.local.affirmative.condition.dialog b/locale/gl-es/at.time.forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/gl-es/at.time.forecast.local.affirmative.condition.dialog rename to locale/gl-es/at.time.forecast.local.affirmative.condition.dialog diff --git a/dialog/gl-es/at.time.forecast.local.cond.alternative.dialog b/locale/gl-es/at.time.forecast.local.cond.alternative.dialog similarity index 100% rename from dialog/gl-es/at.time.forecast.local.cond.alternative.dialog rename to locale/gl-es/at.time.forecast.local.cond.alternative.dialog diff --git a/dialog/gl-es/at.time.forecast.local.no.cond.predicted.dialog b/locale/gl-es/at.time.forecast.local.no.cond.predicted.dialog similarity index 100% rename from dialog/gl-es/at.time.forecast.local.no.cond.predicted.dialog rename to locale/gl-es/at.time.forecast.local.no.cond.predicted.dialog diff --git a/dialog/gl-es/at.time.forecast.no.cond.predicted.dialog b/locale/gl-es/at.time.forecast.no.cond.predicted.dialog similarity index 100% rename from dialog/gl-es/at.time.forecast.no.cond.predicted.dialog rename to locale/gl-es/at.time.forecast.no.cond.predicted.dialog diff --git a/dialog/gl-es/at.time.local.affirmative.condition.dialog b/locale/gl-es/at.time.local.affirmative.condition.dialog similarity index 100% rename from dialog/gl-es/at.time.local.affirmative.condition.dialog rename to locale/gl-es/at.time.local.affirmative.condition.dialog diff --git a/dialog/gl-es/at.time.local.cond.alternative.dialog b/locale/gl-es/at.time.local.cond.alternative.dialog similarity index 100% rename from dialog/gl-es/at.time.local.cond.alternative.dialog rename to locale/gl-es/at.time.local.cond.alternative.dialog diff --git a/dialog/gl-es/at.time.local.high.temperature.dialog b/locale/gl-es/at.time.local.high.temperature.dialog similarity index 100% rename from dialog/gl-es/at.time.local.high.temperature.dialog rename to locale/gl-es/at.time.local.high.temperature.dialog diff --git a/dialog/gl-es/at.time.local.low.temperature.dialog b/locale/gl-es/at.time.local.low.temperature.dialog similarity index 100% rename from dialog/gl-es/at.time.local.low.temperature.dialog rename to locale/gl-es/at.time.local.low.temperature.dialog diff --git a/dialog/gl-es/at.time.local.no.cond.predicted.dialog b/locale/gl-es/at.time.local.no.cond.predicted.dialog similarity index 100% rename from dialog/gl-es/at.time.local.no.cond.predicted.dialog rename to locale/gl-es/at.time.local.no.cond.predicted.dialog diff --git a/dialog/gl-es/at.time.local.temperature.dialog b/locale/gl-es/at.time.local.temperature.dialog similarity index 100% rename from dialog/gl-es/at.time.local.temperature.dialog rename to locale/gl-es/at.time.local.temperature.dialog diff --git a/dialog/gl-es/at.time.local.weather.dialog b/locale/gl-es/at.time.local.weather.dialog similarity index 100% rename from dialog/gl-es/at.time.local.weather.dialog rename to locale/gl-es/at.time.local.weather.dialog diff --git a/dialog/gl-es/at.time.no.cond.predicted.dialog b/locale/gl-es/at.time.no.cond.predicted.dialog similarity index 100% rename from dialog/gl-es/at.time.no.cond.predicted.dialog rename to locale/gl-es/at.time.no.cond.predicted.dialog diff --git a/dialog/gl-es/cant.get.forecast.dialog b/locale/gl-es/cant.get.forecast.dialog similarity index 100% rename from dialog/gl-es/cant.get.forecast.dialog rename to locale/gl-es/cant.get.forecast.dialog diff --git a/dialog/gl-es/celsius.dialog b/locale/gl-es/celsius.dialog similarity index 100% rename from dialog/gl-es/celsius.dialog rename to locale/gl-es/celsius.dialog diff --git a/dialog/gl-es/clear sky.dialog b/locale/gl-es/clear sky.dialog similarity index 100% rename from dialog/gl-es/clear sky.dialog rename to locale/gl-es/clear sky.dialog diff --git a/dialog/gl-es/clear.alternative.dialog b/locale/gl-es/clear.alternative.dialog similarity index 100% rename from dialog/gl-es/clear.alternative.dialog rename to locale/gl-es/clear.alternative.dialog diff --git a/dialog/gl-es/clear.dialog b/locale/gl-es/clear.dialog similarity index 100% rename from dialog/gl-es/clear.dialog rename to locale/gl-es/clear.dialog diff --git a/dialog/gl-es/clear.future.dialog b/locale/gl-es/clear.future.dialog similarity index 100% rename from dialog/gl-es/clear.future.dialog rename to locale/gl-es/clear.future.dialog diff --git a/dialog/gl-es/cloudy.alternative.dialog b/locale/gl-es/cloudy.alternative.dialog similarity index 100% rename from dialog/gl-es/cloudy.alternative.dialog rename to locale/gl-es/cloudy.alternative.dialog diff --git a/dialog/gl-es/condition.category.value b/locale/gl-es/condition.category.value similarity index 100% rename from dialog/gl-es/condition.category.value rename to locale/gl-es/condition.category.value diff --git a/dialog/gl-es/current.high.temperature.dialog b/locale/gl-es/current.high.temperature.dialog similarity index 100% rename from dialog/gl-es/current.high.temperature.dialog rename to locale/gl-es/current.high.temperature.dialog diff --git a/dialog/gl-es/current.hot.dialog b/locale/gl-es/current.hot.dialog similarity index 100% rename from dialog/gl-es/current.hot.dialog rename to locale/gl-es/current.hot.dialog diff --git a/dialog/gl-es/current.local.cold.dialog b/locale/gl-es/current.local.cold.dialog similarity index 100% rename from dialog/gl-es/current.local.cold.dialog rename to locale/gl-es/current.local.cold.dialog diff --git a/dialog/gl-es/current.local.high.temperature.dialog b/locale/gl-es/current.local.high.temperature.dialog similarity index 100% rename from dialog/gl-es/current.local.high.temperature.dialog rename to locale/gl-es/current.local.high.temperature.dialog diff --git a/dialog/gl-es/current.local.hot.dialog b/locale/gl-es/current.local.hot.dialog similarity index 100% rename from dialog/gl-es/current.local.hot.dialog rename to locale/gl-es/current.local.hot.dialog diff --git a/dialog/gl-es/current.local.low.temperature.dialog b/locale/gl-es/current.local.low.temperature.dialog similarity index 100% rename from dialog/gl-es/current.local.low.temperature.dialog rename to locale/gl-es/current.local.low.temperature.dialog diff --git a/dialog/gl-es/current.local.temperature.dialog b/locale/gl-es/current.local.temperature.dialog similarity index 100% rename from dialog/gl-es/current.local.temperature.dialog rename to locale/gl-es/current.local.temperature.dialog diff --git a/dialog/gl-es/current.local.weather.dialog b/locale/gl-es/current.local.weather.dialog similarity index 100% rename from dialog/gl-es/current.local.weather.dialog rename to locale/gl-es/current.local.weather.dialog diff --git a/dialog/gl-es/current.low.temperature.dialog b/locale/gl-es/current.low.temperature.dialog similarity index 100% rename from dialog/gl-es/current.low.temperature.dialog rename to locale/gl-es/current.low.temperature.dialog diff --git a/dialog/gl-es/current.temperature.dialog b/locale/gl-es/current.temperature.dialog similarity index 100% rename from dialog/gl-es/current.temperature.dialog rename to locale/gl-es/current.temperature.dialog diff --git a/dialog/gl-es/current.weather.dialog b/locale/gl-es/current.weather.dialog similarity index 100% rename from dialog/gl-es/current.weather.dialog rename to locale/gl-es/current.weather.dialog diff --git a/dialog/gl-es/do not know.dialog b/locale/gl-es/do not know.dialog similarity index 100% rename from dialog/gl-es/do not know.dialog rename to locale/gl-es/do not know.dialog diff --git a/vocab/gl-es/do.i.need.an.umbrella.intent b/locale/gl-es/do.i.need.an.umbrella.intent similarity index 100% rename from vocab/gl-es/do.i.need.an.umbrella.intent rename to locale/gl-es/do.i.need.an.umbrella.intent diff --git a/dialog/gl-es/fahrenheit.dialog b/locale/gl-es/fahrenheit.dialog similarity index 100% rename from dialog/gl-es/fahrenheit.dialog rename to locale/gl-es/fahrenheit.dialog diff --git a/dialog/gl-es/fog.alternative.dialog b/locale/gl-es/fog.alternative.dialog similarity index 100% rename from dialog/gl-es/fog.alternative.dialog rename to locale/gl-es/fog.alternative.dialog diff --git a/dialog/gl-es/forecast.affirmative.condition.dialog b/locale/gl-es/forecast.affirmative.condition.dialog similarity index 100% rename from dialog/gl-es/forecast.affirmative.condition.dialog rename to locale/gl-es/forecast.affirmative.condition.dialog diff --git a/dialog/gl-es/forecast.clear.alternative.dialog b/locale/gl-es/forecast.clear.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.clear.alternative.dialog rename to locale/gl-es/forecast.clear.alternative.dialog diff --git a/dialog/gl-es/forecast.cloudy.alternative.dialog b/locale/gl-es/forecast.cloudy.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.cloudy.alternative.dialog rename to locale/gl-es/forecast.cloudy.alternative.dialog diff --git a/dialog/gl-es/forecast.foggy.alternative.dialog b/locale/gl-es/forecast.foggy.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.foggy.alternative.dialog rename to locale/gl-es/forecast.foggy.alternative.dialog diff --git a/dialog/gl-es/forecast.hard.wind.dialog b/locale/gl-es/forecast.hard.wind.dialog similarity index 100% rename from dialog/gl-es/forecast.hard.wind.dialog rename to locale/gl-es/forecast.hard.wind.dialog diff --git a/dialog/gl-es/forecast.high.temperature.dialog b/locale/gl-es/forecast.high.temperature.dialog similarity index 100% rename from dialog/gl-es/forecast.high.temperature.dialog rename to locale/gl-es/forecast.high.temperature.dialog diff --git a/dialog/gl-es/forecast.hot.dialog b/locale/gl-es/forecast.hot.dialog similarity index 100% rename from dialog/gl-es/forecast.hot.dialog rename to locale/gl-es/forecast.hot.dialog diff --git a/dialog/gl-es/forecast.light.wind.dialog b/locale/gl-es/forecast.light.wind.dialog similarity index 100% rename from dialog/gl-es/forecast.light.wind.dialog rename to locale/gl-es/forecast.light.wind.dialog diff --git a/dialog/gl-es/forecast.local.affirmative.condition.dialog b/locale/gl-es/forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/gl-es/forecast.local.affirmative.condition.dialog rename to locale/gl-es/forecast.local.affirmative.condition.dialog diff --git a/dialog/gl-es/forecast.local.clear.alternative.dialog b/locale/gl-es/forecast.local.clear.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.local.clear.alternative.dialog rename to locale/gl-es/forecast.local.clear.alternative.dialog diff --git a/dialog/gl-es/forecast.local.cloudy.alternative.dialog b/locale/gl-es/forecast.local.cloudy.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.local.cloudy.alternative.dialog rename to locale/gl-es/forecast.local.cloudy.alternative.dialog diff --git a/dialog/gl-es/forecast.local.foggy.alternative.dialog b/locale/gl-es/forecast.local.foggy.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.local.foggy.alternative.dialog rename to locale/gl-es/forecast.local.foggy.alternative.dialog diff --git a/dialog/gl-es/forecast.local.hard.wind.dialog b/locale/gl-es/forecast.local.hard.wind.dialog similarity index 100% rename from dialog/gl-es/forecast.local.hard.wind.dialog rename to locale/gl-es/forecast.local.hard.wind.dialog diff --git a/dialog/gl-es/forecast.local.high.temperature.dialog b/locale/gl-es/forecast.local.high.temperature.dialog similarity index 100% rename from dialog/gl-es/forecast.local.high.temperature.dialog rename to locale/gl-es/forecast.local.high.temperature.dialog diff --git a/dialog/gl-es/forecast.local.hot.dialog b/locale/gl-es/forecast.local.hot.dialog similarity index 100% rename from dialog/gl-es/forecast.local.hot.dialog rename to locale/gl-es/forecast.local.hot.dialog diff --git a/dialog/gl-es/forecast.local.light.wind.dialog b/locale/gl-es/forecast.local.light.wind.dialog similarity index 100% rename from dialog/gl-es/forecast.local.light.wind.dialog rename to locale/gl-es/forecast.local.light.wind.dialog diff --git a/dialog/gl-es/forecast.local.low.temperature.dialog b/locale/gl-es/forecast.local.low.temperature.dialog similarity index 100% rename from dialog/gl-es/forecast.local.low.temperature.dialog rename to locale/gl-es/forecast.local.low.temperature.dialog diff --git a/dialog/gl-es/forecast.local.medium.wind.dialog b/locale/gl-es/forecast.local.medium.wind.dialog similarity index 100% rename from dialog/gl-es/forecast.local.medium.wind.dialog rename to locale/gl-es/forecast.local.medium.wind.dialog diff --git a/dialog/gl-es/forecast.local.no.clear.predicted.dialog b/locale/gl-es/forecast.local.no.clear.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.local.no.clear.predicted.dialog rename to locale/gl-es/forecast.local.no.clear.predicted.dialog diff --git a/dialog/gl-es/forecast.local.no.cloudy.predicted.dialog b/locale/gl-es/forecast.local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.local.no.cloudy.predicted.dialog rename to locale/gl-es/forecast.local.no.cloudy.predicted.dialog diff --git a/dialog/gl-es/forecast.local.no.fog.predicted.dialog b/locale/gl-es/forecast.local.no.fog.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.local.no.fog.predicted.dialog rename to locale/gl-es/forecast.local.no.fog.predicted.dialog diff --git a/dialog/gl-es/forecast.local.no.rain.predicted.dialog b/locale/gl-es/forecast.local.no.rain.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.local.no.rain.predicted.dialog rename to locale/gl-es/forecast.local.no.rain.predicted.dialog diff --git a/dialog/gl-es/forecast.local.no.snow.predicted.dialog b/locale/gl-es/forecast.local.no.snow.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.local.no.snow.predicted.dialog rename to locale/gl-es/forecast.local.no.snow.predicted.dialog diff --git a/dialog/gl-es/forecast.local.no.storm.predicted.dialog b/locale/gl-es/forecast.local.no.storm.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.local.no.storm.predicted.dialog rename to locale/gl-es/forecast.local.no.storm.predicted.dialog diff --git a/dialog/gl-es/forecast.local.raining.alternative.dialog b/locale/gl-es/forecast.local.raining.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.local.raining.alternative.dialog rename to locale/gl-es/forecast.local.raining.alternative.dialog diff --git a/dialog/gl-es/forecast.local.storm.alternative.dialog b/locale/gl-es/forecast.local.storm.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.local.storm.alternative.dialog rename to locale/gl-es/forecast.local.storm.alternative.dialog diff --git a/dialog/gl-es/forecast.local.temperature.dialog b/locale/gl-es/forecast.local.temperature.dialog similarity index 100% rename from dialog/gl-es/forecast.local.temperature.dialog rename to locale/gl-es/forecast.local.temperature.dialog diff --git a/dialog/gl-es/forecast.local.weather.dialog b/locale/gl-es/forecast.local.weather.dialog similarity index 100% rename from dialog/gl-es/forecast.local.weather.dialog rename to locale/gl-es/forecast.local.weather.dialog diff --git a/dialog/gl-es/forecast.low.temperature.dialog b/locale/gl-es/forecast.low.temperature.dialog similarity index 100% rename from dialog/gl-es/forecast.low.temperature.dialog rename to locale/gl-es/forecast.low.temperature.dialog diff --git a/dialog/gl-es/forecast.medium.wind.dialog b/locale/gl-es/forecast.medium.wind.dialog similarity index 100% rename from dialog/gl-es/forecast.medium.wind.dialog rename to locale/gl-es/forecast.medium.wind.dialog diff --git a/dialog/gl-es/forecast.no.clear.predicted.dialog b/locale/gl-es/forecast.no.clear.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.no.clear.predicted.dialog rename to locale/gl-es/forecast.no.clear.predicted.dialog diff --git a/dialog/gl-es/forecast.no.cloudy.predicted.dialog b/locale/gl-es/forecast.no.cloudy.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.no.cloudy.predicted.dialog rename to locale/gl-es/forecast.no.cloudy.predicted.dialog diff --git a/dialog/gl-es/forecast.no.fog.predicted.dialog b/locale/gl-es/forecast.no.fog.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.no.fog.predicted.dialog rename to locale/gl-es/forecast.no.fog.predicted.dialog diff --git a/dialog/gl-es/forecast.no.rain.predicted.dialog b/locale/gl-es/forecast.no.rain.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.no.rain.predicted.dialog rename to locale/gl-es/forecast.no.rain.predicted.dialog diff --git a/dialog/gl-es/forecast.no.snow.predicted.dialog b/locale/gl-es/forecast.no.snow.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.no.snow.predicted.dialog rename to locale/gl-es/forecast.no.snow.predicted.dialog diff --git a/dialog/gl-es/forecast.no.storm.predicted.dialog b/locale/gl-es/forecast.no.storm.predicted.dialog similarity index 100% rename from dialog/gl-es/forecast.no.storm.predicted.dialog rename to locale/gl-es/forecast.no.storm.predicted.dialog diff --git a/dialog/gl-es/forecast.raining.alternative.dialog b/locale/gl-es/forecast.raining.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.raining.alternative.dialog rename to locale/gl-es/forecast.raining.alternative.dialog diff --git a/dialog/gl-es/forecast.snowing.alternative.dialog b/locale/gl-es/forecast.snowing.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.snowing.alternative.dialog rename to locale/gl-es/forecast.snowing.alternative.dialog diff --git a/dialog/gl-es/forecast.storm.alternative.dialog b/locale/gl-es/forecast.storm.alternative.dialog similarity index 100% rename from dialog/gl-es/forecast.storm.alternative.dialog rename to locale/gl-es/forecast.storm.alternative.dialog diff --git a/dialog/gl-es/forecast.temperature.dialog b/locale/gl-es/forecast.temperature.dialog similarity index 100% rename from dialog/gl-es/forecast.temperature.dialog rename to locale/gl-es/forecast.temperature.dialog diff --git a/dialog/gl-es/forecast.weather.dialog b/locale/gl-es/forecast.weather.dialog similarity index 100% rename from dialog/gl-es/forecast.weather.dialog rename to locale/gl-es/forecast.weather.dialog diff --git a/dialog/gl-es/from.day.dialog b/locale/gl-es/from.day.dialog similarity index 100% rename from dialog/gl-es/from.day.dialog rename to locale/gl-es/from.day.dialog diff --git a/dialog/gl-es/hard.wind.dialog b/locale/gl-es/hard.wind.dialog similarity index 100% rename from dialog/gl-es/hard.wind.dialog rename to locale/gl-es/hard.wind.dialog diff --git a/dialog/gl-es/heavy.dialog b/locale/gl-es/heavy.dialog similarity index 100% rename from dialog/gl-es/heavy.dialog rename to locale/gl-es/heavy.dialog diff --git a/dialog/gl-es/hour.local.weather.dialog b/locale/gl-es/hour.local.weather.dialog similarity index 100% rename from dialog/gl-es/hour.local.weather.dialog rename to locale/gl-es/hour.local.weather.dialog diff --git a/dialog/gl-es/hour.weather.dialog b/locale/gl-es/hour.weather.dialog similarity index 100% rename from dialog/gl-es/hour.weather.dialog rename to locale/gl-es/hour.weather.dialog diff --git a/dialog/gl-es/humidity.dialog b/locale/gl-es/humidity.dialog similarity index 100% rename from dialog/gl-es/humidity.dialog rename to locale/gl-es/humidity.dialog diff --git a/dialog/gl-es/light.dialog b/locale/gl-es/light.dialog similarity index 100% rename from dialog/gl-es/light.dialog rename to locale/gl-es/light.dialog diff --git a/dialog/gl-es/light.wind.dialog b/locale/gl-es/light.wind.dialog similarity index 100% rename from dialog/gl-es/light.wind.dialog rename to locale/gl-es/light.wind.dialog diff --git a/dialog/gl-es/local.affirmative.condition.dialog b/locale/gl-es/local.affirmative.condition.dialog similarity index 100% rename from dialog/gl-es/local.affirmative.condition.dialog rename to locale/gl-es/local.affirmative.condition.dialog diff --git a/dialog/gl-es/local.clear.alternative.dialog b/locale/gl-es/local.clear.alternative.dialog similarity index 100% rename from dialog/gl-es/local.clear.alternative.dialog rename to locale/gl-es/local.clear.alternative.dialog diff --git a/dialog/gl-es/local.cloudy.alternative.dialog b/locale/gl-es/local.cloudy.alternative.dialog similarity index 100% rename from dialog/gl-es/local.cloudy.alternative.dialog rename to locale/gl-es/local.cloudy.alternative.dialog diff --git a/dialog/gl-es/local.foggy.alternative.dialog b/locale/gl-es/local.foggy.alternative.dialog similarity index 100% rename from dialog/gl-es/local.foggy.alternative.dialog rename to locale/gl-es/local.foggy.alternative.dialog diff --git a/dialog/gl-es/local.hard.wind.dialog b/locale/gl-es/local.hard.wind.dialog similarity index 100% rename from dialog/gl-es/local.hard.wind.dialog rename to locale/gl-es/local.hard.wind.dialog diff --git a/dialog/gl-es/local.light.wind.dialog b/locale/gl-es/local.light.wind.dialog similarity index 100% rename from dialog/gl-es/local.light.wind.dialog rename to locale/gl-es/local.light.wind.dialog diff --git a/dialog/gl-es/local.medium.wind.dialog b/locale/gl-es/local.medium.wind.dialog similarity index 100% rename from dialog/gl-es/local.medium.wind.dialog rename to locale/gl-es/local.medium.wind.dialog diff --git a/dialog/gl-es/local.no.cloudy.predicted.dialog b/locale/gl-es/local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/gl-es/local.no.cloudy.predicted.dialog rename to locale/gl-es/local.no.cloudy.predicted.dialog diff --git a/dialog/gl-es/local.no.fog.predicted.dialog b/locale/gl-es/local.no.fog.predicted.dialog similarity index 100% rename from dialog/gl-es/local.no.fog.predicted.dialog rename to locale/gl-es/local.no.fog.predicted.dialog diff --git a/dialog/gl-es/local.no.rain.predicted.dialog b/locale/gl-es/local.no.rain.predicted.dialog similarity index 100% rename from dialog/gl-es/local.no.rain.predicted.dialog rename to locale/gl-es/local.no.rain.predicted.dialog diff --git a/dialog/gl-es/local.no.snow.predicted.dialog b/locale/gl-es/local.no.snow.predicted.dialog similarity index 100% rename from dialog/gl-es/local.no.snow.predicted.dialog rename to locale/gl-es/local.no.snow.predicted.dialog diff --git a/dialog/gl-es/local.no.storm.predicted.dialog b/locale/gl-es/local.no.storm.predicted.dialog similarity index 100% rename from dialog/gl-es/local.no.storm.predicted.dialog rename to locale/gl-es/local.no.storm.predicted.dialog diff --git a/dialog/gl-es/local.raining.alternative.dialog b/locale/gl-es/local.raining.alternative.dialog similarity index 100% rename from dialog/gl-es/local.raining.alternative.dialog rename to locale/gl-es/local.raining.alternative.dialog diff --git a/dialog/gl-es/local.snowing.alternative.dialog b/locale/gl-es/local.snowing.alternative.dialog similarity index 100% rename from dialog/gl-es/local.snowing.alternative.dialog rename to locale/gl-es/local.snowing.alternative.dialog diff --git a/dialog/gl-es/local.storm.alternative.dialog b/locale/gl-es/local.storm.alternative.dialog similarity index 100% rename from dialog/gl-es/local.storm.alternative.dialog rename to locale/gl-es/local.storm.alternative.dialog diff --git a/dialog/gl-es/location.not.found.dialog b/locale/gl-es/location.not.found.dialog similarity index 100% rename from dialog/gl-es/location.not.found.dialog rename to locale/gl-es/location.not.found.dialog diff --git a/regex/gl-es/location.rx b/locale/gl-es/location.rx similarity index 100% rename from regex/gl-es/location.rx rename to locale/gl-es/location.rx diff --git a/dialog/gl-es/medium.wind.dialog b/locale/gl-es/medium.wind.dialog similarity index 100% rename from dialog/gl-es/medium.wind.dialog rename to locale/gl-es/medium.wind.dialog diff --git a/dialog/gl-es/meters per second.dialog b/locale/gl-es/meters per second.dialog similarity index 100% rename from dialog/gl-es/meters per second.dialog rename to locale/gl-es/meters per second.dialog diff --git a/dialog/gl-es/miles per hour.dialog b/locale/gl-es/miles per hour.dialog similarity index 100% rename from dialog/gl-es/miles per hour.dialog rename to locale/gl-es/miles per hour.dialog diff --git a/dialog/gl-es/min.max.dialog b/locale/gl-es/min.max.dialog similarity index 100% rename from dialog/gl-es/min.max.dialog rename to locale/gl-es/min.max.dialog diff --git a/dialog/gl-es/no precipitation expected.dialog b/locale/gl-es/no precipitation expected.dialog similarity index 100% rename from dialog/gl-es/no precipitation expected.dialog rename to locale/gl-es/no precipitation expected.dialog diff --git a/dialog/gl-es/no.clear.predicted.dialog b/locale/gl-es/no.clear.predicted.dialog similarity index 100% rename from dialog/gl-es/no.clear.predicted.dialog rename to locale/gl-es/no.clear.predicted.dialog diff --git a/dialog/gl-es/no.cloudy.predicted.dialog b/locale/gl-es/no.cloudy.predicted.dialog similarity index 100% rename from dialog/gl-es/no.cloudy.predicted.dialog rename to locale/gl-es/no.cloudy.predicted.dialog diff --git a/dialog/gl-es/no.fog.predicted.dialog b/locale/gl-es/no.fog.predicted.dialog similarity index 100% rename from dialog/gl-es/no.fog.predicted.dialog rename to locale/gl-es/no.fog.predicted.dialog diff --git a/dialog/gl-es/no.forecast.dialog b/locale/gl-es/no.forecast.dialog similarity index 100% rename from dialog/gl-es/no.forecast.dialog rename to locale/gl-es/no.forecast.dialog diff --git a/dialog/gl-es/no.rain.predicted.dialog b/locale/gl-es/no.rain.predicted.dialog similarity index 100% rename from dialog/gl-es/no.rain.predicted.dialog rename to locale/gl-es/no.rain.predicted.dialog diff --git a/dialog/gl-es/no.snow.predicted.dialog b/locale/gl-es/no.snow.predicted.dialog similarity index 100% rename from dialog/gl-es/no.snow.predicted.dialog rename to locale/gl-es/no.snow.predicted.dialog diff --git a/dialog/gl-es/no.storm.predicted.dialog b/locale/gl-es/no.storm.predicted.dialog similarity index 100% rename from dialog/gl-es/no.storm.predicted.dialog rename to locale/gl-es/no.storm.predicted.dialog diff --git a/dialog/gl-es/on.date.dialog b/locale/gl-es/on.date.dialog similarity index 100% rename from dialog/gl-es/on.date.dialog rename to locale/gl-es/on.date.dialog diff --git a/dialog/gl-es/on.dialog b/locale/gl-es/on.dialog similarity index 100% rename from dialog/gl-es/on.dialog rename to locale/gl-es/on.dialog diff --git a/dialog/gl-es/percentage.number.dialog b/locale/gl-es/percentage.number.dialog similarity index 100% rename from dialog/gl-es/percentage.number.dialog rename to locale/gl-es/percentage.number.dialog diff --git a/dialog/gl-es/precipitation expected.dialog b/locale/gl-es/precipitation expected.dialog similarity index 100% rename from dialog/gl-es/precipitation expected.dialog rename to locale/gl-es/precipitation expected.dialog diff --git a/dialog/gl-es/rain.dialog b/locale/gl-es/rain.dialog similarity index 100% rename from dialog/gl-es/rain.dialog rename to locale/gl-es/rain.dialog diff --git a/dialog/gl-es/raining.alternative.dialog b/locale/gl-es/raining.alternative.dialog similarity index 100% rename from dialog/gl-es/raining.alternative.dialog rename to locale/gl-es/raining.alternative.dialog diff --git a/dialog/gl-es/report.condition.at.location.dialog b/locale/gl-es/report.condition.at.location.dialog similarity index 100% rename from dialog/gl-es/report.condition.at.location.dialog rename to locale/gl-es/report.condition.at.location.dialog diff --git a/dialog/gl-es/report.condition.dialog b/locale/gl-es/report.condition.dialog similarity index 100% rename from dialog/gl-es/report.condition.dialog rename to locale/gl-es/report.condition.dialog diff --git a/dialog/gl-es/report.condition.future.at.location.dialog b/locale/gl-es/report.condition.future.at.location.dialog similarity index 100% rename from dialog/gl-es/report.condition.future.at.location.dialog rename to locale/gl-es/report.condition.future.at.location.dialog diff --git a/dialog/gl-es/report.condition.future.dialog b/locale/gl-es/report.condition.future.dialog similarity index 100% rename from dialog/gl-es/report.condition.future.dialog rename to locale/gl-es/report.condition.future.dialog diff --git a/dialog/gl-es/report.wind.dialog b/locale/gl-es/report.wind.dialog similarity index 100% rename from dialog/gl-es/report.wind.dialog rename to locale/gl-es/report.wind.dialog diff --git a/vocab/gl-es/simple.temperature.intent b/locale/gl-es/simple.temperature.intent similarity index 100% rename from vocab/gl-es/simple.temperature.intent rename to locale/gl-es/simple.temperature.intent diff --git a/dialog/gl-es/sky is clear.future.dialog b/locale/gl-es/sky is clear.future.dialog similarity index 100% rename from dialog/gl-es/sky is clear.future.dialog rename to locale/gl-es/sky is clear.future.dialog diff --git a/dialog/gl-es/snow.dialog b/locale/gl-es/snow.dialog similarity index 100% rename from dialog/gl-es/snow.dialog rename to locale/gl-es/snow.dialog diff --git a/dialog/gl-es/snowing.alternative.dialog b/locale/gl-es/snowing.alternative.dialog similarity index 100% rename from dialog/gl-es/snowing.alternative.dialog rename to locale/gl-es/snowing.alternative.dialog diff --git a/dialog/gl-es/storm.alternative.dialog b/locale/gl-es/storm.alternative.dialog similarity index 100% rename from dialog/gl-es/storm.alternative.dialog rename to locale/gl-es/storm.alternative.dialog diff --git a/dialog/gl-es/storm.dialog b/locale/gl-es/storm.dialog similarity index 100% rename from dialog/gl-es/storm.dialog rename to locale/gl-es/storm.dialog diff --git a/dialog/gl-es/sunrise.dialog b/locale/gl-es/sunrise.dialog similarity index 100% rename from dialog/gl-es/sunrise.dialog rename to locale/gl-es/sunrise.dialog diff --git a/dialog/gl-es/sunset.dialog b/locale/gl-es/sunset.dialog similarity index 100% rename from dialog/gl-es/sunset.dialog rename to locale/gl-es/sunset.dialog diff --git a/dialog/gl-es/tonight.local.weather.dialog b/locale/gl-es/tonight.local.weather.dialog similarity index 100% rename from dialog/gl-es/tonight.local.weather.dialog rename to locale/gl-es/tonight.local.weather.dialog diff --git a/dialog/gl-es/weekly.condition.on.day.dialog b/locale/gl-es/weekly.condition.on.day.dialog similarity index 100% rename from dialog/gl-es/weekly.condition.on.day.dialog rename to locale/gl-es/weekly.condition.on.day.dialog diff --git a/dialog/gl-es/weekly.conditions.mostly.one.dialog b/locale/gl-es/weekly.conditions.mostly.one.dialog similarity index 100% rename from dialog/gl-es/weekly.conditions.mostly.one.dialog rename to locale/gl-es/weekly.conditions.mostly.one.dialog diff --git a/dialog/gl-es/weekly.conditions.seq.extra.dialog b/locale/gl-es/weekly.conditions.seq.extra.dialog similarity index 100% rename from dialog/gl-es/weekly.conditions.seq.extra.dialog rename to locale/gl-es/weekly.conditions.seq.extra.dialog diff --git a/dialog/gl-es/weekly.conditions.seq.period.dialog b/locale/gl-es/weekly.conditions.seq.period.dialog similarity index 100% rename from dialog/gl-es/weekly.conditions.seq.period.dialog rename to locale/gl-es/weekly.conditions.seq.period.dialog diff --git a/dialog/gl-es/weekly.conditions.seq.start.dialog b/locale/gl-es/weekly.conditions.seq.start.dialog similarity index 100% rename from dialog/gl-es/weekly.conditions.seq.start.dialog rename to locale/gl-es/weekly.conditions.seq.start.dialog diff --git a/dialog/gl-es/weekly.conditions.some.days.dialog b/locale/gl-es/weekly.conditions.some.days.dialog similarity index 100% rename from dialog/gl-es/weekly.conditions.some.days.dialog rename to locale/gl-es/weekly.conditions.some.days.dialog diff --git a/dialog/gl-es/weekly.temp.range.dialog b/locale/gl-es/weekly.temp.range.dialog similarity index 100% rename from dialog/gl-es/weekly.temp.range.dialog rename to locale/gl-es/weekly.temp.range.dialog diff --git a/vocab/gl-es/what.is.multi.day.forecast.intent b/locale/gl-es/what.is.multi.day.forecast.intent similarity index 100% rename from vocab/gl-es/what.is.multi.day.forecast.intent rename to locale/gl-es/what.is.multi.day.forecast.intent diff --git a/vocab/gl-es/what.is.three.day.forecast.intent b/locale/gl-es/what.is.three.day.forecast.intent similarity index 100% rename from vocab/gl-es/what.is.three.day.forecast.intent rename to locale/gl-es/what.is.three.day.forecast.intent diff --git a/vocab/gl-es/what.is.three.day.forecast.location.intent b/locale/gl-es/what.is.three.day.forecast.location.intent similarity index 100% rename from vocab/gl-es/what.is.three.day.forecast.location.intent rename to locale/gl-es/what.is.three.day.forecast.location.intent diff --git a/vocab/gl-es/what.is.two.day.forecast.intent b/locale/gl-es/what.is.two.day.forecast.intent similarity index 100% rename from vocab/gl-es/what.is.two.day.forecast.intent rename to locale/gl-es/what.is.two.day.forecast.intent diff --git a/vocab/gl-es/whats.weather.like.intent b/locale/gl-es/whats.weather.like.intent similarity index 100% rename from vocab/gl-es/whats.weather.like.intent rename to locale/gl-es/whats.weather.like.intent diff --git a/dialog/gl-es/wind.speed.dialog b/locale/gl-es/wind.speed.dialog similarity index 100% rename from dialog/gl-es/wind.speed.dialog rename to locale/gl-es/wind.speed.dialog diff --git a/dialog/gl-es/wind.speed.dir.dialog b/locale/gl-es/wind.speed.dir.dialog similarity index 100% rename from dialog/gl-es/wind.speed.dir.dialog rename to locale/gl-es/wind.speed.dir.dialog diff --git a/dialog/gl-es/wind.strength.hard.dialog b/locale/gl-es/wind.strength.hard.dialog similarity index 100% rename from dialog/gl-es/wind.strength.hard.dialog rename to locale/gl-es/wind.strength.hard.dialog diff --git a/dialog/gl-es/wind.strength.light.dialog b/locale/gl-es/wind.strength.light.dialog similarity index 100% rename from dialog/gl-es/wind.strength.light.dialog rename to locale/gl-es/wind.strength.light.dialog diff --git a/dialog/gl-es/wind.strength.medium.dialog b/locale/gl-es/wind.strength.medium.dialog similarity index 100% rename from dialog/gl-es/wind.strength.medium.dialog rename to locale/gl-es/wind.strength.medium.dialog diff --git a/dialog/gl-es/winds.dialog b/locale/gl-es/winds.dialog similarity index 100% rename from dialog/gl-es/winds.dialog rename to locale/gl-es/winds.dialog diff --git a/vocab/it-it/Clear.voc b/locale/it-it/Clear.voc similarity index 100% rename from vocab/it-it/Clear.voc rename to locale/it-it/Clear.voc diff --git a/vocab/it-it/ClearAlternatives.voc b/locale/it-it/ClearAlternatives.voc similarity index 100% rename from vocab/it-it/ClearAlternatives.voc rename to locale/it-it/ClearAlternatives.voc diff --git a/vocab/it-it/Cloudy.voc b/locale/it-it/Cloudy.voc similarity index 100% rename from vocab/it-it/Cloudy.voc rename to locale/it-it/Cloudy.voc diff --git a/vocab/it-it/CloudyAlternatives.voc b/locale/it-it/CloudyAlternatives.voc similarity index 100% rename from vocab/it-it/CloudyAlternatives.voc rename to locale/it-it/CloudyAlternatives.voc diff --git a/vocab/it-it/Cold.voc b/locale/it-it/Cold.voc similarity index 100% rename from vocab/it-it/Cold.voc rename to locale/it-it/Cold.voc diff --git a/vocab/it-it/ConfirmQuery.voc b/locale/it-it/ConfirmQuery.voc similarity index 100% rename from vocab/it-it/ConfirmQuery.voc rename to locale/it-it/ConfirmQuery.voc diff --git a/dialog/it-it/E.dialog b/locale/it-it/E.dialog similarity index 100% rename from dialog/it-it/E.dialog rename to locale/it-it/E.dialog diff --git a/vocab/it-it/Fahrenheit.voc b/locale/it-it/Fahrenheit.voc similarity index 100% rename from vocab/it-it/Fahrenheit.voc rename to locale/it-it/Fahrenheit.voc diff --git a/vocab/it-it/Foggy.voc b/locale/it-it/Foggy.voc similarity index 100% rename from vocab/it-it/Foggy.voc rename to locale/it-it/Foggy.voc diff --git a/vocab/it-it/FoggyAlternatives.voc b/locale/it-it/FoggyAlternatives.voc similarity index 100% rename from vocab/it-it/FoggyAlternatives.voc rename to locale/it-it/FoggyAlternatives.voc diff --git a/vocab/it-it/Forecast.voc b/locale/it-it/Forecast.voc similarity index 100% rename from vocab/it-it/Forecast.voc rename to locale/it-it/Forecast.voc diff --git a/vocab/it-it/High.voc b/locale/it-it/High.voc similarity index 100% rename from vocab/it-it/High.voc rename to locale/it-it/High.voc diff --git a/vocab/it-it/Hot.voc b/locale/it-it/Hot.voc similarity index 100% rename from vocab/it-it/Hot.voc rename to locale/it-it/Hot.voc diff --git a/vocab/it-it/Humidity.voc b/locale/it-it/Humidity.voc similarity index 100% rename from vocab/it-it/Humidity.voc rename to locale/it-it/Humidity.voc diff --git a/vocab/it-it/Later.voc b/locale/it-it/Later.voc similarity index 100% rename from vocab/it-it/Later.voc rename to locale/it-it/Later.voc diff --git a/vocab/it-it/Location.voc b/locale/it-it/Location.voc similarity index 100% rename from vocab/it-it/Location.voc rename to locale/it-it/Location.voc diff --git a/vocab/it-it/Low.voc b/locale/it-it/Low.voc similarity index 100% rename from vocab/it-it/Low.voc rename to locale/it-it/Low.voc diff --git a/dialog/it-it/N.dialog b/locale/it-it/N.dialog similarity index 100% rename from dialog/it-it/N.dialog rename to locale/it-it/N.dialog diff --git a/dialog/it-it/NE.dialog b/locale/it-it/NE.dialog similarity index 100% rename from dialog/it-it/NE.dialog rename to locale/it-it/NE.dialog diff --git a/dialog/it-it/NW.dialog b/locale/it-it/NW.dialog similarity index 100% rename from dialog/it-it/NW.dialog rename to locale/it-it/NW.dialog diff --git a/vocab/it-it/Next.voc b/locale/it-it/Next.voc similarity index 100% rename from vocab/it-it/Next.voc rename to locale/it-it/Next.voc diff --git a/vocab/it-it/Precipitation.voc b/locale/it-it/Precipitation.voc similarity index 100% rename from vocab/it-it/Precipitation.voc rename to locale/it-it/Precipitation.voc diff --git a/vocab/it-it/Query.voc b/locale/it-it/Query.voc similarity index 100% rename from vocab/it-it/Query.voc rename to locale/it-it/Query.voc diff --git a/vocab/it-it/RainAlternatives.voc b/locale/it-it/RainAlternatives.voc similarity index 100% rename from vocab/it-it/RainAlternatives.voc rename to locale/it-it/RainAlternatives.voc diff --git a/vocab/it-it/Raining.voc b/locale/it-it/Raining.voc similarity index 100% rename from vocab/it-it/Raining.voc rename to locale/it-it/Raining.voc diff --git a/dialog/it-it/S.dialog b/locale/it-it/S.dialog similarity index 100% rename from dialog/it-it/S.dialog rename to locale/it-it/S.dialog diff --git a/dialog/it-it/SE.dialog b/locale/it-it/SE.dialog similarity index 100% rename from dialog/it-it/SE.dialog rename to locale/it-it/SE.dialog diff --git a/dialog/it-it/SW.dialog b/locale/it-it/SW.dialog similarity index 100% rename from dialog/it-it/SW.dialog rename to locale/it-it/SW.dialog diff --git a/vocab/it-it/SnowAlternatives.voc b/locale/it-it/SnowAlternatives.voc similarity index 100% rename from vocab/it-it/SnowAlternatives.voc rename to locale/it-it/SnowAlternatives.voc diff --git a/vocab/it-it/Snowing.voc b/locale/it-it/Snowing.voc similarity index 100% rename from vocab/it-it/Snowing.voc rename to locale/it-it/Snowing.voc diff --git a/vocab/it-it/Sunrise.voc b/locale/it-it/Sunrise.voc similarity index 100% rename from vocab/it-it/Sunrise.voc rename to locale/it-it/Sunrise.voc diff --git a/vocab/it-it/Sunset.voc b/locale/it-it/Sunset.voc similarity index 100% rename from vocab/it-it/Sunset.voc rename to locale/it-it/Sunset.voc diff --git a/vocab/it-it/Temperature.voc b/locale/it-it/Temperature.voc similarity index 100% rename from vocab/it-it/Temperature.voc rename to locale/it-it/Temperature.voc diff --git a/vocab/it-it/Unit.entity b/locale/it-it/Unit.entity similarity index 100% rename from vocab/it-it/Unit.entity rename to locale/it-it/Unit.entity diff --git a/vocab/it-it/Unit.voc b/locale/it-it/Unit.voc similarity index 100% rename from vocab/it-it/Unit.voc rename to locale/it-it/Unit.voc diff --git a/dialog/it-it/W.dialog b/locale/it-it/W.dialog similarity index 100% rename from dialog/it-it/W.dialog rename to locale/it-it/W.dialog diff --git a/vocab/it-it/Weather.voc b/locale/it-it/Weather.voc similarity index 100% rename from vocab/it-it/Weather.voc rename to locale/it-it/Weather.voc diff --git a/vocab/it-it/WeatherType.voc b/locale/it-it/WeatherType.voc similarity index 100% rename from vocab/it-it/WeatherType.voc rename to locale/it-it/WeatherType.voc diff --git a/vocab/it-it/Weekend.voc b/locale/it-it/Weekend.voc similarity index 100% rename from vocab/it-it/Weekend.voc rename to locale/it-it/Weekend.voc diff --git a/vocab/it-it/Windy.voc b/locale/it-it/Windy.voc similarity index 100% rename from vocab/it-it/Windy.voc rename to locale/it-it/Windy.voc diff --git a/dialog/it-it/affirmative.condition.dialog b/locale/it-it/affirmative.condition.dialog similarity index 100% rename from dialog/it-it/affirmative.condition.dialog rename to locale/it-it/affirmative.condition.dialog diff --git a/dialog/it-it/celsius.dialog b/locale/it-it/celsius.dialog similarity index 100% rename from dialog/it-it/celsius.dialog rename to locale/it-it/celsius.dialog diff --git a/dialog/it-it/clear.alternative.dialog b/locale/it-it/clear.alternative.dialog similarity index 100% rename from dialog/it-it/clear.alternative.dialog rename to locale/it-it/clear.alternative.dialog diff --git a/dialog/it-it/cloudy.alternative.dialog b/locale/it-it/cloudy.alternative.dialog similarity index 100% rename from dialog/it-it/cloudy.alternative.dialog rename to locale/it-it/cloudy.alternative.dialog diff --git a/dialog/it-it/current.high.temperature.dialog b/locale/it-it/current.high.temperature.dialog similarity index 100% rename from dialog/it-it/current.high.temperature.dialog rename to locale/it-it/current.high.temperature.dialog diff --git a/dialog/it-it/current.hot.dialog b/locale/it-it/current.hot.dialog similarity index 100% rename from dialog/it-it/current.hot.dialog rename to locale/it-it/current.hot.dialog diff --git a/dialog/it-it/current.local.cold.dialog b/locale/it-it/current.local.cold.dialog similarity index 100% rename from dialog/it-it/current.local.cold.dialog rename to locale/it-it/current.local.cold.dialog diff --git a/dialog/it-it/current.local.high.temperature.dialog b/locale/it-it/current.local.high.temperature.dialog similarity index 100% rename from dialog/it-it/current.local.high.temperature.dialog rename to locale/it-it/current.local.high.temperature.dialog diff --git a/dialog/it-it/current.local.hot.dialog b/locale/it-it/current.local.hot.dialog similarity index 100% rename from dialog/it-it/current.local.hot.dialog rename to locale/it-it/current.local.hot.dialog diff --git a/dialog/it-it/current.local.low.temperature.dialog b/locale/it-it/current.local.low.temperature.dialog similarity index 100% rename from dialog/it-it/current.local.low.temperature.dialog rename to locale/it-it/current.local.low.temperature.dialog diff --git a/dialog/it-it/current.local.temperature.dialog b/locale/it-it/current.local.temperature.dialog similarity index 100% rename from dialog/it-it/current.local.temperature.dialog rename to locale/it-it/current.local.temperature.dialog diff --git a/dialog/it-it/current.local.weather.dialog b/locale/it-it/current.local.weather.dialog similarity index 100% rename from dialog/it-it/current.local.weather.dialog rename to locale/it-it/current.local.weather.dialog diff --git a/dialog/it-it/current.low.temperature.dialog b/locale/it-it/current.low.temperature.dialog similarity index 100% rename from dialog/it-it/current.low.temperature.dialog rename to locale/it-it/current.low.temperature.dialog diff --git a/dialog/it-it/current.temperature.dialog b/locale/it-it/current.temperature.dialog similarity index 100% rename from dialog/it-it/current.temperature.dialog rename to locale/it-it/current.temperature.dialog diff --git a/dialog/it-it/current.weather.dialog b/locale/it-it/current.weather.dialog similarity index 100% rename from dialog/it-it/current.weather.dialog rename to locale/it-it/current.weather.dialog diff --git a/dialog/it-it/do not know.dialog b/locale/it-it/do not know.dialog similarity index 100% rename from dialog/it-it/do not know.dialog rename to locale/it-it/do not know.dialog diff --git a/vocab/it-it/do.i.need.an.umbrella.intent b/locale/it-it/do.i.need.an.umbrella.intent similarity index 100% rename from vocab/it-it/do.i.need.an.umbrella.intent rename to locale/it-it/do.i.need.an.umbrella.intent diff --git a/dialog/it-it/fahrenheit.dialog b/locale/it-it/fahrenheit.dialog similarity index 100% rename from dialog/it-it/fahrenheit.dialog rename to locale/it-it/fahrenheit.dialog diff --git a/dialog/it-it/fog.alternative.dialog b/locale/it-it/fog.alternative.dialog similarity index 100% rename from dialog/it-it/fog.alternative.dialog rename to locale/it-it/fog.alternative.dialog diff --git a/dialog/it-it/forecast.affirmative.condition.dialog b/locale/it-it/forecast.affirmative.condition.dialog similarity index 100% rename from dialog/it-it/forecast.affirmative.condition.dialog rename to locale/it-it/forecast.affirmative.condition.dialog diff --git a/dialog/it-it/forecast.clear.alternative.dialog b/locale/it-it/forecast.clear.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.clear.alternative.dialog rename to locale/it-it/forecast.clear.alternative.dialog diff --git a/dialog/it-it/forecast.cloudy.alternative.dialog b/locale/it-it/forecast.cloudy.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.cloudy.alternative.dialog rename to locale/it-it/forecast.cloudy.alternative.dialog diff --git a/dialog/it-it/forecast.foggy.alternative.dialog b/locale/it-it/forecast.foggy.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.foggy.alternative.dialog rename to locale/it-it/forecast.foggy.alternative.dialog diff --git a/dialog/it-it/forecast.hard.wind.dialog b/locale/it-it/forecast.hard.wind.dialog similarity index 100% rename from dialog/it-it/forecast.hard.wind.dialog rename to locale/it-it/forecast.hard.wind.dialog diff --git a/dialog/it-it/forecast.high.temperature.dialog b/locale/it-it/forecast.high.temperature.dialog similarity index 100% rename from dialog/it-it/forecast.high.temperature.dialog rename to locale/it-it/forecast.high.temperature.dialog diff --git a/dialog/it-it/forecast.hot.dialog b/locale/it-it/forecast.hot.dialog similarity index 100% rename from dialog/it-it/forecast.hot.dialog rename to locale/it-it/forecast.hot.dialog diff --git a/dialog/it-it/forecast.light.wind.dialog b/locale/it-it/forecast.light.wind.dialog similarity index 100% rename from dialog/it-it/forecast.light.wind.dialog rename to locale/it-it/forecast.light.wind.dialog diff --git a/dialog/it-it/forecast.local.affirmative.condition.dialog b/locale/it-it/forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/it-it/forecast.local.affirmative.condition.dialog rename to locale/it-it/forecast.local.affirmative.condition.dialog diff --git a/dialog/it-it/forecast.local.clear.alternative.dialog b/locale/it-it/forecast.local.clear.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.local.clear.alternative.dialog rename to locale/it-it/forecast.local.clear.alternative.dialog diff --git a/dialog/it-it/forecast.local.cloudy.alternative.dialog b/locale/it-it/forecast.local.cloudy.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.local.cloudy.alternative.dialog rename to locale/it-it/forecast.local.cloudy.alternative.dialog diff --git a/dialog/it-it/forecast.local.foggy.alternative.dialog b/locale/it-it/forecast.local.foggy.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.local.foggy.alternative.dialog rename to locale/it-it/forecast.local.foggy.alternative.dialog diff --git a/dialog/it-it/forecast.local.hard.wind.dialog b/locale/it-it/forecast.local.hard.wind.dialog similarity index 100% rename from dialog/it-it/forecast.local.hard.wind.dialog rename to locale/it-it/forecast.local.hard.wind.dialog diff --git a/dialog/it-it/forecast.local.high.temperature.dialog b/locale/it-it/forecast.local.high.temperature.dialog similarity index 100% rename from dialog/it-it/forecast.local.high.temperature.dialog rename to locale/it-it/forecast.local.high.temperature.dialog diff --git a/dialog/it-it/forecast.local.hot.dialog b/locale/it-it/forecast.local.hot.dialog similarity index 100% rename from dialog/it-it/forecast.local.hot.dialog rename to locale/it-it/forecast.local.hot.dialog diff --git a/dialog/it-it/forecast.local.light.wind.dialog b/locale/it-it/forecast.local.light.wind.dialog similarity index 100% rename from dialog/it-it/forecast.local.light.wind.dialog rename to locale/it-it/forecast.local.light.wind.dialog diff --git a/dialog/it-it/forecast.local.low.temperature.dialog b/locale/it-it/forecast.local.low.temperature.dialog similarity index 100% rename from dialog/it-it/forecast.local.low.temperature.dialog rename to locale/it-it/forecast.local.low.temperature.dialog diff --git a/dialog/it-it/forecast.local.medium.wind.dialog b/locale/it-it/forecast.local.medium.wind.dialog similarity index 100% rename from dialog/it-it/forecast.local.medium.wind.dialog rename to locale/it-it/forecast.local.medium.wind.dialog diff --git a/dialog/it-it/forecast.local.no.clear.predicted.dialog b/locale/it-it/forecast.local.no.clear.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.local.no.clear.predicted.dialog rename to locale/it-it/forecast.local.no.clear.predicted.dialog diff --git a/dialog/it-it/forecast.local.no.cloudy.predicted.dialog b/locale/it-it/forecast.local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.local.no.cloudy.predicted.dialog rename to locale/it-it/forecast.local.no.cloudy.predicted.dialog diff --git a/dialog/it-it/forecast.local.no.fog.predicted.dialog b/locale/it-it/forecast.local.no.fog.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.local.no.fog.predicted.dialog rename to locale/it-it/forecast.local.no.fog.predicted.dialog diff --git a/dialog/it-it/forecast.local.no.rain.predicted.dialog b/locale/it-it/forecast.local.no.rain.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.local.no.rain.predicted.dialog rename to locale/it-it/forecast.local.no.rain.predicted.dialog diff --git a/dialog/it-it/forecast.local.no.snow.predicted.dialog b/locale/it-it/forecast.local.no.snow.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.local.no.snow.predicted.dialog rename to locale/it-it/forecast.local.no.snow.predicted.dialog diff --git a/dialog/it-it/forecast.local.raining.alternative.dialog b/locale/it-it/forecast.local.raining.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.local.raining.alternative.dialog rename to locale/it-it/forecast.local.raining.alternative.dialog diff --git a/dialog/it-it/forecast.local.temperature.dialog b/locale/it-it/forecast.local.temperature.dialog similarity index 100% rename from dialog/it-it/forecast.local.temperature.dialog rename to locale/it-it/forecast.local.temperature.dialog diff --git a/dialog/it-it/forecast.local.weather.dialog b/locale/it-it/forecast.local.weather.dialog similarity index 100% rename from dialog/it-it/forecast.local.weather.dialog rename to locale/it-it/forecast.local.weather.dialog diff --git a/dialog/it-it/forecast.medium.wind.dialog b/locale/it-it/forecast.medium.wind.dialog similarity index 100% rename from dialog/it-it/forecast.medium.wind.dialog rename to locale/it-it/forecast.medium.wind.dialog diff --git a/dialog/it-it/forecast.no.clear.predicted.dialog b/locale/it-it/forecast.no.clear.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.no.clear.predicted.dialog rename to locale/it-it/forecast.no.clear.predicted.dialog diff --git a/dialog/it-it/forecast.no.cloudy.predicted.dialog b/locale/it-it/forecast.no.cloudy.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.no.cloudy.predicted.dialog rename to locale/it-it/forecast.no.cloudy.predicted.dialog diff --git a/dialog/it-it/forecast.no.fog.predicted.dialog b/locale/it-it/forecast.no.fog.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.no.fog.predicted.dialog rename to locale/it-it/forecast.no.fog.predicted.dialog diff --git a/dialog/it-it/forecast.no.rain.predicted.dialog b/locale/it-it/forecast.no.rain.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.no.rain.predicted.dialog rename to locale/it-it/forecast.no.rain.predicted.dialog diff --git a/dialog/it-it/forecast.no.snow.predicted.dialog b/locale/it-it/forecast.no.snow.predicted.dialog similarity index 100% rename from dialog/it-it/forecast.no.snow.predicted.dialog rename to locale/it-it/forecast.no.snow.predicted.dialog diff --git a/dialog/it-it/forecast.raining.alternative.dialog b/locale/it-it/forecast.raining.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.raining.alternative.dialog rename to locale/it-it/forecast.raining.alternative.dialog diff --git a/dialog/it-it/forecast.snowing.alternative.dialog b/locale/it-it/forecast.snowing.alternative.dialog similarity index 100% rename from dialog/it-it/forecast.snowing.alternative.dialog rename to locale/it-it/forecast.snowing.alternative.dialog diff --git a/dialog/it-it/forecast.temperature.dialog b/locale/it-it/forecast.temperature.dialog similarity index 100% rename from dialog/it-it/forecast.temperature.dialog rename to locale/it-it/forecast.temperature.dialog diff --git a/dialog/it-it/forecast.weather.dialog b/locale/it-it/forecast.weather.dialog similarity index 100% rename from dialog/it-it/forecast.weather.dialog rename to locale/it-it/forecast.weather.dialog diff --git a/dialog/it-it/hard.wind.dialog b/locale/it-it/hard.wind.dialog similarity index 100% rename from dialog/it-it/hard.wind.dialog rename to locale/it-it/hard.wind.dialog diff --git a/dialog/it-it/heavy.dialog b/locale/it-it/heavy.dialog similarity index 100% rename from dialog/it-it/heavy.dialog rename to locale/it-it/heavy.dialog diff --git a/dialog/it-it/hour.local.weather.dialog b/locale/it-it/hour.local.weather.dialog similarity index 100% rename from dialog/it-it/hour.local.weather.dialog rename to locale/it-it/hour.local.weather.dialog diff --git a/dialog/it-it/hour.weather.dialog b/locale/it-it/hour.weather.dialog similarity index 100% rename from dialog/it-it/hour.weather.dialog rename to locale/it-it/hour.weather.dialog diff --git a/dialog/it-it/humidity.dialog b/locale/it-it/humidity.dialog similarity index 100% rename from dialog/it-it/humidity.dialog rename to locale/it-it/humidity.dialog diff --git a/dialog/it-it/light.dialog b/locale/it-it/light.dialog similarity index 100% rename from dialog/it-it/light.dialog rename to locale/it-it/light.dialog diff --git a/dialog/it-it/light.wind.dialog b/locale/it-it/light.wind.dialog similarity index 100% rename from dialog/it-it/light.wind.dialog rename to locale/it-it/light.wind.dialog diff --git a/dialog/it-it/local.affirmative.condition.dialog b/locale/it-it/local.affirmative.condition.dialog similarity index 100% rename from dialog/it-it/local.affirmative.condition.dialog rename to locale/it-it/local.affirmative.condition.dialog diff --git a/dialog/it-it/local.clear.alternative.dialog b/locale/it-it/local.clear.alternative.dialog similarity index 100% rename from dialog/it-it/local.clear.alternative.dialog rename to locale/it-it/local.clear.alternative.dialog diff --git a/dialog/it-it/local.cloudy.alternative.dialog b/locale/it-it/local.cloudy.alternative.dialog similarity index 100% rename from dialog/it-it/local.cloudy.alternative.dialog rename to locale/it-it/local.cloudy.alternative.dialog diff --git a/dialog/it-it/local.foggy.alternative.dialog b/locale/it-it/local.foggy.alternative.dialog similarity index 100% rename from dialog/it-it/local.foggy.alternative.dialog rename to locale/it-it/local.foggy.alternative.dialog diff --git a/dialog/it-it/local.hard.wind.dialog b/locale/it-it/local.hard.wind.dialog similarity index 100% rename from dialog/it-it/local.hard.wind.dialog rename to locale/it-it/local.hard.wind.dialog diff --git a/dialog/it-it/local.light.wind.dialog b/locale/it-it/local.light.wind.dialog similarity index 100% rename from dialog/it-it/local.light.wind.dialog rename to locale/it-it/local.light.wind.dialog diff --git a/dialog/it-it/local.medium.wind.dialog b/locale/it-it/local.medium.wind.dialog similarity index 100% rename from dialog/it-it/local.medium.wind.dialog rename to locale/it-it/local.medium.wind.dialog diff --git a/dialog/it-it/local.no.fog.predicted.dialog b/locale/it-it/local.no.fog.predicted.dialog similarity index 100% rename from dialog/it-it/local.no.fog.predicted.dialog rename to locale/it-it/local.no.fog.predicted.dialog diff --git a/dialog/it-it/local.no.rain.predicted.dialog b/locale/it-it/local.no.rain.predicted.dialog similarity index 100% rename from dialog/it-it/local.no.rain.predicted.dialog rename to locale/it-it/local.no.rain.predicted.dialog diff --git a/dialog/it-it/local.no.snow.predicted.dialog b/locale/it-it/local.no.snow.predicted.dialog similarity index 100% rename from dialog/it-it/local.no.snow.predicted.dialog rename to locale/it-it/local.no.snow.predicted.dialog diff --git a/dialog/it-it/local.raining.alternative.dialog b/locale/it-it/local.raining.alternative.dialog similarity index 100% rename from dialog/it-it/local.raining.alternative.dialog rename to locale/it-it/local.raining.alternative.dialog diff --git a/dialog/it-it/local.snowing.alternative.dialog b/locale/it-it/local.snowing.alternative.dialog similarity index 100% rename from dialog/it-it/local.snowing.alternative.dialog rename to locale/it-it/local.snowing.alternative.dialog diff --git a/dialog/it-it/location.not.found.dialog b/locale/it-it/location.not.found.dialog similarity index 100% rename from dialog/it-it/location.not.found.dialog rename to locale/it-it/location.not.found.dialog diff --git a/regex/it-it/location.rx b/locale/it-it/location.rx similarity index 100% rename from regex/it-it/location.rx rename to locale/it-it/location.rx diff --git a/dialog/it-it/medium.wind.dialog b/locale/it-it/medium.wind.dialog similarity index 100% rename from dialog/it-it/medium.wind.dialog rename to locale/it-it/medium.wind.dialog diff --git a/dialog/it-it/meters per second.dialog b/locale/it-it/meters per second.dialog similarity index 100% rename from dialog/it-it/meters per second.dialog rename to locale/it-it/meters per second.dialog diff --git a/dialog/it-it/miles per hour.dialog b/locale/it-it/miles per hour.dialog similarity index 100% rename from dialog/it-it/miles per hour.dialog rename to locale/it-it/miles per hour.dialog diff --git a/dialog/it-it/min.max.dialog b/locale/it-it/min.max.dialog similarity index 100% rename from dialog/it-it/min.max.dialog rename to locale/it-it/min.max.dialog diff --git a/dialog/it-it/no forecast.dialog b/locale/it-it/no forecast.dialog similarity index 100% rename from dialog/it-it/no forecast.dialog rename to locale/it-it/no forecast.dialog diff --git a/dialog/it-it/no precipitation expected.dialog b/locale/it-it/no precipitation expected.dialog similarity index 100% rename from dialog/it-it/no precipitation expected.dialog rename to locale/it-it/no precipitation expected.dialog diff --git a/dialog/it-it/no.clear.predicted.dialog b/locale/it-it/no.clear.predicted.dialog similarity index 100% rename from dialog/it-it/no.clear.predicted.dialog rename to locale/it-it/no.clear.predicted.dialog diff --git a/dialog/it-it/no.cloudy.predicted.dialog b/locale/it-it/no.cloudy.predicted.dialog similarity index 100% rename from dialog/it-it/no.cloudy.predicted.dialog rename to locale/it-it/no.cloudy.predicted.dialog diff --git a/dialog/it-it/no.fog.predicted.dialog b/locale/it-it/no.fog.predicted.dialog similarity index 100% rename from dialog/it-it/no.fog.predicted.dialog rename to locale/it-it/no.fog.predicted.dialog diff --git a/dialog/it-it/no.rain.predicted.dialog b/locale/it-it/no.rain.predicted.dialog similarity index 100% rename from dialog/it-it/no.rain.predicted.dialog rename to locale/it-it/no.rain.predicted.dialog diff --git a/dialog/it-it/no.snow.predicted.dialog b/locale/it-it/no.snow.predicted.dialog similarity index 100% rename from dialog/it-it/no.snow.predicted.dialog rename to locale/it-it/no.snow.predicted.dialog diff --git a/dialog/it-it/precipitation expected.dialog b/locale/it-it/precipitation expected.dialog similarity index 100% rename from dialog/it-it/precipitation expected.dialog rename to locale/it-it/precipitation expected.dialog diff --git a/dialog/it-it/rain.dialog b/locale/it-it/rain.dialog similarity index 100% rename from dialog/it-it/rain.dialog rename to locale/it-it/rain.dialog diff --git a/dialog/it-it/raining.alternative.dialog b/locale/it-it/raining.alternative.dialog similarity index 100% rename from dialog/it-it/raining.alternative.dialog rename to locale/it-it/raining.alternative.dialog diff --git a/dialog/it-it/report.condition.dialog b/locale/it-it/report.condition.dialog similarity index 100% rename from dialog/it-it/report.condition.dialog rename to locale/it-it/report.condition.dialog diff --git a/dialog/it-it/report.future.condition.dialog b/locale/it-it/report.future.condition.dialog similarity index 100% rename from dialog/it-it/report.future.condition.dialog rename to locale/it-it/report.future.condition.dialog diff --git a/vocab/it-it/simple.temperature.intent b/locale/it-it/simple.temperature.intent similarity index 100% rename from vocab/it-it/simple.temperature.intent rename to locale/it-it/simple.temperature.intent diff --git a/dialog/it-it/sky is clear.future.dialog b/locale/it-it/sky is clear.future.dialog similarity index 100% rename from dialog/it-it/sky is clear.future.dialog rename to locale/it-it/sky is clear.future.dialog diff --git a/dialog/it-it/snow.dialog b/locale/it-it/snow.dialog similarity index 100% rename from dialog/it-it/snow.dialog rename to locale/it-it/snow.dialog diff --git a/dialog/it-it/snowing.alternative.dialog b/locale/it-it/snowing.alternative.dialog similarity index 100% rename from dialog/it-it/snowing.alternative.dialog rename to locale/it-it/snowing.alternative.dialog diff --git a/vocab/it-it/what.is.multi.day.forecast.intent b/locale/it-it/what.is.multi.day.forecast.intent similarity index 100% rename from vocab/it-it/what.is.multi.day.forecast.intent rename to locale/it-it/what.is.multi.day.forecast.intent diff --git a/vocab/it-it/what.is.three.day.forecast.intent b/locale/it-it/what.is.three.day.forecast.intent similarity index 100% rename from vocab/it-it/what.is.three.day.forecast.intent rename to locale/it-it/what.is.three.day.forecast.intent diff --git a/vocab/it-it/what.is.three.day.forecast.location.intent b/locale/it-it/what.is.three.day.forecast.location.intent similarity index 100% rename from vocab/it-it/what.is.three.day.forecast.location.intent rename to locale/it-it/what.is.three.day.forecast.location.intent diff --git a/vocab/it-it/what.is.two.day.forecast.intent b/locale/it-it/what.is.two.day.forecast.intent similarity index 100% rename from vocab/it-it/what.is.two.day.forecast.intent rename to locale/it-it/what.is.two.day.forecast.intent diff --git a/vocab/it-it/whats.weather.like.intent b/locale/it-it/whats.weather.like.intent similarity index 100% rename from vocab/it-it/whats.weather.like.intent rename to locale/it-it/whats.weather.like.intent diff --git a/dialog/it-it/wind.speed.dialog b/locale/it-it/wind.speed.dialog similarity index 100% rename from dialog/it-it/wind.speed.dialog rename to locale/it-it/wind.speed.dialog diff --git a/dialog/it-it/wind.speed.dir.dialog b/locale/it-it/wind.speed.dir.dialog similarity index 100% rename from dialog/it-it/wind.speed.dir.dialog rename to locale/it-it/wind.speed.dir.dialog diff --git a/dialog/it-it/winds.dialog b/locale/it-it/winds.dialog similarity index 100% rename from dialog/it-it/winds.dialog rename to locale/it-it/winds.dialog diff --git a/dialog/nl-nl/E.dialog b/locale/nl-nl/E.dialog similarity index 100% rename from dialog/nl-nl/E.dialog rename to locale/nl-nl/E.dialog diff --git a/vocab/nl-nl/Forecast.voc b/locale/nl-nl/Forecast.voc similarity index 100% rename from vocab/nl-nl/Forecast.voc rename to locale/nl-nl/Forecast.voc diff --git a/vocab/nl-nl/Humidity.voc b/locale/nl-nl/Humidity.voc similarity index 100% rename from vocab/nl-nl/Humidity.voc rename to locale/nl-nl/Humidity.voc diff --git a/vocab/nl-nl/Later.voc b/locale/nl-nl/Later.voc similarity index 100% rename from vocab/nl-nl/Later.voc rename to locale/nl-nl/Later.voc diff --git a/vocab/nl-nl/Location.voc b/locale/nl-nl/Location.voc similarity index 100% rename from vocab/nl-nl/Location.voc rename to locale/nl-nl/Location.voc diff --git a/dialog/nl-nl/N.dialog b/locale/nl-nl/N.dialog similarity index 100% rename from dialog/nl-nl/N.dialog rename to locale/nl-nl/N.dialog diff --git a/dialog/nl-nl/NE.dialog b/locale/nl-nl/NE.dialog similarity index 100% rename from dialog/nl-nl/NE.dialog rename to locale/nl-nl/NE.dialog diff --git a/dialog/nl-nl/NW.dialog b/locale/nl-nl/NW.dialog similarity index 100% rename from dialog/nl-nl/NW.dialog rename to locale/nl-nl/NW.dialog diff --git a/vocab/nl-nl/Next.voc b/locale/nl-nl/Next.voc similarity index 100% rename from vocab/nl-nl/Next.voc rename to locale/nl-nl/Next.voc diff --git a/vocab/nl-nl/Precipitation.voc b/locale/nl-nl/Precipitation.voc similarity index 100% rename from vocab/nl-nl/Precipitation.voc rename to locale/nl-nl/Precipitation.voc diff --git a/vocab/nl-nl/Query.voc b/locale/nl-nl/Query.voc similarity index 100% rename from vocab/nl-nl/Query.voc rename to locale/nl-nl/Query.voc diff --git a/dialog/nl-nl/S.dialog b/locale/nl-nl/S.dialog similarity index 100% rename from dialog/nl-nl/S.dialog rename to locale/nl-nl/S.dialog diff --git a/dialog/nl-nl/SE.dialog b/locale/nl-nl/SE.dialog similarity index 100% rename from dialog/nl-nl/SE.dialog rename to locale/nl-nl/SE.dialog diff --git a/dialog/nl-nl/SW.dialog b/locale/nl-nl/SW.dialog similarity index 100% rename from dialog/nl-nl/SW.dialog rename to locale/nl-nl/SW.dialog diff --git a/vocab/nl-nl/Sunrise.voc b/locale/nl-nl/Sunrise.voc similarity index 100% rename from vocab/nl-nl/Sunrise.voc rename to locale/nl-nl/Sunrise.voc diff --git a/vocab/nl-nl/Sunset.voc b/locale/nl-nl/Sunset.voc similarity index 100% rename from vocab/nl-nl/Sunset.voc rename to locale/nl-nl/Sunset.voc diff --git a/dialog/nl-nl/W.dialog b/locale/nl-nl/W.dialog similarity index 100% rename from dialog/nl-nl/W.dialog rename to locale/nl-nl/W.dialog diff --git a/vocab/nl-nl/Weather.voc b/locale/nl-nl/Weather.voc similarity index 100% rename from vocab/nl-nl/Weather.voc rename to locale/nl-nl/Weather.voc diff --git a/vocab/nl-nl/WeatherType.voc b/locale/nl-nl/WeatherType.voc similarity index 100% rename from vocab/nl-nl/WeatherType.voc rename to locale/nl-nl/WeatherType.voc diff --git a/vocab/nl-nl/Windy.voc b/locale/nl-nl/Windy.voc similarity index 100% rename from vocab/nl-nl/Windy.voc rename to locale/nl-nl/Windy.voc diff --git a/dialog/nl-nl/celsius.dialog b/locale/nl-nl/celsius.dialog similarity index 100% rename from dialog/nl-nl/celsius.dialog rename to locale/nl-nl/celsius.dialog diff --git a/dialog/nl-nl/current.local.weather.dialog b/locale/nl-nl/current.local.weather.dialog similarity index 100% rename from dialog/nl-nl/current.local.weather.dialog rename to locale/nl-nl/current.local.weather.dialog diff --git a/dialog/nl-nl/current.weather.dialog b/locale/nl-nl/current.weather.dialog similarity index 100% rename from dialog/nl-nl/current.weather.dialog rename to locale/nl-nl/current.weather.dialog diff --git a/dialog/nl-nl/do not know.dialog b/locale/nl-nl/do not know.dialog similarity index 100% rename from dialog/nl-nl/do not know.dialog rename to locale/nl-nl/do not know.dialog diff --git a/dialog/nl-nl/fahrenheit.dialog b/locale/nl-nl/fahrenheit.dialog similarity index 100% rename from dialog/nl-nl/fahrenheit.dialog rename to locale/nl-nl/fahrenheit.dialog diff --git a/dialog/nl-nl/forecast.local.weather.dialog b/locale/nl-nl/forecast.local.weather.dialog similarity index 100% rename from dialog/nl-nl/forecast.local.weather.dialog rename to locale/nl-nl/forecast.local.weather.dialog diff --git a/dialog/nl-nl/forecast.weather.dialog b/locale/nl-nl/forecast.weather.dialog similarity index 100% rename from dialog/nl-nl/forecast.weather.dialog rename to locale/nl-nl/forecast.weather.dialog diff --git a/dialog/nl-nl/heavy.dialog b/locale/nl-nl/heavy.dialog similarity index 100% rename from dialog/nl-nl/heavy.dialog rename to locale/nl-nl/heavy.dialog diff --git a/dialog/nl-nl/hour.local.weather.dialog b/locale/nl-nl/hour.local.weather.dialog similarity index 100% rename from dialog/nl-nl/hour.local.weather.dialog rename to locale/nl-nl/hour.local.weather.dialog diff --git a/dialog/nl-nl/hour.weather.dialog b/locale/nl-nl/hour.weather.dialog similarity index 100% rename from dialog/nl-nl/hour.weather.dialog rename to locale/nl-nl/hour.weather.dialog diff --git a/dialog/nl-nl/humidity.dialog b/locale/nl-nl/humidity.dialog similarity index 100% rename from dialog/nl-nl/humidity.dialog rename to locale/nl-nl/humidity.dialog diff --git a/dialog/nl-nl/light.dialog b/locale/nl-nl/light.dialog similarity index 100% rename from dialog/nl-nl/light.dialog rename to locale/nl-nl/light.dialog diff --git a/dialog/nl-nl/location.not.found.dialog b/locale/nl-nl/location.not.found.dialog similarity index 100% rename from dialog/nl-nl/location.not.found.dialog rename to locale/nl-nl/location.not.found.dialog diff --git a/regex/nl-nl/location.rx b/locale/nl-nl/location.rx similarity index 100% rename from regex/nl-nl/location.rx rename to locale/nl-nl/location.rx diff --git a/dialog/nl-nl/meters per second.dialog b/locale/nl-nl/meters per second.dialog similarity index 100% rename from dialog/nl-nl/meters per second.dialog rename to locale/nl-nl/meters per second.dialog diff --git a/dialog/nl-nl/miles per hour.dialog b/locale/nl-nl/miles per hour.dialog similarity index 100% rename from dialog/nl-nl/miles per hour.dialog rename to locale/nl-nl/miles per hour.dialog diff --git a/dialog/nl-nl/no forecast.dialog b/locale/nl-nl/no forecast.dialog similarity index 100% rename from dialog/nl-nl/no forecast.dialog rename to locale/nl-nl/no forecast.dialog diff --git a/dialog/nl-nl/no precipitation expected.dialog b/locale/nl-nl/no precipitation expected.dialog similarity index 100% rename from dialog/nl-nl/no precipitation expected.dialog rename to locale/nl-nl/no precipitation expected.dialog diff --git a/dialog/nl-nl/precipitation expected.dialog b/locale/nl-nl/precipitation expected.dialog similarity index 100% rename from dialog/nl-nl/precipitation expected.dialog rename to locale/nl-nl/precipitation expected.dialog diff --git a/dialog/nl-nl/rain.dialog b/locale/nl-nl/rain.dialog similarity index 100% rename from dialog/nl-nl/rain.dialog rename to locale/nl-nl/rain.dialog diff --git a/dialog/nl-nl/report.condition.dialog b/locale/nl-nl/report.condition.dialog similarity index 100% rename from dialog/nl-nl/report.condition.dialog rename to locale/nl-nl/report.condition.dialog diff --git a/dialog/nl-nl/report.future.condition.dialog b/locale/nl-nl/report.future.condition.dialog similarity index 100% rename from dialog/nl-nl/report.future.condition.dialog rename to locale/nl-nl/report.future.condition.dialog diff --git a/dialog/nl-nl/sky is clear.future.dialog b/locale/nl-nl/sky is clear.future.dialog similarity index 100% rename from dialog/nl-nl/sky is clear.future.dialog rename to locale/nl-nl/sky is clear.future.dialog diff --git a/dialog/nl-nl/snow.dialog b/locale/nl-nl/snow.dialog similarity index 100% rename from dialog/nl-nl/snow.dialog rename to locale/nl-nl/snow.dialog diff --git a/dialog/nl-nl/wind.speed.dialog b/locale/nl-nl/wind.speed.dialog similarity index 100% rename from dialog/nl-nl/wind.speed.dialog rename to locale/nl-nl/wind.speed.dialog diff --git a/dialog/nl-nl/wind.speed.dir.dialog b/locale/nl-nl/wind.speed.dir.dialog similarity index 100% rename from dialog/nl-nl/wind.speed.dir.dialog rename to locale/nl-nl/wind.speed.dir.dialog diff --git a/dialog/nl-nl/winds.dialog b/locale/nl-nl/winds.dialog similarity index 100% rename from dialog/nl-nl/winds.dialog rename to locale/nl-nl/winds.dialog diff --git a/vocab/pt-br/Clear.voc b/locale/pt-br/Clear.voc similarity index 100% rename from vocab/pt-br/Clear.voc rename to locale/pt-br/Clear.voc diff --git a/vocab/pt-br/ClearAlternatives.voc b/locale/pt-br/ClearAlternatives.voc similarity index 100% rename from vocab/pt-br/ClearAlternatives.voc rename to locale/pt-br/ClearAlternatives.voc diff --git a/vocab/pt-br/Cloudy.voc b/locale/pt-br/Cloudy.voc similarity index 100% rename from vocab/pt-br/Cloudy.voc rename to locale/pt-br/Cloudy.voc diff --git a/vocab/pt-br/CloudyAlternatives.voc b/locale/pt-br/CloudyAlternatives.voc similarity index 100% rename from vocab/pt-br/CloudyAlternatives.voc rename to locale/pt-br/CloudyAlternatives.voc diff --git a/vocab/pt-br/Cold.voc b/locale/pt-br/Cold.voc similarity index 100% rename from vocab/pt-br/Cold.voc rename to locale/pt-br/Cold.voc diff --git a/vocab/pt-br/ConfirmQuery.voc b/locale/pt-br/ConfirmQuery.voc similarity index 100% rename from vocab/pt-br/ConfirmQuery.voc rename to locale/pt-br/ConfirmQuery.voc diff --git a/vocab/pt-br/ConfirmQueryCurrent.voc b/locale/pt-br/ConfirmQueryCurrent.voc similarity index 100% rename from vocab/pt-br/ConfirmQueryCurrent.voc rename to locale/pt-br/ConfirmQueryCurrent.voc diff --git a/vocab/pt-br/ConfirmQueryFuture.voc b/locale/pt-br/ConfirmQueryFuture.voc similarity index 100% rename from vocab/pt-br/ConfirmQueryFuture.voc rename to locale/pt-br/ConfirmQueryFuture.voc diff --git a/vocab/pt-br/Couple.voc b/locale/pt-br/Couple.voc similarity index 100% rename from vocab/pt-br/Couple.voc rename to locale/pt-br/Couple.voc diff --git a/dialog/pt-br/E.dialog b/locale/pt-br/E.dialog similarity index 100% rename from dialog/pt-br/E.dialog rename to locale/pt-br/E.dialog diff --git a/vocab/pt-br/Fahrenheit.voc b/locale/pt-br/Fahrenheit.voc similarity index 100% rename from vocab/pt-br/Fahrenheit.voc rename to locale/pt-br/Fahrenheit.voc diff --git a/vocab/pt-br/FogAlternatives.voc b/locale/pt-br/FogAlternatives.voc similarity index 100% rename from vocab/pt-br/FogAlternatives.voc rename to locale/pt-br/FogAlternatives.voc diff --git a/vocab/pt-br/Foggy.voc b/locale/pt-br/Foggy.voc similarity index 100% rename from vocab/pt-br/Foggy.voc rename to locale/pt-br/Foggy.voc diff --git a/vocab/pt-br/Forecast.voc b/locale/pt-br/Forecast.voc similarity index 100% rename from vocab/pt-br/Forecast.voc rename to locale/pt-br/Forecast.voc diff --git a/vocab/pt-br/High.voc b/locale/pt-br/High.voc similarity index 100% rename from vocab/pt-br/High.voc rename to locale/pt-br/High.voc diff --git a/vocab/pt-br/Hot.voc b/locale/pt-br/Hot.voc similarity index 100% rename from vocab/pt-br/Hot.voc rename to locale/pt-br/Hot.voc diff --git a/vocab/pt-br/How.voc b/locale/pt-br/How.voc similarity index 100% rename from vocab/pt-br/How.voc rename to locale/pt-br/How.voc diff --git a/vocab/pt-br/Humidity.voc b/locale/pt-br/Humidity.voc similarity index 100% rename from vocab/pt-br/Humidity.voc rename to locale/pt-br/Humidity.voc diff --git a/vocab/pt-br/Later.voc b/locale/pt-br/Later.voc similarity index 100% rename from vocab/pt-br/Later.voc rename to locale/pt-br/Later.voc diff --git a/vocab/pt-br/Location.voc b/locale/pt-br/Location.voc similarity index 100% rename from vocab/pt-br/Location.voc rename to locale/pt-br/Location.voc diff --git a/vocab/pt-br/Low.voc b/locale/pt-br/Low.voc similarity index 100% rename from vocab/pt-br/Low.voc rename to locale/pt-br/Low.voc diff --git a/dialog/pt-br/N.dialog b/locale/pt-br/N.dialog similarity index 100% rename from dialog/pt-br/N.dialog rename to locale/pt-br/N.dialog diff --git a/dialog/pt-br/NE.dialog b/locale/pt-br/NE.dialog similarity index 100% rename from dialog/pt-br/NE.dialog rename to locale/pt-br/NE.dialog diff --git a/dialog/pt-br/NW.dialog b/locale/pt-br/NW.dialog similarity index 100% rename from dialog/pt-br/NW.dialog rename to locale/pt-br/NW.dialog diff --git a/vocab/pt-br/Next.voc b/locale/pt-br/Next.voc similarity index 100% rename from vocab/pt-br/Next.voc rename to locale/pt-br/Next.voc diff --git a/vocab/pt-br/Now.voc b/locale/pt-br/Now.voc similarity index 100% rename from vocab/pt-br/Now.voc rename to locale/pt-br/Now.voc diff --git a/vocab/pt-br/Precipitation.voc b/locale/pt-br/Precipitation.voc similarity index 100% rename from vocab/pt-br/Precipitation.voc rename to locale/pt-br/Precipitation.voc diff --git a/vocab/pt-br/Query.voc b/locale/pt-br/Query.voc similarity index 100% rename from vocab/pt-br/Query.voc rename to locale/pt-br/Query.voc diff --git a/vocab/pt-br/RainAlternatives.voc b/locale/pt-br/RainAlternatives.voc similarity index 100% rename from vocab/pt-br/RainAlternatives.voc rename to locale/pt-br/RainAlternatives.voc diff --git a/vocab/pt-br/Raining.voc b/locale/pt-br/Raining.voc similarity index 100% rename from vocab/pt-br/Raining.voc rename to locale/pt-br/Raining.voc diff --git a/vocab/pt-br/RelativeDay.voc b/locale/pt-br/RelativeDay.voc similarity index 100% rename from vocab/pt-br/RelativeDay.voc rename to locale/pt-br/RelativeDay.voc diff --git a/vocab/pt-br/RelativeTime.voc b/locale/pt-br/RelativeTime.voc similarity index 100% rename from vocab/pt-br/RelativeTime.voc rename to locale/pt-br/RelativeTime.voc diff --git a/dialog/pt-br/S.dialog b/locale/pt-br/S.dialog similarity index 100% rename from dialog/pt-br/S.dialog rename to locale/pt-br/S.dialog diff --git a/dialog/pt-br/SE.dialog b/locale/pt-br/SE.dialog similarity index 100% rename from dialog/pt-br/SE.dialog rename to locale/pt-br/SE.dialog diff --git a/dialog/pt-br/SW.dialog b/locale/pt-br/SW.dialog similarity index 100% rename from dialog/pt-br/SW.dialog rename to locale/pt-br/SW.dialog diff --git a/vocab/pt-br/SnowAlternatives.voc b/locale/pt-br/SnowAlternatives.voc similarity index 100% rename from vocab/pt-br/SnowAlternatives.voc rename to locale/pt-br/SnowAlternatives.voc diff --git a/vocab/pt-br/Snowing.voc b/locale/pt-br/Snowing.voc similarity index 100% rename from vocab/pt-br/Snowing.voc rename to locale/pt-br/Snowing.voc diff --git a/vocab/pt-br/Storm.voc b/locale/pt-br/Storm.voc similarity index 100% rename from vocab/pt-br/Storm.voc rename to locale/pt-br/Storm.voc diff --git a/vocab/pt-br/StormAlternatives.voc b/locale/pt-br/StormAlternatives.voc similarity index 100% rename from vocab/pt-br/StormAlternatives.voc rename to locale/pt-br/StormAlternatives.voc diff --git a/vocab/pt-br/Sunrise.voc b/locale/pt-br/Sunrise.voc similarity index 100% rename from vocab/pt-br/Sunrise.voc rename to locale/pt-br/Sunrise.voc diff --git a/vocab/pt-br/Sunset.voc b/locale/pt-br/Sunset.voc similarity index 100% rename from vocab/pt-br/Sunset.voc rename to locale/pt-br/Sunset.voc diff --git a/vocab/pt-br/Temperature.voc b/locale/pt-br/Temperature.voc similarity index 100% rename from vocab/pt-br/Temperature.voc rename to locale/pt-br/Temperature.voc diff --git a/vocab/pt-br/ThreeDay.voc b/locale/pt-br/ThreeDay.voc similarity index 100% rename from vocab/pt-br/ThreeDay.voc rename to locale/pt-br/ThreeDay.voc diff --git a/vocab/pt-br/Today.voc b/locale/pt-br/Today.voc similarity index 100% rename from vocab/pt-br/Today.voc rename to locale/pt-br/Today.voc diff --git a/vocab/pt-br/Unit.entity b/locale/pt-br/Unit.entity similarity index 100% rename from vocab/pt-br/Unit.entity rename to locale/pt-br/Unit.entity diff --git a/vocab/pt-br/Unit.voc b/locale/pt-br/Unit.voc similarity index 100% rename from vocab/pt-br/Unit.voc rename to locale/pt-br/Unit.voc diff --git a/dialog/pt-br/W.dialog b/locale/pt-br/W.dialog similarity index 100% rename from dialog/pt-br/W.dialog rename to locale/pt-br/W.dialog diff --git a/vocab/pt-br/Weather.voc b/locale/pt-br/Weather.voc similarity index 100% rename from vocab/pt-br/Weather.voc rename to locale/pt-br/Weather.voc diff --git a/vocab/pt-br/WeatherType.voc b/locale/pt-br/WeatherType.voc similarity index 100% rename from vocab/pt-br/WeatherType.voc rename to locale/pt-br/WeatherType.voc diff --git a/vocab/pt-br/Week.voc b/locale/pt-br/Week.voc similarity index 100% rename from vocab/pt-br/Week.voc rename to locale/pt-br/Week.voc diff --git a/vocab/pt-br/Weekend.voc b/locale/pt-br/Weekend.voc similarity index 100% rename from vocab/pt-br/Weekend.voc rename to locale/pt-br/Weekend.voc diff --git a/vocab/pt-br/When.voc b/locale/pt-br/When.voc similarity index 100% rename from vocab/pt-br/When.voc rename to locale/pt-br/When.voc diff --git a/vocab/pt-br/Windy.voc b/locale/pt-br/Windy.voc similarity index 100% rename from vocab/pt-br/Windy.voc rename to locale/pt-br/Windy.voc diff --git a/dialog/pt-br/affirmative.condition.dialog b/locale/pt-br/affirmative.condition.dialog similarity index 100% rename from dialog/pt-br/affirmative.condition.dialog rename to locale/pt-br/affirmative.condition.dialog diff --git a/dialog/pt-br/and.dialog b/locale/pt-br/and.dialog similarity index 100% rename from dialog/pt-br/and.dialog rename to locale/pt-br/and.dialog diff --git a/dialog/pt-br/at.time.affirmative.condition.dialog b/locale/pt-br/at.time.affirmative.condition.dialog similarity index 100% rename from dialog/pt-br/at.time.affirmative.condition.dialog rename to locale/pt-br/at.time.affirmative.condition.dialog diff --git a/dialog/pt-br/at.time.cond.alternative.dialog b/locale/pt-br/at.time.cond.alternative.dialog similarity index 100% rename from dialog/pt-br/at.time.cond.alternative.dialog rename to locale/pt-br/at.time.cond.alternative.dialog diff --git a/dialog/pt-br/at.time.forecast.affirmative.condition.dialog b/locale/pt-br/at.time.forecast.affirmative.condition.dialog similarity index 100% rename from dialog/pt-br/at.time.forecast.affirmative.condition.dialog rename to locale/pt-br/at.time.forecast.affirmative.condition.dialog diff --git a/dialog/pt-br/at.time.forecast.cond.alternative.dialog b/locale/pt-br/at.time.forecast.cond.alternative.dialog similarity index 100% rename from dialog/pt-br/at.time.forecast.cond.alternative.dialog rename to locale/pt-br/at.time.forecast.cond.alternative.dialog diff --git a/dialog/pt-br/at.time.forecast.local.affirmative.condition.dialog b/locale/pt-br/at.time.forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/pt-br/at.time.forecast.local.affirmative.condition.dialog rename to locale/pt-br/at.time.forecast.local.affirmative.condition.dialog diff --git a/dialog/pt-br/at.time.forecast.local.cond.alternative.dialog b/locale/pt-br/at.time.forecast.local.cond.alternative.dialog similarity index 100% rename from dialog/pt-br/at.time.forecast.local.cond.alternative.dialog rename to locale/pt-br/at.time.forecast.local.cond.alternative.dialog diff --git a/dialog/pt-br/at.time.forecast.local.no.cond.predicted.dialog b/locale/pt-br/at.time.forecast.local.no.cond.predicted.dialog similarity index 100% rename from dialog/pt-br/at.time.forecast.local.no.cond.predicted.dialog rename to locale/pt-br/at.time.forecast.local.no.cond.predicted.dialog diff --git a/dialog/pt-br/at.time.forecast.no.cond.predicted.dialog b/locale/pt-br/at.time.forecast.no.cond.predicted.dialog similarity index 100% rename from dialog/pt-br/at.time.forecast.no.cond.predicted.dialog rename to locale/pt-br/at.time.forecast.no.cond.predicted.dialog diff --git a/dialog/pt-br/at.time.local.affirmative.condition.dialog b/locale/pt-br/at.time.local.affirmative.condition.dialog similarity index 100% rename from dialog/pt-br/at.time.local.affirmative.condition.dialog rename to locale/pt-br/at.time.local.affirmative.condition.dialog diff --git a/dialog/pt-br/at.time.local.cond.alternative.dialog b/locale/pt-br/at.time.local.cond.alternative.dialog similarity index 100% rename from dialog/pt-br/at.time.local.cond.alternative.dialog rename to locale/pt-br/at.time.local.cond.alternative.dialog diff --git a/dialog/pt-br/at.time.local.high.temperature.dialog b/locale/pt-br/at.time.local.high.temperature.dialog similarity index 100% rename from dialog/pt-br/at.time.local.high.temperature.dialog rename to locale/pt-br/at.time.local.high.temperature.dialog diff --git a/dialog/pt-br/at.time.local.low.temperature.dialog b/locale/pt-br/at.time.local.low.temperature.dialog similarity index 100% rename from dialog/pt-br/at.time.local.low.temperature.dialog rename to locale/pt-br/at.time.local.low.temperature.dialog diff --git a/dialog/pt-br/at.time.local.no.cond.predicted.dialog b/locale/pt-br/at.time.local.no.cond.predicted.dialog similarity index 100% rename from dialog/pt-br/at.time.local.no.cond.predicted.dialog rename to locale/pt-br/at.time.local.no.cond.predicted.dialog diff --git a/dialog/pt-br/at.time.local.temperature.dialog b/locale/pt-br/at.time.local.temperature.dialog similarity index 100% rename from dialog/pt-br/at.time.local.temperature.dialog rename to locale/pt-br/at.time.local.temperature.dialog diff --git a/dialog/pt-br/at.time.local.weather.dialog b/locale/pt-br/at.time.local.weather.dialog similarity index 100% rename from dialog/pt-br/at.time.local.weather.dialog rename to locale/pt-br/at.time.local.weather.dialog diff --git a/dialog/pt-br/at.time.no.cond.predicted.dialog b/locale/pt-br/at.time.no.cond.predicted.dialog similarity index 100% rename from dialog/pt-br/at.time.no.cond.predicted.dialog rename to locale/pt-br/at.time.no.cond.predicted.dialog diff --git a/dialog/pt-br/cant.get.forecast.dialog b/locale/pt-br/cant.get.forecast.dialog similarity index 100% rename from dialog/pt-br/cant.get.forecast.dialog rename to locale/pt-br/cant.get.forecast.dialog diff --git a/dialog/pt-br/celsius.dialog b/locale/pt-br/celsius.dialog similarity index 100% rename from dialog/pt-br/celsius.dialog rename to locale/pt-br/celsius.dialog diff --git a/dialog/pt-br/clear sky.dialog b/locale/pt-br/clear sky.dialog similarity index 100% rename from dialog/pt-br/clear sky.dialog rename to locale/pt-br/clear sky.dialog diff --git a/dialog/pt-br/clear.alternative.dialog b/locale/pt-br/clear.alternative.dialog similarity index 100% rename from dialog/pt-br/clear.alternative.dialog rename to locale/pt-br/clear.alternative.dialog diff --git a/dialog/pt-br/clear.dialog b/locale/pt-br/clear.dialog similarity index 100% rename from dialog/pt-br/clear.dialog rename to locale/pt-br/clear.dialog diff --git a/dialog/pt-br/clear.future.dialog b/locale/pt-br/clear.future.dialog similarity index 100% rename from dialog/pt-br/clear.future.dialog rename to locale/pt-br/clear.future.dialog diff --git a/dialog/pt-br/cloudy.alternative.dialog b/locale/pt-br/cloudy.alternative.dialog similarity index 100% rename from dialog/pt-br/cloudy.alternative.dialog rename to locale/pt-br/cloudy.alternative.dialog diff --git a/dialog/pt-br/condition.category.value b/locale/pt-br/condition.category.value similarity index 100% rename from dialog/pt-br/condition.category.value rename to locale/pt-br/condition.category.value diff --git a/dialog/pt-br/current.high.temperature.dialog b/locale/pt-br/current.high.temperature.dialog similarity index 100% rename from dialog/pt-br/current.high.temperature.dialog rename to locale/pt-br/current.high.temperature.dialog diff --git a/dialog/pt-br/current.hot.dialog b/locale/pt-br/current.hot.dialog similarity index 100% rename from dialog/pt-br/current.hot.dialog rename to locale/pt-br/current.hot.dialog diff --git a/dialog/pt-br/current.local.cold.dialog b/locale/pt-br/current.local.cold.dialog similarity index 100% rename from dialog/pt-br/current.local.cold.dialog rename to locale/pt-br/current.local.cold.dialog diff --git a/dialog/pt-br/current.local.high.temperature.dialog b/locale/pt-br/current.local.high.temperature.dialog similarity index 100% rename from dialog/pt-br/current.local.high.temperature.dialog rename to locale/pt-br/current.local.high.temperature.dialog diff --git a/dialog/pt-br/current.local.hot.dialog b/locale/pt-br/current.local.hot.dialog similarity index 100% rename from dialog/pt-br/current.local.hot.dialog rename to locale/pt-br/current.local.hot.dialog diff --git a/dialog/pt-br/current.local.low.temperature.dialog b/locale/pt-br/current.local.low.temperature.dialog similarity index 100% rename from dialog/pt-br/current.local.low.temperature.dialog rename to locale/pt-br/current.local.low.temperature.dialog diff --git a/dialog/pt-br/current.local.temperature.dialog b/locale/pt-br/current.local.temperature.dialog similarity index 100% rename from dialog/pt-br/current.local.temperature.dialog rename to locale/pt-br/current.local.temperature.dialog diff --git a/dialog/pt-br/current.local.weather.dialog b/locale/pt-br/current.local.weather.dialog similarity index 100% rename from dialog/pt-br/current.local.weather.dialog rename to locale/pt-br/current.local.weather.dialog diff --git a/dialog/pt-br/current.low.temperature.dialog b/locale/pt-br/current.low.temperature.dialog similarity index 100% rename from dialog/pt-br/current.low.temperature.dialog rename to locale/pt-br/current.low.temperature.dialog diff --git a/dialog/pt-br/current.temperature.dialog b/locale/pt-br/current.temperature.dialog similarity index 100% rename from dialog/pt-br/current.temperature.dialog rename to locale/pt-br/current.temperature.dialog diff --git a/dialog/pt-br/current.weather.dialog b/locale/pt-br/current.weather.dialog similarity index 100% rename from dialog/pt-br/current.weather.dialog rename to locale/pt-br/current.weather.dialog diff --git a/dialog/pt-br/do not know.dialog b/locale/pt-br/do not know.dialog similarity index 100% rename from dialog/pt-br/do not know.dialog rename to locale/pt-br/do not know.dialog diff --git a/vocab/pt-br/do.i.need.an.umbrella.intent b/locale/pt-br/do.i.need.an.umbrella.intent similarity index 100% rename from vocab/pt-br/do.i.need.an.umbrella.intent rename to locale/pt-br/do.i.need.an.umbrella.intent diff --git a/dialog/pt-br/fahrenheit.dialog b/locale/pt-br/fahrenheit.dialog similarity index 100% rename from dialog/pt-br/fahrenheit.dialog rename to locale/pt-br/fahrenheit.dialog diff --git a/dialog/pt-br/fog.alternative.dialog b/locale/pt-br/fog.alternative.dialog similarity index 100% rename from dialog/pt-br/fog.alternative.dialog rename to locale/pt-br/fog.alternative.dialog diff --git a/dialog/pt-br/forecast.affirmative.condition.dialog b/locale/pt-br/forecast.affirmative.condition.dialog similarity index 100% rename from dialog/pt-br/forecast.affirmative.condition.dialog rename to locale/pt-br/forecast.affirmative.condition.dialog diff --git a/dialog/pt-br/forecast.clear.alternative.dialog b/locale/pt-br/forecast.clear.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.clear.alternative.dialog rename to locale/pt-br/forecast.clear.alternative.dialog diff --git a/dialog/pt-br/forecast.cloudy.alternative.dialog b/locale/pt-br/forecast.cloudy.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.cloudy.alternative.dialog rename to locale/pt-br/forecast.cloudy.alternative.dialog diff --git a/dialog/pt-br/forecast.foggy.alternative.dialog b/locale/pt-br/forecast.foggy.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.foggy.alternative.dialog rename to locale/pt-br/forecast.foggy.alternative.dialog diff --git a/dialog/pt-br/forecast.hard.wind.dialog b/locale/pt-br/forecast.hard.wind.dialog similarity index 100% rename from dialog/pt-br/forecast.hard.wind.dialog rename to locale/pt-br/forecast.hard.wind.dialog diff --git a/dialog/pt-br/forecast.high.temperature.dialog b/locale/pt-br/forecast.high.temperature.dialog similarity index 100% rename from dialog/pt-br/forecast.high.temperature.dialog rename to locale/pt-br/forecast.high.temperature.dialog diff --git a/dialog/pt-br/forecast.hot.dialog b/locale/pt-br/forecast.hot.dialog similarity index 100% rename from dialog/pt-br/forecast.hot.dialog rename to locale/pt-br/forecast.hot.dialog diff --git a/dialog/pt-br/forecast.light.wind.dialog b/locale/pt-br/forecast.light.wind.dialog similarity index 100% rename from dialog/pt-br/forecast.light.wind.dialog rename to locale/pt-br/forecast.light.wind.dialog diff --git a/dialog/pt-br/forecast.local.affirmative.condition.dialog b/locale/pt-br/forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/pt-br/forecast.local.affirmative.condition.dialog rename to locale/pt-br/forecast.local.affirmative.condition.dialog diff --git a/dialog/pt-br/forecast.local.clear.alternative.dialog b/locale/pt-br/forecast.local.clear.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.local.clear.alternative.dialog rename to locale/pt-br/forecast.local.clear.alternative.dialog diff --git a/dialog/pt-br/forecast.local.cloudy.alternative.dialog b/locale/pt-br/forecast.local.cloudy.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.local.cloudy.alternative.dialog rename to locale/pt-br/forecast.local.cloudy.alternative.dialog diff --git a/dialog/pt-br/forecast.local.foggy.alternative.dialog b/locale/pt-br/forecast.local.foggy.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.local.foggy.alternative.dialog rename to locale/pt-br/forecast.local.foggy.alternative.dialog diff --git a/dialog/pt-br/forecast.local.hard.wind.dialog b/locale/pt-br/forecast.local.hard.wind.dialog similarity index 100% rename from dialog/pt-br/forecast.local.hard.wind.dialog rename to locale/pt-br/forecast.local.hard.wind.dialog diff --git a/dialog/pt-br/forecast.local.high.temperature.dialog b/locale/pt-br/forecast.local.high.temperature.dialog similarity index 100% rename from dialog/pt-br/forecast.local.high.temperature.dialog rename to locale/pt-br/forecast.local.high.temperature.dialog diff --git a/dialog/pt-br/forecast.local.hot.dialog b/locale/pt-br/forecast.local.hot.dialog similarity index 100% rename from dialog/pt-br/forecast.local.hot.dialog rename to locale/pt-br/forecast.local.hot.dialog diff --git a/dialog/pt-br/forecast.local.light.wind.dialog b/locale/pt-br/forecast.local.light.wind.dialog similarity index 100% rename from dialog/pt-br/forecast.local.light.wind.dialog rename to locale/pt-br/forecast.local.light.wind.dialog diff --git a/dialog/pt-br/forecast.local.low.temperature.dialog b/locale/pt-br/forecast.local.low.temperature.dialog similarity index 100% rename from dialog/pt-br/forecast.local.low.temperature.dialog rename to locale/pt-br/forecast.local.low.temperature.dialog diff --git a/dialog/pt-br/forecast.local.medium.wind.dialog b/locale/pt-br/forecast.local.medium.wind.dialog similarity index 100% rename from dialog/pt-br/forecast.local.medium.wind.dialog rename to locale/pt-br/forecast.local.medium.wind.dialog diff --git a/dialog/pt-br/forecast.local.no.clear.predicted.dialog b/locale/pt-br/forecast.local.no.clear.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.local.no.clear.predicted.dialog rename to locale/pt-br/forecast.local.no.clear.predicted.dialog diff --git a/dialog/pt-br/forecast.local.no.cloudy.predicted.dialog b/locale/pt-br/forecast.local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.local.no.cloudy.predicted.dialog rename to locale/pt-br/forecast.local.no.cloudy.predicted.dialog diff --git a/dialog/pt-br/forecast.local.no.fog.predicted.dialog b/locale/pt-br/forecast.local.no.fog.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.local.no.fog.predicted.dialog rename to locale/pt-br/forecast.local.no.fog.predicted.dialog diff --git a/dialog/pt-br/forecast.local.no.rain.predicted.dialog b/locale/pt-br/forecast.local.no.rain.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.local.no.rain.predicted.dialog rename to locale/pt-br/forecast.local.no.rain.predicted.dialog diff --git a/dialog/pt-br/forecast.local.no.snow.predicted.dialog b/locale/pt-br/forecast.local.no.snow.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.local.no.snow.predicted.dialog rename to locale/pt-br/forecast.local.no.snow.predicted.dialog diff --git a/dialog/pt-br/forecast.local.no.storm.predicted.dialog b/locale/pt-br/forecast.local.no.storm.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.local.no.storm.predicted.dialog rename to locale/pt-br/forecast.local.no.storm.predicted.dialog diff --git a/dialog/pt-br/forecast.local.raining.alternative.dialog b/locale/pt-br/forecast.local.raining.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.local.raining.alternative.dialog rename to locale/pt-br/forecast.local.raining.alternative.dialog diff --git a/dialog/pt-br/forecast.local.storm.alternative.dialog b/locale/pt-br/forecast.local.storm.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.local.storm.alternative.dialog rename to locale/pt-br/forecast.local.storm.alternative.dialog diff --git a/dialog/pt-br/forecast.local.temperature.dialog b/locale/pt-br/forecast.local.temperature.dialog similarity index 100% rename from dialog/pt-br/forecast.local.temperature.dialog rename to locale/pt-br/forecast.local.temperature.dialog diff --git a/dialog/pt-br/forecast.local.weather.dialog b/locale/pt-br/forecast.local.weather.dialog similarity index 100% rename from dialog/pt-br/forecast.local.weather.dialog rename to locale/pt-br/forecast.local.weather.dialog diff --git a/dialog/pt-br/forecast.low.temperature.dialog b/locale/pt-br/forecast.low.temperature.dialog similarity index 100% rename from dialog/pt-br/forecast.low.temperature.dialog rename to locale/pt-br/forecast.low.temperature.dialog diff --git a/dialog/pt-br/forecast.medium.wind.dialog b/locale/pt-br/forecast.medium.wind.dialog similarity index 100% rename from dialog/pt-br/forecast.medium.wind.dialog rename to locale/pt-br/forecast.medium.wind.dialog diff --git a/dialog/pt-br/forecast.no.clear.predicted.dialog b/locale/pt-br/forecast.no.clear.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.no.clear.predicted.dialog rename to locale/pt-br/forecast.no.clear.predicted.dialog diff --git a/dialog/pt-br/forecast.no.cloudy.predicted.dialog b/locale/pt-br/forecast.no.cloudy.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.no.cloudy.predicted.dialog rename to locale/pt-br/forecast.no.cloudy.predicted.dialog diff --git a/dialog/pt-br/forecast.no.fog.predicted.dialog b/locale/pt-br/forecast.no.fog.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.no.fog.predicted.dialog rename to locale/pt-br/forecast.no.fog.predicted.dialog diff --git a/dialog/pt-br/forecast.no.rain.predicted.dialog b/locale/pt-br/forecast.no.rain.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.no.rain.predicted.dialog rename to locale/pt-br/forecast.no.rain.predicted.dialog diff --git a/dialog/pt-br/forecast.no.snow.predicted.dialog b/locale/pt-br/forecast.no.snow.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.no.snow.predicted.dialog rename to locale/pt-br/forecast.no.snow.predicted.dialog diff --git a/dialog/pt-br/forecast.no.storm.predicted.dialog b/locale/pt-br/forecast.no.storm.predicted.dialog similarity index 100% rename from dialog/pt-br/forecast.no.storm.predicted.dialog rename to locale/pt-br/forecast.no.storm.predicted.dialog diff --git a/dialog/pt-br/forecast.raining.alternative.dialog b/locale/pt-br/forecast.raining.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.raining.alternative.dialog rename to locale/pt-br/forecast.raining.alternative.dialog diff --git a/dialog/pt-br/forecast.snowing.alternative.dialog b/locale/pt-br/forecast.snowing.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.snowing.alternative.dialog rename to locale/pt-br/forecast.snowing.alternative.dialog diff --git a/dialog/pt-br/forecast.storm.alternative.dialog b/locale/pt-br/forecast.storm.alternative.dialog similarity index 100% rename from dialog/pt-br/forecast.storm.alternative.dialog rename to locale/pt-br/forecast.storm.alternative.dialog diff --git a/dialog/pt-br/forecast.temperature.dialog b/locale/pt-br/forecast.temperature.dialog similarity index 100% rename from dialog/pt-br/forecast.temperature.dialog rename to locale/pt-br/forecast.temperature.dialog diff --git a/dialog/pt-br/forecast.weather.dialog b/locale/pt-br/forecast.weather.dialog similarity index 100% rename from dialog/pt-br/forecast.weather.dialog rename to locale/pt-br/forecast.weather.dialog diff --git a/dialog/pt-br/from.day.dialog b/locale/pt-br/from.day.dialog similarity index 100% rename from dialog/pt-br/from.day.dialog rename to locale/pt-br/from.day.dialog diff --git a/dialog/pt-br/hard.wind.dialog b/locale/pt-br/hard.wind.dialog similarity index 100% rename from dialog/pt-br/hard.wind.dialog rename to locale/pt-br/hard.wind.dialog diff --git a/dialog/pt-br/heavy.dialog b/locale/pt-br/heavy.dialog similarity index 100% rename from dialog/pt-br/heavy.dialog rename to locale/pt-br/heavy.dialog diff --git a/dialog/pt-br/hour.local.weather.dialog b/locale/pt-br/hour.local.weather.dialog similarity index 100% rename from dialog/pt-br/hour.local.weather.dialog rename to locale/pt-br/hour.local.weather.dialog diff --git a/dialog/pt-br/hour.weather.dialog b/locale/pt-br/hour.weather.dialog similarity index 100% rename from dialog/pt-br/hour.weather.dialog rename to locale/pt-br/hour.weather.dialog diff --git a/dialog/pt-br/humidity.dialog b/locale/pt-br/humidity.dialog similarity index 100% rename from dialog/pt-br/humidity.dialog rename to locale/pt-br/humidity.dialog diff --git a/dialog/pt-br/light.dialog b/locale/pt-br/light.dialog similarity index 100% rename from dialog/pt-br/light.dialog rename to locale/pt-br/light.dialog diff --git a/dialog/pt-br/light.wind.dialog b/locale/pt-br/light.wind.dialog similarity index 100% rename from dialog/pt-br/light.wind.dialog rename to locale/pt-br/light.wind.dialog diff --git a/dialog/pt-br/local.affirmative.condition.dialog b/locale/pt-br/local.affirmative.condition.dialog similarity index 100% rename from dialog/pt-br/local.affirmative.condition.dialog rename to locale/pt-br/local.affirmative.condition.dialog diff --git a/dialog/pt-br/local.clear.alternative.dialog b/locale/pt-br/local.clear.alternative.dialog similarity index 100% rename from dialog/pt-br/local.clear.alternative.dialog rename to locale/pt-br/local.clear.alternative.dialog diff --git a/dialog/pt-br/local.cloudy.alternative.dialog b/locale/pt-br/local.cloudy.alternative.dialog similarity index 100% rename from dialog/pt-br/local.cloudy.alternative.dialog rename to locale/pt-br/local.cloudy.alternative.dialog diff --git a/dialog/pt-br/local.foggy.alternative.dialog b/locale/pt-br/local.foggy.alternative.dialog similarity index 100% rename from dialog/pt-br/local.foggy.alternative.dialog rename to locale/pt-br/local.foggy.alternative.dialog diff --git a/dialog/pt-br/local.hard.wind.dialog b/locale/pt-br/local.hard.wind.dialog similarity index 100% rename from dialog/pt-br/local.hard.wind.dialog rename to locale/pt-br/local.hard.wind.dialog diff --git a/dialog/pt-br/local.light.wind.dialog b/locale/pt-br/local.light.wind.dialog similarity index 100% rename from dialog/pt-br/local.light.wind.dialog rename to locale/pt-br/local.light.wind.dialog diff --git a/dialog/pt-br/local.medium.wind.dialog b/locale/pt-br/local.medium.wind.dialog similarity index 100% rename from dialog/pt-br/local.medium.wind.dialog rename to locale/pt-br/local.medium.wind.dialog diff --git a/dialog/pt-br/local.no.cloudy.predicted.dialog b/locale/pt-br/local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/pt-br/local.no.cloudy.predicted.dialog rename to locale/pt-br/local.no.cloudy.predicted.dialog diff --git a/dialog/pt-br/local.no.fog.predicted.dialog b/locale/pt-br/local.no.fog.predicted.dialog similarity index 100% rename from dialog/pt-br/local.no.fog.predicted.dialog rename to locale/pt-br/local.no.fog.predicted.dialog diff --git a/dialog/pt-br/local.no.rain.predicted.dialog b/locale/pt-br/local.no.rain.predicted.dialog similarity index 100% rename from dialog/pt-br/local.no.rain.predicted.dialog rename to locale/pt-br/local.no.rain.predicted.dialog diff --git a/dialog/pt-br/local.no.snow.predicted.dialog b/locale/pt-br/local.no.snow.predicted.dialog similarity index 100% rename from dialog/pt-br/local.no.snow.predicted.dialog rename to locale/pt-br/local.no.snow.predicted.dialog diff --git a/dialog/pt-br/local.no.storm.predicted.dialog b/locale/pt-br/local.no.storm.predicted.dialog similarity index 100% rename from dialog/pt-br/local.no.storm.predicted.dialog rename to locale/pt-br/local.no.storm.predicted.dialog diff --git a/dialog/pt-br/local.raining.alternative.dialog b/locale/pt-br/local.raining.alternative.dialog similarity index 100% rename from dialog/pt-br/local.raining.alternative.dialog rename to locale/pt-br/local.raining.alternative.dialog diff --git a/dialog/pt-br/local.snowing.alternative.dialog b/locale/pt-br/local.snowing.alternative.dialog similarity index 100% rename from dialog/pt-br/local.snowing.alternative.dialog rename to locale/pt-br/local.snowing.alternative.dialog diff --git a/dialog/pt-br/local.storm.alternative.dialog b/locale/pt-br/local.storm.alternative.dialog similarity index 100% rename from dialog/pt-br/local.storm.alternative.dialog rename to locale/pt-br/local.storm.alternative.dialog diff --git a/dialog/pt-br/location.not.found.dialog b/locale/pt-br/location.not.found.dialog similarity index 100% rename from dialog/pt-br/location.not.found.dialog rename to locale/pt-br/location.not.found.dialog diff --git a/regex/pt-br/location.rx b/locale/pt-br/location.rx similarity index 100% rename from regex/pt-br/location.rx rename to locale/pt-br/location.rx diff --git a/dialog/pt-br/medium.wind.dialog b/locale/pt-br/medium.wind.dialog similarity index 100% rename from dialog/pt-br/medium.wind.dialog rename to locale/pt-br/medium.wind.dialog diff --git a/dialog/pt-br/meters per second.dialog b/locale/pt-br/meters per second.dialog similarity index 100% rename from dialog/pt-br/meters per second.dialog rename to locale/pt-br/meters per second.dialog diff --git a/dialog/pt-br/miles per hour.dialog b/locale/pt-br/miles per hour.dialog similarity index 100% rename from dialog/pt-br/miles per hour.dialog rename to locale/pt-br/miles per hour.dialog diff --git a/dialog/pt-br/min.max.dialog b/locale/pt-br/min.max.dialog similarity index 100% rename from dialog/pt-br/min.max.dialog rename to locale/pt-br/min.max.dialog diff --git a/dialog/pt-br/no precipitation expected.dialog b/locale/pt-br/no precipitation expected.dialog similarity index 100% rename from dialog/pt-br/no precipitation expected.dialog rename to locale/pt-br/no precipitation expected.dialog diff --git a/dialog/pt-br/no.clear.predicted.dialog b/locale/pt-br/no.clear.predicted.dialog similarity index 100% rename from dialog/pt-br/no.clear.predicted.dialog rename to locale/pt-br/no.clear.predicted.dialog diff --git a/dialog/pt-br/no.cloudy.predicted.dialog b/locale/pt-br/no.cloudy.predicted.dialog similarity index 100% rename from dialog/pt-br/no.cloudy.predicted.dialog rename to locale/pt-br/no.cloudy.predicted.dialog diff --git a/dialog/pt-br/no.fog.predicted.dialog b/locale/pt-br/no.fog.predicted.dialog similarity index 100% rename from dialog/pt-br/no.fog.predicted.dialog rename to locale/pt-br/no.fog.predicted.dialog diff --git a/dialog/pt-br/no.forecast.dialog b/locale/pt-br/no.forecast.dialog similarity index 100% rename from dialog/pt-br/no.forecast.dialog rename to locale/pt-br/no.forecast.dialog diff --git a/dialog/pt-br/no.rain.predicted.dialog b/locale/pt-br/no.rain.predicted.dialog similarity index 100% rename from dialog/pt-br/no.rain.predicted.dialog rename to locale/pt-br/no.rain.predicted.dialog diff --git a/dialog/pt-br/no.snow.predicted.dialog b/locale/pt-br/no.snow.predicted.dialog similarity index 100% rename from dialog/pt-br/no.snow.predicted.dialog rename to locale/pt-br/no.snow.predicted.dialog diff --git a/dialog/pt-br/no.storm.predicted.dialog b/locale/pt-br/no.storm.predicted.dialog similarity index 100% rename from dialog/pt-br/no.storm.predicted.dialog rename to locale/pt-br/no.storm.predicted.dialog diff --git a/dialog/pt-br/on.date.dialog b/locale/pt-br/on.date.dialog similarity index 100% rename from dialog/pt-br/on.date.dialog rename to locale/pt-br/on.date.dialog diff --git a/dialog/pt-br/on.dialog b/locale/pt-br/on.dialog similarity index 100% rename from dialog/pt-br/on.dialog rename to locale/pt-br/on.dialog diff --git a/dialog/pt-br/percentage.number.dialog b/locale/pt-br/percentage.number.dialog similarity index 100% rename from dialog/pt-br/percentage.number.dialog rename to locale/pt-br/percentage.number.dialog diff --git a/dialog/pt-br/precipitation expected.dialog b/locale/pt-br/precipitation expected.dialog similarity index 100% rename from dialog/pt-br/precipitation expected.dialog rename to locale/pt-br/precipitation expected.dialog diff --git a/dialog/pt-br/rain.dialog b/locale/pt-br/rain.dialog similarity index 100% rename from dialog/pt-br/rain.dialog rename to locale/pt-br/rain.dialog diff --git a/dialog/pt-br/raining.alternative.dialog b/locale/pt-br/raining.alternative.dialog similarity index 100% rename from dialog/pt-br/raining.alternative.dialog rename to locale/pt-br/raining.alternative.dialog diff --git a/dialog/pt-br/report.condition.at.location.dialog b/locale/pt-br/report.condition.at.location.dialog similarity index 100% rename from dialog/pt-br/report.condition.at.location.dialog rename to locale/pt-br/report.condition.at.location.dialog diff --git a/dialog/pt-br/report.condition.dialog b/locale/pt-br/report.condition.dialog similarity index 100% rename from dialog/pt-br/report.condition.dialog rename to locale/pt-br/report.condition.dialog diff --git a/dialog/pt-br/report.condition.future.at.location.dialog b/locale/pt-br/report.condition.future.at.location.dialog similarity index 100% rename from dialog/pt-br/report.condition.future.at.location.dialog rename to locale/pt-br/report.condition.future.at.location.dialog diff --git a/dialog/pt-br/report.condition.future.dialog b/locale/pt-br/report.condition.future.dialog similarity index 100% rename from dialog/pt-br/report.condition.future.dialog rename to locale/pt-br/report.condition.future.dialog diff --git a/dialog/pt-br/report.wind.dialog b/locale/pt-br/report.wind.dialog similarity index 100% rename from dialog/pt-br/report.wind.dialog rename to locale/pt-br/report.wind.dialog diff --git a/vocab/pt-br/simple.temperature.intent b/locale/pt-br/simple.temperature.intent similarity index 100% rename from vocab/pt-br/simple.temperature.intent rename to locale/pt-br/simple.temperature.intent diff --git a/dialog/pt-br/sky is clear.future.dialog b/locale/pt-br/sky is clear.future.dialog similarity index 100% rename from dialog/pt-br/sky is clear.future.dialog rename to locale/pt-br/sky is clear.future.dialog diff --git a/dialog/pt-br/snow.dialog b/locale/pt-br/snow.dialog similarity index 100% rename from dialog/pt-br/snow.dialog rename to locale/pt-br/snow.dialog diff --git a/dialog/pt-br/snowing.alternative.dialog b/locale/pt-br/snowing.alternative.dialog similarity index 100% rename from dialog/pt-br/snowing.alternative.dialog rename to locale/pt-br/snowing.alternative.dialog diff --git a/dialog/pt-br/storm.alternative.dialog b/locale/pt-br/storm.alternative.dialog similarity index 100% rename from dialog/pt-br/storm.alternative.dialog rename to locale/pt-br/storm.alternative.dialog diff --git a/dialog/pt-br/storm.dialog b/locale/pt-br/storm.dialog similarity index 100% rename from dialog/pt-br/storm.dialog rename to locale/pt-br/storm.dialog diff --git a/dialog/pt-br/sunrise.dialog b/locale/pt-br/sunrise.dialog similarity index 100% rename from dialog/pt-br/sunrise.dialog rename to locale/pt-br/sunrise.dialog diff --git a/dialog/pt-br/sunset.dialog b/locale/pt-br/sunset.dialog similarity index 100% rename from dialog/pt-br/sunset.dialog rename to locale/pt-br/sunset.dialog diff --git a/dialog/pt-br/tonight.local.weather.dialog b/locale/pt-br/tonight.local.weather.dialog similarity index 100% rename from dialog/pt-br/tonight.local.weather.dialog rename to locale/pt-br/tonight.local.weather.dialog diff --git a/dialog/pt-br/weekly.condition.on.day.dialog b/locale/pt-br/weekly.condition.on.day.dialog similarity index 100% rename from dialog/pt-br/weekly.condition.on.day.dialog rename to locale/pt-br/weekly.condition.on.day.dialog diff --git a/dialog/pt-br/weekly.conditions.mostly.one.dialog b/locale/pt-br/weekly.conditions.mostly.one.dialog similarity index 100% rename from dialog/pt-br/weekly.conditions.mostly.one.dialog rename to locale/pt-br/weekly.conditions.mostly.one.dialog diff --git a/dialog/pt-br/weekly.conditions.seq.extra.dialog b/locale/pt-br/weekly.conditions.seq.extra.dialog similarity index 100% rename from dialog/pt-br/weekly.conditions.seq.extra.dialog rename to locale/pt-br/weekly.conditions.seq.extra.dialog diff --git a/dialog/pt-br/weekly.conditions.seq.period.dialog b/locale/pt-br/weekly.conditions.seq.period.dialog similarity index 100% rename from dialog/pt-br/weekly.conditions.seq.period.dialog rename to locale/pt-br/weekly.conditions.seq.period.dialog diff --git a/dialog/pt-br/weekly.conditions.seq.start.dialog b/locale/pt-br/weekly.conditions.seq.start.dialog similarity index 100% rename from dialog/pt-br/weekly.conditions.seq.start.dialog rename to locale/pt-br/weekly.conditions.seq.start.dialog diff --git a/dialog/pt-br/weekly.conditions.some.days.dialog b/locale/pt-br/weekly.conditions.some.days.dialog similarity index 100% rename from dialog/pt-br/weekly.conditions.some.days.dialog rename to locale/pt-br/weekly.conditions.some.days.dialog diff --git a/dialog/pt-br/weekly.temp.range.dialog b/locale/pt-br/weekly.temp.range.dialog similarity index 100% rename from dialog/pt-br/weekly.temp.range.dialog rename to locale/pt-br/weekly.temp.range.dialog diff --git a/vocab/pt-br/what.is.multi.day.forecast.intent b/locale/pt-br/what.is.multi.day.forecast.intent similarity index 100% rename from vocab/pt-br/what.is.multi.day.forecast.intent rename to locale/pt-br/what.is.multi.day.forecast.intent diff --git a/vocab/pt-br/what.is.three.day.forecast.intent b/locale/pt-br/what.is.three.day.forecast.intent similarity index 100% rename from vocab/pt-br/what.is.three.day.forecast.intent rename to locale/pt-br/what.is.three.day.forecast.intent diff --git a/vocab/pt-br/what.is.three.day.forecast.location.intent b/locale/pt-br/what.is.three.day.forecast.location.intent similarity index 100% rename from vocab/pt-br/what.is.three.day.forecast.location.intent rename to locale/pt-br/what.is.three.day.forecast.location.intent diff --git a/vocab/pt-br/what.is.two.day.forecast.intent b/locale/pt-br/what.is.two.day.forecast.intent similarity index 100% rename from vocab/pt-br/what.is.two.day.forecast.intent rename to locale/pt-br/what.is.two.day.forecast.intent diff --git a/vocab/pt-br/whats.weather.like.intent b/locale/pt-br/whats.weather.like.intent similarity index 100% rename from vocab/pt-br/whats.weather.like.intent rename to locale/pt-br/whats.weather.like.intent diff --git a/dialog/pt-br/wind.speed.dialog b/locale/pt-br/wind.speed.dialog similarity index 100% rename from dialog/pt-br/wind.speed.dialog rename to locale/pt-br/wind.speed.dialog diff --git a/dialog/pt-br/wind.speed.dir.dialog b/locale/pt-br/wind.speed.dir.dialog similarity index 100% rename from dialog/pt-br/wind.speed.dir.dialog rename to locale/pt-br/wind.speed.dir.dialog diff --git a/dialog/pt-br/wind.strength.hard.dialog b/locale/pt-br/wind.strength.hard.dialog similarity index 100% rename from dialog/pt-br/wind.strength.hard.dialog rename to locale/pt-br/wind.strength.hard.dialog diff --git a/dialog/pt-br/wind.strength.light.dialog b/locale/pt-br/wind.strength.light.dialog similarity index 100% rename from dialog/pt-br/wind.strength.light.dialog rename to locale/pt-br/wind.strength.light.dialog diff --git a/dialog/pt-br/wind.strength.medium.dialog b/locale/pt-br/wind.strength.medium.dialog similarity index 100% rename from dialog/pt-br/wind.strength.medium.dialog rename to locale/pt-br/wind.strength.medium.dialog diff --git a/dialog/pt-br/winds.dialog b/locale/pt-br/winds.dialog similarity index 100% rename from dialog/pt-br/winds.dialog rename to locale/pt-br/winds.dialog diff --git a/dialog/ru-ru/E.dialog b/locale/ru-ru/E.dialog similarity index 100% rename from dialog/ru-ru/E.dialog rename to locale/ru-ru/E.dialog diff --git a/vocab/ru-ru/Forecast.voc b/locale/ru-ru/Forecast.voc similarity index 100% rename from vocab/ru-ru/Forecast.voc rename to locale/ru-ru/Forecast.voc diff --git a/vocab/ru-ru/Humidity.voc b/locale/ru-ru/Humidity.voc similarity index 100% rename from vocab/ru-ru/Humidity.voc rename to locale/ru-ru/Humidity.voc diff --git a/vocab/ru-ru/Later.voc b/locale/ru-ru/Later.voc similarity index 100% rename from vocab/ru-ru/Later.voc rename to locale/ru-ru/Later.voc diff --git a/vocab/ru-ru/Location.voc b/locale/ru-ru/Location.voc similarity index 100% rename from vocab/ru-ru/Location.voc rename to locale/ru-ru/Location.voc diff --git a/dialog/ru-ru/N.dialog b/locale/ru-ru/N.dialog similarity index 100% rename from dialog/ru-ru/N.dialog rename to locale/ru-ru/N.dialog diff --git a/dialog/ru-ru/NE.dialog b/locale/ru-ru/NE.dialog similarity index 100% rename from dialog/ru-ru/NE.dialog rename to locale/ru-ru/NE.dialog diff --git a/dialog/ru-ru/NW.dialog b/locale/ru-ru/NW.dialog similarity index 100% rename from dialog/ru-ru/NW.dialog rename to locale/ru-ru/NW.dialog diff --git a/vocab/ru-ru/Next.voc b/locale/ru-ru/Next.voc similarity index 100% rename from vocab/ru-ru/Next.voc rename to locale/ru-ru/Next.voc diff --git a/vocab/ru-ru/Precipitation.voc b/locale/ru-ru/Precipitation.voc similarity index 100% rename from vocab/ru-ru/Precipitation.voc rename to locale/ru-ru/Precipitation.voc diff --git a/vocab/ru-ru/Query.voc b/locale/ru-ru/Query.voc similarity index 100% rename from vocab/ru-ru/Query.voc rename to locale/ru-ru/Query.voc diff --git a/dialog/ru-ru/S.dialog b/locale/ru-ru/S.dialog similarity index 100% rename from dialog/ru-ru/S.dialog rename to locale/ru-ru/S.dialog diff --git a/dialog/ru-ru/SE.dialog b/locale/ru-ru/SE.dialog similarity index 100% rename from dialog/ru-ru/SE.dialog rename to locale/ru-ru/SE.dialog diff --git a/dialog/ru-ru/SW.dialog b/locale/ru-ru/SW.dialog similarity index 100% rename from dialog/ru-ru/SW.dialog rename to locale/ru-ru/SW.dialog diff --git a/vocab/ru-ru/Sunrise.voc b/locale/ru-ru/Sunrise.voc similarity index 100% rename from vocab/ru-ru/Sunrise.voc rename to locale/ru-ru/Sunrise.voc diff --git a/vocab/ru-ru/Sunset.voc b/locale/ru-ru/Sunset.voc similarity index 100% rename from vocab/ru-ru/Sunset.voc rename to locale/ru-ru/Sunset.voc diff --git a/dialog/ru-ru/W.dialog b/locale/ru-ru/W.dialog similarity index 100% rename from dialog/ru-ru/W.dialog rename to locale/ru-ru/W.dialog diff --git a/vocab/ru-ru/Weather.voc b/locale/ru-ru/Weather.voc similarity index 100% rename from vocab/ru-ru/Weather.voc rename to locale/ru-ru/Weather.voc diff --git a/vocab/ru-ru/WeatherType.voc b/locale/ru-ru/WeatherType.voc similarity index 100% rename from vocab/ru-ru/WeatherType.voc rename to locale/ru-ru/WeatherType.voc diff --git a/vocab/ru-ru/Windy.voc b/locale/ru-ru/Windy.voc similarity index 100% rename from vocab/ru-ru/Windy.voc rename to locale/ru-ru/Windy.voc diff --git a/dialog/ru-ru/celsius.dialog b/locale/ru-ru/celsius.dialog similarity index 100% rename from dialog/ru-ru/celsius.dialog rename to locale/ru-ru/celsius.dialog diff --git a/dialog/ru-ru/current.local.weather.dialog b/locale/ru-ru/current.local.weather.dialog similarity index 100% rename from dialog/ru-ru/current.local.weather.dialog rename to locale/ru-ru/current.local.weather.dialog diff --git a/dialog/ru-ru/current.weather.dialog b/locale/ru-ru/current.weather.dialog similarity index 100% rename from dialog/ru-ru/current.weather.dialog rename to locale/ru-ru/current.weather.dialog diff --git a/dialog/ru-ru/do not know.dialog b/locale/ru-ru/do not know.dialog similarity index 100% rename from dialog/ru-ru/do not know.dialog rename to locale/ru-ru/do not know.dialog diff --git a/dialog/ru-ru/fahrenheit.dialog b/locale/ru-ru/fahrenheit.dialog similarity index 100% rename from dialog/ru-ru/fahrenheit.dialog rename to locale/ru-ru/fahrenheit.dialog diff --git a/dialog/ru-ru/forecast.local.weather.dialog b/locale/ru-ru/forecast.local.weather.dialog similarity index 100% rename from dialog/ru-ru/forecast.local.weather.dialog rename to locale/ru-ru/forecast.local.weather.dialog diff --git a/dialog/ru-ru/forecast.weather.dialog b/locale/ru-ru/forecast.weather.dialog similarity index 100% rename from dialog/ru-ru/forecast.weather.dialog rename to locale/ru-ru/forecast.weather.dialog diff --git a/dialog/ru-ru/heavy.dialog b/locale/ru-ru/heavy.dialog similarity index 100% rename from dialog/ru-ru/heavy.dialog rename to locale/ru-ru/heavy.dialog diff --git a/dialog/ru-ru/hour.local.weather.dialog b/locale/ru-ru/hour.local.weather.dialog similarity index 100% rename from dialog/ru-ru/hour.local.weather.dialog rename to locale/ru-ru/hour.local.weather.dialog diff --git a/dialog/ru-ru/hour.weather.dialog b/locale/ru-ru/hour.weather.dialog similarity index 100% rename from dialog/ru-ru/hour.weather.dialog rename to locale/ru-ru/hour.weather.dialog diff --git a/dialog/ru-ru/humidity.dialog b/locale/ru-ru/humidity.dialog similarity index 100% rename from dialog/ru-ru/humidity.dialog rename to locale/ru-ru/humidity.dialog diff --git a/dialog/ru-ru/light.dialog b/locale/ru-ru/light.dialog similarity index 100% rename from dialog/ru-ru/light.dialog rename to locale/ru-ru/light.dialog diff --git a/dialog/ru-ru/location.not.found.dialog b/locale/ru-ru/location.not.found.dialog similarity index 100% rename from dialog/ru-ru/location.not.found.dialog rename to locale/ru-ru/location.not.found.dialog diff --git a/regex/ru-ru/location.rx b/locale/ru-ru/location.rx similarity index 100% rename from regex/ru-ru/location.rx rename to locale/ru-ru/location.rx diff --git a/dialog/ru-ru/meters per second.dialog b/locale/ru-ru/meters per second.dialog similarity index 100% rename from dialog/ru-ru/meters per second.dialog rename to locale/ru-ru/meters per second.dialog diff --git a/dialog/ru-ru/miles per hour.dialog b/locale/ru-ru/miles per hour.dialog similarity index 100% rename from dialog/ru-ru/miles per hour.dialog rename to locale/ru-ru/miles per hour.dialog diff --git a/dialog/ru-ru/no forecast.dialog b/locale/ru-ru/no forecast.dialog similarity index 100% rename from dialog/ru-ru/no forecast.dialog rename to locale/ru-ru/no forecast.dialog diff --git a/dialog/ru-ru/no precipitation expected.dialog b/locale/ru-ru/no precipitation expected.dialog similarity index 100% rename from dialog/ru-ru/no precipitation expected.dialog rename to locale/ru-ru/no precipitation expected.dialog diff --git a/dialog/ru-ru/precipitation expected.dialog b/locale/ru-ru/precipitation expected.dialog similarity index 100% rename from dialog/ru-ru/precipitation expected.dialog rename to locale/ru-ru/precipitation expected.dialog diff --git a/dialog/ru-ru/rain.dialog b/locale/ru-ru/rain.dialog similarity index 100% rename from dialog/ru-ru/rain.dialog rename to locale/ru-ru/rain.dialog diff --git a/dialog/ru-ru/report.condition.dialog b/locale/ru-ru/report.condition.dialog similarity index 100% rename from dialog/ru-ru/report.condition.dialog rename to locale/ru-ru/report.condition.dialog diff --git a/dialog/ru-ru/report.future.condition.dialog b/locale/ru-ru/report.future.condition.dialog similarity index 100% rename from dialog/ru-ru/report.future.condition.dialog rename to locale/ru-ru/report.future.condition.dialog diff --git a/dialog/ru-ru/sky is clear.future.dialog b/locale/ru-ru/sky is clear.future.dialog similarity index 100% rename from dialog/ru-ru/sky is clear.future.dialog rename to locale/ru-ru/sky is clear.future.dialog diff --git a/dialog/ru-ru/snow.dialog b/locale/ru-ru/snow.dialog similarity index 100% rename from dialog/ru-ru/snow.dialog rename to locale/ru-ru/snow.dialog diff --git a/dialog/ru-ru/wind.speed.dialog b/locale/ru-ru/wind.speed.dialog similarity index 100% rename from dialog/ru-ru/wind.speed.dialog rename to locale/ru-ru/wind.speed.dialog diff --git a/dialog/ru-ru/wind.speed.dir.dialog b/locale/ru-ru/wind.speed.dir.dialog similarity index 100% rename from dialog/ru-ru/wind.speed.dir.dialog rename to locale/ru-ru/wind.speed.dir.dialog diff --git a/dialog/ru-ru/winds.dialog b/locale/ru-ru/winds.dialog similarity index 100% rename from dialog/ru-ru/winds.dialog rename to locale/ru-ru/winds.dialog diff --git a/vocab/sv-se/Clear.voc b/locale/sv-se/Clear.voc similarity index 100% rename from vocab/sv-se/Clear.voc rename to locale/sv-se/Clear.voc diff --git a/vocab/sv-se/ClearAlternatives.voc b/locale/sv-se/ClearAlternatives.voc similarity index 100% rename from vocab/sv-se/ClearAlternatives.voc rename to locale/sv-se/ClearAlternatives.voc diff --git a/vocab/sv-se/Cloudy.voc b/locale/sv-se/Cloudy.voc similarity index 100% rename from vocab/sv-se/Cloudy.voc rename to locale/sv-se/Cloudy.voc diff --git a/vocab/sv-se/CloudyAlternatives.voc b/locale/sv-se/CloudyAlternatives.voc similarity index 100% rename from vocab/sv-se/CloudyAlternatives.voc rename to locale/sv-se/CloudyAlternatives.voc diff --git a/vocab/sv-se/Cold.voc b/locale/sv-se/Cold.voc similarity index 100% rename from vocab/sv-se/Cold.voc rename to locale/sv-se/Cold.voc diff --git a/vocab/sv-se/ConfirmQuery.voc b/locale/sv-se/ConfirmQuery.voc similarity index 100% rename from vocab/sv-se/ConfirmQuery.voc rename to locale/sv-se/ConfirmQuery.voc diff --git a/vocab/sv-se/ConfirmQueryCurrent.voc b/locale/sv-se/ConfirmQueryCurrent.voc similarity index 100% rename from vocab/sv-se/ConfirmQueryCurrent.voc rename to locale/sv-se/ConfirmQueryCurrent.voc diff --git a/vocab/sv-se/ConfirmQueryFuture.voc b/locale/sv-se/ConfirmQueryFuture.voc similarity index 100% rename from vocab/sv-se/ConfirmQueryFuture.voc rename to locale/sv-se/ConfirmQueryFuture.voc diff --git a/vocab/sv-se/Couple.voc b/locale/sv-se/Couple.voc similarity index 100% rename from vocab/sv-se/Couple.voc rename to locale/sv-se/Couple.voc diff --git a/dialog/sv-se/E.dialog b/locale/sv-se/E.dialog similarity index 100% rename from dialog/sv-se/E.dialog rename to locale/sv-se/E.dialog diff --git a/vocab/sv-se/Fahrenheit.voc b/locale/sv-se/Fahrenheit.voc similarity index 100% rename from vocab/sv-se/Fahrenheit.voc rename to locale/sv-se/Fahrenheit.voc diff --git a/vocab/sv-se/FogAlternatives.voc b/locale/sv-se/FogAlternatives.voc similarity index 100% rename from vocab/sv-se/FogAlternatives.voc rename to locale/sv-se/FogAlternatives.voc diff --git a/vocab/sv-se/Foggy.voc b/locale/sv-se/Foggy.voc similarity index 100% rename from vocab/sv-se/Foggy.voc rename to locale/sv-se/Foggy.voc diff --git a/vocab/sv-se/Forecast.voc b/locale/sv-se/Forecast.voc similarity index 100% rename from vocab/sv-se/Forecast.voc rename to locale/sv-se/Forecast.voc diff --git a/vocab/sv-se/High.voc b/locale/sv-se/High.voc similarity index 100% rename from vocab/sv-se/High.voc rename to locale/sv-se/High.voc diff --git a/vocab/sv-se/Hot.voc b/locale/sv-se/Hot.voc similarity index 100% rename from vocab/sv-se/Hot.voc rename to locale/sv-se/Hot.voc diff --git a/vocab/sv-se/How.voc b/locale/sv-se/How.voc similarity index 100% rename from vocab/sv-se/How.voc rename to locale/sv-se/How.voc diff --git a/vocab/sv-se/Humidity.voc b/locale/sv-se/Humidity.voc similarity index 100% rename from vocab/sv-se/Humidity.voc rename to locale/sv-se/Humidity.voc diff --git a/vocab/sv-se/Later.voc b/locale/sv-se/Later.voc similarity index 100% rename from vocab/sv-se/Later.voc rename to locale/sv-se/Later.voc diff --git a/vocab/sv-se/Location.voc b/locale/sv-se/Location.voc similarity index 100% rename from vocab/sv-se/Location.voc rename to locale/sv-se/Location.voc diff --git a/vocab/sv-se/Low.voc b/locale/sv-se/Low.voc similarity index 100% rename from vocab/sv-se/Low.voc rename to locale/sv-se/Low.voc diff --git a/dialog/sv-se/N.dialog b/locale/sv-se/N.dialog similarity index 100% rename from dialog/sv-se/N.dialog rename to locale/sv-se/N.dialog diff --git a/dialog/sv-se/NE.dialog b/locale/sv-se/NE.dialog similarity index 100% rename from dialog/sv-se/NE.dialog rename to locale/sv-se/NE.dialog diff --git a/dialog/sv-se/NW.dialog b/locale/sv-se/NW.dialog similarity index 100% rename from dialog/sv-se/NW.dialog rename to locale/sv-se/NW.dialog diff --git a/vocab/sv-se/Next.voc b/locale/sv-se/Next.voc similarity index 100% rename from vocab/sv-se/Next.voc rename to locale/sv-se/Next.voc diff --git a/vocab/sv-se/Now.voc b/locale/sv-se/Now.voc similarity index 100% rename from vocab/sv-se/Now.voc rename to locale/sv-se/Now.voc diff --git a/vocab/sv-se/Precipitation.voc b/locale/sv-se/Precipitation.voc similarity index 100% rename from vocab/sv-se/Precipitation.voc rename to locale/sv-se/Precipitation.voc diff --git a/vocab/sv-se/Query.voc b/locale/sv-se/Query.voc similarity index 100% rename from vocab/sv-se/Query.voc rename to locale/sv-se/Query.voc diff --git a/vocab/sv-se/RainAlternatives.voc b/locale/sv-se/RainAlternatives.voc similarity index 100% rename from vocab/sv-se/RainAlternatives.voc rename to locale/sv-se/RainAlternatives.voc diff --git a/vocab/sv-se/Raining.voc b/locale/sv-se/Raining.voc similarity index 100% rename from vocab/sv-se/Raining.voc rename to locale/sv-se/Raining.voc diff --git a/vocab/sv-se/RelativeDay.voc b/locale/sv-se/RelativeDay.voc similarity index 100% rename from vocab/sv-se/RelativeDay.voc rename to locale/sv-se/RelativeDay.voc diff --git a/vocab/sv-se/RelativeTime.voc b/locale/sv-se/RelativeTime.voc similarity index 100% rename from vocab/sv-se/RelativeTime.voc rename to locale/sv-se/RelativeTime.voc diff --git a/dialog/sv-se/S.dialog b/locale/sv-se/S.dialog similarity index 100% rename from dialog/sv-se/S.dialog rename to locale/sv-se/S.dialog diff --git a/dialog/sv-se/SE.dialog b/locale/sv-se/SE.dialog similarity index 100% rename from dialog/sv-se/SE.dialog rename to locale/sv-se/SE.dialog diff --git a/dialog/sv-se/SW.dialog b/locale/sv-se/SW.dialog similarity index 100% rename from dialog/sv-se/SW.dialog rename to locale/sv-se/SW.dialog diff --git a/vocab/sv-se/SnowAlternatives.voc b/locale/sv-se/SnowAlternatives.voc similarity index 100% rename from vocab/sv-se/SnowAlternatives.voc rename to locale/sv-se/SnowAlternatives.voc diff --git a/vocab/sv-se/Snowing.voc b/locale/sv-se/Snowing.voc similarity index 100% rename from vocab/sv-se/Snowing.voc rename to locale/sv-se/Snowing.voc diff --git a/vocab/sv-se/Storm.voc b/locale/sv-se/Storm.voc similarity index 100% rename from vocab/sv-se/Storm.voc rename to locale/sv-se/Storm.voc diff --git a/vocab/sv-se/StormAlternatives.voc b/locale/sv-se/StormAlternatives.voc similarity index 100% rename from vocab/sv-se/StormAlternatives.voc rename to locale/sv-se/StormAlternatives.voc diff --git a/vocab/sv-se/Sunrise.voc b/locale/sv-se/Sunrise.voc similarity index 100% rename from vocab/sv-se/Sunrise.voc rename to locale/sv-se/Sunrise.voc diff --git a/vocab/sv-se/Sunset.voc b/locale/sv-se/Sunset.voc similarity index 100% rename from vocab/sv-se/Sunset.voc rename to locale/sv-se/Sunset.voc diff --git a/vocab/sv-se/Temperature.voc b/locale/sv-se/Temperature.voc similarity index 100% rename from vocab/sv-se/Temperature.voc rename to locale/sv-se/Temperature.voc diff --git a/vocab/sv-se/ThreeDay.voc b/locale/sv-se/ThreeDay.voc similarity index 100% rename from vocab/sv-se/ThreeDay.voc rename to locale/sv-se/ThreeDay.voc diff --git a/vocab/sv-se/Today.voc b/locale/sv-se/Today.voc similarity index 100% rename from vocab/sv-se/Today.voc rename to locale/sv-se/Today.voc diff --git a/vocab/sv-se/Unit.entity b/locale/sv-se/Unit.entity similarity index 100% rename from vocab/sv-se/Unit.entity rename to locale/sv-se/Unit.entity diff --git a/vocab/sv-se/Unit.voc b/locale/sv-se/Unit.voc similarity index 100% rename from vocab/sv-se/Unit.voc rename to locale/sv-se/Unit.voc diff --git a/dialog/sv-se/W.dialog b/locale/sv-se/W.dialog similarity index 100% rename from dialog/sv-se/W.dialog rename to locale/sv-se/W.dialog diff --git a/vocab/sv-se/Weather.voc b/locale/sv-se/Weather.voc similarity index 100% rename from vocab/sv-se/Weather.voc rename to locale/sv-se/Weather.voc diff --git a/vocab/sv-se/WeatherType.voc b/locale/sv-se/WeatherType.voc similarity index 100% rename from vocab/sv-se/WeatherType.voc rename to locale/sv-se/WeatherType.voc diff --git a/vocab/sv-se/Week.voc b/locale/sv-se/Week.voc similarity index 100% rename from vocab/sv-se/Week.voc rename to locale/sv-se/Week.voc diff --git a/vocab/sv-se/Weekend.voc b/locale/sv-se/Weekend.voc similarity index 100% rename from vocab/sv-se/Weekend.voc rename to locale/sv-se/Weekend.voc diff --git a/vocab/sv-se/When.voc b/locale/sv-se/When.voc similarity index 100% rename from vocab/sv-se/When.voc rename to locale/sv-se/When.voc diff --git a/vocab/sv-se/Windy.voc b/locale/sv-se/Windy.voc similarity index 100% rename from vocab/sv-se/Windy.voc rename to locale/sv-se/Windy.voc diff --git a/dialog/sv-se/affirmative.condition.dialog b/locale/sv-se/affirmative.condition.dialog similarity index 100% rename from dialog/sv-se/affirmative.condition.dialog rename to locale/sv-se/affirmative.condition.dialog diff --git a/dialog/sv-se/and.dialog b/locale/sv-se/and.dialog similarity index 100% rename from dialog/sv-se/and.dialog rename to locale/sv-se/and.dialog diff --git a/dialog/sv-se/at.time.affirmative.condition.dialog b/locale/sv-se/at.time.affirmative.condition.dialog similarity index 100% rename from dialog/sv-se/at.time.affirmative.condition.dialog rename to locale/sv-se/at.time.affirmative.condition.dialog diff --git a/dialog/sv-se/at.time.cond.alternative.dialog b/locale/sv-se/at.time.cond.alternative.dialog similarity index 100% rename from dialog/sv-se/at.time.cond.alternative.dialog rename to locale/sv-se/at.time.cond.alternative.dialog diff --git a/dialog/sv-se/at.time.forecast.affirmative.condition.dialog b/locale/sv-se/at.time.forecast.affirmative.condition.dialog similarity index 100% rename from dialog/sv-se/at.time.forecast.affirmative.condition.dialog rename to locale/sv-se/at.time.forecast.affirmative.condition.dialog diff --git a/dialog/sv-se/at.time.forecast.cond.alternative.dialog b/locale/sv-se/at.time.forecast.cond.alternative.dialog similarity index 100% rename from dialog/sv-se/at.time.forecast.cond.alternative.dialog rename to locale/sv-se/at.time.forecast.cond.alternative.dialog diff --git a/dialog/sv-se/at.time.forecast.local.affirmative.condition.dialog b/locale/sv-se/at.time.forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/sv-se/at.time.forecast.local.affirmative.condition.dialog rename to locale/sv-se/at.time.forecast.local.affirmative.condition.dialog diff --git a/dialog/sv-se/at.time.forecast.local.cond.alternative.dialog b/locale/sv-se/at.time.forecast.local.cond.alternative.dialog similarity index 100% rename from dialog/sv-se/at.time.forecast.local.cond.alternative.dialog rename to locale/sv-se/at.time.forecast.local.cond.alternative.dialog diff --git a/dialog/sv-se/at.time.forecast.local.no.cond.predicted.dialog b/locale/sv-se/at.time.forecast.local.no.cond.predicted.dialog similarity index 100% rename from dialog/sv-se/at.time.forecast.local.no.cond.predicted.dialog rename to locale/sv-se/at.time.forecast.local.no.cond.predicted.dialog diff --git a/dialog/sv-se/at.time.forecast.no.cond.predicted.dialog b/locale/sv-se/at.time.forecast.no.cond.predicted.dialog similarity index 100% rename from dialog/sv-se/at.time.forecast.no.cond.predicted.dialog rename to locale/sv-se/at.time.forecast.no.cond.predicted.dialog diff --git a/dialog/sv-se/at.time.local.affirmative.condition.dialog b/locale/sv-se/at.time.local.affirmative.condition.dialog similarity index 100% rename from dialog/sv-se/at.time.local.affirmative.condition.dialog rename to locale/sv-se/at.time.local.affirmative.condition.dialog diff --git a/dialog/sv-se/at.time.local.cond.alternative.dialog b/locale/sv-se/at.time.local.cond.alternative.dialog similarity index 100% rename from dialog/sv-se/at.time.local.cond.alternative.dialog rename to locale/sv-se/at.time.local.cond.alternative.dialog diff --git a/dialog/sv-se/at.time.local.high.temperature.dialog b/locale/sv-se/at.time.local.high.temperature.dialog similarity index 100% rename from dialog/sv-se/at.time.local.high.temperature.dialog rename to locale/sv-se/at.time.local.high.temperature.dialog diff --git a/dialog/sv-se/at.time.local.low.temperature.dialog b/locale/sv-se/at.time.local.low.temperature.dialog similarity index 100% rename from dialog/sv-se/at.time.local.low.temperature.dialog rename to locale/sv-se/at.time.local.low.temperature.dialog diff --git a/dialog/sv-se/at.time.local.no.cond.predicted.dialog b/locale/sv-se/at.time.local.no.cond.predicted.dialog similarity index 100% rename from dialog/sv-se/at.time.local.no.cond.predicted.dialog rename to locale/sv-se/at.time.local.no.cond.predicted.dialog diff --git a/dialog/sv-se/at.time.local.temperature.dialog b/locale/sv-se/at.time.local.temperature.dialog similarity index 100% rename from dialog/sv-se/at.time.local.temperature.dialog rename to locale/sv-se/at.time.local.temperature.dialog diff --git a/dialog/sv-se/at.time.local.weather.dialog b/locale/sv-se/at.time.local.weather.dialog similarity index 100% rename from dialog/sv-se/at.time.local.weather.dialog rename to locale/sv-se/at.time.local.weather.dialog diff --git a/dialog/sv-se/at.time.no.cond.predicted.dialog b/locale/sv-se/at.time.no.cond.predicted.dialog similarity index 100% rename from dialog/sv-se/at.time.no.cond.predicted.dialog rename to locale/sv-se/at.time.no.cond.predicted.dialog diff --git a/dialog/sv-se/cant.get.forecast.dialog b/locale/sv-se/cant.get.forecast.dialog similarity index 100% rename from dialog/sv-se/cant.get.forecast.dialog rename to locale/sv-se/cant.get.forecast.dialog diff --git a/dialog/sv-se/celsius.dialog b/locale/sv-se/celsius.dialog similarity index 100% rename from dialog/sv-se/celsius.dialog rename to locale/sv-se/celsius.dialog diff --git a/dialog/sv-se/clear sky.dialog b/locale/sv-se/clear sky.dialog similarity index 100% rename from dialog/sv-se/clear sky.dialog rename to locale/sv-se/clear sky.dialog diff --git a/dialog/sv-se/clear.alternative.dialog b/locale/sv-se/clear.alternative.dialog similarity index 100% rename from dialog/sv-se/clear.alternative.dialog rename to locale/sv-se/clear.alternative.dialog diff --git a/dialog/sv-se/clear.dialog b/locale/sv-se/clear.dialog similarity index 100% rename from dialog/sv-se/clear.dialog rename to locale/sv-se/clear.dialog diff --git a/dialog/sv-se/clear.future.dialog b/locale/sv-se/clear.future.dialog similarity index 100% rename from dialog/sv-se/clear.future.dialog rename to locale/sv-se/clear.future.dialog diff --git a/dialog/sv-se/cloudy.alternative.dialog b/locale/sv-se/cloudy.alternative.dialog similarity index 100% rename from dialog/sv-se/cloudy.alternative.dialog rename to locale/sv-se/cloudy.alternative.dialog diff --git a/dialog/sv-se/condition.category.value b/locale/sv-se/condition.category.value similarity index 100% rename from dialog/sv-se/condition.category.value rename to locale/sv-se/condition.category.value diff --git a/dialog/sv-se/current.high.temperature.dialog b/locale/sv-se/current.high.temperature.dialog similarity index 100% rename from dialog/sv-se/current.high.temperature.dialog rename to locale/sv-se/current.high.temperature.dialog diff --git a/dialog/sv-se/current.hot.dialog b/locale/sv-se/current.hot.dialog similarity index 100% rename from dialog/sv-se/current.hot.dialog rename to locale/sv-se/current.hot.dialog diff --git a/dialog/sv-se/current.local.cold.dialog b/locale/sv-se/current.local.cold.dialog similarity index 100% rename from dialog/sv-se/current.local.cold.dialog rename to locale/sv-se/current.local.cold.dialog diff --git a/dialog/sv-se/current.local.high.temperature.dialog b/locale/sv-se/current.local.high.temperature.dialog similarity index 100% rename from dialog/sv-se/current.local.high.temperature.dialog rename to locale/sv-se/current.local.high.temperature.dialog diff --git a/dialog/sv-se/current.local.hot.dialog b/locale/sv-se/current.local.hot.dialog similarity index 100% rename from dialog/sv-se/current.local.hot.dialog rename to locale/sv-se/current.local.hot.dialog diff --git a/dialog/sv-se/current.local.low.temperature.dialog b/locale/sv-se/current.local.low.temperature.dialog similarity index 100% rename from dialog/sv-se/current.local.low.temperature.dialog rename to locale/sv-se/current.local.low.temperature.dialog diff --git a/dialog/sv-se/current.local.temperature.dialog b/locale/sv-se/current.local.temperature.dialog similarity index 100% rename from dialog/sv-se/current.local.temperature.dialog rename to locale/sv-se/current.local.temperature.dialog diff --git a/dialog/sv-se/current.local.weather.dialog b/locale/sv-se/current.local.weather.dialog similarity index 100% rename from dialog/sv-se/current.local.weather.dialog rename to locale/sv-se/current.local.weather.dialog diff --git a/dialog/sv-se/current.low.temperature.dialog b/locale/sv-se/current.low.temperature.dialog similarity index 100% rename from dialog/sv-se/current.low.temperature.dialog rename to locale/sv-se/current.low.temperature.dialog diff --git a/dialog/sv-se/current.temperature.dialog b/locale/sv-se/current.temperature.dialog similarity index 100% rename from dialog/sv-se/current.temperature.dialog rename to locale/sv-se/current.temperature.dialog diff --git a/dialog/sv-se/current.weather.dialog b/locale/sv-se/current.weather.dialog similarity index 100% rename from dialog/sv-se/current.weather.dialog rename to locale/sv-se/current.weather.dialog diff --git a/dialog/sv-se/do not know.dialog b/locale/sv-se/do not know.dialog similarity index 100% rename from dialog/sv-se/do not know.dialog rename to locale/sv-se/do not know.dialog diff --git a/vocab/sv-se/do.i.need.an.umbrella.intent b/locale/sv-se/do.i.need.an.umbrella.intent similarity index 100% rename from vocab/sv-se/do.i.need.an.umbrella.intent rename to locale/sv-se/do.i.need.an.umbrella.intent diff --git a/dialog/sv-se/fahrenheit.dialog b/locale/sv-se/fahrenheit.dialog similarity index 100% rename from dialog/sv-se/fahrenheit.dialog rename to locale/sv-se/fahrenheit.dialog diff --git a/dialog/sv-se/fog.alternative.dialog b/locale/sv-se/fog.alternative.dialog similarity index 100% rename from dialog/sv-se/fog.alternative.dialog rename to locale/sv-se/fog.alternative.dialog diff --git a/dialog/sv-se/forecast.affirmative.condition.dialog b/locale/sv-se/forecast.affirmative.condition.dialog similarity index 100% rename from dialog/sv-se/forecast.affirmative.condition.dialog rename to locale/sv-se/forecast.affirmative.condition.dialog diff --git a/dialog/sv-se/forecast.clear.alternative.dialog b/locale/sv-se/forecast.clear.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.clear.alternative.dialog rename to locale/sv-se/forecast.clear.alternative.dialog diff --git a/dialog/sv-se/forecast.cloudy.alternative.dialog b/locale/sv-se/forecast.cloudy.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.cloudy.alternative.dialog rename to locale/sv-se/forecast.cloudy.alternative.dialog diff --git a/dialog/sv-se/forecast.foggy.alternative.dialog b/locale/sv-se/forecast.foggy.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.foggy.alternative.dialog rename to locale/sv-se/forecast.foggy.alternative.dialog diff --git a/dialog/sv-se/forecast.hard.wind.dialog b/locale/sv-se/forecast.hard.wind.dialog similarity index 100% rename from dialog/sv-se/forecast.hard.wind.dialog rename to locale/sv-se/forecast.hard.wind.dialog diff --git a/dialog/sv-se/forecast.high.temperature.dialog b/locale/sv-se/forecast.high.temperature.dialog similarity index 100% rename from dialog/sv-se/forecast.high.temperature.dialog rename to locale/sv-se/forecast.high.temperature.dialog diff --git a/dialog/sv-se/forecast.hot.dialog b/locale/sv-se/forecast.hot.dialog similarity index 100% rename from dialog/sv-se/forecast.hot.dialog rename to locale/sv-se/forecast.hot.dialog diff --git a/dialog/sv-se/forecast.light.wind.dialog b/locale/sv-se/forecast.light.wind.dialog similarity index 100% rename from dialog/sv-se/forecast.light.wind.dialog rename to locale/sv-se/forecast.light.wind.dialog diff --git a/dialog/sv-se/forecast.local.affirmative.condition.dialog b/locale/sv-se/forecast.local.affirmative.condition.dialog similarity index 100% rename from dialog/sv-se/forecast.local.affirmative.condition.dialog rename to locale/sv-se/forecast.local.affirmative.condition.dialog diff --git a/dialog/sv-se/forecast.local.clear.alternative.dialog b/locale/sv-se/forecast.local.clear.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.local.clear.alternative.dialog rename to locale/sv-se/forecast.local.clear.alternative.dialog diff --git a/dialog/sv-se/forecast.local.cloudy.alternative.dialog b/locale/sv-se/forecast.local.cloudy.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.local.cloudy.alternative.dialog rename to locale/sv-se/forecast.local.cloudy.alternative.dialog diff --git a/dialog/sv-se/forecast.local.foggy.alternative.dialog b/locale/sv-se/forecast.local.foggy.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.local.foggy.alternative.dialog rename to locale/sv-se/forecast.local.foggy.alternative.dialog diff --git a/dialog/sv-se/forecast.local.hard.wind.dialog b/locale/sv-se/forecast.local.hard.wind.dialog similarity index 100% rename from dialog/sv-se/forecast.local.hard.wind.dialog rename to locale/sv-se/forecast.local.hard.wind.dialog diff --git a/dialog/sv-se/forecast.local.high.temperature.dialog b/locale/sv-se/forecast.local.high.temperature.dialog similarity index 100% rename from dialog/sv-se/forecast.local.high.temperature.dialog rename to locale/sv-se/forecast.local.high.temperature.dialog diff --git a/dialog/sv-se/forecast.local.hot.dialog b/locale/sv-se/forecast.local.hot.dialog similarity index 100% rename from dialog/sv-se/forecast.local.hot.dialog rename to locale/sv-se/forecast.local.hot.dialog diff --git a/dialog/sv-se/forecast.local.light.wind.dialog b/locale/sv-se/forecast.local.light.wind.dialog similarity index 100% rename from dialog/sv-se/forecast.local.light.wind.dialog rename to locale/sv-se/forecast.local.light.wind.dialog diff --git a/dialog/sv-se/forecast.local.low.temperature.dialog b/locale/sv-se/forecast.local.low.temperature.dialog similarity index 100% rename from dialog/sv-se/forecast.local.low.temperature.dialog rename to locale/sv-se/forecast.local.low.temperature.dialog diff --git a/dialog/sv-se/forecast.local.medium.wind.dialog b/locale/sv-se/forecast.local.medium.wind.dialog similarity index 100% rename from dialog/sv-se/forecast.local.medium.wind.dialog rename to locale/sv-se/forecast.local.medium.wind.dialog diff --git a/dialog/sv-se/forecast.local.no.clear.predicted.dialog b/locale/sv-se/forecast.local.no.clear.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.local.no.clear.predicted.dialog rename to locale/sv-se/forecast.local.no.clear.predicted.dialog diff --git a/dialog/sv-se/forecast.local.no.cloudy.predicted.dialog b/locale/sv-se/forecast.local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.local.no.cloudy.predicted.dialog rename to locale/sv-se/forecast.local.no.cloudy.predicted.dialog diff --git a/dialog/sv-se/forecast.local.no.fog.predicted.dialog b/locale/sv-se/forecast.local.no.fog.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.local.no.fog.predicted.dialog rename to locale/sv-se/forecast.local.no.fog.predicted.dialog diff --git a/dialog/sv-se/forecast.local.no.rain.predicted.dialog b/locale/sv-se/forecast.local.no.rain.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.local.no.rain.predicted.dialog rename to locale/sv-se/forecast.local.no.rain.predicted.dialog diff --git a/dialog/sv-se/forecast.local.no.snow.predicted.dialog b/locale/sv-se/forecast.local.no.snow.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.local.no.snow.predicted.dialog rename to locale/sv-se/forecast.local.no.snow.predicted.dialog diff --git a/dialog/sv-se/forecast.local.no.storm.predicted.dialog b/locale/sv-se/forecast.local.no.storm.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.local.no.storm.predicted.dialog rename to locale/sv-se/forecast.local.no.storm.predicted.dialog diff --git a/dialog/sv-se/forecast.local.raining.alternative.dialog b/locale/sv-se/forecast.local.raining.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.local.raining.alternative.dialog rename to locale/sv-se/forecast.local.raining.alternative.dialog diff --git a/dialog/sv-se/forecast.local.storm.alternative.dialog b/locale/sv-se/forecast.local.storm.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.local.storm.alternative.dialog rename to locale/sv-se/forecast.local.storm.alternative.dialog diff --git a/dialog/sv-se/forecast.local.temperature.dialog b/locale/sv-se/forecast.local.temperature.dialog similarity index 100% rename from dialog/sv-se/forecast.local.temperature.dialog rename to locale/sv-se/forecast.local.temperature.dialog diff --git a/dialog/sv-se/forecast.local.weather.dialog b/locale/sv-se/forecast.local.weather.dialog similarity index 100% rename from dialog/sv-se/forecast.local.weather.dialog rename to locale/sv-se/forecast.local.weather.dialog diff --git a/dialog/sv-se/forecast.low.temperature.dialog b/locale/sv-se/forecast.low.temperature.dialog similarity index 100% rename from dialog/sv-se/forecast.low.temperature.dialog rename to locale/sv-se/forecast.low.temperature.dialog diff --git a/dialog/sv-se/forecast.medium.wind.dialog b/locale/sv-se/forecast.medium.wind.dialog similarity index 100% rename from dialog/sv-se/forecast.medium.wind.dialog rename to locale/sv-se/forecast.medium.wind.dialog diff --git a/dialog/sv-se/forecast.no.clear.predicted.dialog b/locale/sv-se/forecast.no.clear.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.no.clear.predicted.dialog rename to locale/sv-se/forecast.no.clear.predicted.dialog diff --git a/dialog/sv-se/forecast.no.cloudy.predicted.dialog b/locale/sv-se/forecast.no.cloudy.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.no.cloudy.predicted.dialog rename to locale/sv-se/forecast.no.cloudy.predicted.dialog diff --git a/dialog/sv-se/forecast.no.fog.predicted.dialog b/locale/sv-se/forecast.no.fog.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.no.fog.predicted.dialog rename to locale/sv-se/forecast.no.fog.predicted.dialog diff --git a/dialog/sv-se/forecast.no.rain.predicted.dialog b/locale/sv-se/forecast.no.rain.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.no.rain.predicted.dialog rename to locale/sv-se/forecast.no.rain.predicted.dialog diff --git a/dialog/sv-se/forecast.no.snow.predicted.dialog b/locale/sv-se/forecast.no.snow.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.no.snow.predicted.dialog rename to locale/sv-se/forecast.no.snow.predicted.dialog diff --git a/dialog/sv-se/forecast.no.storm.predicted.dialog b/locale/sv-se/forecast.no.storm.predicted.dialog similarity index 100% rename from dialog/sv-se/forecast.no.storm.predicted.dialog rename to locale/sv-se/forecast.no.storm.predicted.dialog diff --git a/dialog/sv-se/forecast.raining.alternative.dialog b/locale/sv-se/forecast.raining.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.raining.alternative.dialog rename to locale/sv-se/forecast.raining.alternative.dialog diff --git a/dialog/sv-se/forecast.snowing.alternative.dialog b/locale/sv-se/forecast.snowing.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.snowing.alternative.dialog rename to locale/sv-se/forecast.snowing.alternative.dialog diff --git a/dialog/sv-se/forecast.storm.alternative.dialog b/locale/sv-se/forecast.storm.alternative.dialog similarity index 100% rename from dialog/sv-se/forecast.storm.alternative.dialog rename to locale/sv-se/forecast.storm.alternative.dialog diff --git a/dialog/sv-se/forecast.temperature.dialog b/locale/sv-se/forecast.temperature.dialog similarity index 100% rename from dialog/sv-se/forecast.temperature.dialog rename to locale/sv-se/forecast.temperature.dialog diff --git a/dialog/sv-se/forecast.weather.dialog b/locale/sv-se/forecast.weather.dialog similarity index 100% rename from dialog/sv-se/forecast.weather.dialog rename to locale/sv-se/forecast.weather.dialog diff --git a/dialog/sv-se/from.day.dialog b/locale/sv-se/from.day.dialog similarity index 100% rename from dialog/sv-se/from.day.dialog rename to locale/sv-se/from.day.dialog diff --git a/dialog/sv-se/hard.wind.dialog b/locale/sv-se/hard.wind.dialog similarity index 100% rename from dialog/sv-se/hard.wind.dialog rename to locale/sv-se/hard.wind.dialog diff --git a/dialog/sv-se/heavy.dialog b/locale/sv-se/heavy.dialog similarity index 100% rename from dialog/sv-se/heavy.dialog rename to locale/sv-se/heavy.dialog diff --git a/dialog/sv-se/hour.local.weather.dialog b/locale/sv-se/hour.local.weather.dialog similarity index 100% rename from dialog/sv-se/hour.local.weather.dialog rename to locale/sv-se/hour.local.weather.dialog diff --git a/dialog/sv-se/hour.weather.dialog b/locale/sv-se/hour.weather.dialog similarity index 100% rename from dialog/sv-se/hour.weather.dialog rename to locale/sv-se/hour.weather.dialog diff --git a/dialog/sv-se/humidity.dialog b/locale/sv-se/humidity.dialog similarity index 100% rename from dialog/sv-se/humidity.dialog rename to locale/sv-se/humidity.dialog diff --git a/dialog/sv-se/light.dialog b/locale/sv-se/light.dialog similarity index 100% rename from dialog/sv-se/light.dialog rename to locale/sv-se/light.dialog diff --git a/dialog/sv-se/light.wind.dialog b/locale/sv-se/light.wind.dialog similarity index 100% rename from dialog/sv-se/light.wind.dialog rename to locale/sv-se/light.wind.dialog diff --git a/dialog/sv-se/local.affirmative.condition.dialog b/locale/sv-se/local.affirmative.condition.dialog similarity index 100% rename from dialog/sv-se/local.affirmative.condition.dialog rename to locale/sv-se/local.affirmative.condition.dialog diff --git a/dialog/sv-se/local.clear.alternative.dialog b/locale/sv-se/local.clear.alternative.dialog similarity index 100% rename from dialog/sv-se/local.clear.alternative.dialog rename to locale/sv-se/local.clear.alternative.dialog diff --git a/dialog/sv-se/local.cloudy.alternative.dialog b/locale/sv-se/local.cloudy.alternative.dialog similarity index 100% rename from dialog/sv-se/local.cloudy.alternative.dialog rename to locale/sv-se/local.cloudy.alternative.dialog diff --git a/dialog/sv-se/local.foggy.alternative.dialog b/locale/sv-se/local.foggy.alternative.dialog similarity index 100% rename from dialog/sv-se/local.foggy.alternative.dialog rename to locale/sv-se/local.foggy.alternative.dialog diff --git a/dialog/sv-se/local.hard.wind.dialog b/locale/sv-se/local.hard.wind.dialog similarity index 100% rename from dialog/sv-se/local.hard.wind.dialog rename to locale/sv-se/local.hard.wind.dialog diff --git a/dialog/sv-se/local.light.wind.dialog b/locale/sv-se/local.light.wind.dialog similarity index 100% rename from dialog/sv-se/local.light.wind.dialog rename to locale/sv-se/local.light.wind.dialog diff --git a/dialog/sv-se/local.medium.wind.dialog b/locale/sv-se/local.medium.wind.dialog similarity index 100% rename from dialog/sv-se/local.medium.wind.dialog rename to locale/sv-se/local.medium.wind.dialog diff --git a/dialog/sv-se/local.no.cloudy.predicted.dialog b/locale/sv-se/local.no.cloudy.predicted.dialog similarity index 100% rename from dialog/sv-se/local.no.cloudy.predicted.dialog rename to locale/sv-se/local.no.cloudy.predicted.dialog diff --git a/dialog/sv-se/local.no.fog.predicted.dialog b/locale/sv-se/local.no.fog.predicted.dialog similarity index 100% rename from dialog/sv-se/local.no.fog.predicted.dialog rename to locale/sv-se/local.no.fog.predicted.dialog diff --git a/dialog/sv-se/local.no.rain.predicted.dialog b/locale/sv-se/local.no.rain.predicted.dialog similarity index 100% rename from dialog/sv-se/local.no.rain.predicted.dialog rename to locale/sv-se/local.no.rain.predicted.dialog diff --git a/dialog/sv-se/local.no.snow.predicted.dialog b/locale/sv-se/local.no.snow.predicted.dialog similarity index 100% rename from dialog/sv-se/local.no.snow.predicted.dialog rename to locale/sv-se/local.no.snow.predicted.dialog diff --git a/dialog/sv-se/local.no.storm.predicted.dialog b/locale/sv-se/local.no.storm.predicted.dialog similarity index 100% rename from dialog/sv-se/local.no.storm.predicted.dialog rename to locale/sv-se/local.no.storm.predicted.dialog diff --git a/dialog/sv-se/local.raining.alternative.dialog b/locale/sv-se/local.raining.alternative.dialog similarity index 100% rename from dialog/sv-se/local.raining.alternative.dialog rename to locale/sv-se/local.raining.alternative.dialog diff --git a/dialog/sv-se/local.snowing.alternative.dialog b/locale/sv-se/local.snowing.alternative.dialog similarity index 100% rename from dialog/sv-se/local.snowing.alternative.dialog rename to locale/sv-se/local.snowing.alternative.dialog diff --git a/dialog/sv-se/local.storm.alternative.dialog b/locale/sv-se/local.storm.alternative.dialog similarity index 100% rename from dialog/sv-se/local.storm.alternative.dialog rename to locale/sv-se/local.storm.alternative.dialog diff --git a/dialog/sv-se/location.not.found.dialog b/locale/sv-se/location.not.found.dialog similarity index 100% rename from dialog/sv-se/location.not.found.dialog rename to locale/sv-se/location.not.found.dialog diff --git a/regex/sv-se/location.rx b/locale/sv-se/location.rx similarity index 100% rename from regex/sv-se/location.rx rename to locale/sv-se/location.rx diff --git a/dialog/sv-se/medium.wind.dialog b/locale/sv-se/medium.wind.dialog similarity index 100% rename from dialog/sv-se/medium.wind.dialog rename to locale/sv-se/medium.wind.dialog diff --git a/dialog/sv-se/meters per second.dialog b/locale/sv-se/meters per second.dialog similarity index 100% rename from dialog/sv-se/meters per second.dialog rename to locale/sv-se/meters per second.dialog diff --git a/dialog/sv-se/miles per hour.dialog b/locale/sv-se/miles per hour.dialog similarity index 100% rename from dialog/sv-se/miles per hour.dialog rename to locale/sv-se/miles per hour.dialog diff --git a/dialog/sv-se/min.max.dialog b/locale/sv-se/min.max.dialog similarity index 100% rename from dialog/sv-se/min.max.dialog rename to locale/sv-se/min.max.dialog diff --git a/dialog/sv-se/no precipitation expected.dialog b/locale/sv-se/no precipitation expected.dialog similarity index 100% rename from dialog/sv-se/no precipitation expected.dialog rename to locale/sv-se/no precipitation expected.dialog diff --git a/dialog/sv-se/no.clear.predicted.dialog b/locale/sv-se/no.clear.predicted.dialog similarity index 100% rename from dialog/sv-se/no.clear.predicted.dialog rename to locale/sv-se/no.clear.predicted.dialog diff --git a/dialog/sv-se/no.cloudy.predicted.dialog b/locale/sv-se/no.cloudy.predicted.dialog similarity index 100% rename from dialog/sv-se/no.cloudy.predicted.dialog rename to locale/sv-se/no.cloudy.predicted.dialog diff --git a/dialog/sv-se/no.fog.predicted.dialog b/locale/sv-se/no.fog.predicted.dialog similarity index 100% rename from dialog/sv-se/no.fog.predicted.dialog rename to locale/sv-se/no.fog.predicted.dialog diff --git a/dialog/sv-se/no.forecast.dialog b/locale/sv-se/no.forecast.dialog similarity index 100% rename from dialog/sv-se/no.forecast.dialog rename to locale/sv-se/no.forecast.dialog diff --git a/dialog/sv-se/no.rain.predicted.dialog b/locale/sv-se/no.rain.predicted.dialog similarity index 100% rename from dialog/sv-se/no.rain.predicted.dialog rename to locale/sv-se/no.rain.predicted.dialog diff --git a/dialog/sv-se/no.snow.predicted.dialog b/locale/sv-se/no.snow.predicted.dialog similarity index 100% rename from dialog/sv-se/no.snow.predicted.dialog rename to locale/sv-se/no.snow.predicted.dialog diff --git a/dialog/sv-se/no.storm.predicted.dialog b/locale/sv-se/no.storm.predicted.dialog similarity index 100% rename from dialog/sv-se/no.storm.predicted.dialog rename to locale/sv-se/no.storm.predicted.dialog diff --git a/dialog/sv-se/on.date.dialog b/locale/sv-se/on.date.dialog similarity index 100% rename from dialog/sv-se/on.date.dialog rename to locale/sv-se/on.date.dialog diff --git a/dialog/sv-se/on.dialog b/locale/sv-se/on.dialog similarity index 100% rename from dialog/sv-se/on.dialog rename to locale/sv-se/on.dialog diff --git a/dialog/sv-se/percentage.number.dialog b/locale/sv-se/percentage.number.dialog similarity index 100% rename from dialog/sv-se/percentage.number.dialog rename to locale/sv-se/percentage.number.dialog diff --git a/dialog/sv-se/precipitation expected.dialog b/locale/sv-se/precipitation expected.dialog similarity index 100% rename from dialog/sv-se/precipitation expected.dialog rename to locale/sv-se/precipitation expected.dialog diff --git a/dialog/sv-se/rain.dialog b/locale/sv-se/rain.dialog similarity index 100% rename from dialog/sv-se/rain.dialog rename to locale/sv-se/rain.dialog diff --git a/dialog/sv-se/raining.alternative.dialog b/locale/sv-se/raining.alternative.dialog similarity index 100% rename from dialog/sv-se/raining.alternative.dialog rename to locale/sv-se/raining.alternative.dialog diff --git a/dialog/sv-se/report.condition.at.location.dialog b/locale/sv-se/report.condition.at.location.dialog similarity index 100% rename from dialog/sv-se/report.condition.at.location.dialog rename to locale/sv-se/report.condition.at.location.dialog diff --git a/dialog/sv-se/report.condition.dialog b/locale/sv-se/report.condition.dialog similarity index 100% rename from dialog/sv-se/report.condition.dialog rename to locale/sv-se/report.condition.dialog diff --git a/dialog/sv-se/report.condition.future.at.location.dialog b/locale/sv-se/report.condition.future.at.location.dialog similarity index 100% rename from dialog/sv-se/report.condition.future.at.location.dialog rename to locale/sv-se/report.condition.future.at.location.dialog diff --git a/dialog/sv-se/report.condition.future.dialog b/locale/sv-se/report.condition.future.dialog similarity index 100% rename from dialog/sv-se/report.condition.future.dialog rename to locale/sv-se/report.condition.future.dialog diff --git a/dialog/sv-se/report.wind.dialog b/locale/sv-se/report.wind.dialog similarity index 100% rename from dialog/sv-se/report.wind.dialog rename to locale/sv-se/report.wind.dialog diff --git a/vocab/sv-se/simple.temperature.intent b/locale/sv-se/simple.temperature.intent similarity index 100% rename from vocab/sv-se/simple.temperature.intent rename to locale/sv-se/simple.temperature.intent diff --git a/dialog/sv-se/sky is clear.future.dialog b/locale/sv-se/sky is clear.future.dialog similarity index 100% rename from dialog/sv-se/sky is clear.future.dialog rename to locale/sv-se/sky is clear.future.dialog diff --git a/dialog/sv-se/snow.dialog b/locale/sv-se/snow.dialog similarity index 100% rename from dialog/sv-se/snow.dialog rename to locale/sv-se/snow.dialog diff --git a/dialog/sv-se/snowing.alternative.dialog b/locale/sv-se/snowing.alternative.dialog similarity index 100% rename from dialog/sv-se/snowing.alternative.dialog rename to locale/sv-se/snowing.alternative.dialog diff --git a/dialog/sv-se/storm.alternative.dialog b/locale/sv-se/storm.alternative.dialog similarity index 100% rename from dialog/sv-se/storm.alternative.dialog rename to locale/sv-se/storm.alternative.dialog diff --git a/dialog/sv-se/storm.dialog b/locale/sv-se/storm.dialog similarity index 100% rename from dialog/sv-se/storm.dialog rename to locale/sv-se/storm.dialog diff --git a/dialog/sv-se/sunrise.dialog b/locale/sv-se/sunrise.dialog similarity index 100% rename from dialog/sv-se/sunrise.dialog rename to locale/sv-se/sunrise.dialog diff --git a/dialog/sv-se/sunset.dialog b/locale/sv-se/sunset.dialog similarity index 100% rename from dialog/sv-se/sunset.dialog rename to locale/sv-se/sunset.dialog diff --git a/dialog/sv-se/tonight.local.weather.dialog b/locale/sv-se/tonight.local.weather.dialog similarity index 100% rename from dialog/sv-se/tonight.local.weather.dialog rename to locale/sv-se/tonight.local.weather.dialog diff --git a/dialog/sv-se/weekly.condition.on.day.dialog b/locale/sv-se/weekly.condition.on.day.dialog similarity index 100% rename from dialog/sv-se/weekly.condition.on.day.dialog rename to locale/sv-se/weekly.condition.on.day.dialog diff --git a/dialog/sv-se/weekly.conditions.mostly.one.dialog b/locale/sv-se/weekly.conditions.mostly.one.dialog similarity index 100% rename from dialog/sv-se/weekly.conditions.mostly.one.dialog rename to locale/sv-se/weekly.conditions.mostly.one.dialog diff --git a/dialog/sv-se/weekly.conditions.seq.extra.dialog b/locale/sv-se/weekly.conditions.seq.extra.dialog similarity index 100% rename from dialog/sv-se/weekly.conditions.seq.extra.dialog rename to locale/sv-se/weekly.conditions.seq.extra.dialog diff --git a/dialog/sv-se/weekly.conditions.seq.period.dialog b/locale/sv-se/weekly.conditions.seq.period.dialog similarity index 100% rename from dialog/sv-se/weekly.conditions.seq.period.dialog rename to locale/sv-se/weekly.conditions.seq.period.dialog diff --git a/dialog/sv-se/weekly.conditions.seq.start.dialog b/locale/sv-se/weekly.conditions.seq.start.dialog similarity index 100% rename from dialog/sv-se/weekly.conditions.seq.start.dialog rename to locale/sv-se/weekly.conditions.seq.start.dialog diff --git a/dialog/sv-se/weekly.conditions.some.days.dialog b/locale/sv-se/weekly.conditions.some.days.dialog similarity index 100% rename from dialog/sv-se/weekly.conditions.some.days.dialog rename to locale/sv-se/weekly.conditions.some.days.dialog diff --git a/dialog/sv-se/weekly.temp.range.dialog b/locale/sv-se/weekly.temp.range.dialog similarity index 100% rename from dialog/sv-se/weekly.temp.range.dialog rename to locale/sv-se/weekly.temp.range.dialog diff --git a/vocab/sv-se/what.is.multi.day.forecast.intent b/locale/sv-se/what.is.multi.day.forecast.intent similarity index 100% rename from vocab/sv-se/what.is.multi.day.forecast.intent rename to locale/sv-se/what.is.multi.day.forecast.intent diff --git a/vocab/sv-se/what.is.three.day.forecast.intent b/locale/sv-se/what.is.three.day.forecast.intent similarity index 100% rename from vocab/sv-se/what.is.three.day.forecast.intent rename to locale/sv-se/what.is.three.day.forecast.intent diff --git a/vocab/sv-se/what.is.three.day.forecast.location.intent b/locale/sv-se/what.is.three.day.forecast.location.intent similarity index 100% rename from vocab/sv-se/what.is.three.day.forecast.location.intent rename to locale/sv-se/what.is.three.day.forecast.location.intent diff --git a/vocab/sv-se/what.is.two.day.forecast.intent b/locale/sv-se/what.is.two.day.forecast.intent similarity index 100% rename from vocab/sv-se/what.is.two.day.forecast.intent rename to locale/sv-se/what.is.two.day.forecast.intent diff --git a/vocab/sv-se/whats.weather.like.intent b/locale/sv-se/whats.weather.like.intent similarity index 100% rename from vocab/sv-se/whats.weather.like.intent rename to locale/sv-se/whats.weather.like.intent diff --git a/dialog/sv-se/wind.speed.dialog b/locale/sv-se/wind.speed.dialog similarity index 100% rename from dialog/sv-se/wind.speed.dialog rename to locale/sv-se/wind.speed.dialog diff --git a/dialog/sv-se/wind.speed.dir.dialog b/locale/sv-se/wind.speed.dir.dialog similarity index 100% rename from dialog/sv-se/wind.speed.dir.dialog rename to locale/sv-se/wind.speed.dir.dialog diff --git a/dialog/sv-se/wind.strength.hard.dialog b/locale/sv-se/wind.strength.hard.dialog similarity index 100% rename from dialog/sv-se/wind.strength.hard.dialog rename to locale/sv-se/wind.strength.hard.dialog diff --git a/dialog/sv-se/wind.strength.light.dialog b/locale/sv-se/wind.strength.light.dialog similarity index 100% rename from dialog/sv-se/wind.strength.light.dialog rename to locale/sv-se/wind.strength.light.dialog diff --git a/dialog/sv-se/wind.strength.medium.dialog b/locale/sv-se/wind.strength.medium.dialog similarity index 100% rename from dialog/sv-se/wind.strength.medium.dialog rename to locale/sv-se/wind.strength.medium.dialog diff --git a/dialog/sv-se/winds.dialog b/locale/sv-se/winds.dialog similarity index 100% rename from dialog/sv-se/winds.dialog rename to locale/sv-se/winds.dialog diff --git a/regex/da-dk/AUTO_TRANSLATED b/regex/da-dk/AUTO_TRANSLATED deleted file mode 100644 index 11b245d4..00000000 --- a/regex/da-dk/AUTO_TRANSLATED +++ /dev/null @@ -1 +0,0 @@ -Files in this folder is auto translated by mycroft-msk. Files in this folder is auto translated by mycroft-msk. \ No newline at end of file diff --git a/vocab/da-dk/AUTO_TRANSLATED b/vocab/da-dk/AUTO_TRANSLATED deleted file mode 100644 index 11b245d4..00000000 --- a/vocab/da-dk/AUTO_TRANSLATED +++ /dev/null @@ -1 +0,0 @@ -Files in this folder is auto translated by mycroft-msk. Files in this folder is auto translated by mycroft-msk. \ No newline at end of file From cdfacb630b6e4a1a36a564803b7688d88d88e92a Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 14:51:02 -0500 Subject: [PATCH 22/42] Add PyCharm IDE files to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 8f9d4ac3..8ae56fbf 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.qmlc settings.json .vscode +.idea/** From b15367d1ab5fac2655519dace26c536d77105cdc Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Fri, 16 Apr 2021 15:48:34 -0500 Subject: [PATCH 23/42] Add OpenWeatherMap language support. --- __init__.py | 1 + source/api.py | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index 34009fd3..77dddd43 100644 --- a/__init__.py +++ b/__init__.py @@ -65,6 +65,7 @@ class WeatherSkill(MycroftSkill): def __init__(self): super().__init__("WeatherSkill") self.weather_api = OpenWeatherMapApi() + self.weather_api.set_language_parameter(self.lang) self.weather_config = WeatherConfig(self.config_core, self.settings) self.platform = self.config_core["enclosure"]["platform"] diff --git a/source/api.py b/source/api.py index 2a282ce8..2efbc74e 100644 --- a/source/api.py +++ b/source/api.py @@ -25,12 +25,64 @@ from mycroft.api import Api from .weather import WeatherReport +OPEN_WEATHER_MAP_LANGUAGES = ( + "af", + "al", + "ar", + "bg", + "ca", + "cz", + "da", + "de", + "el", + "en", + "es", + "eu", + "fa", + "fi", + "fr", + "gl", + "he", + "hi", + "hr", + "hu", + "id", + "it", + "ja", + "kr", + "la", + "lt", + "mk", + "nl", + "no", + "pl", + "pt", + "pt_br", + "ro", + "ru", + "se", + "sk", + "sl", + "sp", + "sr", + "sv", + "th", + "tr", + "ua", + "uk", + "vi", + "zh_cn", + "zh_tw", + "zu" +) + class OpenWeatherMapApi(Api): """Use Open Weather Map's One Call API to retrieve weather information""" def __init__(self): super().__init__(path="owm") + self.language = "en" def get_weather_for_coordinates( self, measurement_system: str, latitude: float, longitude: float @@ -42,10 +94,30 @@ def get_weather_for_coordinates( :param longitude: the geologic longitude of the weather location """ query_parameters = dict( - exclude="minutely", lat=latitude, lon=longitude, units=measurement_system + exclude="minutely", + lang=self.language, + lat=latitude, + lon=longitude, + units=measurement_system ) api_request = dict(path="/onecall", query=query_parameters) response = self.request(api_request) local_weather = WeatherReport(response) return local_weather + + def set_language_parameter(self, language_config: str): + """ + OWM supports 31 languages, see https://openweathermap.org/current#multi + Convert language code to owm language, if missing use 'en' + """ + special_cases = {"cs": "cz", "ko": "kr", "lv": "la"} + language_part_one, language_part_two = language_config.split('-') + if language_config.replace('-', '_') in OPEN_WEATHER_MAP_LANGUAGES: + self.language = language_config.replace('-', '_') + elif language_part_one in OPEN_WEATHER_MAP_LANGUAGES: + self.language = language_part_one + elif language_part_two in OPEN_WEATHER_MAP_LANGUAGES: + self.language = language_part_two + elif language_part_one in special_cases: + self.language = special_cases[language_part_one] From 10ea9656713877da5c3d528e1520152896828882 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 19 Apr 2021 10:54:02 -0500 Subject: [PATCH 24/42] Renamed resource files to be consistent with en-us locale. --- locale/ca-es/{Cloudy.voc => Clouds.voc} | 0 .../{CloudyAlternatives.voc => CloudsAlternatives.voc} | 0 locale/ca-es/{Foggy.voc => Fog.voc} | 0 locale/ca-es/{Raining.voc => Rain.voc} | 0 locale/ca-es/{Snowing.voc => Snow.voc} | 0 locale/ca-es/{Storm.voc => Thunderstorm.voc} | 0 ...rmAlternatives.voc => ThunderstormAlternatives.voc} | 0 locale/ca-es/and.dialog | 1 - .../at.time.forecast.affirmative.condition.dialog | 3 --- locale/ca-es/at.time.forecast.cond.alternative.dialog | 3 --- ...at.time.forecast.local.affirmative.condition.dialog | 3 --- .../at.time.forecast.local.cond.alternative.dialog | 3 --- .../at.time.forecast.local.no.cond.predicted.dialog | 2 -- locale/ca-es/at.time.forecast.no.cond.predicted.dialog | 3 --- locale/ca-es/at.time.local.high.temperature.dialog | 2 -- locale/ca-es/at.time.local.low.temperature.dialog | 2 -- locale/ca-es/at.time.local.weather.dialog | 4 ---- ...e.dialog => current.clear.alternative.local.dialog} | 0 ...ialog => current.clear.alternative.location.dialog} | 0 ....dialog => current.clear.not.expected.local.dialog} | 0 ....dialog => current.clouds.alternative.local.dialog} | 0 ...alog => current.clouds.alternative.location.dialog} | 0 ...dialog => current.clouds.not.expected.local.dialog} | 0 ...log => current.clouds.not.expected.location.dialog} | 0 ....dialog => current.condition.expected.local.dialog} | 0 ...alog => current.condition.expected.location.dialog} | 0 ...ive.dialog => current.fog.alternative.local.dialog} | 0 ....dialog => current.fog.alternative.location.dialog} | 0 ...ed.dialog => current.fog.not.expected.local.dialog} | 0 ...dialog => current.fog.not.expected.location.dialog} | 0 locale/ca-es/current.hot.dialog | 2 -- ...umidity.dialog => current.humidity.location.dialog} | 0 locale/ca-es/current.local.cold.dialog | 2 -- locale/ca-es/current.local.hot.dialog | 2 -- ...ve.dialog => current.rain.alternative.local.dialog} | 0 ...dialog => current.rain.alternative.location.dialog} | 0 ...d.dialog => current.rain.not.expected.local.dialog} | 0 ...ialog => current.rain.not.expected.location.dialog} | 0 ...ve.dialog => current.snow.alternative.local.dialog} | 0 ...dialog => current.snow.alternative.location.dialog} | 0 ...d.dialog => current.snow.not.expected.local.dialog} | 0 ...ialog => current.snow.not.expected.location.dialog} | 0 ...re.dialog => current.temperature.high.local.dialog} | 0 ...dialog => current.temperature.high.location.dialog} | 0 ....max.dialog => current.temperature.high.low.dialog} | 0 ...erature.dialog => current.temperature.local.dialog} | 0 ...ture.dialog => current.temperature.location.dialog} | 0 ...ure.dialog => current.temperature.low.local.dialog} | 0 ....dialog => current.temperature.low.location.dialog} | 0 ...g => current.thunderstorm.alternative.local.dialog} | 0 ... => current.thunderstorm.not.expected.local.dialog} | 0 ... current.thunderstorm.not.expected.location.dialog} | 0 ...=> current.thundestorm.alternative.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...ght.wind.dialog => current.wind.light.local.dialog} | 0 ....wind.dialog => current.wind.light.location.dialog} | 0 ....wind.dialog => current.wind.moderate.local.dialog} | 0 ...nd.dialog => current.wind.moderate.location.dialog} | 0 ...rd.wind.dialog => current.wind.strong.local.dialog} | 0 ...wind.dialog => current.wind.strong.location.dialog} | 0 ...ive.dialog => daily.clear.alternative.local.dialog} | 0 ....dialog => daily.clear.alternative.location.dialog} | 0 ...ed.dialog => daily.clear.not.expected.local.dialog} | 0 ...dialog => daily.clear.not.expected.location.dialog} | 0 ...ve.dialog => daily.clouds.alternative.local.dialog} | 0 ...dialog => daily.clouds.alternative.location.dialog} | 0 ...d.dialog => daily.clouds.not.expected.local.dialog} | 0 ...ialog => daily.clouds.not.expected.location.dialog} | 0 ...on.dialog => daily.condition.expected.local.dialog} | 0 ...dialog => daily.condition.expected.location.dialog} | 0 ...ative.dialog => daily.fog.alternative.local.dialog} | 0 ...ve.dialog => daily.fog.alternative.location.dialog} | 0 ...cted.dialog => daily.fog.not.expected.local.dialog} | 0 ...d.dialog => daily.fog.not.expected.location.dialog} | 0 ...tive.dialog => daily.rain.alternative.local.dialog} | 0 ...e.dialog => daily.rain.alternative.location.dialog} | 0 ...ted.dialog => daily.rain.not.expected.local.dialog} | 0 ....dialog => daily.rain.not.expected.location.dialog} | 0 ...e.dialog => daily.snow.alternative.location.dialog} | 0 ...ted.dialog => daily.snow.not.expected.local.dialog} | 0 ....dialog => daily.snow.not.expected.location.dialog} | 0 ...ture.dialog => daily.temperature.high.local.dialog} | 0 ...e.dialog => daily.temperature.high.location.dialog} | 0 ...mperature.dialog => daily.temperature.local.dialog} | 0 ...rature.dialog => daily.temperature.location.dialog} | 0 ...ature.dialog => daily.temperature.low.local.dialog} | 0 ...re.dialog => daily.temperature.low.location.dialog} | 0 ...log => daily.thunderstorm.alternative.local.dialog} | 0 ... => daily.thunderstorm.alternative.location.dialog} | 0 ...og => daily.thunderstorm.not.expected.local.dialog} | 0 ...=> daily.thunderstorm.not.expected.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 ...ht.wind.dialog => daily.wind.light.loaction.dialog} | 0 ...light.wind.dialog => daily.wind.light.local.dialog} | 0 ...um.wind.dialog => daily.wind.moderate.local.dialog} | 0 ...wind.dialog => daily.wind.moderate.location.dialog} | 0 ...hard.wind.dialog => daily.wind.strong.local.dialog} | 0 ...d.wind.dialog => daily.wind.strong.location.dialog} | 0 locale/ca-es/{E.dialog => east.dialog} | 0 locale/ca-es/forecast.hot.dialog | 2 -- locale/ca-es/forecast.local.hot.dialog | 1 - ...ialog => hourly.condition.alternative.local.dialog} | 0 ...og => hourly.condition.alternative.location.dialog} | 0 ...n.dialog => hourly.condition.expected.local.dialog} | 0 ...ialog => hourly.condition.expected.location.dialog} | 0 ...alog => hourly.condition.not.expected.local.dialog} | 0 ...g => hourly.condition.not.expected.location.dialog} | 0 ...perature.dialog => hourly.temperature.local.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/ca-es/{N.dialog => north.dialog} | 0 locale/ca-es/{NE.dialog => northeast.dialog} | 0 locale/ca-es/{NW.dialog => northwest.dialog} | 0 locale/ca-es/report.condition.at.location.dialog | 1 - locale/ca-es/report.condition.dialog | 1 - .../ca-es/report.condition.future.at.location.dialog | 2 -- locale/ca-es/report.condition.future.dialog | 2 -- locale/ca-es/{S.dialog => south.dialog} | 0 locale/ca-es/{SE.dialog => southeast.dialog} | 0 locale/ca-es/{SW.dialog => southwest.dialog} | 0 locale/ca-es/{W.dialog => west.dialog} | 0 locale/ca-es/what.is.three.day.forecast.intent | 2 -- .../ca-es/what.is.three.day.forecast.location.intent | 1 - locale/ca-es/what.is.two.day.forecast.intent | 3 --- locale/ca-es/wind.speed.dialog | 1 - locale/ca-es/wind.speed.dir.dialog | 2 -- locale/ca-es/wind.strength.hard.dialog | 1 - locale/ca-es/wind.strength.light.dialog | 3 --- locale/ca-es/wind.strength.medium.dialog | 2 -- locale/ca-es/winds.dialog | 1 - locale/da-dk/{Cloudy.voc => Clouds.voc} | 0 .../{CloudyAlternatives.voc => CloudsAlternatives.voc} | 0 locale/da-dk/{Foggy.voc => Fog.voc} | 0 locale/da-dk/{Raining.voc => Rain.voc} | 0 locale/da-dk/{Snowing.voc => Snow.voc} | 0 locale/da-dk/{Storm.voc => Thunderstorm.voc} | 0 ...rmAlternatives.voc => ThunderstormAlternatives.voc} | 0 locale/da-dk/and.dialog | 2 -- .../at.time.forecast.affirmative.condition.dialog | 5 ----- locale/da-dk/at.time.forecast.cond.alternative.dialog | 5 ----- ...at.time.forecast.local.affirmative.condition.dialog | 5 ----- .../at.time.forecast.local.cond.alternative.dialog | 5 ----- .../at.time.forecast.local.no.cond.predicted.dialog | 3 --- locale/da-dk/at.time.forecast.no.cond.predicted.dialog | 5 ----- locale/da-dk/at.time.local.high.temperature.dialog | 4 ---- locale/da-dk/at.time.local.low.temperature.dialog | 4 ---- locale/da-dk/at.time.local.weather.dialog | 8 -------- ...e.dialog => current.clear.alternative.local.dialog} | 0 ...ialog => current.clear.alternative.location.dialog} | 0 ...alog => current.clear.not.expected.location.dialog} | 0 ....dialog => current.clouds.alternative.local.dialog} | 0 ...alog => current.clouds.alternative.location.dialog} | 0 ...dialog => current.clouds.not.expected.local.dialog} | 0 ...log => current.clouds.not.expected.location.dialog} | 0 ....dialog => current.condition.expected.local.dialog} | 0 ...alog => current.condition.expected.location.dialog} | 0 ...ive.dialog => current.fog.alternative.local.dialog} | 0 ....dialog => current.fog.alternative.location.dialog} | 0 ...ed.dialog => current.fog.not.expected.local.dialog} | 0 ...dialog => current.fog.not.expected.location.dialog} | 0 locale/da-dk/current.hot.dialog | 4 ---- ...umidity.dialog => current.humidity.location.dialog} | 0 locale/da-dk/current.local.cold.dialog | 4 ---- locale/da-dk/current.local.hot.dialog | 4 ---- ...ve.dialog => current.rain.alternative.local.dialog} | 0 ...dialog => current.rain.alternative.location.dialog} | 0 ...d.dialog => current.rain.not.expected.local.dialog} | 0 ...ialog => current.rain.not.expected.location.dialog} | 0 ...ve.dialog => current.snow.alternative.local.dialog} | 0 ...dialog => current.snow.alternative.location.dialog} | 0 ...d.dialog => current.snow.not.expected.local.dialog} | 0 ...ialog => current.snow.not.expected.location.dialog} | 0 ...re.dialog => current.temperature.high.local.dialog} | 0 ...dialog => current.temperature.high.location.dialog} | 0 ....max.dialog => current.temperature.high.low.dialog} | 0 ...erature.dialog => current.temperature.local.dialog} | 0 ...ture.dialog => current.temperature.location.dialog} | 0 ...ure.dialog => current.temperature.low.local.dialog} | 0 ....dialog => current.temperature.low.location.dialog} | 0 ...g => current.thunderstorm.alternative.local.dialog} | 0 ...> current.thunderstorm.alternative.location.dialog} | 0 ... => current.thunderstorm.not.expected.local.dialog} | 0 ... current.thunderstorm.not.expected.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...ght.wind.dialog => current.wind.light.local.dialog} | 0 ....wind.dialog => current.wind.light.location.dialog} | 0 ....wind.dialog => current.wind.moderate.local.dialog} | 0 ...nd.dialog => current.wind.moderate.location.dialog} | 0 ...rd.wind.dialog => current.wind.strong.local.dialog} | 0 ...wind.dialog => current.wind.strong.location.dialog} | 0 ...ive.dialog => daily.clear.alternative.local.dialog} | 0 ....dialog => daily.clear.alternative.location.dialog} | 0 ...ed.dialog => daily.clear.not.expected.local.dialog} | 0 ...dialog => daily.clear.not.expected.location.dialog} | 0 ...ve.dialog => daily.clouds.alternative.local.dialog} | 0 ...dialog => daily.clouds.alternative.location.dialog} | 0 ...d.dialog => daily.clouds.not.expected.local.dialog} | 0 ...ialog => daily.clouds.not.expected.location.dialog} | 0 ...on.dialog => daily.condition.expected.local.dialog} | 0 ...dialog => daily.condition.expected.location.dialog} | 0 ...ative.dialog => daily.fog.alternative.local.dialog} | 0 ...ve.dialog => daily.fog.alternative.location.dialog} | 0 ...cted.dialog => daily.fog.not.expected.local.dialog} | 0 ...d.dialog => daily.fog.not.expected.location.dialog} | 0 ...tive.dialog => daily.rain.alternative.local.dialog} | 0 ...e.dialog => daily.rain.alternative.location.dialog} | 0 ...ted.dialog => daily.rain.not.expected.local.dialog} | 0 ....dialog => daily.rain.not.expected.location.dialog} | 0 ...e.dialog => daily.snow.alternative.location.dialog} | 0 ...ted.dialog => daily.snow.not.expected.local.dialog} | 0 ....dialog => daily.snow.not.expected.location.dialog} | 0 ...ture.dialog => daily.temperature.high.local.dialog} | 0 ...e.dialog => daily.temperature.high.location.dialog} | 0 ...mperature.dialog => daily.temperature.local.dialog} | 0 ...rature.dialog => daily.temperature.location.dialog} | 0 ...ature.dialog => daily.temperature.low.local.dialog} | 0 ...re.dialog => daily.temperature.low.location.dialog} | 0 ...log => daily.thunderstorm.alternative.local.dialog} | 0 ... => daily.thunderstorm.alternative.location.dialog} | 0 ...og => daily.thunderstorm.not.expected.local.dialog} | 0 ...> daily.thunderstorm.not.exptected.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 ...light.wind.dialog => daily.wind.light.local.dialog} | 0 ...ht.wind.dialog => daily.wind.light.location.dialog} | 0 ...um.wind.dialog => daily.wind.moderate.local.dialog} | 0 ...wind.dialog => daily.wind.moderate.location.dialog} | 0 ...hard.wind.dialog => daily.wind.strong.local.dialog} | 0 ...d.wind.dialog => daily.wind.strong.location.dialog} | 0 locale/da-dk/{E.dialog => east.dialog} | 0 locale/da-dk/forecast.hot.dialog | 4 ---- locale/da-dk/forecast.local.hot.dialog | 2 -- ...ialog => hourly.condition.alternative.local.dialog} | 0 ...og => hourly.condition.alternative.location.dialog} | 0 ...n.dialog => hourly.condition.expected.local.dialog} | 0 ...ialog => hourly.condition.expected.location.dialog} | 0 ...alog => hourly.condition.not.expected.local.dialog} | 0 ...g => hourly.condition.not.expected.location.dialog} | 0 ...perature.dialog => hourly.temperature.local.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/da-dk/{N.dialog => north.dialog} | 0 locale/da-dk/{NE.dialog => northeast.dialog} | 0 locale/da-dk/{NW.dialog => northwest.dialog} | 0 locale/da-dk/report.condition.at.location.dialog | 2 -- locale/da-dk/report.condition.dialog | 2 -- .../da-dk/report.condition.future.at.location.dialog | 4 ---- locale/da-dk/report.condition.future.dialog | 4 ---- locale/da-dk/report.wind.dialog | 2 -- locale/da-dk/{S.dialog => south.dialog} | 0 locale/da-dk/{SE.dialog => southeast.dialog} | 0 locale/da-dk/{SW.dialog => southwest.dialog} | 0 locale/da-dk/tonight.local.weather.dialog | 8 -------- locale/da-dk/{W.dialog => west.dialog} | 0 locale/da-dk/what.is.three.day.forecast.intent | 4 ---- .../da-dk/what.is.three.day.forecast.location.intent | 2 -- locale/da-dk/what.is.two.day.forecast.intent | 6 ------ locale/da-dk/whats.weather.like.intent | 10 ---------- locale/da-dk/wind.speed.dialog | 2 -- locale/da-dk/wind.speed.dir.dialog | 4 ---- locale/da-dk/wind.strength.hard.dialog | 2 -- locale/da-dk/wind.strength.light.dialog | 6 ------ locale/da-dk/wind.strength.medium.dialog | 4 ---- locale/da-dk/winds.dialog | 2 -- locale/de-de/{Cloudy.voc => Clouds.voc} | 0 .../{CloudyAlternatives.voc => CloudsAlternatives.voc} | 0 locale/de-de/{Foggy.voc => Fog.voc} | 0 locale/de-de/{Raining.voc => Rain.voc} | 0 locale/de-de/{Snowing.voc => Snow.voc} | 0 locale/de-de/{Storm.voc => Thunderstorm.voc} | 0 ...rmAlternatives.voc => ThunderstormAlternatives.voc} | 0 locale/de-de/and.dialog | 1 - .../at.time.forecast.affirmative.condition.dialog | 3 --- locale/de-de/at.time.forecast.cond.alternative.dialog | 3 --- ...at.time.forecast.local.affirmative.condition.dialog | 3 --- .../at.time.forecast.local.cond.alternative.dialog | 3 --- .../at.time.forecast.local.no.cond.predicted.dialog | 2 -- locale/de-de/at.time.forecast.no.cond.predicted.dialog | 3 --- locale/de-de/at.time.local.high.temperature.dialog | 2 -- locale/de-de/at.time.local.low.temperature.dialog | 2 -- locale/de-de/at.time.local.weather.dialog | 4 ---- ...e.dialog => current.clear.alternative.local.dialog} | 0 ...ialog => current.clear.alternative.location.dialog} | 0 ...alog => current.clear.not.expected.location.dialog} | 0 ....dialog => current.clouds.alternative.local.dialog} | 0 ...alog => current.clouds.alternative.location.dialog} | 0 ...dialog => current.clouds.not.expected.local.dialog} | 0 ...log => current.clouds.not.expected.location.dialog} | 0 ....dialog => current.condition.expected.local.dialog} | 0 ...alog => current.condition.expected.location.dialog} | 0 ...ive.dialog => current.fog.alternative.local.dialog} | 0 ....dialog => current.fog.alternative.location.dialog} | 0 ...ed.dialog => current.fog.not.expected.local.dialog} | 0 ...dialog => current.fog.not.expected.location.dialog} | 0 locale/de-de/current.hot.dialog | 2 -- ...umidity.dialog => current.humidity.location.dialog} | 0 locale/de-de/current.local.cold.dialog | 2 -- locale/de-de/current.local.hot.dialog | 2 -- ...ve.dialog => current.rain.alternative.local.dialog} | 0 ...dialog => current.rain.alternative.location.dialog} | 0 ...d.dialog => current.rain.not.expected.local.dialog} | 0 ...ialog => current.rain.not.expected.location.dialog} | 0 ...ve.dialog => current.snow.alternative.local.dialog} | 0 ...dialog => current.snow.alternative.location.dialog} | 0 ...d.dialog => current.snow.not.expected.local.dialog} | 0 ...ialog => current.snow.not.expected.location.dialog} | 0 ...re.dialog => current.temperature.high.local.dialog} | 0 ...dialog => current.temperature.high.location.dialog} | 0 ....max.dialog => current.temperature.high.low.dialog} | 0 ...erature.dialog => current.temperature.local.dialog} | 0 ...ture.dialog => current.temperature.location.dialog} | 0 ...ure.dialog => current.temperature.low.local.dialog} | 0 ....dialog => current.temperature.low.location.dialog} | 0 ...g => current.thunderstorm.alternative.local.dialog} | 0 ...> current.thunderstorm.alternative.location.dialog} | 0 ... => current.thunderstorm.not.expected.local.dialog} | 0 ... current.thunderstorm.not.expected.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...ght.wind.dialog => current.wind.light.local.dialog} | 0 ....wind.dialog => current.wind.light.location.dialog} | 0 ....wind.dialog => current.wind.moderate.local.dialog} | 0 ...nd.dialog => current.wind.moderate.location.dialog} | 0 ...rd.wind.dialog => current.wind.strong.local.dialog} | 0 ...wind.dialog => current.wind.strong.location.dialog} | 0 ...ive.dialog => daily.clear.alternative.local.dialog} | 0 ....dialog => daily.clear.alternative.location.dialog} | 0 ...ed.dialog => daily.clear.not.expected.local.dialog} | 0 ...dialog => daily.clear.not.expected.location.dialog} | 0 ...ve.dialog => daily.clouds.alternative.local.dialog} | 0 ...dialog => daily.clouds.alternative.location.dialog} | 0 ...d.dialog => daily.clouds.not.expected.local.dialog} | 0 ...ialog => daily.clouds.not.expected.location.dialog} | 0 ...on.dialog => daily.condition.expected.local.dialog} | 0 ...dialog => daily.condition.expected.location.dialog} | 0 ...ative.dialog => daily.fog.alternative.local.dialog} | 0 ...ve.dialog => daily.fog.alternative.location.dialog} | 0 ...cted.dialog => daily.fog.not.expected.local.dialog} | 0 ...d.dialog => daily.fog.not.expected.location.dialog} | 0 ...tive.dialog => daily.rain.alternative.local.dialog} | 0 ...e.dialog => daily.rain.alternative.location.dialog} | 0 ...ted.dialog => daily.rain.not.expected.local.dialog} | 0 ....dialog => daily.rain.not.expected.location.dialog} | 0 ...e.dialog => daily.snow.alternative.location.dialog} | 0 ...ted.dialog => daily.snow.not.expected.local.dialog} | 0 ....dialog => daily.snow.not.expected.location.dialog} | 0 ...ture.dialog => daily.temperature.high.local.dialog} | 0 ...e.dialog => daily.temperature.high.location.dialog} | 0 ...mperature.dialog => daily.temperature.local.dialog} | 0 ...rature.dialog => daily.temperature.location.dialog} | 0 ...ature.dialog => daily.temperature.low.local.dialog} | 0 ...re.dialog => daily.temperature.low.location.dialog} | 0 ...log => daily.thunderstorm.alternative.local.dialog} | 0 ... => daily.thunderstorm.alternative.location.dialog} | 0 ...og => daily.thunderstorm.not.expected.local.dialog} | 0 ...=> daily.thunderstorm.not.expected.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 ...light.wind.dialog => daily.wind.light.local.dialog} | 0 ...ht.wind.dialog => daily.wind.light.location.dialog} | 0 ...um.wind.dialog => daily.wind.moderate.local.dialog} | 0 ...wind.dialog => daily.wind.moderate.location.dialog} | 0 ...hard.wind.dialog => daily.wind.strong.local.dialog} | 0 ...d.wind.dialog => daily.wind.strong.location.dialog} | 0 locale/de-de/{E.dialog => east.dialog} | 0 locale/de-de/forecast.hot.dialog | 2 -- locale/de-de/forecast.local.hot.dialog | 1 - ...our.weather.dialog => hour.weather.location.dialog} | 0 ...ialog => hourly.condition.alternative.local.dialog} | 0 ...og => hourly.condition.alternative.location.dialog} | 0 ...n.dialog => hourly.condition.expected.local.dialog} | 0 ...ialog => hourly.condition.expected.location.dialog} | 0 ...alog => hourly.condition.not.expected.local.dialog} | 0 ...g => hourly.condition.not.expected.location.dialog} | 0 ...perature.dialog => hourly.temperature.local.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 locale/de-de/{N.dialog => north.dialog} | 0 locale/de-de/{NE.dialog => northeast.dialog} | 0 locale/de-de/{NW.dialog => northwest.dialog} | 0 locale/de-de/report.condition.at.location.dialog | 1 - locale/de-de/report.condition.dialog | 1 - .../de-de/report.condition.future.at.location.dialog | 2 -- locale/de-de/report.condition.future.dialog | 2 -- locale/de-de/report.wind.dialog | 1 - locale/de-de/{S.dialog => south.dialog} | 0 locale/de-de/{SE.dialog => southeast.dialog} | 0 locale/de-de/{SW.dialog => southwest.dialog} | 0 locale/de-de/tonight.local.weather.dialog | 4 ---- locale/de-de/{W.dialog => west.dialog} | 0 locale/de-de/what.is.three.day.forecast.intent | 2 -- .../de-de/what.is.three.day.forecast.location.intent | 1 - locale/de-de/what.is.two.day.forecast.intent | 3 --- locale/de-de/whats.weather.like.intent | 5 ----- locale/de-de/wind.speed.dialog | 1 - locale/de-de/wind.speed.dir.dialog | 2 -- locale/de-de/wind.strength.hard.dialog | 1 - locale/de-de/wind.strength.light.dialog | 3 --- locale/de-de/wind.strength.medium.dialog | 2 -- locale/de-de/winds.dialog | 1 - ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 locale/es-es/{E.dialog => east.dialog} | 0 locale/es-es/{N.dialog => north.dialog} | 0 locale/es-es/{NE.dialog => northeast.dialog} | 0 locale/es-es/{NW.dialog => northwest.dialog} | 0 locale/es-es/{S.dialog => south.dialog} | 0 locale/es-es/{SE.dialog => southeast.dialog} | 0 locale/es-es/{SW.dialog => southwest.dialog} | 0 locale/es-es/{W.dialog => west.dialog} | 0 ...umidity.dialog => current.humitidy.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 locale/fr-fr/{E.dialog => east.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/fr-fr/{N.dialog => north.dialog} | 0 locale/fr-fr/{NE.dialog => northeast.dialog} | 0 locale/fr-fr/{NW.dialog => northwest.dialog} | 0 locale/fr-fr/report.condition.dialog | 1 - locale/fr-fr/report.future.condition.dialog | 2 -- locale/fr-fr/{S.dialog => south.dialog} | 0 locale/fr-fr/{SE.dialog => southeast.dialog} | 0 locale/fr-fr/{SW.dialog => southwest.dialog} | 0 locale/fr-fr/{W.dialog => west.dialog} | 0 locale/fr-fr/wind.speed.dialog | 1 - locale/fr-fr/wind.speed.dir.dialog | 2 -- locale/fr-fr/winds.dialog | 1 - locale/gl-es/{Cloudy.voc => Clouds.voc} | 0 .../{CloudyAlternatives.voc => CloudsAlternatives.voc} | 0 locale/gl-es/{Foggy.voc => Fog.voc} | 0 locale/gl-es/{Raining.voc => Rain.voc} | 0 locale/gl-es/{Snowing.voc => Snow.voc} | 0 locale/gl-es/{Storm.voc => Thunderstorm.voc} | 0 ...rmAlternatives.voc => ThunderstormAlternatives.voc} | 0 locale/gl-es/and.dialog | 1 - .../at.time.forecast.affirmative.condition.dialog | 3 --- locale/gl-es/at.time.forecast.cond.alternative.dialog | 3 --- ...at.time.forecast.local.affirmative.condition.dialog | 3 --- .../at.time.forecast.local.cond.alternative.dialog | 3 --- .../at.time.forecast.local.no.cond.predicted.dialog | 2 -- locale/gl-es/at.time.forecast.no.cond.predicted.dialog | 3 --- locale/gl-es/at.time.local.high.temperature.dialog | 2 -- locale/gl-es/at.time.local.low.temperature.dialog | 2 -- locale/gl-es/at.time.local.weather.dialog | 4 ---- ...e.dialog => current.clear.alternative.local.dialog} | 0 ...ialog => current.clear.alternative.location.dialog} | 0 ...alog => current.clear.not.expected.location.dialog} | 0 ....dialog => current.clouds.alternative.local.dialog} | 0 ...alog => current.clouds.alternative.location.dialog} | 0 ...dialog => current.clouds.not.expected.local.dialog} | 0 ...log => current.clouds.not.expected.location.dialog} | 0 ....dialog => current.condition.expected.local.dialog} | 0 ...alog => current.condition.expected.location.dialog} | 0 ...ive.dialog => current.fog.alternative.local.dialog} | 0 ....dialog => current.fog.alternative.location.dialog} | 0 ...ed.dialog => current.fog.not.expected.local.dialog} | 0 ...dialog => current.fog.not.expected.location.dialog} | 0 locale/gl-es/current.hot.dialog | 2 -- ...umidity.dialog => current.humidity.location.dialog} | 0 locale/gl-es/current.local.cold.dialog | 2 -- locale/gl-es/current.local.hot.dialog | 2 -- ...ve.dialog => current.rain.alternative.local.dialog} | 0 ...dialog => current.rain.alternative.location.dialog} | 0 ...d.dialog => current.rain.not.expected.local.dialog} | 0 ...ialog => current.rain.not.expected.location.dialog} | 0 ...ve.dialog => current.snow.alternative.local.dialog} | 0 ...dialog => current.snow.alternative.location.dialog} | 0 ...d.dialog => current.snow.not.expected.local.dialog} | 0 ...ialog => current.snow.not.expected.location.dialog} | 0 ...re.dialog => current.temperature.high.local.dialog} | 0 ...dialog => current.temperature.high.location.dialog} | 0 ....max.dialog => current.temperature.high.low.dialog} | 0 ...erature.dialog => current.temperature.local.dialog} | 0 ...ture.dialog => current.temperature.location.dialog} | 0 ...ure.dialog => current.temperature.low.local.dialog} | 0 ....dialog => current.temperature.low.location.dialog} | 0 ...g => current.thunderstorm.alternative.local.dialog} | 0 ...> current.thunderstorm.alternative.location.dialog} | 0 ... => current.thunderstorm.not.expected.local.dialog} | 0 ... current.thunderstorm.not.expected.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...ght.wind.dialog => current.wind.light.local.dialog} | 0 ....wind.dialog => current.wind.light.location.dialog} | 0 ....wind.dialog => current.wind.moderate.local.dialog} | 0 ...nd.dialog => current.wind.moderate.location.dialog} | 0 ...rd.wind.dialog => current.wind.strong.local.dialog} | 0 ...wind.dialog => current.wind.strong.location.dialog} | 0 ...ive.dialog => daily.clear.alternative.local.dialog} | 0 ....dialog => daily.clear.alternative.location.dialog} | 0 ...ed.dialog => daily.clear.not.expected.local.dialog} | 0 ...dialog => daily.clear.not.expected.location.dialog} | 0 ...ve.dialog => daily.clouds.alternative.local.dialog} | 0 ...dialog => daily.clouds.alternative.location.dialog} | 0 ...d.dialog => daily.clouds.not.expected.local.dialog} | 0 ...ialog => daily.clouds.not.expected.location.dialog} | 0 ...on.dialog => daily.condition.expected.local.dialog} | 0 ...dialog => daily.condition.expected.location.dialog} | 0 ...ative.dialog => daily.fog.alternative.local.dialog} | 0 ...ve.dialog => daily.fog.alternative.location.dialog} | 0 ...cted.dialog => daily.fog.not.expected.local.dialog} | 0 ...d.dialog => daily.fog.not.expected.location.dialog} | 0 ...tive.dialog => daily.rain.alternative.local.dialog} | 0 ...e.dialog => daily.rain.alternative.location.dialog} | 0 ...ted.dialog => daily.rain.not.expected.local.dialog} | 0 ....dialog => daily.rain.not.expected.location.dialog} | 0 ...e.dialog => daily.snow.alternative.location.dialog} | 0 ...ted.dialog => daily.snow.not.expected.local.dialog} | 0 ....dialog => daily.snow.not.expected.location.dialog} | 0 ...ture.dialog => daily.temperature.high.local.dialog} | 0 ...e.dialog => daily.temperature.high.location.dialog} | 0 ...mperature.dialog => daily.temperature.local.dialog} | 0 ...rature.dialog => daily.temperature.location.dialog} | 0 ...ature.dialog => daily.temperature.low.local.dialog} | 0 ...re.dialog => daily.temperature.low.location.dialog} | 0 ...log => daily.thunderstorm.alternative.local.dialog} | 0 ... => daily.thunderstorm.alternative.location.dialog} | 0 ...og => daily.thunderstorm.not.expected.local.dialog} | 0 ...=> daily.thunderstorm.not.expected.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 ...light.wind.dialog => daily.wind.light.local.dialog} | 0 ...ht.wind.dialog => daily.wind.light.location.dialog} | 0 ...um.wind.dialog => daily.wind.moderate.local.dialog} | 0 ...wind.dialog => daily.wind.moderate.location.dialog} | 0 ...hard.wind.dialog => daily.wind.strong.local.dialog} | 0 ...d.wind.dialog => daily.wind.strong.location.dialog} | 0 locale/gl-es/{E.dialog => east.dialog} | 0 locale/gl-es/forecast.hot.dialog | 2 -- locale/gl-es/forecast.local.hot.dialog | 1 - ...ialog => hourly.condition.alternative.local.dialog} | 0 ...og => hourly.condition.alternative.location.dialog} | 0 ...ndition.dialog => hourly.condition.expected.dialog} | 0 ...n.dialog => hourly.condition.expected.local.dialog} | 0 ...alog => hourly.condition.not.expected.local.dialog} | 0 ...g => hourly.condition.not.expected.location.dialog} | 0 ...perature.dialog => hourly.temperature.local.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/gl-es/{N.dialog => north.dialog} | 0 locale/gl-es/{NE.dialog => northeast.dialog} | 0 locale/gl-es/{NW.dialog => northwest.dialog} | 0 locale/gl-es/report.condition.at.location.dialog | 1 - locale/gl-es/report.condition.dialog | 1 - .../gl-es/report.condition.future.at.location.dialog | 2 -- locale/gl-es/report.condition.future.dialog | 2 -- locale/gl-es/report.wind.dialog | 1 - locale/gl-es/{S.dialog => south.dialog} | 0 locale/gl-es/{SE.dialog => southeast.dialog} | 0 locale/gl-es/{SW.dialog => southwest.dialog} | 0 locale/gl-es/{W.dialog => west.dialog} | 0 locale/gl-es/what.is.three.day.forecast.intent | 2 -- .../gl-es/what.is.three.day.forecast.location.intent | 1 - locale/gl-es/what.is.two.day.forecast.intent | 3 --- locale/gl-es/whats.weather.like.intent | 5 ----- locale/gl-es/wind.speed.dialog | 1 - locale/gl-es/wind.speed.dir.dialog | 2 -- locale/gl-es/wind.strength.hard.dialog | 1 - locale/gl-es/wind.strength.light.dialog | 3 --- locale/gl-es/wind.strength.medium.dialog | 2 -- locale/gl-es/winds.dialog | 1 - locale/it-it/{Cloudy.voc => Clouds.voc} | 0 .../{CloudyAlternatives.voc => CloudsAlternatives.voc} | 0 locale/it-it/{Foggy.voc => Fog.voc} | 0 .../{FoggyAlternatives.voc => FogAlternatives.voc} | 0 locale/it-it/{Raining.voc => Rain.voc} | 0 locale/it-it/{Snowing.voc => Snow.voc} | 0 ...e.dialog => current.clear.alternative.local.dialog} | 0 ...ialog => current.clear.alternative.location.dialog} | 0 ...alog => current.clear.not.expected.location.dialog} | 0 ....dialog => current.clouds.alternative.local.dialog} | 0 ...alog => current.clouds.alternative.location.dialog} | 0 ...log => current.clouds.not.expected.location.dialog} | 0 ....dialog => current.condition.expected.local.dialog} | 0 ...alog => current.condition.expected.location.dialog} | 0 ...ive.dialog => current.fog.alternative.local.dialog} | 0 ....dialog => current.fog.alternative.location.dialog} | 0 ...ed.dialog => current.fog.not.expected.local.dialog} | 0 ...dialog => current.fog.not.expected.location.dialog} | 0 locale/it-it/current.hot.dialog | 2 -- ...umidity.dialog => current.humidity.location.dialog} | 0 locale/it-it/current.local.cold.dialog | 2 -- locale/it-it/current.local.hot.dialog | 2 -- ...ve.dialog => current.rain.alternative.local.dialog} | 0 ...dialog => current.rain.alternative.location.dialog} | 0 ...d.dialog => current.rain.not.expected.local.dialog} | 0 ...ialog => current.rain.not.expected.location.dialog} | 0 ...ve.dialog => current.snow.alternative.local.dialog} | 0 ...dialog => current.snow.alternative.location.dialog} | 0 ...d.dialog => current.snow.not.expected.local.dialog} | 0 ...ialog => current.snow.not.expected.location.dialog} | 0 ...re.dialog => current.temperature.high.local.dialog} | 0 ...dialog => current.temperature.high.location.dialog} | 0 ....max.dialog => current.temperature.high.low.dialog} | 0 ...erature.dialog => current.temperature.local.dialog} | 0 ...ture.dialog => current.temperature.location.dialog} | 0 ...ure.dialog => current.temperature.low.local.dialog} | 0 ....dialog => current.temperature.low.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...ght.wind.dialog => current.wind.light.local.dialog} | 0 ....wind.dialog => current.wind.light.location.dialog} | 0 ....wind.dialog => current.wind.moderate.local.dialog} | 0 ...nd.dialog => current.wind.moderate.location.dialog} | 0 ...rd.wind.dialog => current.wind.strong.local.dialog} | 0 ...wind.dialog => current.wind.strong.location.dialog} | 0 ...ive.dialog => daily.clear.alternative.local.dialog} | 0 ....dialog => daily.clear.alternative.location.dialog} | 0 ...ed.dialog => daily.clear.not.expected.local.dialog} | 0 ...dialog => daily.clear.not.expected.location.dialog} | 0 ...ve.dialog => daily.clouds.alternative.local.dialog} | 0 ...dialog => daily.clouds.alternative.location.dialog} | 0 ...d.dialog => daily.clouds.not.expected.local.dialog} | 0 ...ialog => daily.clouds.not.expected.location.dialog} | 0 ...on.dialog => daily.condition.expected.local.dialog} | 0 ...dialog => daily.condition.expected.location.dialog} | 0 ...ative.dialog => daily.fog.alternative.local.dialog} | 0 ...ve.dialog => daily.fog.alternative.location.dialog} | 0 ...cted.dialog => daily.fog.not.expected.local.dialog} | 0 ...d.dialog => daily.fog.not.expected.location.dialog} | 0 ...tive.dialog => daily.rain.alternative.local.dialog} | 0 ...e.dialog => daily.rain.alternative.location.dialog} | 0 ...ted.dialog => daily.rain.not.expected.local.dialog} | 0 ....dialog => daily.rain.not.expected.location.dialog} | 0 ...e.dialog => daily.snow.alternative.location.dialog} | 0 ...ted.dialog => daily.snow.not.expected.local.dialog} | 0 ....dialog => daily.snow.not.expected.location.dialog} | 0 ...ture.dialog => daily.temperature.high.local.dialog} | 0 ...e.dialog => daily.temperature.high.location.dialog} | 0 ...mperature.dialog => daily.temperature.local.dialog} | 0 ...rature.dialog => daily.temperature.location.dialog} | 0 ...ature.dialog => daily.temperature.low.local.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 ...light.wind.dialog => daily.wind.light.local.dialog} | 0 ...ht.wind.dialog => daily.wind.light.location.dialog} | 0 ...um.wind.dialog => daily.wind.moderate.local.dialog} | 0 ...wind.dialog => daily.wind.moderate.location.dialog} | 0 ...hard.wind.dialog => daily.wind.strong.local.dialog} | 0 ...d.wind.dialog => daily.wind.strong.location.dialog} | 0 locale/it-it/{E.dialog => east.dialog} | 0 locale/it-it/forecast.hot.dialog | 2 -- locale/it-it/forecast.local.hot.dialog | 1 - ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/it-it/{N.dialog => north.dialog} | 0 locale/it-it/{NE.dialog => northeast.dialog} | 0 locale/it-it/{NW.dialog => northwest.dialog} | 0 locale/it-it/report.condition.dialog | 1 - locale/it-it/report.future.condition.dialog | 2 -- locale/it-it/{S.dialog => south.dialog} | 0 locale/it-it/{SE.dialog => southeast.dialog} | 0 locale/it-it/{SW.dialog => southwest.dialog} | 0 locale/it-it/{W.dialog => west.dialog} | 0 locale/it-it/what.is.three.day.forecast.intent | 5 ----- .../it-it/what.is.three.day.forecast.location.intent | 4 ---- locale/it-it/what.is.two.day.forecast.intent | 2 -- locale/it-it/whats.weather.like.intent | 2 -- locale/it-it/wind.speed.dialog | 1 - locale/it-it/wind.speed.dir.dialog | 2 -- locale/it-it/winds.dialog | 1 - locale/nl-nl/W.dialog | 1 - ...umidity.dialog => current.humidity.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 locale/nl-nl/{E.dialog => east.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/nl-nl/{N.dialog => north.dialog} | 0 locale/nl-nl/{NE.dialog => northeast.dialog} | 0 locale/nl-nl/{NW.dialog => northwest.dialog} | 0 locale/nl-nl/report.condition.dialog | 1 - locale/nl-nl/report.future.condition.dialog | 2 -- locale/nl-nl/{S.dialog => south.dialog} | 0 locale/nl-nl/{SE.dialog => southeast.dialog} | 0 locale/nl-nl/{SW.dialog => southwest.dialog} | 0 locale/nl-nl/wind.speed.dialog | 1 - locale/nl-nl/wind.speed.dir.dialog | 2 -- locale/nl-nl/winds.dialog | 1 - locale/pt-br/{Cloudy.voc => Clouds.voc} | 0 .../{CloudyAlternatives.voc => CloudsAlternatives.voc} | 0 locale/pt-br/{Foggy.voc => Fog.voc} | 0 locale/pt-br/{Raining.voc => Rain.voc} | 0 locale/pt-br/{Snowing.voc => Snow.voc} | 0 locale/pt-br/{Storm.voc => Thunderstorm.voc} | 0 ...rmAlternatives.voc => ThunderstormAlternatives.voc} | 0 locale/pt-br/and.dialog | 1 - .../at.time.forecast.affirmative.condition.dialog | 3 --- locale/pt-br/at.time.forecast.cond.alternative.dialog | 3 --- ...at.time.forecast.local.affirmative.condition.dialog | 3 --- .../at.time.forecast.local.cond.alternative.dialog | 3 --- .../at.time.forecast.local.no.cond.predicted.dialog | 2 -- locale/pt-br/at.time.forecast.no.cond.predicted.dialog | 3 --- locale/pt-br/at.time.local.high.temperature.dialog | 2 -- locale/pt-br/at.time.local.low.temperature.dialog | 2 -- locale/pt-br/at.time.local.weather.dialog | 4 ---- ...e.dialog => current.clear.alternative.local.dialog} | 0 ...ialog => current.clear.alternative.location.dialog} | 0 ...alog => current.clear.not.expected.location.dialog} | 0 ....dialog => current.clouds.alternative.local.dialog} | 0 ...alog => current.clouds.alternative.location.dialog} | 0 ...dialog => current.clouds.not.expected.local.dialog} | 0 ...log => current.clouds.not.expected.location.dialog} | 0 ....dialog => current.condition.expected.local.dialog} | 0 ...alog => current.condition.expected.location.dialog} | 0 ...ive.dialog => current.fog.alternative.local.dialog} | 0 ....dialog => current.fog.alternative.location.dialog} | 0 ...ed.dialog => current.fog.not.expected.local.dialog} | 0 ...dialog => current.fog.not.expected.location.dialog} | 0 locale/pt-br/current.hot.dialog | 2 -- ...umidity.dialog => current.humidity.location.dialog} | 0 locale/pt-br/current.local.cold.dialog | 2 -- locale/pt-br/current.local.hot.dialog | 2 -- ...ve.dialog => current.rain.alternative.local.dialog} | 0 ...dialog => current.rain.alternative.location.dialog} | 0 ...d.dialog => current.rain.not.expected.local.dialog} | 0 ...ialog => current.rain.not.expected.location.dialog} | 0 ...ve.dialog => current.snow.alternative.local.dialog} | 0 ...dialog => current.snow.alternative.location.dialog} | 0 ...d.dialog => current.snow.not.expected.local.dialog} | 0 ...ialog => current.snow.not.expected.location.dialog} | 0 ...re.dialog => current.temperature.high.local.dialog} | 0 ...dialog => current.temperature.high.location.dialog} | 0 ....max.dialog => current.temperature.high.low.dialog} | 0 ...erature.dialog => current.temperature.local.dialog} | 0 ...ture.dialog => current.temperature.location.dialog} | 0 ...ure.dialog => current.temperature.low.local.dialog} | 0 ....dialog => current.temperature.low.location.dialog} | 0 ...g => current.thunderstorm.alternative.local.dialog} | 0 ...> current.thunderstorm.alternative.location.dialog} | 0 ... => current.thunderstorm.not.expected.local.dialog} | 0 ... current.thunderstorm.not.expected.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...ght.wind.dialog => current.wind.light.local.dialog} | 0 ....wind.dialog => current.wind.light.location.dialog} | 0 ....wind.dialog => current.wind.moderate.local.dialog} | 0 ...nd.dialog => current.wind.moderate.location.dialog} | 0 ...rd.wind.dialog => current.wind.strong.local.dialog} | 0 ...wind.dialog => current.wind.strong.location.dialog} | 0 ...ive.dialog => daily.clear.alternative.local.dialog} | 0 ....dialog => daily.clear.alternative.location.dialog} | 0 ...ed.dialog => daily.clear.not.expected.local.dialog} | 0 ...dialog => daily.clear.not.expected.location.dialog} | 0 ...ve.dialog => daily.clouds.alternative.local.dialog} | 0 ...dialog => daily.clouds.alternative.location.dialog} | 0 ...d.dialog => daily.clouds.not.expected.local.dialog} | 0 ...ialog => daily.clouds.not.expected.location.dialog} | 0 ...on.dialog => daily.condition.expected.local.dialog} | 0 ...dialog => daily.condition.expected.location.dialog} | 0 ...ative.dialog => daily.fog.alternative.local.dialog} | 0 ...ve.dialog => daily.fog.alternative.location.dialog} | 0 ...cted.dialog => daily.fog.not.expected.local.dialog} | 0 ...d.dialog => daily.fog.not.expected.location.dialog} | 0 ...tive.dialog => daily.rain.alternative.local.dialog} | 0 ...e.dialog => daily.rain.alternative.location.dialog} | 0 ...ted.dialog => daily.rain.not.expected.local.dialog} | 0 ....dialog => daily.rain.not.expected.location.dialog} | 0 ...e.dialog => daily.snow.alternative.location.dialog} | 0 ...ted.dialog => daily.snow.not.expected.local.dialog} | 0 ....dialog => daily.snow.not.expected.location.dialog} | 0 ...emperature.dialog => daily.temperature.high.dialog} | 0 ...ture.dialog => daily.temperature.high.local.dialog} | 0 ...mperature.dialog => daily.temperature.local.dialog} | 0 ...rature.dialog => daily.temperature.location.dialog} | 0 ...ature.dialog => daily.temperature.low.local.dialog} | 0 ...re.dialog => daily.temperature.low.location.dialog} | 0 ...log => daily.thunderstorm.alternative.local.dialog} | 0 ... => daily.thunderstorm.alternative.location.dialog} | 0 ...og => daily.thunderstorm.not.expected.local.dialog} | 0 ...=> daily.thunderstorm.not.expected.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 ...light.wind.dialog => daily.wind.light.local.dialog} | 0 ...ht.wind.dialog => daily.wind.light.location.dialog} | 0 ...um.wind.dialog => daily.wind.moderate.local.dialog} | 0 ...wind.dialog => daily.wind.moderate.location.dialog} | 0 ...hard.wind.dialog => daily.wind.strong.local.dialog} | 0 ...d.wind.dialog => daily.wind.strong.location.dialog} | 0 locale/pt-br/{E.dialog => east.dialog} | 0 locale/pt-br/forecast.hot.dialog | 2 -- locale/pt-br/forecast.local.hot.dialog | 1 - ...ialog => hourly.condition.alternative.local.dialog} | 0 ...og => hourly.condition.alternative.location.dialog} | 0 ...n.dialog => hourly.condition.expected.local.dialog} | 0 ...ialog => hourly.condition.expected.location.dialog} | 0 ...alog => hourly.condition.not.expected.local.dialog} | 0 ...g => hourly.condition.not.expected.location.dialog} | 0 ...perature.dialog => hourly.temperature.local.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/pt-br/{N.dialog => north.dialog} | 0 locale/pt-br/{NE.dialog => northeast.dialog} | 0 locale/pt-br/{NW.dialog => northwest.dialog} | 0 locale/pt-br/report.condition.at.location.dialog | 1 - locale/pt-br/report.condition.dialog | 1 - .../pt-br/report.condition.future.at.location.dialog | 2 -- locale/pt-br/report.condition.future.dialog | 2 -- locale/pt-br/report.wind.dialog | 1 - locale/pt-br/{S.dialog => south.dialog} | 0 locale/pt-br/{SE.dialog => southeast.dialog} | 0 locale/pt-br/{SW.dialog => southwest.dialog} | 0 locale/pt-br/tonight.local.weather.dialog | 4 ---- locale/pt-br/{W.dialog => west.dialog} | 0 locale/pt-br/what.is.three.day.forecast.intent | 2 -- .../pt-br/what.is.three.day.forecast.location.intent | 1 - locale/pt-br/what.is.two.day.forecast.intent | 3 --- locale/pt-br/whats.weather.like.intent | 5 ----- locale/pt-br/wind.speed.dialog | 1 - locale/pt-br/wind.speed.dir.dialog | 2 -- locale/pt-br/wind.strength.hard.dialog | 1 - locale/pt-br/wind.strength.light.dialog | 3 --- locale/pt-br/wind.strength.medium.dialog | 2 -- locale/pt-br/winds.dialog | 1 - ...umidity.dialog => current.humidity.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...ast.weather.dialog => daily.weather.loation.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 locale/ru-ru/{E.dialog => east.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/ru-ru/{N.dialog => north.dialog} | 0 locale/ru-ru/{NE.dialog => northeast.dialog} | 0 locale/ru-ru/{NW.dialog => northwest.dialog} | 0 locale/ru-ru/report.condition.dialog | 1 - locale/ru-ru/report.future.condition.dialog | 2 -- locale/ru-ru/{S.dialog => south.dialog} | 0 locale/ru-ru/{SE.dialog => southeast.dialog} | 0 locale/ru-ru/{SW.dialog => southwest.dialog} | 0 locale/ru-ru/{W.dialog => west.dialog} | 0 locale/ru-ru/wind.speed.dialog | 1 - locale/ru-ru/wind.speed.dir.dialog | 2 -- locale/ru-ru/winds.dialog | 1 - locale/sv-se/{Cloudy.voc => Clouds.voc} | 0 .../{CloudyAlternatives.voc => CloudsAlternatives.voc} | 0 locale/sv-se/{Foggy.voc => Fog.voc} | 0 locale/sv-se/{Raining.voc => Rain.voc} | 0 locale/sv-se/{Snowing.voc => Snow.voc} | 0 locale/sv-se/{Storm.voc => Thunderstorm.voc} | 0 ...rmAlternatives.voc => ThunderstormAlternatives.voc} | 0 locale/sv-se/and.dialog | 1 - .../at.time.forecast.affirmative.condition.dialog | 3 --- locale/sv-se/at.time.forecast.cond.alternative.dialog | 3 --- ...at.time.forecast.local.affirmative.condition.dialog | 3 --- .../at.time.forecast.local.cond.alternative.dialog | 3 --- .../at.time.forecast.local.no.cond.predicted.dialog | 2 -- locale/sv-se/at.time.forecast.no.cond.predicted.dialog | 3 --- locale/sv-se/at.time.local.high.temperature.dialog | 2 -- locale/sv-se/at.time.local.low.temperature.dialog | 2 -- locale/sv-se/at.time.local.weather.dialog | 4 ---- ...e.dialog => current.clear.alternative.local.dialog} | 0 ...ialog => current.clear.alternative.location.dialog} | 0 ...log => current.clear.not.expected.locatioin.dialog} | 0 ....dialog => current.clouds.alternative.local.dialog} | 0 ...alog => current.clouds.alternative.location.dialog} | 0 ...dialog => current.clouds.not.expected.local.dialog} | 0 ...log => current.clouds.not.expected.location.dialog} | 0 ....dialog => current.condition.expected.local.dialog} | 0 ...alog => current.condition.expected.location.dialog} | 0 ...ive.dialog => current.fog.alternative.local.dialog} | 0 ....dialog => current.fog.alternative.location.dialog} | 0 ...ed.dialog => current.fog.not.expected.local.dialog} | 0 ...dialog => current.fog.not.expected.location.dialog} | 0 locale/sv-se/current.hot.dialog | 2 -- ...umidity.dialog => current.humidity.location.dialog} | 0 locale/sv-se/current.local.cold.dialog | 2 -- locale/sv-se/current.local.hot.dialog | 2 -- ...ve.dialog => current.rain.alternative.local.dialog} | 0 ...dialog => current.rain.alternative.location.dialog} | 0 ...d.dialog => current.rain.not.expected.local.dialog} | 0 ...ialog => current.rain.not.expected.location.dialog} | 0 ...ve.dialog => current.snow.alternative.local.dialog} | 0 ...dialog => current.snow.alternative.location.dialog} | 0 ...d.dialog => current.snow.not.expected.local.dialog} | 0 ...ialog => current.snow.not.expected.location.dialog} | 0 ...re.dialog => current.temperature.high.local.dialog} | 0 ...dialog => current.temperature.high.location.dialog} | 0 ....max.dialog => current.temperature.high.low.dialog} | 0 ...erature.dialog => current.temperature.local.dialog} | 0 ...ture.dialog => current.temperature.location.dialog} | 0 ...ure.dialog => current.temperature.low.local.dialog} | 0 ....dialog => current.temperature.low.location.dialog} | 0 ...g => current.thunderstorm.alternative.local.dialog} | 0 ...> current.thunderstorm.alternative.location.dialog} | 0 ... => current.thunderstorm.not.expected.local.dialog} | 0 ... current.thunderstorm.not.expected.location.dialog} | 0 ...cal.weather.dialog => current.weather.local.dialog} | 0 ....weather.dialog => current.weather.location.dialog} | 0 ...ght.wind.dialog => current.wind.light.local.dialog} | 0 ....wind.dialog => current.wind.light.location.dialog} | 0 ....wind.dialog => current.wind.moderate.local.dialog} | 0 ...nd.dialog => current.wind.moderate.location.dialog} | 0 ...rd.wind.dialog => current.wind.strong.local.dialog} | 0 ...wind.dialog => current.wind.strong.location.dialog} | 0 ...ive.dialog => daily.clear.alternative.local.dialog} | 0 ....dialog => daily.clear.alternative.location.dialog} | 0 ...ed.dialog => daily.clear.not.expected.local.dialog} | 0 ...dialog => daily.clear.not.expected.location.dialog} | 0 ...ve.dialog => daily.clouds.alternative.local.dialog} | 0 ...dialog => daily.clouds.alternative.location.dialog} | 0 ...d.dialog => daily.clouds.not.expected.local.dialog} | 0 ...ialog => daily.clouds.not.expected.location.dialog} | 0 ...on.dialog => daily.condition.expected.local.dialog} | 0 ...dialog => daily.condition.expected.location.dialog} | 0 ...ative.dialog => daily.fog.alternative.local.dialog} | 0 ...ve.dialog => daily.fog.alternative.location.dialog} | 0 ...cted.dialog => daily.fog.not.expected.local.dialog} | 0 ...d.dialog => daily.fog.not.expected.location.dialog} | 0 ...tive.dialog => daily.rain.alternative.local.dialog} | 0 ...e.dialog => daily.rain.alternative.location.dialog} | 0 ...ted.dialog => daily.rain.not.expected.local.dialog} | 0 ....dialog => daily.rain.not.expected.location.dialog} | 0 ...e.dialog => daily.snow.alternative.location.dialog} | 0 ...ted.dialog => daily.snow.not.expected.local.dialog} | 0 ....dialog => daily.snow.not.expected.location.dialog} | 0 ...ture.dialog => daily.temperature.high.local.dialog} | 0 ...e.dialog => daily.temperature.high.location.dialog} | 0 ...mperature.dialog => daily.temperature.local.dialog} | 0 ...rature.dialog => daily.temperature.location.dialog} | 0 ...ature.dialog => daily.temperature.low.local.dialog} | 0 ...re.dialog => daily.temperature.low.location.dialog} | 0 ...log => daily.thunderstorm.alternative.local.dialog} | 0 ... => daily.thunderstorm.alternative.location.dialog} | 0 ...og => daily.thunderstorm.not.expected.local.dialog} | 0 ...=> daily.thunderstorm.not.expected.location.dialog} | 0 ...local.weather.dialog => daily.weather.local.dialog} | 0 ...st.weather.dialog => daily.weather.location.dialog} | 0 ...light.wind.dialog => daily.wind.light.local.dialog} | 0 ...ht.wind.dialog => daily.wind.light.location.dialog} | 0 ...um.wind.dialog => daily.wind.moderate.local.dialog} | 0 ...wind.dialog => daily.wind.moderate.location.dialog} | 0 ...hard.wind.dialog => daily.wind.strong.local.dialog} | 0 ...d.wind.dialog => daily.wind.strong.location.dialog} | 0 locale/sv-se/{E.dialog => east.dialog} | 0 locale/sv-se/forecast.hot.dialog | 2 -- locale/sv-se/forecast.local.hot.dialog | 1 - ...ialog => hourly.condition.alternative.local.dialog} | 0 ...og => hourly.condition.alternative.location.dialog} | 0 ...n.dialog => hourly.condition.expected.local.dialog} | 0 ...ialog => hourly.condition.expected.location.dialog} | 0 ...alog => hourly.condition.not.expected.local.dialog} | 0 ...g => hourly.condition.not.expected.location.dialog} | 0 ...perature.dialog => hourly.temperature.local.dialog} | 0 ...ocal.weather.dialog => hourly.weather.local.dialog} | 0 ...r.weather.dialog => hourly.weather.location.dialog} | 0 locale/sv-se/{N.dialog => north.dialog} | 0 locale/sv-se/{NE.dialog => northeast.dialog} | 0 locale/sv-se/{NW.dialog => northwest.dialog} | 0 locale/sv-se/report.condition.at.location.dialog | 1 - locale/sv-se/report.condition.dialog | 1 - .../sv-se/report.condition.future.at.location.dialog | 2 -- locale/sv-se/report.condition.future.dialog | 2 -- locale/sv-se/report.wind.dialog | 1 - locale/sv-se/{S.dialog => south.dialog} | 0 locale/sv-se/{SE.dialog => southeast.dialog} | 0 locale/sv-se/{SW.dialog => southwest.dialog} | 0 locale/sv-se/tonight.local.weather.dialog | 4 ---- locale/sv-se/{W.dialog => west.dialog} | 0 locale/sv-se/what.is.three.day.forecast.intent | 2 -- .../sv-se/what.is.three.day.forecast.location.intent | 1 - locale/sv-se/what.is.two.day.forecast.intent | 3 --- locale/sv-se/whats.weather.like.intent | 5 ----- locale/sv-se/wind.speed.dialog | 1 - locale/sv-se/wind.speed.dir.dialog | 2 -- locale/sv-se/wind.strength.hard.dialog | 1 - locale/sv-se/wind.strength.light.dialog | 3 --- locale/sv-se/wind.strength.medium.dialog | 2 -- locale/sv-se/winds.dialog | 1 - 978 files changed, 500 deletions(-) rename locale/ca-es/{Cloudy.voc => Clouds.voc} (100%) rename locale/ca-es/{CloudyAlternatives.voc => CloudsAlternatives.voc} (100%) rename locale/ca-es/{Foggy.voc => Fog.voc} (100%) rename locale/ca-es/{Raining.voc => Rain.voc} (100%) rename locale/ca-es/{Snowing.voc => Snow.voc} (100%) rename locale/ca-es/{Storm.voc => Thunderstorm.voc} (100%) rename locale/ca-es/{StormAlternatives.voc => ThunderstormAlternatives.voc} (100%) delete mode 100644 locale/ca-es/and.dialog delete mode 100644 locale/ca-es/at.time.forecast.affirmative.condition.dialog delete mode 100644 locale/ca-es/at.time.forecast.cond.alternative.dialog delete mode 100644 locale/ca-es/at.time.forecast.local.affirmative.condition.dialog delete mode 100644 locale/ca-es/at.time.forecast.local.cond.alternative.dialog delete mode 100644 locale/ca-es/at.time.forecast.local.no.cond.predicted.dialog delete mode 100644 locale/ca-es/at.time.forecast.no.cond.predicted.dialog delete mode 100644 locale/ca-es/at.time.local.high.temperature.dialog delete mode 100644 locale/ca-es/at.time.local.low.temperature.dialog delete mode 100644 locale/ca-es/at.time.local.weather.dialog rename locale/ca-es/{local.clear.alternative.dialog => current.clear.alternative.local.dialog} (100%) rename locale/ca-es/{clear.alternative.dialog => current.clear.alternative.location.dialog} (100%) rename locale/ca-es/{no.clear.predicted.dialog => current.clear.not.expected.local.dialog} (100%) rename locale/ca-es/{local.cloudy.alternative.dialog => current.clouds.alternative.local.dialog} (100%) rename locale/ca-es/{cloudy.alternative.dialog => current.clouds.alternative.location.dialog} (100%) rename locale/ca-es/{local.no.cloudy.predicted.dialog => current.clouds.not.expected.local.dialog} (100%) rename locale/ca-es/{no.cloudy.predicted.dialog => current.clouds.not.expected.location.dialog} (100%) rename locale/ca-es/{local.affirmative.condition.dialog => current.condition.expected.local.dialog} (100%) rename locale/ca-es/{affirmative.condition.dialog => current.condition.expected.location.dialog} (100%) rename locale/ca-es/{local.foggy.alternative.dialog => current.fog.alternative.local.dialog} (100%) rename locale/ca-es/{fog.alternative.dialog => current.fog.alternative.location.dialog} (100%) rename locale/ca-es/{local.no.fog.predicted.dialog => current.fog.not.expected.local.dialog} (100%) rename locale/ca-es/{no.fog.predicted.dialog => current.fog.not.expected.location.dialog} (100%) delete mode 100644 locale/ca-es/current.hot.dialog rename locale/ca-es/{humidity.dialog => current.humidity.location.dialog} (100%) delete mode 100644 locale/ca-es/current.local.cold.dialog delete mode 100644 locale/ca-es/current.local.hot.dialog rename locale/ca-es/{local.raining.alternative.dialog => current.rain.alternative.local.dialog} (100%) rename locale/ca-es/{raining.alternative.dialog => current.rain.alternative.location.dialog} (100%) rename locale/ca-es/{local.no.rain.predicted.dialog => current.rain.not.expected.local.dialog} (100%) rename locale/ca-es/{no.rain.predicted.dialog => current.rain.not.expected.location.dialog} (100%) rename locale/ca-es/{local.snowing.alternative.dialog => current.snow.alternative.local.dialog} (100%) rename locale/ca-es/{snowing.alternative.dialog => current.snow.alternative.location.dialog} (100%) rename locale/ca-es/{local.no.snow.predicted.dialog => current.snow.not.expected.local.dialog} (100%) rename locale/ca-es/{no.snow.predicted.dialog => current.snow.not.expected.location.dialog} (100%) rename locale/ca-es/{current.local.high.temperature.dialog => current.temperature.high.local.dialog} (100%) rename locale/ca-es/{current.high.temperature.dialog => current.temperature.high.location.dialog} (100%) rename locale/ca-es/{min.max.dialog => current.temperature.high.low.dialog} (100%) rename locale/ca-es/{current.local.temperature.dialog => current.temperature.local.dialog} (100%) rename locale/ca-es/{current.temperature.dialog => current.temperature.location.dialog} (100%) rename locale/ca-es/{current.local.low.temperature.dialog => current.temperature.low.local.dialog} (100%) rename locale/ca-es/{current.low.temperature.dialog => current.temperature.low.location.dialog} (100%) rename locale/ca-es/{local.storm.alternative.dialog => current.thunderstorm.alternative.local.dialog} (100%) rename locale/ca-es/{local.no.storm.predicted.dialog => current.thunderstorm.not.expected.local.dialog} (100%) rename locale/ca-es/{no.storm.predicted.dialog => current.thunderstorm.not.expected.location.dialog} (100%) rename locale/ca-es/{storm.alternative.dialog => current.thundestorm.alternative.location.dialog} (100%) rename locale/ca-es/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/ca-es/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/ca-es/{local.light.wind.dialog => current.wind.light.local.dialog} (100%) rename locale/ca-es/{light.wind.dialog => current.wind.light.location.dialog} (100%) rename locale/ca-es/{local.medium.wind.dialog => current.wind.moderate.local.dialog} (100%) rename locale/ca-es/{medium.wind.dialog => current.wind.moderate.location.dialog} (100%) rename locale/ca-es/{local.hard.wind.dialog => current.wind.strong.local.dialog} (100%) rename locale/ca-es/{hard.wind.dialog => current.wind.strong.location.dialog} (100%) rename locale/ca-es/{forecast.local.clear.alternative.dialog => daily.clear.alternative.local.dialog} (100%) rename locale/ca-es/{forecast.clear.alternative.dialog => daily.clear.alternative.location.dialog} (100%) rename locale/ca-es/{forecast.local.no.clear.predicted.dialog => daily.clear.not.expected.local.dialog} (100%) rename locale/ca-es/{forecast.no.clear.predicted.dialog => daily.clear.not.expected.location.dialog} (100%) rename locale/ca-es/{forecast.local.cloudy.alternative.dialog => daily.clouds.alternative.local.dialog} (100%) rename locale/ca-es/{forecast.cloudy.alternative.dialog => daily.clouds.alternative.location.dialog} (100%) rename locale/ca-es/{forecast.local.no.cloudy.predicted.dialog => daily.clouds.not.expected.local.dialog} (100%) rename locale/ca-es/{forecast.no.cloudy.predicted.dialog => daily.clouds.not.expected.location.dialog} (100%) rename locale/ca-es/{forecast.local.affirmative.condition.dialog => daily.condition.expected.local.dialog} (100%) rename locale/ca-es/{forecast.affirmative.condition.dialog => daily.condition.expected.location.dialog} (100%) rename locale/ca-es/{forecast.local.foggy.alternative.dialog => daily.fog.alternative.local.dialog} (100%) rename locale/ca-es/{forecast.foggy.alternative.dialog => daily.fog.alternative.location.dialog} (100%) rename locale/ca-es/{forecast.local.no.fog.predicted.dialog => daily.fog.not.expected.local.dialog} (100%) rename locale/ca-es/{forecast.no.fog.predicted.dialog => daily.fog.not.expected.location.dialog} (100%) rename locale/ca-es/{forecast.local.raining.alternative.dialog => daily.rain.alternative.local.dialog} (100%) rename locale/ca-es/{forecast.raining.alternative.dialog => daily.rain.alternative.location.dialog} (100%) rename locale/ca-es/{forecast.local.no.rain.predicted.dialog => daily.rain.not.expected.local.dialog} (100%) rename locale/ca-es/{forecast.no.rain.predicted.dialog => daily.rain.not.expected.location.dialog} (100%) rename locale/ca-es/{forecast.snowing.alternative.dialog => daily.snow.alternative.location.dialog} (100%) rename locale/ca-es/{forecast.local.no.snow.predicted.dialog => daily.snow.not.expected.local.dialog} (100%) rename locale/ca-es/{forecast.no.snow.predicted.dialog => daily.snow.not.expected.location.dialog} (100%) rename locale/ca-es/{forecast.local.high.temperature.dialog => daily.temperature.high.local.dialog} (100%) rename locale/ca-es/{forecast.high.temperature.dialog => daily.temperature.high.location.dialog} (100%) rename locale/ca-es/{forecast.local.temperature.dialog => daily.temperature.local.dialog} (100%) rename locale/ca-es/{forecast.temperature.dialog => daily.temperature.location.dialog} (100%) rename locale/ca-es/{forecast.local.low.temperature.dialog => daily.temperature.low.local.dialog} (100%) rename locale/ca-es/{forecast.low.temperature.dialog => daily.temperature.low.location.dialog} (100%) rename locale/ca-es/{forecast.local.storm.alternative.dialog => daily.thunderstorm.alternative.local.dialog} (100%) rename locale/ca-es/{forecast.storm.alternative.dialog => daily.thunderstorm.alternative.location.dialog} (100%) rename locale/ca-es/{forecast.local.no.storm.predicted.dialog => daily.thunderstorm.not.expected.local.dialog} (100%) rename locale/ca-es/{forecast.no.storm.predicted.dialog => daily.thunderstorm.not.expected.location.dialog} (100%) rename locale/ca-es/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/ca-es/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/ca-es/{forecast.light.wind.dialog => daily.wind.light.loaction.dialog} (100%) rename locale/ca-es/{forecast.local.light.wind.dialog => daily.wind.light.local.dialog} (100%) rename locale/ca-es/{forecast.local.medium.wind.dialog => daily.wind.moderate.local.dialog} (100%) rename locale/ca-es/{forecast.medium.wind.dialog => daily.wind.moderate.location.dialog} (100%) rename locale/ca-es/{forecast.local.hard.wind.dialog => daily.wind.strong.local.dialog} (100%) rename locale/ca-es/{forecast.hard.wind.dialog => daily.wind.strong.location.dialog} (100%) rename locale/ca-es/{E.dialog => east.dialog} (100%) delete mode 100644 locale/ca-es/forecast.hot.dialog delete mode 100644 locale/ca-es/forecast.local.hot.dialog rename locale/ca-es/{at.time.local.cond.alternative.dialog => hourly.condition.alternative.local.dialog} (100%) rename locale/ca-es/{at.time.cond.alternative.dialog => hourly.condition.alternative.location.dialog} (100%) rename locale/ca-es/{at.time.local.affirmative.condition.dialog => hourly.condition.expected.local.dialog} (100%) rename locale/ca-es/{at.time.affirmative.condition.dialog => hourly.condition.expected.location.dialog} (100%) rename locale/ca-es/{at.time.local.no.cond.predicted.dialog => hourly.condition.not.expected.local.dialog} (100%) rename locale/ca-es/{at.time.no.cond.predicted.dialog => hourly.condition.not.expected.location.dialog} (100%) rename locale/ca-es/{at.time.local.temperature.dialog => hourly.temperature.local.dialog} (100%) rename locale/ca-es/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/ca-es/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/ca-es/{N.dialog => north.dialog} (100%) rename locale/ca-es/{NE.dialog => northeast.dialog} (100%) rename locale/ca-es/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/ca-es/report.condition.at.location.dialog delete mode 100644 locale/ca-es/report.condition.dialog delete mode 100644 locale/ca-es/report.condition.future.at.location.dialog delete mode 100644 locale/ca-es/report.condition.future.dialog rename locale/ca-es/{S.dialog => south.dialog} (100%) rename locale/ca-es/{SE.dialog => southeast.dialog} (100%) rename locale/ca-es/{SW.dialog => southwest.dialog} (100%) rename locale/ca-es/{W.dialog => west.dialog} (100%) delete mode 100644 locale/ca-es/what.is.three.day.forecast.intent delete mode 100644 locale/ca-es/what.is.three.day.forecast.location.intent delete mode 100644 locale/ca-es/what.is.two.day.forecast.intent delete mode 100644 locale/ca-es/wind.speed.dialog delete mode 100644 locale/ca-es/wind.speed.dir.dialog delete mode 100644 locale/ca-es/wind.strength.hard.dialog delete mode 100644 locale/ca-es/wind.strength.light.dialog delete mode 100644 locale/ca-es/wind.strength.medium.dialog delete mode 100644 locale/ca-es/winds.dialog rename locale/da-dk/{Cloudy.voc => Clouds.voc} (100%) rename locale/da-dk/{CloudyAlternatives.voc => CloudsAlternatives.voc} (100%) rename locale/da-dk/{Foggy.voc => Fog.voc} (100%) rename locale/da-dk/{Raining.voc => Rain.voc} (100%) rename locale/da-dk/{Snowing.voc => Snow.voc} (100%) rename locale/da-dk/{Storm.voc => Thunderstorm.voc} (100%) rename locale/da-dk/{StormAlternatives.voc => ThunderstormAlternatives.voc} (100%) delete mode 100644 locale/da-dk/and.dialog delete mode 100644 locale/da-dk/at.time.forecast.affirmative.condition.dialog delete mode 100644 locale/da-dk/at.time.forecast.cond.alternative.dialog delete mode 100644 locale/da-dk/at.time.forecast.local.affirmative.condition.dialog delete mode 100644 locale/da-dk/at.time.forecast.local.cond.alternative.dialog delete mode 100644 locale/da-dk/at.time.forecast.local.no.cond.predicted.dialog delete mode 100644 locale/da-dk/at.time.forecast.no.cond.predicted.dialog delete mode 100644 locale/da-dk/at.time.local.high.temperature.dialog delete mode 100644 locale/da-dk/at.time.local.low.temperature.dialog delete mode 100644 locale/da-dk/at.time.local.weather.dialog rename locale/da-dk/{local.clear.alternative.dialog => current.clear.alternative.local.dialog} (100%) rename locale/da-dk/{clear.alternative.dialog => current.clear.alternative.location.dialog} (100%) rename locale/da-dk/{no.clear.predicted.dialog => current.clear.not.expected.location.dialog} (100%) rename locale/da-dk/{local.cloudy.alternative.dialog => current.clouds.alternative.local.dialog} (100%) rename locale/da-dk/{cloudy.alternative.dialog => current.clouds.alternative.location.dialog} (100%) rename locale/da-dk/{local.no.cloudy.predicted.dialog => current.clouds.not.expected.local.dialog} (100%) rename locale/da-dk/{no.cloudy.predicted.dialog => current.clouds.not.expected.location.dialog} (100%) rename locale/da-dk/{local.affirmative.condition.dialog => current.condition.expected.local.dialog} (100%) rename locale/da-dk/{affirmative.condition.dialog => current.condition.expected.location.dialog} (100%) rename locale/da-dk/{local.foggy.alternative.dialog => current.fog.alternative.local.dialog} (100%) rename locale/da-dk/{fog.alternative.dialog => current.fog.alternative.location.dialog} (100%) rename locale/da-dk/{local.no.fog.predicted.dialog => current.fog.not.expected.local.dialog} (100%) rename locale/da-dk/{no.fog.predicted.dialog => current.fog.not.expected.location.dialog} (100%) delete mode 100644 locale/da-dk/current.hot.dialog rename locale/da-dk/{humidity.dialog => current.humidity.location.dialog} (100%) delete mode 100644 locale/da-dk/current.local.cold.dialog delete mode 100644 locale/da-dk/current.local.hot.dialog rename locale/da-dk/{local.raining.alternative.dialog => current.rain.alternative.local.dialog} (100%) rename locale/da-dk/{raining.alternative.dialog => current.rain.alternative.location.dialog} (100%) rename locale/da-dk/{local.no.rain.predicted.dialog => current.rain.not.expected.local.dialog} (100%) rename locale/da-dk/{no.rain.predicted.dialog => current.rain.not.expected.location.dialog} (100%) rename locale/da-dk/{local.snowing.alternative.dialog => current.snow.alternative.local.dialog} (100%) rename locale/da-dk/{snowing.alternative.dialog => current.snow.alternative.location.dialog} (100%) rename locale/da-dk/{local.no.snow.predicted.dialog => current.snow.not.expected.local.dialog} (100%) rename locale/da-dk/{no.snow.predicted.dialog => current.snow.not.expected.location.dialog} (100%) rename locale/da-dk/{current.local.high.temperature.dialog => current.temperature.high.local.dialog} (100%) rename locale/da-dk/{current.high.temperature.dialog => current.temperature.high.location.dialog} (100%) rename locale/da-dk/{min.max.dialog => current.temperature.high.low.dialog} (100%) rename locale/da-dk/{current.local.temperature.dialog => current.temperature.local.dialog} (100%) rename locale/da-dk/{current.temperature.dialog => current.temperature.location.dialog} (100%) rename locale/da-dk/{current.local.low.temperature.dialog => current.temperature.low.local.dialog} (100%) rename locale/da-dk/{current.low.temperature.dialog => current.temperature.low.location.dialog} (100%) rename locale/da-dk/{local.storm.alternative.dialog => current.thunderstorm.alternative.local.dialog} (100%) rename locale/da-dk/{storm.alternative.dialog => current.thunderstorm.alternative.location.dialog} (100%) rename locale/da-dk/{local.no.storm.predicted.dialog => current.thunderstorm.not.expected.local.dialog} (100%) rename locale/da-dk/{no.storm.predicted.dialog => current.thunderstorm.not.expected.location.dialog} (100%) rename locale/da-dk/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/da-dk/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/da-dk/{local.light.wind.dialog => current.wind.light.local.dialog} (100%) rename locale/da-dk/{light.wind.dialog => current.wind.light.location.dialog} (100%) rename locale/da-dk/{local.medium.wind.dialog => current.wind.moderate.local.dialog} (100%) rename locale/da-dk/{medium.wind.dialog => current.wind.moderate.location.dialog} (100%) rename locale/da-dk/{local.hard.wind.dialog => current.wind.strong.local.dialog} (100%) rename locale/da-dk/{hard.wind.dialog => current.wind.strong.location.dialog} (100%) rename locale/da-dk/{forecast.local.clear.alternative.dialog => daily.clear.alternative.local.dialog} (100%) rename locale/da-dk/{forecast.clear.alternative.dialog => daily.clear.alternative.location.dialog} (100%) rename locale/da-dk/{forecast.local.no.clear.predicted.dialog => daily.clear.not.expected.local.dialog} (100%) rename locale/da-dk/{forecast.no.clear.predicted.dialog => daily.clear.not.expected.location.dialog} (100%) rename locale/da-dk/{forecast.local.cloudy.alternative.dialog => daily.clouds.alternative.local.dialog} (100%) rename locale/da-dk/{forecast.cloudy.alternative.dialog => daily.clouds.alternative.location.dialog} (100%) rename locale/da-dk/{forecast.local.no.cloudy.predicted.dialog => daily.clouds.not.expected.local.dialog} (100%) rename locale/da-dk/{forecast.no.cloudy.predicted.dialog => daily.clouds.not.expected.location.dialog} (100%) rename locale/da-dk/{forecast.local.affirmative.condition.dialog => daily.condition.expected.local.dialog} (100%) rename locale/da-dk/{forecast.affirmative.condition.dialog => daily.condition.expected.location.dialog} (100%) rename locale/da-dk/{forecast.local.foggy.alternative.dialog => daily.fog.alternative.local.dialog} (100%) rename locale/da-dk/{forecast.foggy.alternative.dialog => daily.fog.alternative.location.dialog} (100%) rename locale/da-dk/{forecast.local.no.fog.predicted.dialog => daily.fog.not.expected.local.dialog} (100%) rename locale/da-dk/{forecast.no.fog.predicted.dialog => daily.fog.not.expected.location.dialog} (100%) rename locale/da-dk/{forecast.local.raining.alternative.dialog => daily.rain.alternative.local.dialog} (100%) rename locale/da-dk/{forecast.raining.alternative.dialog => daily.rain.alternative.location.dialog} (100%) rename locale/da-dk/{forecast.local.no.rain.predicted.dialog => daily.rain.not.expected.local.dialog} (100%) rename locale/da-dk/{forecast.no.rain.predicted.dialog => daily.rain.not.expected.location.dialog} (100%) rename locale/da-dk/{forecast.snowing.alternative.dialog => daily.snow.alternative.location.dialog} (100%) rename locale/da-dk/{forecast.local.no.snow.predicted.dialog => daily.snow.not.expected.local.dialog} (100%) rename locale/da-dk/{forecast.no.snow.predicted.dialog => daily.snow.not.expected.location.dialog} (100%) rename locale/da-dk/{forecast.local.high.temperature.dialog => daily.temperature.high.local.dialog} (100%) rename locale/da-dk/{forecast.high.temperature.dialog => daily.temperature.high.location.dialog} (100%) rename locale/da-dk/{forecast.local.temperature.dialog => daily.temperature.local.dialog} (100%) rename locale/da-dk/{forecast.temperature.dialog => daily.temperature.location.dialog} (100%) rename locale/da-dk/{forecast.local.low.temperature.dialog => daily.temperature.low.local.dialog} (100%) rename locale/da-dk/{forecast.low.temperature.dialog => daily.temperature.low.location.dialog} (100%) rename locale/da-dk/{forecast.local.storm.alternative.dialog => daily.thunderstorm.alternative.local.dialog} (100%) rename locale/da-dk/{forecast.storm.alternative.dialog => daily.thunderstorm.alternative.location.dialog} (100%) rename locale/da-dk/{forecast.local.no.storm.predicted.dialog => daily.thunderstorm.not.expected.local.dialog} (100%) rename locale/da-dk/{forecast.no.storm.predicted.dialog => daily.thunderstorm.not.exptected.location.dialog} (100%) rename locale/da-dk/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/da-dk/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/da-dk/{forecast.local.light.wind.dialog => daily.wind.light.local.dialog} (100%) rename locale/da-dk/{forecast.light.wind.dialog => daily.wind.light.location.dialog} (100%) rename locale/da-dk/{forecast.local.medium.wind.dialog => daily.wind.moderate.local.dialog} (100%) rename locale/da-dk/{forecast.medium.wind.dialog => daily.wind.moderate.location.dialog} (100%) rename locale/da-dk/{forecast.local.hard.wind.dialog => daily.wind.strong.local.dialog} (100%) rename locale/da-dk/{forecast.hard.wind.dialog => daily.wind.strong.location.dialog} (100%) rename locale/da-dk/{E.dialog => east.dialog} (100%) delete mode 100644 locale/da-dk/forecast.hot.dialog delete mode 100644 locale/da-dk/forecast.local.hot.dialog rename locale/da-dk/{at.time.local.cond.alternative.dialog => hourly.condition.alternative.local.dialog} (100%) rename locale/da-dk/{at.time.cond.alternative.dialog => hourly.condition.alternative.location.dialog} (100%) rename locale/da-dk/{at.time.local.affirmative.condition.dialog => hourly.condition.expected.local.dialog} (100%) rename locale/da-dk/{at.time.affirmative.condition.dialog => hourly.condition.expected.location.dialog} (100%) rename locale/da-dk/{at.time.local.no.cond.predicted.dialog => hourly.condition.not.expected.local.dialog} (100%) rename locale/da-dk/{at.time.no.cond.predicted.dialog => hourly.condition.not.expected.location.dialog} (100%) rename locale/da-dk/{at.time.local.temperature.dialog => hourly.temperature.local.dialog} (100%) rename locale/da-dk/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/da-dk/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/da-dk/{N.dialog => north.dialog} (100%) rename locale/da-dk/{NE.dialog => northeast.dialog} (100%) rename locale/da-dk/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/da-dk/report.condition.at.location.dialog delete mode 100644 locale/da-dk/report.condition.dialog delete mode 100644 locale/da-dk/report.condition.future.at.location.dialog delete mode 100644 locale/da-dk/report.condition.future.dialog delete mode 100644 locale/da-dk/report.wind.dialog rename locale/da-dk/{S.dialog => south.dialog} (100%) rename locale/da-dk/{SE.dialog => southeast.dialog} (100%) rename locale/da-dk/{SW.dialog => southwest.dialog} (100%) delete mode 100644 locale/da-dk/tonight.local.weather.dialog rename locale/da-dk/{W.dialog => west.dialog} (100%) delete mode 100644 locale/da-dk/what.is.three.day.forecast.intent delete mode 100644 locale/da-dk/what.is.three.day.forecast.location.intent delete mode 100644 locale/da-dk/what.is.two.day.forecast.intent delete mode 100644 locale/da-dk/whats.weather.like.intent delete mode 100644 locale/da-dk/wind.speed.dialog delete mode 100644 locale/da-dk/wind.speed.dir.dialog delete mode 100644 locale/da-dk/wind.strength.hard.dialog delete mode 100644 locale/da-dk/wind.strength.light.dialog delete mode 100644 locale/da-dk/wind.strength.medium.dialog delete mode 100644 locale/da-dk/winds.dialog rename locale/de-de/{Cloudy.voc => Clouds.voc} (100%) rename locale/de-de/{CloudyAlternatives.voc => CloudsAlternatives.voc} (100%) rename locale/de-de/{Foggy.voc => Fog.voc} (100%) rename locale/de-de/{Raining.voc => Rain.voc} (100%) rename locale/de-de/{Snowing.voc => Snow.voc} (100%) rename locale/de-de/{Storm.voc => Thunderstorm.voc} (100%) rename locale/de-de/{StormAlternatives.voc => ThunderstormAlternatives.voc} (100%) delete mode 100644 locale/de-de/and.dialog delete mode 100644 locale/de-de/at.time.forecast.affirmative.condition.dialog delete mode 100644 locale/de-de/at.time.forecast.cond.alternative.dialog delete mode 100644 locale/de-de/at.time.forecast.local.affirmative.condition.dialog delete mode 100644 locale/de-de/at.time.forecast.local.cond.alternative.dialog delete mode 100644 locale/de-de/at.time.forecast.local.no.cond.predicted.dialog delete mode 100644 locale/de-de/at.time.forecast.no.cond.predicted.dialog delete mode 100644 locale/de-de/at.time.local.high.temperature.dialog delete mode 100644 locale/de-de/at.time.local.low.temperature.dialog delete mode 100644 locale/de-de/at.time.local.weather.dialog rename locale/de-de/{local.clear.alternative.dialog => current.clear.alternative.local.dialog} (100%) rename locale/de-de/{clear.alternative.dialog => current.clear.alternative.location.dialog} (100%) rename locale/de-de/{no.clear.predicted.dialog => current.clear.not.expected.location.dialog} (100%) rename locale/de-de/{local.cloudy.alternative.dialog => current.clouds.alternative.local.dialog} (100%) rename locale/de-de/{cloudy.alternative.dialog => current.clouds.alternative.location.dialog} (100%) rename locale/de-de/{local.no.cloudy.predicted.dialog => current.clouds.not.expected.local.dialog} (100%) rename locale/de-de/{no.cloudy.predicted.dialog => current.clouds.not.expected.location.dialog} (100%) rename locale/de-de/{local.affirmative.condition.dialog => current.condition.expected.local.dialog} (100%) rename locale/de-de/{affirmative.condition.dialog => current.condition.expected.location.dialog} (100%) rename locale/de-de/{local.foggy.alternative.dialog => current.fog.alternative.local.dialog} (100%) rename locale/de-de/{fog.alternative.dialog => current.fog.alternative.location.dialog} (100%) rename locale/de-de/{local.no.fog.predicted.dialog => current.fog.not.expected.local.dialog} (100%) rename locale/de-de/{no.fog.predicted.dialog => current.fog.not.expected.location.dialog} (100%) delete mode 100644 locale/de-de/current.hot.dialog rename locale/de-de/{humidity.dialog => current.humidity.location.dialog} (100%) delete mode 100644 locale/de-de/current.local.cold.dialog delete mode 100644 locale/de-de/current.local.hot.dialog rename locale/de-de/{local.raining.alternative.dialog => current.rain.alternative.local.dialog} (100%) rename locale/de-de/{raining.alternative.dialog => current.rain.alternative.location.dialog} (100%) rename locale/de-de/{local.no.rain.predicted.dialog => current.rain.not.expected.local.dialog} (100%) rename locale/de-de/{no.rain.predicted.dialog => current.rain.not.expected.location.dialog} (100%) rename locale/de-de/{local.snowing.alternative.dialog => current.snow.alternative.local.dialog} (100%) rename locale/de-de/{snowing.alternative.dialog => current.snow.alternative.location.dialog} (100%) rename locale/de-de/{local.no.snow.predicted.dialog => current.snow.not.expected.local.dialog} (100%) rename locale/de-de/{no.snow.predicted.dialog => current.snow.not.expected.location.dialog} (100%) rename locale/de-de/{current.local.high.temperature.dialog => current.temperature.high.local.dialog} (100%) rename locale/de-de/{current.high.temperature.dialog => current.temperature.high.location.dialog} (100%) rename locale/de-de/{min.max.dialog => current.temperature.high.low.dialog} (100%) rename locale/de-de/{current.local.temperature.dialog => current.temperature.local.dialog} (100%) rename locale/de-de/{current.temperature.dialog => current.temperature.location.dialog} (100%) rename locale/de-de/{current.local.low.temperature.dialog => current.temperature.low.local.dialog} (100%) rename locale/de-de/{current.low.temperature.dialog => current.temperature.low.location.dialog} (100%) rename locale/de-de/{local.storm.alternative.dialog => current.thunderstorm.alternative.local.dialog} (100%) rename locale/de-de/{storm.alternative.dialog => current.thunderstorm.alternative.location.dialog} (100%) rename locale/de-de/{local.no.storm.predicted.dialog => current.thunderstorm.not.expected.local.dialog} (100%) rename locale/de-de/{no.storm.predicted.dialog => current.thunderstorm.not.expected.location.dialog} (100%) rename locale/de-de/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/de-de/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/de-de/{local.light.wind.dialog => current.wind.light.local.dialog} (100%) rename locale/de-de/{light.wind.dialog => current.wind.light.location.dialog} (100%) rename locale/de-de/{local.medium.wind.dialog => current.wind.moderate.local.dialog} (100%) rename locale/de-de/{medium.wind.dialog => current.wind.moderate.location.dialog} (100%) rename locale/de-de/{local.hard.wind.dialog => current.wind.strong.local.dialog} (100%) rename locale/de-de/{hard.wind.dialog => current.wind.strong.location.dialog} (100%) rename locale/de-de/{forecast.local.clear.alternative.dialog => daily.clear.alternative.local.dialog} (100%) rename locale/de-de/{forecast.clear.alternative.dialog => daily.clear.alternative.location.dialog} (100%) rename locale/de-de/{forecast.local.no.clear.predicted.dialog => daily.clear.not.expected.local.dialog} (100%) rename locale/de-de/{forecast.no.clear.predicted.dialog => daily.clear.not.expected.location.dialog} (100%) rename locale/de-de/{forecast.local.cloudy.alternative.dialog => daily.clouds.alternative.local.dialog} (100%) rename locale/de-de/{forecast.cloudy.alternative.dialog => daily.clouds.alternative.location.dialog} (100%) rename locale/de-de/{forecast.local.no.cloudy.predicted.dialog => daily.clouds.not.expected.local.dialog} (100%) rename locale/de-de/{forecast.no.cloudy.predicted.dialog => daily.clouds.not.expected.location.dialog} (100%) rename locale/de-de/{forecast.local.affirmative.condition.dialog => daily.condition.expected.local.dialog} (100%) rename locale/de-de/{forecast.affirmative.condition.dialog => daily.condition.expected.location.dialog} (100%) rename locale/de-de/{forecast.local.foggy.alternative.dialog => daily.fog.alternative.local.dialog} (100%) rename locale/de-de/{forecast.foggy.alternative.dialog => daily.fog.alternative.location.dialog} (100%) rename locale/de-de/{forecast.local.no.fog.predicted.dialog => daily.fog.not.expected.local.dialog} (100%) rename locale/de-de/{forecast.no.fog.predicted.dialog => daily.fog.not.expected.location.dialog} (100%) rename locale/de-de/{forecast.local.raining.alternative.dialog => daily.rain.alternative.local.dialog} (100%) rename locale/de-de/{forecast.raining.alternative.dialog => daily.rain.alternative.location.dialog} (100%) rename locale/de-de/{forecast.local.no.rain.predicted.dialog => daily.rain.not.expected.local.dialog} (100%) rename locale/de-de/{forecast.no.rain.predicted.dialog => daily.rain.not.expected.location.dialog} (100%) rename locale/de-de/{forecast.snowing.alternative.dialog => daily.snow.alternative.location.dialog} (100%) rename locale/de-de/{forecast.local.no.snow.predicted.dialog => daily.snow.not.expected.local.dialog} (100%) rename locale/de-de/{forecast.no.snow.predicted.dialog => daily.snow.not.expected.location.dialog} (100%) rename locale/de-de/{forecast.local.high.temperature.dialog => daily.temperature.high.local.dialog} (100%) rename locale/de-de/{forecast.high.temperature.dialog => daily.temperature.high.location.dialog} (100%) rename locale/de-de/{forecast.local.temperature.dialog => daily.temperature.local.dialog} (100%) rename locale/de-de/{forecast.temperature.dialog => daily.temperature.location.dialog} (100%) rename locale/de-de/{forecast.local.low.temperature.dialog => daily.temperature.low.local.dialog} (100%) rename locale/de-de/{forecast.low.temperature.dialog => daily.temperature.low.location.dialog} (100%) rename locale/de-de/{forecast.local.storm.alternative.dialog => daily.thunderstorm.alternative.local.dialog} (100%) rename locale/de-de/{forecast.storm.alternative.dialog => daily.thunderstorm.alternative.location.dialog} (100%) rename locale/de-de/{forecast.local.no.storm.predicted.dialog => daily.thunderstorm.not.expected.local.dialog} (100%) rename locale/de-de/{forecast.no.storm.predicted.dialog => daily.thunderstorm.not.expected.location.dialog} (100%) rename locale/de-de/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/de-de/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/de-de/{forecast.local.light.wind.dialog => daily.wind.light.local.dialog} (100%) rename locale/de-de/{forecast.light.wind.dialog => daily.wind.light.location.dialog} (100%) rename locale/de-de/{forecast.local.medium.wind.dialog => daily.wind.moderate.local.dialog} (100%) rename locale/de-de/{forecast.medium.wind.dialog => daily.wind.moderate.location.dialog} (100%) rename locale/de-de/{forecast.local.hard.wind.dialog => daily.wind.strong.local.dialog} (100%) rename locale/de-de/{forecast.hard.wind.dialog => daily.wind.strong.location.dialog} (100%) rename locale/de-de/{E.dialog => east.dialog} (100%) delete mode 100644 locale/de-de/forecast.hot.dialog delete mode 100644 locale/de-de/forecast.local.hot.dialog rename locale/de-de/{hour.weather.dialog => hour.weather.location.dialog} (100%) rename locale/de-de/{at.time.local.cond.alternative.dialog => hourly.condition.alternative.local.dialog} (100%) rename locale/de-de/{at.time.cond.alternative.dialog => hourly.condition.alternative.location.dialog} (100%) rename locale/de-de/{at.time.local.affirmative.condition.dialog => hourly.condition.expected.local.dialog} (100%) rename locale/de-de/{at.time.affirmative.condition.dialog => hourly.condition.expected.location.dialog} (100%) rename locale/de-de/{at.time.local.no.cond.predicted.dialog => hourly.condition.not.expected.local.dialog} (100%) rename locale/de-de/{at.time.no.cond.predicted.dialog => hourly.condition.not.expected.location.dialog} (100%) rename locale/de-de/{at.time.local.temperature.dialog => hourly.temperature.local.dialog} (100%) rename locale/de-de/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/de-de/{N.dialog => north.dialog} (100%) rename locale/de-de/{NE.dialog => northeast.dialog} (100%) rename locale/de-de/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/de-de/report.condition.at.location.dialog delete mode 100644 locale/de-de/report.condition.dialog delete mode 100644 locale/de-de/report.condition.future.at.location.dialog delete mode 100644 locale/de-de/report.condition.future.dialog delete mode 100644 locale/de-de/report.wind.dialog rename locale/de-de/{S.dialog => south.dialog} (100%) rename locale/de-de/{SE.dialog => southeast.dialog} (100%) rename locale/de-de/{SW.dialog => southwest.dialog} (100%) delete mode 100644 locale/de-de/tonight.local.weather.dialog rename locale/de-de/{W.dialog => west.dialog} (100%) delete mode 100644 locale/de-de/what.is.three.day.forecast.intent delete mode 100644 locale/de-de/what.is.three.day.forecast.location.intent delete mode 100644 locale/de-de/what.is.two.day.forecast.intent delete mode 100644 locale/de-de/whats.weather.like.intent delete mode 100644 locale/de-de/wind.speed.dialog delete mode 100644 locale/de-de/wind.speed.dir.dialog delete mode 100644 locale/de-de/wind.strength.hard.dialog delete mode 100644 locale/de-de/wind.strength.light.dialog delete mode 100644 locale/de-de/wind.strength.medium.dialog delete mode 100644 locale/de-de/winds.dialog rename locale/es-es/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/es-es/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/es-es/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/es-es/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/es-es/{E.dialog => east.dialog} (100%) rename locale/es-es/{N.dialog => north.dialog} (100%) rename locale/es-es/{NE.dialog => northeast.dialog} (100%) rename locale/es-es/{NW.dialog => northwest.dialog} (100%) rename locale/es-es/{S.dialog => south.dialog} (100%) rename locale/es-es/{SE.dialog => southeast.dialog} (100%) rename locale/es-es/{SW.dialog => southwest.dialog} (100%) rename locale/es-es/{W.dialog => west.dialog} (100%) rename locale/fr-fr/{humidity.dialog => current.humitidy.location.dialog} (100%) rename locale/fr-fr/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/fr-fr/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/fr-fr/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/fr-fr/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/fr-fr/{E.dialog => east.dialog} (100%) rename locale/fr-fr/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/fr-fr/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/fr-fr/{N.dialog => north.dialog} (100%) rename locale/fr-fr/{NE.dialog => northeast.dialog} (100%) rename locale/fr-fr/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/fr-fr/report.condition.dialog delete mode 100644 locale/fr-fr/report.future.condition.dialog rename locale/fr-fr/{S.dialog => south.dialog} (100%) rename locale/fr-fr/{SE.dialog => southeast.dialog} (100%) rename locale/fr-fr/{SW.dialog => southwest.dialog} (100%) rename locale/fr-fr/{W.dialog => west.dialog} (100%) delete mode 100644 locale/fr-fr/wind.speed.dialog delete mode 100644 locale/fr-fr/wind.speed.dir.dialog delete mode 100644 locale/fr-fr/winds.dialog rename locale/gl-es/{Cloudy.voc => Clouds.voc} (100%) rename locale/gl-es/{CloudyAlternatives.voc => CloudsAlternatives.voc} (100%) rename locale/gl-es/{Foggy.voc => Fog.voc} (100%) rename locale/gl-es/{Raining.voc => Rain.voc} (100%) rename locale/gl-es/{Snowing.voc => Snow.voc} (100%) rename locale/gl-es/{Storm.voc => Thunderstorm.voc} (100%) rename locale/gl-es/{StormAlternatives.voc => ThunderstormAlternatives.voc} (100%) delete mode 100644 locale/gl-es/and.dialog delete mode 100644 locale/gl-es/at.time.forecast.affirmative.condition.dialog delete mode 100644 locale/gl-es/at.time.forecast.cond.alternative.dialog delete mode 100644 locale/gl-es/at.time.forecast.local.affirmative.condition.dialog delete mode 100644 locale/gl-es/at.time.forecast.local.cond.alternative.dialog delete mode 100644 locale/gl-es/at.time.forecast.local.no.cond.predicted.dialog delete mode 100644 locale/gl-es/at.time.forecast.no.cond.predicted.dialog delete mode 100644 locale/gl-es/at.time.local.high.temperature.dialog delete mode 100644 locale/gl-es/at.time.local.low.temperature.dialog delete mode 100644 locale/gl-es/at.time.local.weather.dialog rename locale/gl-es/{local.clear.alternative.dialog => current.clear.alternative.local.dialog} (100%) rename locale/gl-es/{clear.alternative.dialog => current.clear.alternative.location.dialog} (100%) rename locale/gl-es/{no.clear.predicted.dialog => current.clear.not.expected.location.dialog} (100%) rename locale/gl-es/{local.cloudy.alternative.dialog => current.clouds.alternative.local.dialog} (100%) rename locale/gl-es/{cloudy.alternative.dialog => current.clouds.alternative.location.dialog} (100%) rename locale/gl-es/{local.no.cloudy.predicted.dialog => current.clouds.not.expected.local.dialog} (100%) rename locale/gl-es/{no.cloudy.predicted.dialog => current.clouds.not.expected.location.dialog} (100%) rename locale/gl-es/{local.affirmative.condition.dialog => current.condition.expected.local.dialog} (100%) rename locale/gl-es/{affirmative.condition.dialog => current.condition.expected.location.dialog} (100%) rename locale/gl-es/{local.foggy.alternative.dialog => current.fog.alternative.local.dialog} (100%) rename locale/gl-es/{fog.alternative.dialog => current.fog.alternative.location.dialog} (100%) rename locale/gl-es/{local.no.fog.predicted.dialog => current.fog.not.expected.local.dialog} (100%) rename locale/gl-es/{no.fog.predicted.dialog => current.fog.not.expected.location.dialog} (100%) delete mode 100644 locale/gl-es/current.hot.dialog rename locale/gl-es/{humidity.dialog => current.humidity.location.dialog} (100%) delete mode 100644 locale/gl-es/current.local.cold.dialog delete mode 100644 locale/gl-es/current.local.hot.dialog rename locale/gl-es/{local.raining.alternative.dialog => current.rain.alternative.local.dialog} (100%) rename locale/gl-es/{raining.alternative.dialog => current.rain.alternative.location.dialog} (100%) rename locale/gl-es/{local.no.rain.predicted.dialog => current.rain.not.expected.local.dialog} (100%) rename locale/gl-es/{no.rain.predicted.dialog => current.rain.not.expected.location.dialog} (100%) rename locale/gl-es/{local.snowing.alternative.dialog => current.snow.alternative.local.dialog} (100%) rename locale/gl-es/{snowing.alternative.dialog => current.snow.alternative.location.dialog} (100%) rename locale/gl-es/{local.no.snow.predicted.dialog => current.snow.not.expected.local.dialog} (100%) rename locale/gl-es/{no.snow.predicted.dialog => current.snow.not.expected.location.dialog} (100%) rename locale/gl-es/{current.local.high.temperature.dialog => current.temperature.high.local.dialog} (100%) rename locale/gl-es/{current.high.temperature.dialog => current.temperature.high.location.dialog} (100%) rename locale/gl-es/{min.max.dialog => current.temperature.high.low.dialog} (100%) rename locale/gl-es/{current.local.temperature.dialog => current.temperature.local.dialog} (100%) rename locale/gl-es/{current.temperature.dialog => current.temperature.location.dialog} (100%) rename locale/gl-es/{current.local.low.temperature.dialog => current.temperature.low.local.dialog} (100%) rename locale/gl-es/{current.low.temperature.dialog => current.temperature.low.location.dialog} (100%) rename locale/gl-es/{local.storm.alternative.dialog => current.thunderstorm.alternative.local.dialog} (100%) rename locale/gl-es/{storm.alternative.dialog => current.thunderstorm.alternative.location.dialog} (100%) rename locale/gl-es/{local.no.storm.predicted.dialog => current.thunderstorm.not.expected.local.dialog} (100%) rename locale/gl-es/{no.storm.predicted.dialog => current.thunderstorm.not.expected.location.dialog} (100%) rename locale/gl-es/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/gl-es/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/gl-es/{local.light.wind.dialog => current.wind.light.local.dialog} (100%) rename locale/gl-es/{light.wind.dialog => current.wind.light.location.dialog} (100%) rename locale/gl-es/{local.medium.wind.dialog => current.wind.moderate.local.dialog} (100%) rename locale/gl-es/{medium.wind.dialog => current.wind.moderate.location.dialog} (100%) rename locale/gl-es/{local.hard.wind.dialog => current.wind.strong.local.dialog} (100%) rename locale/gl-es/{hard.wind.dialog => current.wind.strong.location.dialog} (100%) rename locale/gl-es/{forecast.local.clear.alternative.dialog => daily.clear.alternative.local.dialog} (100%) rename locale/gl-es/{forecast.clear.alternative.dialog => daily.clear.alternative.location.dialog} (100%) rename locale/gl-es/{forecast.local.no.clear.predicted.dialog => daily.clear.not.expected.local.dialog} (100%) rename locale/gl-es/{forecast.no.clear.predicted.dialog => daily.clear.not.expected.location.dialog} (100%) rename locale/gl-es/{forecast.local.cloudy.alternative.dialog => daily.clouds.alternative.local.dialog} (100%) rename locale/gl-es/{forecast.cloudy.alternative.dialog => daily.clouds.alternative.location.dialog} (100%) rename locale/gl-es/{forecast.local.no.cloudy.predicted.dialog => daily.clouds.not.expected.local.dialog} (100%) rename locale/gl-es/{forecast.no.cloudy.predicted.dialog => daily.clouds.not.expected.location.dialog} (100%) rename locale/gl-es/{forecast.local.affirmative.condition.dialog => daily.condition.expected.local.dialog} (100%) rename locale/gl-es/{forecast.affirmative.condition.dialog => daily.condition.expected.location.dialog} (100%) rename locale/gl-es/{forecast.local.foggy.alternative.dialog => daily.fog.alternative.local.dialog} (100%) rename locale/gl-es/{forecast.foggy.alternative.dialog => daily.fog.alternative.location.dialog} (100%) rename locale/gl-es/{forecast.local.no.fog.predicted.dialog => daily.fog.not.expected.local.dialog} (100%) rename locale/gl-es/{forecast.no.fog.predicted.dialog => daily.fog.not.expected.location.dialog} (100%) rename locale/gl-es/{forecast.local.raining.alternative.dialog => daily.rain.alternative.local.dialog} (100%) rename locale/gl-es/{forecast.raining.alternative.dialog => daily.rain.alternative.location.dialog} (100%) rename locale/gl-es/{forecast.local.no.rain.predicted.dialog => daily.rain.not.expected.local.dialog} (100%) rename locale/gl-es/{forecast.no.rain.predicted.dialog => daily.rain.not.expected.location.dialog} (100%) rename locale/gl-es/{forecast.snowing.alternative.dialog => daily.snow.alternative.location.dialog} (100%) rename locale/gl-es/{forecast.local.no.snow.predicted.dialog => daily.snow.not.expected.local.dialog} (100%) rename locale/gl-es/{forecast.no.snow.predicted.dialog => daily.snow.not.expected.location.dialog} (100%) rename locale/gl-es/{forecast.local.high.temperature.dialog => daily.temperature.high.local.dialog} (100%) rename locale/gl-es/{forecast.high.temperature.dialog => daily.temperature.high.location.dialog} (100%) rename locale/gl-es/{forecast.local.temperature.dialog => daily.temperature.local.dialog} (100%) rename locale/gl-es/{forecast.temperature.dialog => daily.temperature.location.dialog} (100%) rename locale/gl-es/{forecast.local.low.temperature.dialog => daily.temperature.low.local.dialog} (100%) rename locale/gl-es/{forecast.low.temperature.dialog => daily.temperature.low.location.dialog} (100%) rename locale/gl-es/{forecast.local.storm.alternative.dialog => daily.thunderstorm.alternative.local.dialog} (100%) rename locale/gl-es/{forecast.storm.alternative.dialog => daily.thunderstorm.alternative.location.dialog} (100%) rename locale/gl-es/{forecast.local.no.storm.predicted.dialog => daily.thunderstorm.not.expected.local.dialog} (100%) rename locale/gl-es/{forecast.no.storm.predicted.dialog => daily.thunderstorm.not.expected.location.dialog} (100%) rename locale/gl-es/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/gl-es/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/gl-es/{forecast.local.light.wind.dialog => daily.wind.light.local.dialog} (100%) rename locale/gl-es/{forecast.light.wind.dialog => daily.wind.light.location.dialog} (100%) rename locale/gl-es/{forecast.local.medium.wind.dialog => daily.wind.moderate.local.dialog} (100%) rename locale/gl-es/{forecast.medium.wind.dialog => daily.wind.moderate.location.dialog} (100%) rename locale/gl-es/{forecast.local.hard.wind.dialog => daily.wind.strong.local.dialog} (100%) rename locale/gl-es/{forecast.hard.wind.dialog => daily.wind.strong.location.dialog} (100%) rename locale/gl-es/{E.dialog => east.dialog} (100%) delete mode 100644 locale/gl-es/forecast.hot.dialog delete mode 100644 locale/gl-es/forecast.local.hot.dialog rename locale/gl-es/{at.time.local.cond.alternative.dialog => hourly.condition.alternative.local.dialog} (100%) rename locale/gl-es/{at.time.cond.alternative.dialog => hourly.condition.alternative.location.dialog} (100%) rename locale/gl-es/{at.time.affirmative.condition.dialog => hourly.condition.expected.dialog} (100%) rename locale/gl-es/{at.time.local.affirmative.condition.dialog => hourly.condition.expected.local.dialog} (100%) rename locale/gl-es/{at.time.local.no.cond.predicted.dialog => hourly.condition.not.expected.local.dialog} (100%) rename locale/gl-es/{at.time.no.cond.predicted.dialog => hourly.condition.not.expected.location.dialog} (100%) rename locale/gl-es/{at.time.local.temperature.dialog => hourly.temperature.local.dialog} (100%) rename locale/gl-es/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/gl-es/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/gl-es/{N.dialog => north.dialog} (100%) rename locale/gl-es/{NE.dialog => northeast.dialog} (100%) rename locale/gl-es/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/gl-es/report.condition.at.location.dialog delete mode 100644 locale/gl-es/report.condition.dialog delete mode 100644 locale/gl-es/report.condition.future.at.location.dialog delete mode 100644 locale/gl-es/report.condition.future.dialog delete mode 100644 locale/gl-es/report.wind.dialog rename locale/gl-es/{S.dialog => south.dialog} (100%) rename locale/gl-es/{SE.dialog => southeast.dialog} (100%) rename locale/gl-es/{SW.dialog => southwest.dialog} (100%) rename locale/gl-es/{W.dialog => west.dialog} (100%) delete mode 100644 locale/gl-es/what.is.three.day.forecast.intent delete mode 100644 locale/gl-es/what.is.three.day.forecast.location.intent delete mode 100644 locale/gl-es/what.is.two.day.forecast.intent delete mode 100644 locale/gl-es/whats.weather.like.intent delete mode 100644 locale/gl-es/wind.speed.dialog delete mode 100644 locale/gl-es/wind.speed.dir.dialog delete mode 100644 locale/gl-es/wind.strength.hard.dialog delete mode 100644 locale/gl-es/wind.strength.light.dialog delete mode 100644 locale/gl-es/wind.strength.medium.dialog delete mode 100644 locale/gl-es/winds.dialog rename locale/it-it/{Cloudy.voc => Clouds.voc} (100%) rename locale/it-it/{CloudyAlternatives.voc => CloudsAlternatives.voc} (100%) rename locale/it-it/{Foggy.voc => Fog.voc} (100%) rename locale/it-it/{FoggyAlternatives.voc => FogAlternatives.voc} (100%) rename locale/it-it/{Raining.voc => Rain.voc} (100%) rename locale/it-it/{Snowing.voc => Snow.voc} (100%) rename locale/it-it/{local.clear.alternative.dialog => current.clear.alternative.local.dialog} (100%) rename locale/it-it/{clear.alternative.dialog => current.clear.alternative.location.dialog} (100%) rename locale/it-it/{no.clear.predicted.dialog => current.clear.not.expected.location.dialog} (100%) rename locale/it-it/{cloudy.alternative.dialog => current.clouds.alternative.local.dialog} (100%) rename locale/it-it/{forecast.local.cloudy.alternative.dialog => current.clouds.alternative.location.dialog} (100%) rename locale/it-it/{no.cloudy.predicted.dialog => current.clouds.not.expected.location.dialog} (100%) rename locale/it-it/{local.affirmative.condition.dialog => current.condition.expected.local.dialog} (100%) rename locale/it-it/{affirmative.condition.dialog => current.condition.expected.location.dialog} (100%) rename locale/it-it/{forecast.local.foggy.alternative.dialog => current.fog.alternative.local.dialog} (100%) rename locale/it-it/{fog.alternative.dialog => current.fog.alternative.location.dialog} (100%) rename locale/it-it/{local.no.fog.predicted.dialog => current.fog.not.expected.local.dialog} (100%) rename locale/it-it/{no.fog.predicted.dialog => current.fog.not.expected.location.dialog} (100%) delete mode 100644 locale/it-it/current.hot.dialog rename locale/it-it/{humidity.dialog => current.humidity.location.dialog} (100%) delete mode 100644 locale/it-it/current.local.cold.dialog delete mode 100644 locale/it-it/current.local.hot.dialog rename locale/it-it/{local.raining.alternative.dialog => current.rain.alternative.local.dialog} (100%) rename locale/it-it/{raining.alternative.dialog => current.rain.alternative.location.dialog} (100%) rename locale/it-it/{local.no.rain.predicted.dialog => current.rain.not.expected.local.dialog} (100%) rename locale/it-it/{no.rain.predicted.dialog => current.rain.not.expected.location.dialog} (100%) rename locale/it-it/{local.snowing.alternative.dialog => current.snow.alternative.local.dialog} (100%) rename locale/it-it/{snowing.alternative.dialog => current.snow.alternative.location.dialog} (100%) rename locale/it-it/{forecast.local.no.snow.predicted.dialog => current.snow.not.expected.local.dialog} (100%) rename locale/it-it/{no.snow.predicted.dialog => current.snow.not.expected.location.dialog} (100%) rename locale/it-it/{current.local.high.temperature.dialog => current.temperature.high.local.dialog} (100%) rename locale/it-it/{current.high.temperature.dialog => current.temperature.high.location.dialog} (100%) rename locale/it-it/{min.max.dialog => current.temperature.high.low.dialog} (100%) rename locale/it-it/{current.local.temperature.dialog => current.temperature.local.dialog} (100%) rename locale/it-it/{current.temperature.dialog => current.temperature.location.dialog} (100%) rename locale/it-it/{current.local.low.temperature.dialog => current.temperature.low.local.dialog} (100%) rename locale/it-it/{current.low.temperature.dialog => current.temperature.low.location.dialog} (100%) rename locale/it-it/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/it-it/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/it-it/{local.light.wind.dialog => current.wind.light.local.dialog} (100%) rename locale/it-it/{light.wind.dialog => current.wind.light.location.dialog} (100%) rename locale/it-it/{local.medium.wind.dialog => current.wind.moderate.local.dialog} (100%) rename locale/it-it/{medium.wind.dialog => current.wind.moderate.location.dialog} (100%) rename locale/it-it/{local.hard.wind.dialog => current.wind.strong.local.dialog} (100%) rename locale/it-it/{hard.wind.dialog => current.wind.strong.location.dialog} (100%) rename locale/it-it/{forecast.local.clear.alternative.dialog => daily.clear.alternative.local.dialog} (100%) rename locale/it-it/{forecast.clear.alternative.dialog => daily.clear.alternative.location.dialog} (100%) rename locale/it-it/{forecast.local.no.clear.predicted.dialog => daily.clear.not.expected.local.dialog} (100%) rename locale/it-it/{forecast.no.clear.predicted.dialog => daily.clear.not.expected.location.dialog} (100%) rename locale/it-it/{local.cloudy.alternative.dialog => daily.clouds.alternative.local.dialog} (100%) rename locale/it-it/{forecast.cloudy.alternative.dialog => daily.clouds.alternative.location.dialog} (100%) rename locale/it-it/{forecast.local.no.cloudy.predicted.dialog => daily.clouds.not.expected.local.dialog} (100%) rename locale/it-it/{forecast.no.cloudy.predicted.dialog => daily.clouds.not.expected.location.dialog} (100%) rename locale/it-it/{forecast.local.affirmative.condition.dialog => daily.condition.expected.local.dialog} (100%) rename locale/it-it/{forecast.affirmative.condition.dialog => daily.condition.expected.location.dialog} (100%) rename locale/it-it/{local.foggy.alternative.dialog => daily.fog.alternative.local.dialog} (100%) rename locale/it-it/{forecast.foggy.alternative.dialog => daily.fog.alternative.location.dialog} (100%) rename locale/it-it/{forecast.local.no.fog.predicted.dialog => daily.fog.not.expected.local.dialog} (100%) rename locale/it-it/{forecast.no.fog.predicted.dialog => daily.fog.not.expected.location.dialog} (100%) rename locale/it-it/{forecast.local.raining.alternative.dialog => daily.rain.alternative.local.dialog} (100%) rename locale/it-it/{forecast.raining.alternative.dialog => daily.rain.alternative.location.dialog} (100%) rename locale/it-it/{forecast.local.no.rain.predicted.dialog => daily.rain.not.expected.local.dialog} (100%) rename locale/it-it/{forecast.no.rain.predicted.dialog => daily.rain.not.expected.location.dialog} (100%) rename locale/it-it/{forecast.snowing.alternative.dialog => daily.snow.alternative.location.dialog} (100%) rename locale/it-it/{local.no.snow.predicted.dialog => daily.snow.not.expected.local.dialog} (100%) rename locale/it-it/{forecast.no.snow.predicted.dialog => daily.snow.not.expected.location.dialog} (100%) rename locale/it-it/{forecast.local.high.temperature.dialog => daily.temperature.high.local.dialog} (100%) rename locale/it-it/{forecast.high.temperature.dialog => daily.temperature.high.location.dialog} (100%) rename locale/it-it/{forecast.local.temperature.dialog => daily.temperature.local.dialog} (100%) rename locale/it-it/{forecast.temperature.dialog => daily.temperature.location.dialog} (100%) rename locale/it-it/{forecast.local.low.temperature.dialog => daily.temperature.low.local.dialog} (100%) rename locale/it-it/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/it-it/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/it-it/{forecast.local.light.wind.dialog => daily.wind.light.local.dialog} (100%) rename locale/it-it/{forecast.light.wind.dialog => daily.wind.light.location.dialog} (100%) rename locale/it-it/{forecast.local.medium.wind.dialog => daily.wind.moderate.local.dialog} (100%) rename locale/it-it/{forecast.medium.wind.dialog => daily.wind.moderate.location.dialog} (100%) rename locale/it-it/{forecast.local.hard.wind.dialog => daily.wind.strong.local.dialog} (100%) rename locale/it-it/{forecast.hard.wind.dialog => daily.wind.strong.location.dialog} (100%) rename locale/it-it/{E.dialog => east.dialog} (100%) delete mode 100644 locale/it-it/forecast.hot.dialog delete mode 100644 locale/it-it/forecast.local.hot.dialog rename locale/it-it/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/it-it/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/it-it/{N.dialog => north.dialog} (100%) rename locale/it-it/{NE.dialog => northeast.dialog} (100%) rename locale/it-it/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/it-it/report.condition.dialog delete mode 100644 locale/it-it/report.future.condition.dialog rename locale/it-it/{S.dialog => south.dialog} (100%) rename locale/it-it/{SE.dialog => southeast.dialog} (100%) rename locale/it-it/{SW.dialog => southwest.dialog} (100%) rename locale/it-it/{W.dialog => west.dialog} (100%) delete mode 100644 locale/it-it/what.is.three.day.forecast.intent delete mode 100644 locale/it-it/what.is.three.day.forecast.location.intent delete mode 100644 locale/it-it/what.is.two.day.forecast.intent delete mode 100644 locale/it-it/whats.weather.like.intent delete mode 100644 locale/it-it/wind.speed.dialog delete mode 100644 locale/it-it/wind.speed.dir.dialog delete mode 100644 locale/it-it/winds.dialog delete mode 100644 locale/nl-nl/W.dialog rename locale/nl-nl/{humidity.dialog => current.humidity.location.dialog} (100%) rename locale/nl-nl/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/nl-nl/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/nl-nl/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/nl-nl/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/nl-nl/{E.dialog => east.dialog} (100%) rename locale/nl-nl/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/nl-nl/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/nl-nl/{N.dialog => north.dialog} (100%) rename locale/nl-nl/{NE.dialog => northeast.dialog} (100%) rename locale/nl-nl/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/nl-nl/report.condition.dialog delete mode 100644 locale/nl-nl/report.future.condition.dialog rename locale/nl-nl/{S.dialog => south.dialog} (100%) rename locale/nl-nl/{SE.dialog => southeast.dialog} (100%) rename locale/nl-nl/{SW.dialog => southwest.dialog} (100%) delete mode 100644 locale/nl-nl/wind.speed.dialog delete mode 100644 locale/nl-nl/wind.speed.dir.dialog delete mode 100644 locale/nl-nl/winds.dialog rename locale/pt-br/{Cloudy.voc => Clouds.voc} (100%) rename locale/pt-br/{CloudyAlternatives.voc => CloudsAlternatives.voc} (100%) rename locale/pt-br/{Foggy.voc => Fog.voc} (100%) rename locale/pt-br/{Raining.voc => Rain.voc} (100%) rename locale/pt-br/{Snowing.voc => Snow.voc} (100%) rename locale/pt-br/{Storm.voc => Thunderstorm.voc} (100%) rename locale/pt-br/{StormAlternatives.voc => ThunderstormAlternatives.voc} (100%) delete mode 100644 locale/pt-br/and.dialog delete mode 100644 locale/pt-br/at.time.forecast.affirmative.condition.dialog delete mode 100644 locale/pt-br/at.time.forecast.cond.alternative.dialog delete mode 100644 locale/pt-br/at.time.forecast.local.affirmative.condition.dialog delete mode 100644 locale/pt-br/at.time.forecast.local.cond.alternative.dialog delete mode 100644 locale/pt-br/at.time.forecast.local.no.cond.predicted.dialog delete mode 100644 locale/pt-br/at.time.forecast.no.cond.predicted.dialog delete mode 100644 locale/pt-br/at.time.local.high.temperature.dialog delete mode 100644 locale/pt-br/at.time.local.low.temperature.dialog delete mode 100644 locale/pt-br/at.time.local.weather.dialog rename locale/pt-br/{local.clear.alternative.dialog => current.clear.alternative.local.dialog} (100%) rename locale/pt-br/{clear.alternative.dialog => current.clear.alternative.location.dialog} (100%) rename locale/pt-br/{no.clear.predicted.dialog => current.clear.not.expected.location.dialog} (100%) rename locale/pt-br/{local.cloudy.alternative.dialog => current.clouds.alternative.local.dialog} (100%) rename locale/pt-br/{cloudy.alternative.dialog => current.clouds.alternative.location.dialog} (100%) rename locale/pt-br/{local.no.cloudy.predicted.dialog => current.clouds.not.expected.local.dialog} (100%) rename locale/pt-br/{no.cloudy.predicted.dialog => current.clouds.not.expected.location.dialog} (100%) rename locale/pt-br/{local.affirmative.condition.dialog => current.condition.expected.local.dialog} (100%) rename locale/pt-br/{affirmative.condition.dialog => current.condition.expected.location.dialog} (100%) rename locale/pt-br/{local.foggy.alternative.dialog => current.fog.alternative.local.dialog} (100%) rename locale/pt-br/{fog.alternative.dialog => current.fog.alternative.location.dialog} (100%) rename locale/pt-br/{local.no.fog.predicted.dialog => current.fog.not.expected.local.dialog} (100%) rename locale/pt-br/{no.fog.predicted.dialog => current.fog.not.expected.location.dialog} (100%) delete mode 100644 locale/pt-br/current.hot.dialog rename locale/pt-br/{humidity.dialog => current.humidity.location.dialog} (100%) delete mode 100644 locale/pt-br/current.local.cold.dialog delete mode 100644 locale/pt-br/current.local.hot.dialog rename locale/pt-br/{local.raining.alternative.dialog => current.rain.alternative.local.dialog} (100%) rename locale/pt-br/{raining.alternative.dialog => current.rain.alternative.location.dialog} (100%) rename locale/pt-br/{local.no.rain.predicted.dialog => current.rain.not.expected.local.dialog} (100%) rename locale/pt-br/{no.rain.predicted.dialog => current.rain.not.expected.location.dialog} (100%) rename locale/pt-br/{local.snowing.alternative.dialog => current.snow.alternative.local.dialog} (100%) rename locale/pt-br/{snowing.alternative.dialog => current.snow.alternative.location.dialog} (100%) rename locale/pt-br/{local.no.snow.predicted.dialog => current.snow.not.expected.local.dialog} (100%) rename locale/pt-br/{no.snow.predicted.dialog => current.snow.not.expected.location.dialog} (100%) rename locale/pt-br/{current.local.high.temperature.dialog => current.temperature.high.local.dialog} (100%) rename locale/pt-br/{current.high.temperature.dialog => current.temperature.high.location.dialog} (100%) rename locale/pt-br/{min.max.dialog => current.temperature.high.low.dialog} (100%) rename locale/pt-br/{current.local.temperature.dialog => current.temperature.local.dialog} (100%) rename locale/pt-br/{current.temperature.dialog => current.temperature.location.dialog} (100%) rename locale/pt-br/{current.local.low.temperature.dialog => current.temperature.low.local.dialog} (100%) rename locale/pt-br/{current.low.temperature.dialog => current.temperature.low.location.dialog} (100%) rename locale/pt-br/{local.storm.alternative.dialog => current.thunderstorm.alternative.local.dialog} (100%) rename locale/pt-br/{storm.alternative.dialog => current.thunderstorm.alternative.location.dialog} (100%) rename locale/pt-br/{local.no.storm.predicted.dialog => current.thunderstorm.not.expected.local.dialog} (100%) rename locale/pt-br/{no.storm.predicted.dialog => current.thunderstorm.not.expected.location.dialog} (100%) rename locale/pt-br/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/pt-br/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/pt-br/{local.light.wind.dialog => current.wind.light.local.dialog} (100%) rename locale/pt-br/{light.wind.dialog => current.wind.light.location.dialog} (100%) rename locale/pt-br/{local.medium.wind.dialog => current.wind.moderate.local.dialog} (100%) rename locale/pt-br/{medium.wind.dialog => current.wind.moderate.location.dialog} (100%) rename locale/pt-br/{local.hard.wind.dialog => current.wind.strong.local.dialog} (100%) rename locale/pt-br/{hard.wind.dialog => current.wind.strong.location.dialog} (100%) rename locale/pt-br/{forecast.local.clear.alternative.dialog => daily.clear.alternative.local.dialog} (100%) rename locale/pt-br/{forecast.clear.alternative.dialog => daily.clear.alternative.location.dialog} (100%) rename locale/pt-br/{forecast.local.no.clear.predicted.dialog => daily.clear.not.expected.local.dialog} (100%) rename locale/pt-br/{forecast.no.clear.predicted.dialog => daily.clear.not.expected.location.dialog} (100%) rename locale/pt-br/{forecast.local.cloudy.alternative.dialog => daily.clouds.alternative.local.dialog} (100%) rename locale/pt-br/{forecast.cloudy.alternative.dialog => daily.clouds.alternative.location.dialog} (100%) rename locale/pt-br/{forecast.local.no.cloudy.predicted.dialog => daily.clouds.not.expected.local.dialog} (100%) rename locale/pt-br/{forecast.no.cloudy.predicted.dialog => daily.clouds.not.expected.location.dialog} (100%) rename locale/pt-br/{forecast.local.affirmative.condition.dialog => daily.condition.expected.local.dialog} (100%) rename locale/pt-br/{forecast.affirmative.condition.dialog => daily.condition.expected.location.dialog} (100%) rename locale/pt-br/{forecast.local.foggy.alternative.dialog => daily.fog.alternative.local.dialog} (100%) rename locale/pt-br/{forecast.foggy.alternative.dialog => daily.fog.alternative.location.dialog} (100%) rename locale/pt-br/{forecast.local.no.fog.predicted.dialog => daily.fog.not.expected.local.dialog} (100%) rename locale/pt-br/{forecast.no.fog.predicted.dialog => daily.fog.not.expected.location.dialog} (100%) rename locale/pt-br/{forecast.local.raining.alternative.dialog => daily.rain.alternative.local.dialog} (100%) rename locale/pt-br/{forecast.raining.alternative.dialog => daily.rain.alternative.location.dialog} (100%) rename locale/pt-br/{forecast.local.no.rain.predicted.dialog => daily.rain.not.expected.local.dialog} (100%) rename locale/pt-br/{forecast.no.rain.predicted.dialog => daily.rain.not.expected.location.dialog} (100%) rename locale/pt-br/{forecast.snowing.alternative.dialog => daily.snow.alternative.location.dialog} (100%) rename locale/pt-br/{forecast.local.no.snow.predicted.dialog => daily.snow.not.expected.local.dialog} (100%) rename locale/pt-br/{forecast.no.snow.predicted.dialog => daily.snow.not.expected.location.dialog} (100%) rename locale/pt-br/{forecast.high.temperature.dialog => daily.temperature.high.dialog} (100%) rename locale/pt-br/{forecast.local.high.temperature.dialog => daily.temperature.high.local.dialog} (100%) rename locale/pt-br/{forecast.local.temperature.dialog => daily.temperature.local.dialog} (100%) rename locale/pt-br/{forecast.temperature.dialog => daily.temperature.location.dialog} (100%) rename locale/pt-br/{forecast.local.low.temperature.dialog => daily.temperature.low.local.dialog} (100%) rename locale/pt-br/{forecast.low.temperature.dialog => daily.temperature.low.location.dialog} (100%) rename locale/pt-br/{forecast.local.storm.alternative.dialog => daily.thunderstorm.alternative.local.dialog} (100%) rename locale/pt-br/{forecast.storm.alternative.dialog => daily.thunderstorm.alternative.location.dialog} (100%) rename locale/pt-br/{forecast.local.no.storm.predicted.dialog => daily.thunderstorm.not.expected.local.dialog} (100%) rename locale/pt-br/{forecast.no.storm.predicted.dialog => daily.thunderstorm.not.expected.location.dialog} (100%) rename locale/pt-br/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/pt-br/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/pt-br/{forecast.local.light.wind.dialog => daily.wind.light.local.dialog} (100%) rename locale/pt-br/{forecast.light.wind.dialog => daily.wind.light.location.dialog} (100%) rename locale/pt-br/{forecast.local.medium.wind.dialog => daily.wind.moderate.local.dialog} (100%) rename locale/pt-br/{forecast.medium.wind.dialog => daily.wind.moderate.location.dialog} (100%) rename locale/pt-br/{forecast.local.hard.wind.dialog => daily.wind.strong.local.dialog} (100%) rename locale/pt-br/{forecast.hard.wind.dialog => daily.wind.strong.location.dialog} (100%) rename locale/pt-br/{E.dialog => east.dialog} (100%) delete mode 100644 locale/pt-br/forecast.hot.dialog delete mode 100644 locale/pt-br/forecast.local.hot.dialog rename locale/pt-br/{at.time.local.cond.alternative.dialog => hourly.condition.alternative.local.dialog} (100%) rename locale/pt-br/{at.time.cond.alternative.dialog => hourly.condition.alternative.location.dialog} (100%) rename locale/pt-br/{at.time.local.affirmative.condition.dialog => hourly.condition.expected.local.dialog} (100%) rename locale/pt-br/{at.time.affirmative.condition.dialog => hourly.condition.expected.location.dialog} (100%) rename locale/pt-br/{at.time.local.no.cond.predicted.dialog => hourly.condition.not.expected.local.dialog} (100%) rename locale/pt-br/{at.time.no.cond.predicted.dialog => hourly.condition.not.expected.location.dialog} (100%) rename locale/pt-br/{at.time.local.temperature.dialog => hourly.temperature.local.dialog} (100%) rename locale/pt-br/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/pt-br/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/pt-br/{N.dialog => north.dialog} (100%) rename locale/pt-br/{NE.dialog => northeast.dialog} (100%) rename locale/pt-br/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/pt-br/report.condition.at.location.dialog delete mode 100644 locale/pt-br/report.condition.dialog delete mode 100644 locale/pt-br/report.condition.future.at.location.dialog delete mode 100644 locale/pt-br/report.condition.future.dialog delete mode 100644 locale/pt-br/report.wind.dialog rename locale/pt-br/{S.dialog => south.dialog} (100%) rename locale/pt-br/{SE.dialog => southeast.dialog} (100%) rename locale/pt-br/{SW.dialog => southwest.dialog} (100%) delete mode 100644 locale/pt-br/tonight.local.weather.dialog rename locale/pt-br/{W.dialog => west.dialog} (100%) delete mode 100644 locale/pt-br/what.is.three.day.forecast.intent delete mode 100644 locale/pt-br/what.is.three.day.forecast.location.intent delete mode 100644 locale/pt-br/what.is.two.day.forecast.intent delete mode 100644 locale/pt-br/whats.weather.like.intent delete mode 100644 locale/pt-br/wind.speed.dialog delete mode 100644 locale/pt-br/wind.speed.dir.dialog delete mode 100644 locale/pt-br/wind.strength.hard.dialog delete mode 100644 locale/pt-br/wind.strength.light.dialog delete mode 100644 locale/pt-br/wind.strength.medium.dialog delete mode 100644 locale/pt-br/winds.dialog rename locale/ru-ru/{humidity.dialog => current.humidity.location.dialog} (100%) rename locale/ru-ru/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/ru-ru/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/ru-ru/{forecast.weather.dialog => daily.weather.loation.dialog} (100%) rename locale/ru-ru/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/ru-ru/{E.dialog => east.dialog} (100%) rename locale/ru-ru/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/ru-ru/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/ru-ru/{N.dialog => north.dialog} (100%) rename locale/ru-ru/{NE.dialog => northeast.dialog} (100%) rename locale/ru-ru/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/ru-ru/report.condition.dialog delete mode 100644 locale/ru-ru/report.future.condition.dialog rename locale/ru-ru/{S.dialog => south.dialog} (100%) rename locale/ru-ru/{SE.dialog => southeast.dialog} (100%) rename locale/ru-ru/{SW.dialog => southwest.dialog} (100%) rename locale/ru-ru/{W.dialog => west.dialog} (100%) delete mode 100644 locale/ru-ru/wind.speed.dialog delete mode 100644 locale/ru-ru/wind.speed.dir.dialog delete mode 100644 locale/ru-ru/winds.dialog rename locale/sv-se/{Cloudy.voc => Clouds.voc} (100%) rename locale/sv-se/{CloudyAlternatives.voc => CloudsAlternatives.voc} (100%) rename locale/sv-se/{Foggy.voc => Fog.voc} (100%) rename locale/sv-se/{Raining.voc => Rain.voc} (100%) rename locale/sv-se/{Snowing.voc => Snow.voc} (100%) rename locale/sv-se/{Storm.voc => Thunderstorm.voc} (100%) rename locale/sv-se/{StormAlternatives.voc => ThunderstormAlternatives.voc} (100%) delete mode 100644 locale/sv-se/and.dialog delete mode 100644 locale/sv-se/at.time.forecast.affirmative.condition.dialog delete mode 100644 locale/sv-se/at.time.forecast.cond.alternative.dialog delete mode 100644 locale/sv-se/at.time.forecast.local.affirmative.condition.dialog delete mode 100644 locale/sv-se/at.time.forecast.local.cond.alternative.dialog delete mode 100644 locale/sv-se/at.time.forecast.local.no.cond.predicted.dialog delete mode 100644 locale/sv-se/at.time.forecast.no.cond.predicted.dialog delete mode 100644 locale/sv-se/at.time.local.high.temperature.dialog delete mode 100644 locale/sv-se/at.time.local.low.temperature.dialog delete mode 100644 locale/sv-se/at.time.local.weather.dialog rename locale/sv-se/{local.clear.alternative.dialog => current.clear.alternative.local.dialog} (100%) rename locale/sv-se/{clear.alternative.dialog => current.clear.alternative.location.dialog} (100%) rename locale/sv-se/{no.clear.predicted.dialog => current.clear.not.expected.locatioin.dialog} (100%) rename locale/sv-se/{local.cloudy.alternative.dialog => current.clouds.alternative.local.dialog} (100%) rename locale/sv-se/{cloudy.alternative.dialog => current.clouds.alternative.location.dialog} (100%) rename locale/sv-se/{local.no.cloudy.predicted.dialog => current.clouds.not.expected.local.dialog} (100%) rename locale/sv-se/{no.cloudy.predicted.dialog => current.clouds.not.expected.location.dialog} (100%) rename locale/sv-se/{local.affirmative.condition.dialog => current.condition.expected.local.dialog} (100%) rename locale/sv-se/{affirmative.condition.dialog => current.condition.expected.location.dialog} (100%) rename locale/sv-se/{local.foggy.alternative.dialog => current.fog.alternative.local.dialog} (100%) rename locale/sv-se/{fog.alternative.dialog => current.fog.alternative.location.dialog} (100%) rename locale/sv-se/{local.no.fog.predicted.dialog => current.fog.not.expected.local.dialog} (100%) rename locale/sv-se/{no.fog.predicted.dialog => current.fog.not.expected.location.dialog} (100%) delete mode 100644 locale/sv-se/current.hot.dialog rename locale/sv-se/{humidity.dialog => current.humidity.location.dialog} (100%) delete mode 100644 locale/sv-se/current.local.cold.dialog delete mode 100644 locale/sv-se/current.local.hot.dialog rename locale/sv-se/{local.raining.alternative.dialog => current.rain.alternative.local.dialog} (100%) rename locale/sv-se/{raining.alternative.dialog => current.rain.alternative.location.dialog} (100%) rename locale/sv-se/{local.no.rain.predicted.dialog => current.rain.not.expected.local.dialog} (100%) rename locale/sv-se/{no.rain.predicted.dialog => current.rain.not.expected.location.dialog} (100%) rename locale/sv-se/{local.snowing.alternative.dialog => current.snow.alternative.local.dialog} (100%) rename locale/sv-se/{snowing.alternative.dialog => current.snow.alternative.location.dialog} (100%) rename locale/sv-se/{local.no.snow.predicted.dialog => current.snow.not.expected.local.dialog} (100%) rename locale/sv-se/{no.snow.predicted.dialog => current.snow.not.expected.location.dialog} (100%) rename locale/sv-se/{current.local.high.temperature.dialog => current.temperature.high.local.dialog} (100%) rename locale/sv-se/{current.high.temperature.dialog => current.temperature.high.location.dialog} (100%) rename locale/sv-se/{min.max.dialog => current.temperature.high.low.dialog} (100%) rename locale/sv-se/{current.local.temperature.dialog => current.temperature.local.dialog} (100%) rename locale/sv-se/{current.temperature.dialog => current.temperature.location.dialog} (100%) rename locale/sv-se/{current.local.low.temperature.dialog => current.temperature.low.local.dialog} (100%) rename locale/sv-se/{current.low.temperature.dialog => current.temperature.low.location.dialog} (100%) rename locale/sv-se/{local.storm.alternative.dialog => current.thunderstorm.alternative.local.dialog} (100%) rename locale/sv-se/{storm.alternative.dialog => current.thunderstorm.alternative.location.dialog} (100%) rename locale/sv-se/{local.no.storm.predicted.dialog => current.thunderstorm.not.expected.local.dialog} (100%) rename locale/sv-se/{no.storm.predicted.dialog => current.thunderstorm.not.expected.location.dialog} (100%) rename locale/sv-se/{current.local.weather.dialog => current.weather.local.dialog} (100%) rename locale/sv-se/{current.weather.dialog => current.weather.location.dialog} (100%) rename locale/sv-se/{local.light.wind.dialog => current.wind.light.local.dialog} (100%) rename locale/sv-se/{light.wind.dialog => current.wind.light.location.dialog} (100%) rename locale/sv-se/{local.medium.wind.dialog => current.wind.moderate.local.dialog} (100%) rename locale/sv-se/{medium.wind.dialog => current.wind.moderate.location.dialog} (100%) rename locale/sv-se/{local.hard.wind.dialog => current.wind.strong.local.dialog} (100%) rename locale/sv-se/{hard.wind.dialog => current.wind.strong.location.dialog} (100%) rename locale/sv-se/{forecast.local.clear.alternative.dialog => daily.clear.alternative.local.dialog} (100%) rename locale/sv-se/{forecast.clear.alternative.dialog => daily.clear.alternative.location.dialog} (100%) rename locale/sv-se/{forecast.local.no.clear.predicted.dialog => daily.clear.not.expected.local.dialog} (100%) rename locale/sv-se/{forecast.no.clear.predicted.dialog => daily.clear.not.expected.location.dialog} (100%) rename locale/sv-se/{forecast.local.cloudy.alternative.dialog => daily.clouds.alternative.local.dialog} (100%) rename locale/sv-se/{forecast.cloudy.alternative.dialog => daily.clouds.alternative.location.dialog} (100%) rename locale/sv-se/{forecast.local.no.cloudy.predicted.dialog => daily.clouds.not.expected.local.dialog} (100%) rename locale/sv-se/{forecast.no.cloudy.predicted.dialog => daily.clouds.not.expected.location.dialog} (100%) rename locale/sv-se/{forecast.local.affirmative.condition.dialog => daily.condition.expected.local.dialog} (100%) rename locale/sv-se/{forecast.affirmative.condition.dialog => daily.condition.expected.location.dialog} (100%) rename locale/sv-se/{forecast.local.foggy.alternative.dialog => daily.fog.alternative.local.dialog} (100%) rename locale/sv-se/{forecast.foggy.alternative.dialog => daily.fog.alternative.location.dialog} (100%) rename locale/sv-se/{forecast.local.no.fog.predicted.dialog => daily.fog.not.expected.local.dialog} (100%) rename locale/sv-se/{forecast.no.fog.predicted.dialog => daily.fog.not.expected.location.dialog} (100%) rename locale/sv-se/{forecast.local.raining.alternative.dialog => daily.rain.alternative.local.dialog} (100%) rename locale/sv-se/{forecast.raining.alternative.dialog => daily.rain.alternative.location.dialog} (100%) rename locale/sv-se/{forecast.local.no.rain.predicted.dialog => daily.rain.not.expected.local.dialog} (100%) rename locale/sv-se/{forecast.no.rain.predicted.dialog => daily.rain.not.expected.location.dialog} (100%) rename locale/sv-se/{forecast.snowing.alternative.dialog => daily.snow.alternative.location.dialog} (100%) rename locale/sv-se/{forecast.local.no.snow.predicted.dialog => daily.snow.not.expected.local.dialog} (100%) rename locale/sv-se/{forecast.no.snow.predicted.dialog => daily.snow.not.expected.location.dialog} (100%) rename locale/sv-se/{forecast.local.high.temperature.dialog => daily.temperature.high.local.dialog} (100%) rename locale/sv-se/{forecast.high.temperature.dialog => daily.temperature.high.location.dialog} (100%) rename locale/sv-se/{forecast.local.temperature.dialog => daily.temperature.local.dialog} (100%) rename locale/sv-se/{forecast.temperature.dialog => daily.temperature.location.dialog} (100%) rename locale/sv-se/{forecast.local.low.temperature.dialog => daily.temperature.low.local.dialog} (100%) rename locale/sv-se/{forecast.low.temperature.dialog => daily.temperature.low.location.dialog} (100%) rename locale/sv-se/{forecast.local.storm.alternative.dialog => daily.thunderstorm.alternative.local.dialog} (100%) rename locale/sv-se/{forecast.storm.alternative.dialog => daily.thunderstorm.alternative.location.dialog} (100%) rename locale/sv-se/{forecast.local.no.storm.predicted.dialog => daily.thunderstorm.not.expected.local.dialog} (100%) rename locale/sv-se/{forecast.no.storm.predicted.dialog => daily.thunderstorm.not.expected.location.dialog} (100%) rename locale/sv-se/{forecast.local.weather.dialog => daily.weather.local.dialog} (100%) rename locale/sv-se/{forecast.weather.dialog => daily.weather.location.dialog} (100%) rename locale/sv-se/{forecast.local.light.wind.dialog => daily.wind.light.local.dialog} (100%) rename locale/sv-se/{forecast.light.wind.dialog => daily.wind.light.location.dialog} (100%) rename locale/sv-se/{forecast.local.medium.wind.dialog => daily.wind.moderate.local.dialog} (100%) rename locale/sv-se/{forecast.medium.wind.dialog => daily.wind.moderate.location.dialog} (100%) rename locale/sv-se/{forecast.local.hard.wind.dialog => daily.wind.strong.local.dialog} (100%) rename locale/sv-se/{forecast.hard.wind.dialog => daily.wind.strong.location.dialog} (100%) rename locale/sv-se/{E.dialog => east.dialog} (100%) delete mode 100644 locale/sv-se/forecast.hot.dialog delete mode 100644 locale/sv-se/forecast.local.hot.dialog rename locale/sv-se/{at.time.local.cond.alternative.dialog => hourly.condition.alternative.local.dialog} (100%) rename locale/sv-se/{at.time.cond.alternative.dialog => hourly.condition.alternative.location.dialog} (100%) rename locale/sv-se/{at.time.local.affirmative.condition.dialog => hourly.condition.expected.local.dialog} (100%) rename locale/sv-se/{at.time.affirmative.condition.dialog => hourly.condition.expected.location.dialog} (100%) rename locale/sv-se/{at.time.local.no.cond.predicted.dialog => hourly.condition.not.expected.local.dialog} (100%) rename locale/sv-se/{at.time.no.cond.predicted.dialog => hourly.condition.not.expected.location.dialog} (100%) rename locale/sv-se/{at.time.local.temperature.dialog => hourly.temperature.local.dialog} (100%) rename locale/sv-se/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/sv-se/{hour.weather.dialog => hourly.weather.location.dialog} (100%) rename locale/sv-se/{N.dialog => north.dialog} (100%) rename locale/sv-se/{NE.dialog => northeast.dialog} (100%) rename locale/sv-se/{NW.dialog => northwest.dialog} (100%) delete mode 100644 locale/sv-se/report.condition.at.location.dialog delete mode 100644 locale/sv-se/report.condition.dialog delete mode 100644 locale/sv-se/report.condition.future.at.location.dialog delete mode 100644 locale/sv-se/report.condition.future.dialog delete mode 100644 locale/sv-se/report.wind.dialog rename locale/sv-se/{S.dialog => south.dialog} (100%) rename locale/sv-se/{SE.dialog => southeast.dialog} (100%) rename locale/sv-se/{SW.dialog => southwest.dialog} (100%) delete mode 100644 locale/sv-se/tonight.local.weather.dialog rename locale/sv-se/{W.dialog => west.dialog} (100%) delete mode 100644 locale/sv-se/what.is.three.day.forecast.intent delete mode 100644 locale/sv-se/what.is.three.day.forecast.location.intent delete mode 100644 locale/sv-se/what.is.two.day.forecast.intent delete mode 100644 locale/sv-se/whats.weather.like.intent delete mode 100644 locale/sv-se/wind.speed.dialog delete mode 100644 locale/sv-se/wind.speed.dir.dialog delete mode 100644 locale/sv-se/wind.strength.hard.dialog delete mode 100644 locale/sv-se/wind.strength.light.dialog delete mode 100644 locale/sv-se/wind.strength.medium.dialog delete mode 100644 locale/sv-se/winds.dialog diff --git a/locale/ca-es/Cloudy.voc b/locale/ca-es/Clouds.voc similarity index 100% rename from locale/ca-es/Cloudy.voc rename to locale/ca-es/Clouds.voc diff --git a/locale/ca-es/CloudyAlternatives.voc b/locale/ca-es/CloudsAlternatives.voc similarity index 100% rename from locale/ca-es/CloudyAlternatives.voc rename to locale/ca-es/CloudsAlternatives.voc diff --git a/locale/ca-es/Foggy.voc b/locale/ca-es/Fog.voc similarity index 100% rename from locale/ca-es/Foggy.voc rename to locale/ca-es/Fog.voc diff --git a/locale/ca-es/Raining.voc b/locale/ca-es/Rain.voc similarity index 100% rename from locale/ca-es/Raining.voc rename to locale/ca-es/Rain.voc diff --git a/locale/ca-es/Snowing.voc b/locale/ca-es/Snow.voc similarity index 100% rename from locale/ca-es/Snowing.voc rename to locale/ca-es/Snow.voc diff --git a/locale/ca-es/Storm.voc b/locale/ca-es/Thunderstorm.voc similarity index 100% rename from locale/ca-es/Storm.voc rename to locale/ca-es/Thunderstorm.voc diff --git a/locale/ca-es/StormAlternatives.voc b/locale/ca-es/ThunderstormAlternatives.voc similarity index 100% rename from locale/ca-es/StormAlternatives.voc rename to locale/ca-es/ThunderstormAlternatives.voc diff --git a/locale/ca-es/and.dialog b/locale/ca-es/and.dialog deleted file mode 100644 index 24e79aeb..00000000 --- a/locale/ca-es/and.dialog +++ /dev/null @@ -1 +0,0 @@ -, i diff --git a/locale/ca-es/at.time.forecast.affirmative.condition.dialog b/locale/ca-es/at.time.forecast.affirmative.condition.dialog deleted file mode 100644 index bdd1461c..00000000 --- a/locale/ca-es/at.time.forecast.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Resposta afirmativa a preguntes com "nevarà demà a la tarda a París" -Sí, la previsió de {time} suggereix {condition} en {location} el {day} -Sí, la previsió de {time} anuncia {condition} a {location} el {day} diff --git a/locale/ca-es/at.time.forecast.cond.alternative.dialog b/locale/ca-es/at.time.forecast.cond.alternative.dialog deleted file mode 100644 index f0bbbba6..00000000 --- a/locale/ca-es/at.time.forecast.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informar que es produirà una alternativa per aclarir els cels en el moment especificat -No, el pronòstic de {time} per a {day} anuncia {condition} a {location} -No sembla que sigui així, la previsió del temps de {time} per a {day} en {location} serà {condition} diff --git a/locale/ca-es/at.time.forecast.local.affirmative.condition.dialog b/locale/ca-es/at.time.forecast.local.affirmative.condition.dialog deleted file mode 100644 index 467b56ca..00000000 --- a/locale/ca-es/at.time.forecast.local.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Resposta afirmativa a preguntes com "nevarà demà" -Sí, s'espera {condition} segons la previsió de {time} per a {day} -Sí, el pronòstic de {time} anuncia {condition} per a {day} diff --git a/locale/ca-es/at.time.forecast.local.cond.alternative.dialog b/locale/ca-es/at.time.forecast.local.cond.alternative.dialog deleted file mode 100644 index b70c73be..00000000 --- a/locale/ca-es/at.time.forecast.local.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió de {time} per a {day} indica {condition} -No sembla que sigui així, la previsió meterològica per a {day} a {time} suggereix que serà {condition} diff --git a/locale/ca-es/at.time.forecast.local.no.cond.predicted.dialog b/locale/ca-es/at.time.forecast.local.no.cond.predicted.dialog deleted file mode 100644 index 77c3cd39..00000000 --- a/locale/ca-es/at.time.forecast.local.no.cond.predicted.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# Quan l'usuari pregunta si és una condició però no ho és -No, la previsió de {time} per a {day} indica {condition} diff --git a/locale/ca-es/at.time.forecast.no.cond.predicted.dialog b/locale/ca-es/at.time.forecast.no.cond.predicted.dialog deleted file mode 100644 index 41c522d8..00000000 --- a/locale/ca-es/at.time.forecast.no.cond.predicted.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si és una condició però no ho és -No, la previsió de {time} a {location} suggereix que serà {condition} -No sembla que sigui així, la previsió de {time} a {location} suggereix que farà {condition} diff --git a/locale/ca-es/at.time.local.high.temperature.dialog b/locale/ca-es/at.time.local.high.temperature.dialog deleted file mode 100644 index 00c219f8..00000000 --- a/locale/ca-es/at.time.local.high.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -A les {time} la temperatura serà tan alta com {temp} graus -a les {time}, s'elevarà a {temp} graus diff --git a/locale/ca-es/at.time.local.low.temperature.dialog b/locale/ca-es/at.time.local.low.temperature.dialog deleted file mode 100644 index ebe4bcc6..00000000 --- a/locale/ca-es/at.time.local.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -A les {time} serà tan baixa com {temp} graus -{time}, es reduirà a {temp} graus diff --git a/locale/ca-es/at.time.local.weather.dialog b/locale/ca-es/at.time.local.weather.dialog deleted file mode 100644 index a06c66e3..00000000 --- a/locale/ca-es/at.time.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Farà {condition}, amb temperatures properes a {temp} en el {time} -{time}, farà {condition} i entorn de {temp} graus -{time} farà {condition} i {temp} graus -{time}, hi haurà {temp} graus amb {condition} diff --git a/locale/ca-es/local.clear.alternative.dialog b/locale/ca-es/current.clear.alternative.local.dialog similarity index 100% rename from locale/ca-es/local.clear.alternative.dialog rename to locale/ca-es/current.clear.alternative.local.dialog diff --git a/locale/ca-es/clear.alternative.dialog b/locale/ca-es/current.clear.alternative.location.dialog similarity index 100% rename from locale/ca-es/clear.alternative.dialog rename to locale/ca-es/current.clear.alternative.location.dialog diff --git a/locale/ca-es/no.clear.predicted.dialog b/locale/ca-es/current.clear.not.expected.local.dialog similarity index 100% rename from locale/ca-es/no.clear.predicted.dialog rename to locale/ca-es/current.clear.not.expected.local.dialog diff --git a/locale/ca-es/local.cloudy.alternative.dialog b/locale/ca-es/current.clouds.alternative.local.dialog similarity index 100% rename from locale/ca-es/local.cloudy.alternative.dialog rename to locale/ca-es/current.clouds.alternative.local.dialog diff --git a/locale/ca-es/cloudy.alternative.dialog b/locale/ca-es/current.clouds.alternative.location.dialog similarity index 100% rename from locale/ca-es/cloudy.alternative.dialog rename to locale/ca-es/current.clouds.alternative.location.dialog diff --git a/locale/ca-es/local.no.cloudy.predicted.dialog b/locale/ca-es/current.clouds.not.expected.local.dialog similarity index 100% rename from locale/ca-es/local.no.cloudy.predicted.dialog rename to locale/ca-es/current.clouds.not.expected.local.dialog diff --git a/locale/ca-es/no.cloudy.predicted.dialog b/locale/ca-es/current.clouds.not.expected.location.dialog similarity index 100% rename from locale/ca-es/no.cloudy.predicted.dialog rename to locale/ca-es/current.clouds.not.expected.location.dialog diff --git a/locale/ca-es/local.affirmative.condition.dialog b/locale/ca-es/current.condition.expected.local.dialog similarity index 100% rename from locale/ca-es/local.affirmative.condition.dialog rename to locale/ca-es/current.condition.expected.local.dialog diff --git a/locale/ca-es/affirmative.condition.dialog b/locale/ca-es/current.condition.expected.location.dialog similarity index 100% rename from locale/ca-es/affirmative.condition.dialog rename to locale/ca-es/current.condition.expected.location.dialog diff --git a/locale/ca-es/local.foggy.alternative.dialog b/locale/ca-es/current.fog.alternative.local.dialog similarity index 100% rename from locale/ca-es/local.foggy.alternative.dialog rename to locale/ca-es/current.fog.alternative.local.dialog diff --git a/locale/ca-es/fog.alternative.dialog b/locale/ca-es/current.fog.alternative.location.dialog similarity index 100% rename from locale/ca-es/fog.alternative.dialog rename to locale/ca-es/current.fog.alternative.location.dialog diff --git a/locale/ca-es/local.no.fog.predicted.dialog b/locale/ca-es/current.fog.not.expected.local.dialog similarity index 100% rename from locale/ca-es/local.no.fog.predicted.dialog rename to locale/ca-es/current.fog.not.expected.local.dialog diff --git a/locale/ca-es/no.fog.predicted.dialog b/locale/ca-es/current.fog.not.expected.location.dialog similarity index 100% rename from locale/ca-es/no.fog.predicted.dialog rename to locale/ca-es/current.fog.not.expected.location.dialog diff --git a/locale/ca-es/current.hot.dialog b/locale/ca-es/current.hot.dialog deleted file mode 100644 index 4aa7c9a7..00000000 --- a/locale/ca-es/current.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Fa {temp} graus {scale} a {location}, bona temperatura segons el meu sistema operatiu. -Fa {temp} graus en {location} que per a una I.A. fa bo. diff --git a/locale/ca-es/humidity.dialog b/locale/ca-es/current.humidity.location.dialog similarity index 100% rename from locale/ca-es/humidity.dialog rename to locale/ca-es/current.humidity.location.dialog diff --git a/locale/ca-es/current.local.cold.dialog b/locale/ca-es/current.local.cold.dialog deleted file mode 100644 index cd89c7d0..00000000 --- a/locale/ca-es/current.local.cold.dialog +++ /dev/null @@ -1,2 +0,0 @@ -actualment fa {temp}, bona temperatura segons el meu sistema -Fa {temp}, temperatura agradable per una I.A. diff --git a/locale/ca-es/current.local.hot.dialog b/locale/ca-es/current.local.hot.dialog deleted file mode 100644 index 55b25980..00000000 --- a/locale/ca-es/current.local.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Està dins la meva temperatura operativa, actualment hi ha {temp} graus -Hi ha {temp} graus, bastant agradable per a una IA diff --git a/locale/ca-es/local.raining.alternative.dialog b/locale/ca-es/current.rain.alternative.local.dialog similarity index 100% rename from locale/ca-es/local.raining.alternative.dialog rename to locale/ca-es/current.rain.alternative.local.dialog diff --git a/locale/ca-es/raining.alternative.dialog b/locale/ca-es/current.rain.alternative.location.dialog similarity index 100% rename from locale/ca-es/raining.alternative.dialog rename to locale/ca-es/current.rain.alternative.location.dialog diff --git a/locale/ca-es/local.no.rain.predicted.dialog b/locale/ca-es/current.rain.not.expected.local.dialog similarity index 100% rename from locale/ca-es/local.no.rain.predicted.dialog rename to locale/ca-es/current.rain.not.expected.local.dialog diff --git a/locale/ca-es/no.rain.predicted.dialog b/locale/ca-es/current.rain.not.expected.location.dialog similarity index 100% rename from locale/ca-es/no.rain.predicted.dialog rename to locale/ca-es/current.rain.not.expected.location.dialog diff --git a/locale/ca-es/local.snowing.alternative.dialog b/locale/ca-es/current.snow.alternative.local.dialog similarity index 100% rename from locale/ca-es/local.snowing.alternative.dialog rename to locale/ca-es/current.snow.alternative.local.dialog diff --git a/locale/ca-es/snowing.alternative.dialog b/locale/ca-es/current.snow.alternative.location.dialog similarity index 100% rename from locale/ca-es/snowing.alternative.dialog rename to locale/ca-es/current.snow.alternative.location.dialog diff --git a/locale/ca-es/local.no.snow.predicted.dialog b/locale/ca-es/current.snow.not.expected.local.dialog similarity index 100% rename from locale/ca-es/local.no.snow.predicted.dialog rename to locale/ca-es/current.snow.not.expected.local.dialog diff --git a/locale/ca-es/no.snow.predicted.dialog b/locale/ca-es/current.snow.not.expected.location.dialog similarity index 100% rename from locale/ca-es/no.snow.predicted.dialog rename to locale/ca-es/current.snow.not.expected.location.dialog diff --git a/locale/ca-es/current.local.high.temperature.dialog b/locale/ca-es/current.temperature.high.local.dialog similarity index 100% rename from locale/ca-es/current.local.high.temperature.dialog rename to locale/ca-es/current.temperature.high.local.dialog diff --git a/locale/ca-es/current.high.temperature.dialog b/locale/ca-es/current.temperature.high.location.dialog similarity index 100% rename from locale/ca-es/current.high.temperature.dialog rename to locale/ca-es/current.temperature.high.location.dialog diff --git a/locale/ca-es/min.max.dialog b/locale/ca-es/current.temperature.high.low.dialog similarity index 100% rename from locale/ca-es/min.max.dialog rename to locale/ca-es/current.temperature.high.low.dialog diff --git a/locale/ca-es/current.local.temperature.dialog b/locale/ca-es/current.temperature.local.dialog similarity index 100% rename from locale/ca-es/current.local.temperature.dialog rename to locale/ca-es/current.temperature.local.dialog diff --git a/locale/ca-es/current.temperature.dialog b/locale/ca-es/current.temperature.location.dialog similarity index 100% rename from locale/ca-es/current.temperature.dialog rename to locale/ca-es/current.temperature.location.dialog diff --git a/locale/ca-es/current.local.low.temperature.dialog b/locale/ca-es/current.temperature.low.local.dialog similarity index 100% rename from locale/ca-es/current.local.low.temperature.dialog rename to locale/ca-es/current.temperature.low.local.dialog diff --git a/locale/ca-es/current.low.temperature.dialog b/locale/ca-es/current.temperature.low.location.dialog similarity index 100% rename from locale/ca-es/current.low.temperature.dialog rename to locale/ca-es/current.temperature.low.location.dialog diff --git a/locale/ca-es/local.storm.alternative.dialog b/locale/ca-es/current.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/ca-es/local.storm.alternative.dialog rename to locale/ca-es/current.thunderstorm.alternative.local.dialog diff --git a/locale/ca-es/local.no.storm.predicted.dialog b/locale/ca-es/current.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/ca-es/local.no.storm.predicted.dialog rename to locale/ca-es/current.thunderstorm.not.expected.local.dialog diff --git a/locale/ca-es/no.storm.predicted.dialog b/locale/ca-es/current.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/ca-es/no.storm.predicted.dialog rename to locale/ca-es/current.thunderstorm.not.expected.location.dialog diff --git a/locale/ca-es/storm.alternative.dialog b/locale/ca-es/current.thundestorm.alternative.location.dialog similarity index 100% rename from locale/ca-es/storm.alternative.dialog rename to locale/ca-es/current.thundestorm.alternative.location.dialog diff --git a/locale/ca-es/current.local.weather.dialog b/locale/ca-es/current.weather.local.dialog similarity index 100% rename from locale/ca-es/current.local.weather.dialog rename to locale/ca-es/current.weather.local.dialog diff --git a/locale/ca-es/current.weather.dialog b/locale/ca-es/current.weather.location.dialog similarity index 100% rename from locale/ca-es/current.weather.dialog rename to locale/ca-es/current.weather.location.dialog diff --git a/locale/ca-es/local.light.wind.dialog b/locale/ca-es/current.wind.light.local.dialog similarity index 100% rename from locale/ca-es/local.light.wind.dialog rename to locale/ca-es/current.wind.light.local.dialog diff --git a/locale/ca-es/light.wind.dialog b/locale/ca-es/current.wind.light.location.dialog similarity index 100% rename from locale/ca-es/light.wind.dialog rename to locale/ca-es/current.wind.light.location.dialog diff --git a/locale/ca-es/local.medium.wind.dialog b/locale/ca-es/current.wind.moderate.local.dialog similarity index 100% rename from locale/ca-es/local.medium.wind.dialog rename to locale/ca-es/current.wind.moderate.local.dialog diff --git a/locale/ca-es/medium.wind.dialog b/locale/ca-es/current.wind.moderate.location.dialog similarity index 100% rename from locale/ca-es/medium.wind.dialog rename to locale/ca-es/current.wind.moderate.location.dialog diff --git a/locale/ca-es/local.hard.wind.dialog b/locale/ca-es/current.wind.strong.local.dialog similarity index 100% rename from locale/ca-es/local.hard.wind.dialog rename to locale/ca-es/current.wind.strong.local.dialog diff --git a/locale/ca-es/hard.wind.dialog b/locale/ca-es/current.wind.strong.location.dialog similarity index 100% rename from locale/ca-es/hard.wind.dialog rename to locale/ca-es/current.wind.strong.location.dialog diff --git a/locale/ca-es/forecast.local.clear.alternative.dialog b/locale/ca-es/daily.clear.alternative.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.clear.alternative.dialog rename to locale/ca-es/daily.clear.alternative.local.dialog diff --git a/locale/ca-es/forecast.clear.alternative.dialog b/locale/ca-es/daily.clear.alternative.location.dialog similarity index 100% rename from locale/ca-es/forecast.clear.alternative.dialog rename to locale/ca-es/daily.clear.alternative.location.dialog diff --git a/locale/ca-es/forecast.local.no.clear.predicted.dialog b/locale/ca-es/daily.clear.not.expected.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.no.clear.predicted.dialog rename to locale/ca-es/daily.clear.not.expected.local.dialog diff --git a/locale/ca-es/forecast.no.clear.predicted.dialog b/locale/ca-es/daily.clear.not.expected.location.dialog similarity index 100% rename from locale/ca-es/forecast.no.clear.predicted.dialog rename to locale/ca-es/daily.clear.not.expected.location.dialog diff --git a/locale/ca-es/forecast.local.cloudy.alternative.dialog b/locale/ca-es/daily.clouds.alternative.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.cloudy.alternative.dialog rename to locale/ca-es/daily.clouds.alternative.local.dialog diff --git a/locale/ca-es/forecast.cloudy.alternative.dialog b/locale/ca-es/daily.clouds.alternative.location.dialog similarity index 100% rename from locale/ca-es/forecast.cloudy.alternative.dialog rename to locale/ca-es/daily.clouds.alternative.location.dialog diff --git a/locale/ca-es/forecast.local.no.cloudy.predicted.dialog b/locale/ca-es/daily.clouds.not.expected.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.no.cloudy.predicted.dialog rename to locale/ca-es/daily.clouds.not.expected.local.dialog diff --git a/locale/ca-es/forecast.no.cloudy.predicted.dialog b/locale/ca-es/daily.clouds.not.expected.location.dialog similarity index 100% rename from locale/ca-es/forecast.no.cloudy.predicted.dialog rename to locale/ca-es/daily.clouds.not.expected.location.dialog diff --git a/locale/ca-es/forecast.local.affirmative.condition.dialog b/locale/ca-es/daily.condition.expected.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.affirmative.condition.dialog rename to locale/ca-es/daily.condition.expected.local.dialog diff --git a/locale/ca-es/forecast.affirmative.condition.dialog b/locale/ca-es/daily.condition.expected.location.dialog similarity index 100% rename from locale/ca-es/forecast.affirmative.condition.dialog rename to locale/ca-es/daily.condition.expected.location.dialog diff --git a/locale/ca-es/forecast.local.foggy.alternative.dialog b/locale/ca-es/daily.fog.alternative.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.foggy.alternative.dialog rename to locale/ca-es/daily.fog.alternative.local.dialog diff --git a/locale/ca-es/forecast.foggy.alternative.dialog b/locale/ca-es/daily.fog.alternative.location.dialog similarity index 100% rename from locale/ca-es/forecast.foggy.alternative.dialog rename to locale/ca-es/daily.fog.alternative.location.dialog diff --git a/locale/ca-es/forecast.local.no.fog.predicted.dialog b/locale/ca-es/daily.fog.not.expected.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.no.fog.predicted.dialog rename to locale/ca-es/daily.fog.not.expected.local.dialog diff --git a/locale/ca-es/forecast.no.fog.predicted.dialog b/locale/ca-es/daily.fog.not.expected.location.dialog similarity index 100% rename from locale/ca-es/forecast.no.fog.predicted.dialog rename to locale/ca-es/daily.fog.not.expected.location.dialog diff --git a/locale/ca-es/forecast.local.raining.alternative.dialog b/locale/ca-es/daily.rain.alternative.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.raining.alternative.dialog rename to locale/ca-es/daily.rain.alternative.local.dialog diff --git a/locale/ca-es/forecast.raining.alternative.dialog b/locale/ca-es/daily.rain.alternative.location.dialog similarity index 100% rename from locale/ca-es/forecast.raining.alternative.dialog rename to locale/ca-es/daily.rain.alternative.location.dialog diff --git a/locale/ca-es/forecast.local.no.rain.predicted.dialog b/locale/ca-es/daily.rain.not.expected.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.no.rain.predicted.dialog rename to locale/ca-es/daily.rain.not.expected.local.dialog diff --git a/locale/ca-es/forecast.no.rain.predicted.dialog b/locale/ca-es/daily.rain.not.expected.location.dialog similarity index 100% rename from locale/ca-es/forecast.no.rain.predicted.dialog rename to locale/ca-es/daily.rain.not.expected.location.dialog diff --git a/locale/ca-es/forecast.snowing.alternative.dialog b/locale/ca-es/daily.snow.alternative.location.dialog similarity index 100% rename from locale/ca-es/forecast.snowing.alternative.dialog rename to locale/ca-es/daily.snow.alternative.location.dialog diff --git a/locale/ca-es/forecast.local.no.snow.predicted.dialog b/locale/ca-es/daily.snow.not.expected.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.no.snow.predicted.dialog rename to locale/ca-es/daily.snow.not.expected.local.dialog diff --git a/locale/ca-es/forecast.no.snow.predicted.dialog b/locale/ca-es/daily.snow.not.expected.location.dialog similarity index 100% rename from locale/ca-es/forecast.no.snow.predicted.dialog rename to locale/ca-es/daily.snow.not.expected.location.dialog diff --git a/locale/ca-es/forecast.local.high.temperature.dialog b/locale/ca-es/daily.temperature.high.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.high.temperature.dialog rename to locale/ca-es/daily.temperature.high.local.dialog diff --git a/locale/ca-es/forecast.high.temperature.dialog b/locale/ca-es/daily.temperature.high.location.dialog similarity index 100% rename from locale/ca-es/forecast.high.temperature.dialog rename to locale/ca-es/daily.temperature.high.location.dialog diff --git a/locale/ca-es/forecast.local.temperature.dialog b/locale/ca-es/daily.temperature.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.temperature.dialog rename to locale/ca-es/daily.temperature.local.dialog diff --git a/locale/ca-es/forecast.temperature.dialog b/locale/ca-es/daily.temperature.location.dialog similarity index 100% rename from locale/ca-es/forecast.temperature.dialog rename to locale/ca-es/daily.temperature.location.dialog diff --git a/locale/ca-es/forecast.local.low.temperature.dialog b/locale/ca-es/daily.temperature.low.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.low.temperature.dialog rename to locale/ca-es/daily.temperature.low.local.dialog diff --git a/locale/ca-es/forecast.low.temperature.dialog b/locale/ca-es/daily.temperature.low.location.dialog similarity index 100% rename from locale/ca-es/forecast.low.temperature.dialog rename to locale/ca-es/daily.temperature.low.location.dialog diff --git a/locale/ca-es/forecast.local.storm.alternative.dialog b/locale/ca-es/daily.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.storm.alternative.dialog rename to locale/ca-es/daily.thunderstorm.alternative.local.dialog diff --git a/locale/ca-es/forecast.storm.alternative.dialog b/locale/ca-es/daily.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/ca-es/forecast.storm.alternative.dialog rename to locale/ca-es/daily.thunderstorm.alternative.location.dialog diff --git a/locale/ca-es/forecast.local.no.storm.predicted.dialog b/locale/ca-es/daily.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.no.storm.predicted.dialog rename to locale/ca-es/daily.thunderstorm.not.expected.local.dialog diff --git a/locale/ca-es/forecast.no.storm.predicted.dialog b/locale/ca-es/daily.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/ca-es/forecast.no.storm.predicted.dialog rename to locale/ca-es/daily.thunderstorm.not.expected.location.dialog diff --git a/locale/ca-es/forecast.local.weather.dialog b/locale/ca-es/daily.weather.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.weather.dialog rename to locale/ca-es/daily.weather.local.dialog diff --git a/locale/ca-es/forecast.weather.dialog b/locale/ca-es/daily.weather.location.dialog similarity index 100% rename from locale/ca-es/forecast.weather.dialog rename to locale/ca-es/daily.weather.location.dialog diff --git a/locale/ca-es/forecast.light.wind.dialog b/locale/ca-es/daily.wind.light.loaction.dialog similarity index 100% rename from locale/ca-es/forecast.light.wind.dialog rename to locale/ca-es/daily.wind.light.loaction.dialog diff --git a/locale/ca-es/forecast.local.light.wind.dialog b/locale/ca-es/daily.wind.light.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.light.wind.dialog rename to locale/ca-es/daily.wind.light.local.dialog diff --git a/locale/ca-es/forecast.local.medium.wind.dialog b/locale/ca-es/daily.wind.moderate.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.medium.wind.dialog rename to locale/ca-es/daily.wind.moderate.local.dialog diff --git a/locale/ca-es/forecast.medium.wind.dialog b/locale/ca-es/daily.wind.moderate.location.dialog similarity index 100% rename from locale/ca-es/forecast.medium.wind.dialog rename to locale/ca-es/daily.wind.moderate.location.dialog diff --git a/locale/ca-es/forecast.local.hard.wind.dialog b/locale/ca-es/daily.wind.strong.local.dialog similarity index 100% rename from locale/ca-es/forecast.local.hard.wind.dialog rename to locale/ca-es/daily.wind.strong.local.dialog diff --git a/locale/ca-es/forecast.hard.wind.dialog b/locale/ca-es/daily.wind.strong.location.dialog similarity index 100% rename from locale/ca-es/forecast.hard.wind.dialog rename to locale/ca-es/daily.wind.strong.location.dialog diff --git a/locale/ca-es/E.dialog b/locale/ca-es/east.dialog similarity index 100% rename from locale/ca-es/E.dialog rename to locale/ca-es/east.dialog diff --git a/locale/ca-es/forecast.hot.dialog b/locale/ca-es/forecast.hot.dialog deleted file mode 100644 index 7bb93b65..00000000 --- a/locale/ca-es/forecast.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -El {day} hi haurà {temp} graus a {location}, bastant bé per a una I.A. -El {day} la temperatura serà de {temp} a {location}, bona per a les meves especificacions diff --git a/locale/ca-es/forecast.local.hot.dialog b/locale/ca-es/forecast.local.hot.dialog deleted file mode 100644 index b9e1f99d..00000000 --- a/locale/ca-es/forecast.local.hot.dialog +++ /dev/null @@ -1 +0,0 @@ -El {day} hi haurà {temp}, bastant agradable per a una IA diff --git a/locale/ca-es/at.time.local.cond.alternative.dialog b/locale/ca-es/hourly.condition.alternative.local.dialog similarity index 100% rename from locale/ca-es/at.time.local.cond.alternative.dialog rename to locale/ca-es/hourly.condition.alternative.local.dialog diff --git a/locale/ca-es/at.time.cond.alternative.dialog b/locale/ca-es/hourly.condition.alternative.location.dialog similarity index 100% rename from locale/ca-es/at.time.cond.alternative.dialog rename to locale/ca-es/hourly.condition.alternative.location.dialog diff --git a/locale/ca-es/at.time.local.affirmative.condition.dialog b/locale/ca-es/hourly.condition.expected.local.dialog similarity index 100% rename from locale/ca-es/at.time.local.affirmative.condition.dialog rename to locale/ca-es/hourly.condition.expected.local.dialog diff --git a/locale/ca-es/at.time.affirmative.condition.dialog b/locale/ca-es/hourly.condition.expected.location.dialog similarity index 100% rename from locale/ca-es/at.time.affirmative.condition.dialog rename to locale/ca-es/hourly.condition.expected.location.dialog diff --git a/locale/ca-es/at.time.local.no.cond.predicted.dialog b/locale/ca-es/hourly.condition.not.expected.local.dialog similarity index 100% rename from locale/ca-es/at.time.local.no.cond.predicted.dialog rename to locale/ca-es/hourly.condition.not.expected.local.dialog diff --git a/locale/ca-es/at.time.no.cond.predicted.dialog b/locale/ca-es/hourly.condition.not.expected.location.dialog similarity index 100% rename from locale/ca-es/at.time.no.cond.predicted.dialog rename to locale/ca-es/hourly.condition.not.expected.location.dialog diff --git a/locale/ca-es/at.time.local.temperature.dialog b/locale/ca-es/hourly.temperature.local.dialog similarity index 100% rename from locale/ca-es/at.time.local.temperature.dialog rename to locale/ca-es/hourly.temperature.local.dialog diff --git a/locale/ca-es/hour.local.weather.dialog b/locale/ca-es/hourly.weather.local.dialog similarity index 100% rename from locale/ca-es/hour.local.weather.dialog rename to locale/ca-es/hourly.weather.local.dialog diff --git a/locale/ca-es/hour.weather.dialog b/locale/ca-es/hourly.weather.location.dialog similarity index 100% rename from locale/ca-es/hour.weather.dialog rename to locale/ca-es/hourly.weather.location.dialog diff --git a/locale/ca-es/N.dialog b/locale/ca-es/north.dialog similarity index 100% rename from locale/ca-es/N.dialog rename to locale/ca-es/north.dialog diff --git a/locale/ca-es/NE.dialog b/locale/ca-es/northeast.dialog similarity index 100% rename from locale/ca-es/NE.dialog rename to locale/ca-es/northeast.dialog diff --git a/locale/ca-es/NW.dialog b/locale/ca-es/northwest.dialog similarity index 100% rename from locale/ca-es/NW.dialog rename to locale/ca-es/northwest.dialog diff --git a/locale/ca-es/report.condition.at.location.dialog b/locale/ca-es/report.condition.at.location.dialog deleted file mode 100644 index 6577ca38..00000000 --- a/locale/ca-es/report.condition.at.location.dialog +++ /dev/null @@ -1 +0,0 @@ -Actualment, {condition} a {location} és {value} diff --git a/locale/ca-es/report.condition.dialog b/locale/ca-es/report.condition.dialog deleted file mode 100644 index 312ff888..00000000 --- a/locale/ca-es/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -Actualment, {condition} és {value} diff --git a/locale/ca-es/report.condition.future.at.location.dialog b/locale/ca-es/report.condition.future.at.location.dialog deleted file mode 100644 index c33fe313..00000000 --- a/locale/ca-es/report.condition.future.at.location.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} a {location}, {condition} serà {value} -{day} el pronòstic a {location} anuncia {condition} de {value} diff --git a/locale/ca-es/report.condition.future.dialog b/locale/ca-es/report.condition.future.dialog deleted file mode 100644 index 3b58e10a..00000000 --- a/locale/ca-es/report.condition.future.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} per a {day} serà de {value} -{day} el pronòstic anuncia {condition} de {value} diff --git a/locale/ca-es/S.dialog b/locale/ca-es/south.dialog similarity index 100% rename from locale/ca-es/S.dialog rename to locale/ca-es/south.dialog diff --git a/locale/ca-es/SE.dialog b/locale/ca-es/southeast.dialog similarity index 100% rename from locale/ca-es/SE.dialog rename to locale/ca-es/southeast.dialog diff --git a/locale/ca-es/SW.dialog b/locale/ca-es/southwest.dialog similarity index 100% rename from locale/ca-es/SW.dialog rename to locale/ca-es/southwest.dialog diff --git a/locale/ca-es/W.dialog b/locale/ca-es/west.dialog similarity index 100% rename from locale/ca-es/W.dialog rename to locale/ca-es/west.dialog diff --git a/locale/ca-es/what.is.three.day.forecast.intent b/locale/ca-es/what.is.three.day.forecast.intent deleted file mode 100644 index 80de0c01..00000000 --- a/locale/ca-es/what.is.three.day.forecast.intent +++ /dev/null @@ -1,2 +0,0 @@ -pronòstic a (3|tres) dies -(explica'm|quál és) el|la (pronòstic|predicció meteorològica) (a 3 dies|a tres dies|ampliat) diff --git a/locale/ca-es/what.is.three.day.forecast.location.intent b/locale/ca-es/what.is.three.day.forecast.location.intent deleted file mode 100644 index 925569f9..00000000 --- a/locale/ca-es/what.is.three.day.forecast.location.intent +++ /dev/null @@ -1 +0,0 @@ -(explica'm|quál és) el pronòstic (a 3 dies|a tres dies|ampliat) (a|per a) {Location} diff --git a/locale/ca-es/what.is.two.day.forecast.intent b/locale/ca-es/what.is.two.day.forecast.intent deleted file mode 100644 index 6b160fd9..00000000 --- a/locale/ca-es/what.is.two.day.forecast.intent +++ /dev/null @@ -1,3 +0,0 @@ -clima per a {day_one} i {day_two} -com (estará| a ser) el clima el {day_one} i {day_two} -com serà el clima (per a|en) {day_one} i {day_two} diff --git a/locale/ca-es/wind.speed.dialog b/locale/ca-es/wind.speed.dialog deleted file mode 100644 index b98efb6f..00000000 --- a/locale/ca-es/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{speed} {unit} diff --git a/locale/ca-es/wind.speed.dir.dialog b/locale/ca-es/wind.speed.dir.dialog deleted file mode 100644 index 864a3b6a..00000000 --- a/locale/ca-es/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -a {speed} {unit} des del {dir} -des del {dir} a {speed} {unit} diff --git a/locale/ca-es/wind.strength.hard.dialog b/locale/ca-es/wind.strength.hard.dialog deleted file mode 100644 index a8400e3e..00000000 --- a/locale/ca-es/wind.strength.hard.dialog +++ /dev/null @@ -1 +0,0 @@ -Això és força fort diff --git a/locale/ca-es/wind.strength.light.dialog b/locale/ca-es/wind.strength.light.dialog deleted file mode 100644 index 06838bc6..00000000 --- a/locale/ca-es/wind.strength.light.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No molt ventós -Poc ventós -Bastant tranquil diff --git a/locale/ca-es/wind.strength.medium.dialog b/locale/ca-es/wind.strength.medium.dialog deleted file mode 100644 index 6ed2c239..00000000 --- a/locale/ca-es/wind.strength.medium.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Hi haurà vent suau. -Potser vulguis agafar una jaqueta diff --git a/locale/ca-es/winds.dialog b/locale/ca-es/winds.dialog deleted file mode 100644 index 38d40853..00000000 --- a/locale/ca-es/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -velocitat del vent diff --git a/locale/da-dk/Cloudy.voc b/locale/da-dk/Clouds.voc similarity index 100% rename from locale/da-dk/Cloudy.voc rename to locale/da-dk/Clouds.voc diff --git a/locale/da-dk/CloudyAlternatives.voc b/locale/da-dk/CloudsAlternatives.voc similarity index 100% rename from locale/da-dk/CloudyAlternatives.voc rename to locale/da-dk/CloudsAlternatives.voc diff --git a/locale/da-dk/Foggy.voc b/locale/da-dk/Fog.voc similarity index 100% rename from locale/da-dk/Foggy.voc rename to locale/da-dk/Fog.voc diff --git a/locale/da-dk/Raining.voc b/locale/da-dk/Rain.voc similarity index 100% rename from locale/da-dk/Raining.voc rename to locale/da-dk/Rain.voc diff --git a/locale/da-dk/Snowing.voc b/locale/da-dk/Snow.voc similarity index 100% rename from locale/da-dk/Snowing.voc rename to locale/da-dk/Snow.voc diff --git a/locale/da-dk/Storm.voc b/locale/da-dk/Thunderstorm.voc similarity index 100% rename from locale/da-dk/Storm.voc rename to locale/da-dk/Thunderstorm.voc diff --git a/locale/da-dk/StormAlternatives.voc b/locale/da-dk/ThunderstormAlternatives.voc similarity index 100% rename from locale/da-dk/StormAlternatives.voc rename to locale/da-dk/ThunderstormAlternatives.voc diff --git a/locale/da-dk/and.dialog b/locale/da-dk/and.dialog deleted file mode 100644 index e22bac65..00000000 --- a/locale/da-dk/and.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# , and -, og diff --git a/locale/da-dk/at.time.forecast.affirmative.condition.dialog b/locale/da-dk/at.time.forecast.affirmative.condition.dialog deleted file mode 100644 index 8ab531ff..00000000 --- a/locale/da-dk/at.time.forecast.affirmative.condition.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Affirmative response to questions like "is it going to snow in Paris tomorrow afternoon" -# Yes, the {time} forecast suggests {condition} in {location} {day} -Ja, det {time} prognosen antyder {condition} i {location} {day} -# Yes, the {time} forecast calls for {condition} in {location} {day} -Ja, det {time} prognose kræver {condition} i {location} {day} diff --git a/locale/da-dk/at.time.forecast.cond.alternative.dialog b/locale/da-dk/at.time.forecast.cond.alternative.dialog deleted file mode 100644 index 646764b9..00000000 --- a/locale/da-dk/at.time.forecast.cond.alternative.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to clear skies will occur at specified time -# No, the {time} forecast {day} calls for {condition} in {location} -Ingen, det {time} Vejrudsigt {day} kræver {condition} i {location} -# Doesn't seem so, the {time} forecast {day} suggests {location} will have {condition} -Ser ikke ud til, det {time} Vejrudsigt {day} foreslår {location} vil have {condition} diff --git a/locale/da-dk/at.time.forecast.local.affirmative.condition.dialog b/locale/da-dk/at.time.forecast.local.affirmative.condition.dialog deleted file mode 100644 index ecfb3d87..00000000 --- a/locale/da-dk/at.time.forecast.local.affirmative.condition.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Affirmative response to questions like "is it going to snow tomorrow" -# Yes, expect {condition} according to the {time} forecast {day} -Ja, forventer {condition} ifølge {time} Vejrudsigt {day} -# Yes, the {time} forecast calls for {condition} {day} -Ja, det {time} prognose kræver {condition} {day} diff --git a/locale/da-dk/at.time.forecast.local.cond.alternative.dialog b/locale/da-dk/at.time.forecast.local.cond.alternative.dialog deleted file mode 100644 index 5034fb80..00000000 --- a/locale/da-dk/at.time.forecast.local.cond.alternative.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to clear skies will occur -# No, the {time} forecast {day} calls for {condition} -Ingen, det {time} Vejrudsigt {day} kræver {condition} -# Doesn't seem so, the {time} forecast {day} suggests it's going to be {condition} -Ser ikke ud til, det {time} Vejrudsigt {day} antyder, at det bliver {condition} diff --git a/locale/da-dk/at.time.forecast.local.no.cond.predicted.dialog b/locale/da-dk/at.time.forecast.local.no.cond.predicted.dialog deleted file mode 100644 index be2a07f6..00000000 --- a/locale/da-dk/at.time.forecast.local.no.cond.predicted.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's one condition but it's not -# No, the {time} forecast {day} suggests {condition} -Ingen, det {time} Vejrudsigt {day} foreslår {condition} diff --git a/locale/da-dk/at.time.forecast.no.cond.predicted.dialog b/locale/da-dk/at.time.forecast.no.cond.predicted.dialog deleted file mode 100644 index 88eb43e9..00000000 --- a/locale/da-dk/at.time.forecast.no.cond.predicted.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's a condition but it's not -# No, the {time} forecast in {location} suggests it will be {condition} -Ingen, det {time} prognose i {location} antyder, at det bliver {condition} -# It doesn't seem so, the {time} forecast in {location} suggests it will be {condition} -Det ser ikke ud til, det {time} prognose i {location} antyder, at det bliver {condition} diff --git a/locale/da-dk/at.time.local.high.temperature.dialog b/locale/da-dk/at.time.local.high.temperature.dialog deleted file mode 100644 index d4590fe6..00000000 --- a/locale/da-dk/at.time.local.high.temperature.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# It will be as high as {temp} degrees {time} -Det vil være så højt som {temp} grader {time} -# {time}, it will get up to {temp} degrees -{time}, det vil komme op til {temp} grader diff --git a/locale/da-dk/at.time.local.low.temperature.dialog b/locale/da-dk/at.time.local.low.temperature.dialog deleted file mode 100644 index 60eb346c..00000000 --- a/locale/da-dk/at.time.local.low.temperature.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# It will be as low as {temp} degrees {time} -Det vil være så lavt som {temp} grader {time} -# {time}, it will get down to {temp} degrees -{time}, det kommer ned til {temp} grader diff --git a/locale/da-dk/at.time.local.weather.dialog b/locale/da-dk/at.time.local.weather.dialog deleted file mode 100644 index fb55f49b..00000000 --- a/locale/da-dk/at.time.local.weather.dialog +++ /dev/null @@ -1,8 +0,0 @@ -# It will be {condition}, with temperatures near {temp} in the {time} -Det vil være {condition}, med temperaturer nær {temp} i {time} -# {time}, it will be {condition} and around {temp} degrees -{time}, det vil være {condition} og omkring {temp} grader -# {time}, it will be {condition} and {temp} degrees -{time}, det vil være {condition} og {temp} grader -# {time}, it will be {temp} degrees with {condition} -{time}, det vil være {temp} grader med {condition} diff --git a/locale/da-dk/local.clear.alternative.dialog b/locale/da-dk/current.clear.alternative.local.dialog similarity index 100% rename from locale/da-dk/local.clear.alternative.dialog rename to locale/da-dk/current.clear.alternative.local.dialog diff --git a/locale/da-dk/clear.alternative.dialog b/locale/da-dk/current.clear.alternative.location.dialog similarity index 100% rename from locale/da-dk/clear.alternative.dialog rename to locale/da-dk/current.clear.alternative.location.dialog diff --git a/locale/da-dk/no.clear.predicted.dialog b/locale/da-dk/current.clear.not.expected.location.dialog similarity index 100% rename from locale/da-dk/no.clear.predicted.dialog rename to locale/da-dk/current.clear.not.expected.location.dialog diff --git a/locale/da-dk/local.cloudy.alternative.dialog b/locale/da-dk/current.clouds.alternative.local.dialog similarity index 100% rename from locale/da-dk/local.cloudy.alternative.dialog rename to locale/da-dk/current.clouds.alternative.local.dialog diff --git a/locale/da-dk/cloudy.alternative.dialog b/locale/da-dk/current.clouds.alternative.location.dialog similarity index 100% rename from locale/da-dk/cloudy.alternative.dialog rename to locale/da-dk/current.clouds.alternative.location.dialog diff --git a/locale/da-dk/local.no.cloudy.predicted.dialog b/locale/da-dk/current.clouds.not.expected.local.dialog similarity index 100% rename from locale/da-dk/local.no.cloudy.predicted.dialog rename to locale/da-dk/current.clouds.not.expected.local.dialog diff --git a/locale/da-dk/no.cloudy.predicted.dialog b/locale/da-dk/current.clouds.not.expected.location.dialog similarity index 100% rename from locale/da-dk/no.cloudy.predicted.dialog rename to locale/da-dk/current.clouds.not.expected.location.dialog diff --git a/locale/da-dk/local.affirmative.condition.dialog b/locale/da-dk/current.condition.expected.local.dialog similarity index 100% rename from locale/da-dk/local.affirmative.condition.dialog rename to locale/da-dk/current.condition.expected.local.dialog diff --git a/locale/da-dk/affirmative.condition.dialog b/locale/da-dk/current.condition.expected.location.dialog similarity index 100% rename from locale/da-dk/affirmative.condition.dialog rename to locale/da-dk/current.condition.expected.location.dialog diff --git a/locale/da-dk/local.foggy.alternative.dialog b/locale/da-dk/current.fog.alternative.local.dialog similarity index 100% rename from locale/da-dk/local.foggy.alternative.dialog rename to locale/da-dk/current.fog.alternative.local.dialog diff --git a/locale/da-dk/fog.alternative.dialog b/locale/da-dk/current.fog.alternative.location.dialog similarity index 100% rename from locale/da-dk/fog.alternative.dialog rename to locale/da-dk/current.fog.alternative.location.dialog diff --git a/locale/da-dk/local.no.fog.predicted.dialog b/locale/da-dk/current.fog.not.expected.local.dialog similarity index 100% rename from locale/da-dk/local.no.fog.predicted.dialog rename to locale/da-dk/current.fog.not.expected.local.dialog diff --git a/locale/da-dk/no.fog.predicted.dialog b/locale/da-dk/current.fog.not.expected.location.dialog similarity index 100% rename from locale/da-dk/no.fog.predicted.dialog rename to locale/da-dk/current.fog.not.expected.location.dialog diff --git a/locale/da-dk/current.hot.dialog b/locale/da-dk/current.hot.dialog deleted file mode 100644 index 58e276b3..00000000 --- a/locale/da-dk/current.hot.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# It's {temp} degrees {scale} in {location}, well within my operational temperature. -Det er {temp} grader {scale} i {location}, godt inden for min driftstemperatur. -# It's {temp} degrees in {location} which suits an A.I. just fine. -Det er {temp} grader i {location} der passer til en A.jeg. bare fint. diff --git a/locale/da-dk/humidity.dialog b/locale/da-dk/current.humidity.location.dialog similarity index 100% rename from locale/da-dk/humidity.dialog rename to locale/da-dk/current.humidity.location.dialog diff --git a/locale/da-dk/current.local.cold.dialog b/locale/da-dk/current.local.cold.dialog deleted file mode 100644 index 04885764..00000000 --- a/locale/da-dk/current.local.cold.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# currently it's {temp}, well within my operational temperature -i øjeblikket er det {temp}, godt inden for min driftstemperatur -# It's {temp}, quite comfy for an A. I. -Det er {temp}, ret behageligt for en A. jeg. diff --git a/locale/da-dk/current.local.hot.dialog b/locale/da-dk/current.local.hot.dialog deleted file mode 100644 index b755301f..00000000 --- a/locale/da-dk/current.local.hot.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# It's within my operational temperature, currently at {temp} degrees -Det er inden for min driftstemperatur, i øjeblikket kl {temp} grader -# It's {temp} degrees, quite comfy for an AI -Det er {temp} grader, ret behageligt for en AI diff --git a/locale/da-dk/local.raining.alternative.dialog b/locale/da-dk/current.rain.alternative.local.dialog similarity index 100% rename from locale/da-dk/local.raining.alternative.dialog rename to locale/da-dk/current.rain.alternative.local.dialog diff --git a/locale/da-dk/raining.alternative.dialog b/locale/da-dk/current.rain.alternative.location.dialog similarity index 100% rename from locale/da-dk/raining.alternative.dialog rename to locale/da-dk/current.rain.alternative.location.dialog diff --git a/locale/da-dk/local.no.rain.predicted.dialog b/locale/da-dk/current.rain.not.expected.local.dialog similarity index 100% rename from locale/da-dk/local.no.rain.predicted.dialog rename to locale/da-dk/current.rain.not.expected.local.dialog diff --git a/locale/da-dk/no.rain.predicted.dialog b/locale/da-dk/current.rain.not.expected.location.dialog similarity index 100% rename from locale/da-dk/no.rain.predicted.dialog rename to locale/da-dk/current.rain.not.expected.location.dialog diff --git a/locale/da-dk/local.snowing.alternative.dialog b/locale/da-dk/current.snow.alternative.local.dialog similarity index 100% rename from locale/da-dk/local.snowing.alternative.dialog rename to locale/da-dk/current.snow.alternative.local.dialog diff --git a/locale/da-dk/snowing.alternative.dialog b/locale/da-dk/current.snow.alternative.location.dialog similarity index 100% rename from locale/da-dk/snowing.alternative.dialog rename to locale/da-dk/current.snow.alternative.location.dialog diff --git a/locale/da-dk/local.no.snow.predicted.dialog b/locale/da-dk/current.snow.not.expected.local.dialog similarity index 100% rename from locale/da-dk/local.no.snow.predicted.dialog rename to locale/da-dk/current.snow.not.expected.local.dialog diff --git a/locale/da-dk/no.snow.predicted.dialog b/locale/da-dk/current.snow.not.expected.location.dialog similarity index 100% rename from locale/da-dk/no.snow.predicted.dialog rename to locale/da-dk/current.snow.not.expected.location.dialog diff --git a/locale/da-dk/current.local.high.temperature.dialog b/locale/da-dk/current.temperature.high.local.dialog similarity index 100% rename from locale/da-dk/current.local.high.temperature.dialog rename to locale/da-dk/current.temperature.high.local.dialog diff --git a/locale/da-dk/current.high.temperature.dialog b/locale/da-dk/current.temperature.high.location.dialog similarity index 100% rename from locale/da-dk/current.high.temperature.dialog rename to locale/da-dk/current.temperature.high.location.dialog diff --git a/locale/da-dk/min.max.dialog b/locale/da-dk/current.temperature.high.low.dialog similarity index 100% rename from locale/da-dk/min.max.dialog rename to locale/da-dk/current.temperature.high.low.dialog diff --git a/locale/da-dk/current.local.temperature.dialog b/locale/da-dk/current.temperature.local.dialog similarity index 100% rename from locale/da-dk/current.local.temperature.dialog rename to locale/da-dk/current.temperature.local.dialog diff --git a/locale/da-dk/current.temperature.dialog b/locale/da-dk/current.temperature.location.dialog similarity index 100% rename from locale/da-dk/current.temperature.dialog rename to locale/da-dk/current.temperature.location.dialog diff --git a/locale/da-dk/current.local.low.temperature.dialog b/locale/da-dk/current.temperature.low.local.dialog similarity index 100% rename from locale/da-dk/current.local.low.temperature.dialog rename to locale/da-dk/current.temperature.low.local.dialog diff --git a/locale/da-dk/current.low.temperature.dialog b/locale/da-dk/current.temperature.low.location.dialog similarity index 100% rename from locale/da-dk/current.low.temperature.dialog rename to locale/da-dk/current.temperature.low.location.dialog diff --git a/locale/da-dk/local.storm.alternative.dialog b/locale/da-dk/current.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/da-dk/local.storm.alternative.dialog rename to locale/da-dk/current.thunderstorm.alternative.local.dialog diff --git a/locale/da-dk/storm.alternative.dialog b/locale/da-dk/current.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/da-dk/storm.alternative.dialog rename to locale/da-dk/current.thunderstorm.alternative.location.dialog diff --git a/locale/da-dk/local.no.storm.predicted.dialog b/locale/da-dk/current.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/da-dk/local.no.storm.predicted.dialog rename to locale/da-dk/current.thunderstorm.not.expected.local.dialog diff --git a/locale/da-dk/no.storm.predicted.dialog b/locale/da-dk/current.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/da-dk/no.storm.predicted.dialog rename to locale/da-dk/current.thunderstorm.not.expected.location.dialog diff --git a/locale/da-dk/current.local.weather.dialog b/locale/da-dk/current.weather.local.dialog similarity index 100% rename from locale/da-dk/current.local.weather.dialog rename to locale/da-dk/current.weather.local.dialog diff --git a/locale/da-dk/current.weather.dialog b/locale/da-dk/current.weather.location.dialog similarity index 100% rename from locale/da-dk/current.weather.dialog rename to locale/da-dk/current.weather.location.dialog diff --git a/locale/da-dk/local.light.wind.dialog b/locale/da-dk/current.wind.light.local.dialog similarity index 100% rename from locale/da-dk/local.light.wind.dialog rename to locale/da-dk/current.wind.light.local.dialog diff --git a/locale/da-dk/light.wind.dialog b/locale/da-dk/current.wind.light.location.dialog similarity index 100% rename from locale/da-dk/light.wind.dialog rename to locale/da-dk/current.wind.light.location.dialog diff --git a/locale/da-dk/local.medium.wind.dialog b/locale/da-dk/current.wind.moderate.local.dialog similarity index 100% rename from locale/da-dk/local.medium.wind.dialog rename to locale/da-dk/current.wind.moderate.local.dialog diff --git a/locale/da-dk/medium.wind.dialog b/locale/da-dk/current.wind.moderate.location.dialog similarity index 100% rename from locale/da-dk/medium.wind.dialog rename to locale/da-dk/current.wind.moderate.location.dialog diff --git a/locale/da-dk/local.hard.wind.dialog b/locale/da-dk/current.wind.strong.local.dialog similarity index 100% rename from locale/da-dk/local.hard.wind.dialog rename to locale/da-dk/current.wind.strong.local.dialog diff --git a/locale/da-dk/hard.wind.dialog b/locale/da-dk/current.wind.strong.location.dialog similarity index 100% rename from locale/da-dk/hard.wind.dialog rename to locale/da-dk/current.wind.strong.location.dialog diff --git a/locale/da-dk/forecast.local.clear.alternative.dialog b/locale/da-dk/daily.clear.alternative.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.clear.alternative.dialog rename to locale/da-dk/daily.clear.alternative.local.dialog diff --git a/locale/da-dk/forecast.clear.alternative.dialog b/locale/da-dk/daily.clear.alternative.location.dialog similarity index 100% rename from locale/da-dk/forecast.clear.alternative.dialog rename to locale/da-dk/daily.clear.alternative.location.dialog diff --git a/locale/da-dk/forecast.local.no.clear.predicted.dialog b/locale/da-dk/daily.clear.not.expected.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.no.clear.predicted.dialog rename to locale/da-dk/daily.clear.not.expected.local.dialog diff --git a/locale/da-dk/forecast.no.clear.predicted.dialog b/locale/da-dk/daily.clear.not.expected.location.dialog similarity index 100% rename from locale/da-dk/forecast.no.clear.predicted.dialog rename to locale/da-dk/daily.clear.not.expected.location.dialog diff --git a/locale/da-dk/forecast.local.cloudy.alternative.dialog b/locale/da-dk/daily.clouds.alternative.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.cloudy.alternative.dialog rename to locale/da-dk/daily.clouds.alternative.local.dialog diff --git a/locale/da-dk/forecast.cloudy.alternative.dialog b/locale/da-dk/daily.clouds.alternative.location.dialog similarity index 100% rename from locale/da-dk/forecast.cloudy.alternative.dialog rename to locale/da-dk/daily.clouds.alternative.location.dialog diff --git a/locale/da-dk/forecast.local.no.cloudy.predicted.dialog b/locale/da-dk/daily.clouds.not.expected.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.no.cloudy.predicted.dialog rename to locale/da-dk/daily.clouds.not.expected.local.dialog diff --git a/locale/da-dk/forecast.no.cloudy.predicted.dialog b/locale/da-dk/daily.clouds.not.expected.location.dialog similarity index 100% rename from locale/da-dk/forecast.no.cloudy.predicted.dialog rename to locale/da-dk/daily.clouds.not.expected.location.dialog diff --git a/locale/da-dk/forecast.local.affirmative.condition.dialog b/locale/da-dk/daily.condition.expected.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.affirmative.condition.dialog rename to locale/da-dk/daily.condition.expected.local.dialog diff --git a/locale/da-dk/forecast.affirmative.condition.dialog b/locale/da-dk/daily.condition.expected.location.dialog similarity index 100% rename from locale/da-dk/forecast.affirmative.condition.dialog rename to locale/da-dk/daily.condition.expected.location.dialog diff --git a/locale/da-dk/forecast.local.foggy.alternative.dialog b/locale/da-dk/daily.fog.alternative.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.foggy.alternative.dialog rename to locale/da-dk/daily.fog.alternative.local.dialog diff --git a/locale/da-dk/forecast.foggy.alternative.dialog b/locale/da-dk/daily.fog.alternative.location.dialog similarity index 100% rename from locale/da-dk/forecast.foggy.alternative.dialog rename to locale/da-dk/daily.fog.alternative.location.dialog diff --git a/locale/da-dk/forecast.local.no.fog.predicted.dialog b/locale/da-dk/daily.fog.not.expected.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.no.fog.predicted.dialog rename to locale/da-dk/daily.fog.not.expected.local.dialog diff --git a/locale/da-dk/forecast.no.fog.predicted.dialog b/locale/da-dk/daily.fog.not.expected.location.dialog similarity index 100% rename from locale/da-dk/forecast.no.fog.predicted.dialog rename to locale/da-dk/daily.fog.not.expected.location.dialog diff --git a/locale/da-dk/forecast.local.raining.alternative.dialog b/locale/da-dk/daily.rain.alternative.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.raining.alternative.dialog rename to locale/da-dk/daily.rain.alternative.local.dialog diff --git a/locale/da-dk/forecast.raining.alternative.dialog b/locale/da-dk/daily.rain.alternative.location.dialog similarity index 100% rename from locale/da-dk/forecast.raining.alternative.dialog rename to locale/da-dk/daily.rain.alternative.location.dialog diff --git a/locale/da-dk/forecast.local.no.rain.predicted.dialog b/locale/da-dk/daily.rain.not.expected.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.no.rain.predicted.dialog rename to locale/da-dk/daily.rain.not.expected.local.dialog diff --git a/locale/da-dk/forecast.no.rain.predicted.dialog b/locale/da-dk/daily.rain.not.expected.location.dialog similarity index 100% rename from locale/da-dk/forecast.no.rain.predicted.dialog rename to locale/da-dk/daily.rain.not.expected.location.dialog diff --git a/locale/da-dk/forecast.snowing.alternative.dialog b/locale/da-dk/daily.snow.alternative.location.dialog similarity index 100% rename from locale/da-dk/forecast.snowing.alternative.dialog rename to locale/da-dk/daily.snow.alternative.location.dialog diff --git a/locale/da-dk/forecast.local.no.snow.predicted.dialog b/locale/da-dk/daily.snow.not.expected.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.no.snow.predicted.dialog rename to locale/da-dk/daily.snow.not.expected.local.dialog diff --git a/locale/da-dk/forecast.no.snow.predicted.dialog b/locale/da-dk/daily.snow.not.expected.location.dialog similarity index 100% rename from locale/da-dk/forecast.no.snow.predicted.dialog rename to locale/da-dk/daily.snow.not.expected.location.dialog diff --git a/locale/da-dk/forecast.local.high.temperature.dialog b/locale/da-dk/daily.temperature.high.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.high.temperature.dialog rename to locale/da-dk/daily.temperature.high.local.dialog diff --git a/locale/da-dk/forecast.high.temperature.dialog b/locale/da-dk/daily.temperature.high.location.dialog similarity index 100% rename from locale/da-dk/forecast.high.temperature.dialog rename to locale/da-dk/daily.temperature.high.location.dialog diff --git a/locale/da-dk/forecast.local.temperature.dialog b/locale/da-dk/daily.temperature.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.temperature.dialog rename to locale/da-dk/daily.temperature.local.dialog diff --git a/locale/da-dk/forecast.temperature.dialog b/locale/da-dk/daily.temperature.location.dialog similarity index 100% rename from locale/da-dk/forecast.temperature.dialog rename to locale/da-dk/daily.temperature.location.dialog diff --git a/locale/da-dk/forecast.local.low.temperature.dialog b/locale/da-dk/daily.temperature.low.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.low.temperature.dialog rename to locale/da-dk/daily.temperature.low.local.dialog diff --git a/locale/da-dk/forecast.low.temperature.dialog b/locale/da-dk/daily.temperature.low.location.dialog similarity index 100% rename from locale/da-dk/forecast.low.temperature.dialog rename to locale/da-dk/daily.temperature.low.location.dialog diff --git a/locale/da-dk/forecast.local.storm.alternative.dialog b/locale/da-dk/daily.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.storm.alternative.dialog rename to locale/da-dk/daily.thunderstorm.alternative.local.dialog diff --git a/locale/da-dk/forecast.storm.alternative.dialog b/locale/da-dk/daily.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/da-dk/forecast.storm.alternative.dialog rename to locale/da-dk/daily.thunderstorm.alternative.location.dialog diff --git a/locale/da-dk/forecast.local.no.storm.predicted.dialog b/locale/da-dk/daily.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.no.storm.predicted.dialog rename to locale/da-dk/daily.thunderstorm.not.expected.local.dialog diff --git a/locale/da-dk/forecast.no.storm.predicted.dialog b/locale/da-dk/daily.thunderstorm.not.exptected.location.dialog similarity index 100% rename from locale/da-dk/forecast.no.storm.predicted.dialog rename to locale/da-dk/daily.thunderstorm.not.exptected.location.dialog diff --git a/locale/da-dk/forecast.local.weather.dialog b/locale/da-dk/daily.weather.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.weather.dialog rename to locale/da-dk/daily.weather.local.dialog diff --git a/locale/da-dk/forecast.weather.dialog b/locale/da-dk/daily.weather.location.dialog similarity index 100% rename from locale/da-dk/forecast.weather.dialog rename to locale/da-dk/daily.weather.location.dialog diff --git a/locale/da-dk/forecast.local.light.wind.dialog b/locale/da-dk/daily.wind.light.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.light.wind.dialog rename to locale/da-dk/daily.wind.light.local.dialog diff --git a/locale/da-dk/forecast.light.wind.dialog b/locale/da-dk/daily.wind.light.location.dialog similarity index 100% rename from locale/da-dk/forecast.light.wind.dialog rename to locale/da-dk/daily.wind.light.location.dialog diff --git a/locale/da-dk/forecast.local.medium.wind.dialog b/locale/da-dk/daily.wind.moderate.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.medium.wind.dialog rename to locale/da-dk/daily.wind.moderate.local.dialog diff --git a/locale/da-dk/forecast.medium.wind.dialog b/locale/da-dk/daily.wind.moderate.location.dialog similarity index 100% rename from locale/da-dk/forecast.medium.wind.dialog rename to locale/da-dk/daily.wind.moderate.location.dialog diff --git a/locale/da-dk/forecast.local.hard.wind.dialog b/locale/da-dk/daily.wind.strong.local.dialog similarity index 100% rename from locale/da-dk/forecast.local.hard.wind.dialog rename to locale/da-dk/daily.wind.strong.local.dialog diff --git a/locale/da-dk/forecast.hard.wind.dialog b/locale/da-dk/daily.wind.strong.location.dialog similarity index 100% rename from locale/da-dk/forecast.hard.wind.dialog rename to locale/da-dk/daily.wind.strong.location.dialog diff --git a/locale/da-dk/E.dialog b/locale/da-dk/east.dialog similarity index 100% rename from locale/da-dk/E.dialog rename to locale/da-dk/east.dialog diff --git a/locale/da-dk/forecast.hot.dialog b/locale/da-dk/forecast.hot.dialog deleted file mode 100644 index 2befa23f..00000000 --- a/locale/da-dk/forecast.hot.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# {day} it'll be {temp} degrees in {location}, quite comfy for an A.I. -{day} det bliver det {temp} grader i {location}, ret behageligt for en A.jeg. -# {day} the temperature will be {temp} in {location}, well within my specifications -{day} temperaturen vil være {temp} i {location}, godt inden for mine specifikationer diff --git a/locale/da-dk/forecast.local.hot.dialog b/locale/da-dk/forecast.local.hot.dialog deleted file mode 100644 index 0251a3cb..00000000 --- a/locale/da-dk/forecast.local.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# {day} it'll be {temp}, quite comfy for an AI -{day} det bliver det {temp}, ret behageligt for en AI diff --git a/locale/da-dk/at.time.local.cond.alternative.dialog b/locale/da-dk/hourly.condition.alternative.local.dialog similarity index 100% rename from locale/da-dk/at.time.local.cond.alternative.dialog rename to locale/da-dk/hourly.condition.alternative.local.dialog diff --git a/locale/da-dk/at.time.cond.alternative.dialog b/locale/da-dk/hourly.condition.alternative.location.dialog similarity index 100% rename from locale/da-dk/at.time.cond.alternative.dialog rename to locale/da-dk/hourly.condition.alternative.location.dialog diff --git a/locale/da-dk/at.time.local.affirmative.condition.dialog b/locale/da-dk/hourly.condition.expected.local.dialog similarity index 100% rename from locale/da-dk/at.time.local.affirmative.condition.dialog rename to locale/da-dk/hourly.condition.expected.local.dialog diff --git a/locale/da-dk/at.time.affirmative.condition.dialog b/locale/da-dk/hourly.condition.expected.location.dialog similarity index 100% rename from locale/da-dk/at.time.affirmative.condition.dialog rename to locale/da-dk/hourly.condition.expected.location.dialog diff --git a/locale/da-dk/at.time.local.no.cond.predicted.dialog b/locale/da-dk/hourly.condition.not.expected.local.dialog similarity index 100% rename from locale/da-dk/at.time.local.no.cond.predicted.dialog rename to locale/da-dk/hourly.condition.not.expected.local.dialog diff --git a/locale/da-dk/at.time.no.cond.predicted.dialog b/locale/da-dk/hourly.condition.not.expected.location.dialog similarity index 100% rename from locale/da-dk/at.time.no.cond.predicted.dialog rename to locale/da-dk/hourly.condition.not.expected.location.dialog diff --git a/locale/da-dk/at.time.local.temperature.dialog b/locale/da-dk/hourly.temperature.local.dialog similarity index 100% rename from locale/da-dk/at.time.local.temperature.dialog rename to locale/da-dk/hourly.temperature.local.dialog diff --git a/locale/da-dk/hour.local.weather.dialog b/locale/da-dk/hourly.weather.local.dialog similarity index 100% rename from locale/da-dk/hour.local.weather.dialog rename to locale/da-dk/hourly.weather.local.dialog diff --git a/locale/da-dk/hour.weather.dialog b/locale/da-dk/hourly.weather.location.dialog similarity index 100% rename from locale/da-dk/hour.weather.dialog rename to locale/da-dk/hourly.weather.location.dialog diff --git a/locale/da-dk/N.dialog b/locale/da-dk/north.dialog similarity index 100% rename from locale/da-dk/N.dialog rename to locale/da-dk/north.dialog diff --git a/locale/da-dk/NE.dialog b/locale/da-dk/northeast.dialog similarity index 100% rename from locale/da-dk/NE.dialog rename to locale/da-dk/northeast.dialog diff --git a/locale/da-dk/NW.dialog b/locale/da-dk/northwest.dialog similarity index 100% rename from locale/da-dk/NW.dialog rename to locale/da-dk/northwest.dialog diff --git a/locale/da-dk/report.condition.at.location.dialog b/locale/da-dk/report.condition.at.location.dialog deleted file mode 100644 index 542719e0..00000000 --- a/locale/da-dk/report.condition.at.location.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# Currently, {condition} in {location} is {value} -I øjeblikket, {condition} i {location} er {value} diff --git a/locale/da-dk/report.condition.dialog b/locale/da-dk/report.condition.dialog deleted file mode 100644 index 9179d037..00000000 --- a/locale/da-dk/report.condition.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# Currently, {condition} is {value} -I øjeblikket, {condition} er {value} diff --git a/locale/da-dk/report.condition.future.at.location.dialog b/locale/da-dk/report.condition.future.at.location.dialog deleted file mode 100644 index 0cb9f82b..00000000 --- a/locale/da-dk/report.condition.future.at.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# {condition} in {location} {day} will be {value} -{condition} i {location} {day} vil være {value} -# {day} the forecast in {location} calls for {condition} of {value} -{day} prognosen i {location} kræver {condition} af {value} diff --git a/locale/da-dk/report.condition.future.dialog b/locale/da-dk/report.condition.future.dialog deleted file mode 100644 index a6ce6059..00000000 --- a/locale/da-dk/report.condition.future.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# {condition} {day} will be {value} -{condition} {day} vil være {value} -# {day} the forecast calls for {condition} of {value} -{day} prognosen kræver {condition} af {value} diff --git a/locale/da-dk/report.wind.dialog b/locale/da-dk/report.wind.dialog deleted file mode 100644 index f083500e..00000000 --- a/locale/da-dk/report.wind.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# {condition} is {value} -{condition} er {value} diff --git a/locale/da-dk/S.dialog b/locale/da-dk/south.dialog similarity index 100% rename from locale/da-dk/S.dialog rename to locale/da-dk/south.dialog diff --git a/locale/da-dk/SE.dialog b/locale/da-dk/southeast.dialog similarity index 100% rename from locale/da-dk/SE.dialog rename to locale/da-dk/southeast.dialog diff --git a/locale/da-dk/SW.dialog b/locale/da-dk/southwest.dialog similarity index 100% rename from locale/da-dk/SW.dialog rename to locale/da-dk/southwest.dialog diff --git a/locale/da-dk/tonight.local.weather.dialog b/locale/da-dk/tonight.local.weather.dialog deleted file mode 100644 index 120048ec..00000000 --- a/locale/da-dk/tonight.local.weather.dialog +++ /dev/null @@ -1,8 +0,0 @@ -# Tonight it will be {condition}, with temperatures near {temp} -I aften bliver det {condition}, med temperaturer nær {temp} -# Tonight it will be {condition} and around {temp} degrees -I aften bliver det {condition} og omkring {temp} grader -# Tonight it will be {condition} and {temp} degrees -I aften bliver det {condition} og {temp} grader -# Around {temp} degrees with {condition} tonight -Rundt om {temp} grader med {condition} i aften diff --git a/locale/da-dk/W.dialog b/locale/da-dk/west.dialog similarity index 100% rename from locale/da-dk/W.dialog rename to locale/da-dk/west.dialog diff --git a/locale/da-dk/what.is.three.day.forecast.intent b/locale/da-dk/what.is.three.day.forecast.intent deleted file mode 100644 index 269bb1fa..00000000 --- a/locale/da-dk/what.is.three.day.forecast.intent +++ /dev/null @@ -1,4 +0,0 @@ -# (3|three) day forecast -(3|tre) dag prognose -# (tell me|what is) the (3 day|three day|extended) (forecast|weather forecast) -(Fortæl mig|hvad er) det (3 dage|tre dage|udvidet) (Vejrudsigt|vejrudsigt) diff --git a/locale/da-dk/what.is.three.day.forecast.location.intent b/locale/da-dk/what.is.three.day.forecast.location.intent deleted file mode 100644 index 8686cc91..00000000 --- a/locale/da-dk/what.is.three.day.forecast.location.intent +++ /dev/null @@ -1,2 +0,0 @@ -# (tell me|what is) the (3 day|three-day|extended) (weather|forecast|weather forecast) (for|in) {Location} -(Fortæl mig|hvad er) det (3 dage|tredages|udvidet) (vejr|Vejrudsigt|vejrudsigt) (til|i) {Location} diff --git a/locale/da-dk/what.is.two.day.forecast.intent b/locale/da-dk/what.is.two.day.forecast.intent deleted file mode 100644 index 0dfd0d6f..00000000 --- a/locale/da-dk/what.is.two.day.forecast.intent +++ /dev/null @@ -1,6 +0,0 @@ -# weather (for|on|) (next|) {day_one} and {day_two} -vejr (til|på|) (Næste|) {day_one} og {day_two} -# what('s| is) the weather (going to |gonna |)be (like |)(for|on|) (next|) {day_one} and {day_two} -hvad('s| er) vejret (går til |skal nok |)være (synes godt om |)(til|på|) (Næste|) {day_one} og {day_two} -# what will the weather be (like |)(for|on|) (next|) {day_one} and {day_two} -hvad bliver vejret (synes godt om |)(til|på|) (Næste|) {day_one} og {day_two} diff --git a/locale/da-dk/whats.weather.like.intent b/locale/da-dk/whats.weather.like.intent deleted file mode 100644 index 98c73763..00000000 --- a/locale/da-dk/whats.weather.like.intent +++ /dev/null @@ -1,10 +0,0 @@ -# what is it like out (today|) -hvordan er det ud (i dag|) -# what is it like outside -hvordan er det udenfor -# weather -vejr -# forecast -Vejrudsigt -# weather forecast -vejrudsigt diff --git a/locale/da-dk/wind.speed.dialog b/locale/da-dk/wind.speed.dialog deleted file mode 100644 index 8fd14cd7..00000000 --- a/locale/da-dk/wind.speed.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# {speed} {unit} -{speed} {unit} diff --git a/locale/da-dk/wind.speed.dir.dialog b/locale/da-dk/wind.speed.dir.dialog deleted file mode 100644 index 35c2b774..00000000 --- a/locale/da-dk/wind.speed.dir.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# at {speed} {unit} from the {dir} -på {speed} {unit} fra {dir} -# from the {dir} at {speed} {unit} -fra {dir} på {speed} {unit} diff --git a/locale/da-dk/wind.strength.hard.dialog b/locale/da-dk/wind.strength.hard.dialog deleted file mode 100644 index 21dbecf0..00000000 --- a/locale/da-dk/wind.strength.hard.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# That's quite strong -Det er ret stærkt diff --git a/locale/da-dk/wind.strength.light.dialog b/locale/da-dk/wind.strength.light.dialog deleted file mode 100644 index 5390a361..00000000 --- a/locale/da-dk/wind.strength.light.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# Not very windy -Ikke meget blæsende -# Not much wind -Ikke meget vind -# Quite calm -Ganske rolig diff --git a/locale/da-dk/wind.strength.medium.dialog b/locale/da-dk/wind.strength.medium.dialog deleted file mode 100644 index 0ab15e30..00000000 --- a/locale/da-dk/wind.strength.medium.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# That's getting breezy. -Det bliver blæsende. -# You might want to take a jacket -Du ønsker måske at tage en jakke diff --git a/locale/da-dk/winds.dialog b/locale/da-dk/winds.dialog deleted file mode 100644 index 2193f28f..00000000 --- a/locale/da-dk/winds.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# wind speed -vindhastighed diff --git a/locale/de-de/Cloudy.voc b/locale/de-de/Clouds.voc similarity index 100% rename from locale/de-de/Cloudy.voc rename to locale/de-de/Clouds.voc diff --git a/locale/de-de/CloudyAlternatives.voc b/locale/de-de/CloudsAlternatives.voc similarity index 100% rename from locale/de-de/CloudyAlternatives.voc rename to locale/de-de/CloudsAlternatives.voc diff --git a/locale/de-de/Foggy.voc b/locale/de-de/Fog.voc similarity index 100% rename from locale/de-de/Foggy.voc rename to locale/de-de/Fog.voc diff --git a/locale/de-de/Raining.voc b/locale/de-de/Rain.voc similarity index 100% rename from locale/de-de/Raining.voc rename to locale/de-de/Rain.voc diff --git a/locale/de-de/Snowing.voc b/locale/de-de/Snow.voc similarity index 100% rename from locale/de-de/Snowing.voc rename to locale/de-de/Snow.voc diff --git a/locale/de-de/Storm.voc b/locale/de-de/Thunderstorm.voc similarity index 100% rename from locale/de-de/Storm.voc rename to locale/de-de/Thunderstorm.voc diff --git a/locale/de-de/StormAlternatives.voc b/locale/de-de/ThunderstormAlternatives.voc similarity index 100% rename from locale/de-de/StormAlternatives.voc rename to locale/de-de/ThunderstormAlternatives.voc diff --git a/locale/de-de/and.dialog b/locale/de-de/and.dialog deleted file mode 100644 index c7d3bb55..00000000 --- a/locale/de-de/and.dialog +++ /dev/null @@ -1 +0,0 @@ -, und diff --git a/locale/de-de/at.time.forecast.affirmative.condition.dialog b/locale/de-de/at.time.forecast.affirmative.condition.dialog deleted file mode 100644 index 90c35490..00000000 --- a/locale/de-de/at.time.forecast.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Bejahende Antwort auf Fragen wie "Wird es morgen nachmittag in Paris schneien?" -Ja, aber die Prognose für {location} am {day} um {time} ist {condition} -Ja, die {time} Vorhersage nennt {condition} in {location} am {day} diff --git a/locale/de-de/at.time.forecast.cond.alternative.dialog b/locale/de-de/at.time.forecast.cond.alternative.dialog deleted file mode 100644 index 7f67b0e1..00000000 --- a/locale/de-de/at.time.forecast.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Es wird darauf hingewiesen, dass zu einem bestimmten Zeitpunkt eine Alternative zum klaren Himmel auftreten wird -Nein, die {time} Vorhersage {day} zeigt {condition} in {location} -Scheint nicht so, die {time} Vorhersage {day} spricht davon dass {location} {condition} haben wird diff --git a/locale/de-de/at.time.forecast.local.affirmative.condition.dialog b/locale/de-de/at.time.forecast.local.affirmative.condition.dialog deleted file mode 100644 index 2540df85..00000000 --- a/locale/de-de/at.time.forecast.local.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Bejahende Antwort auf Fragen wie "Wird es morgen schneien?" -Ja, rechne mit {condition} gemäß {time} Prognose {day} -Ja, die {time} Vorhersage zeigt {condition} {day} diff --git a/locale/de-de/at.time.forecast.local.cond.alternative.dialog b/locale/de-de/at.time.forecast.local.cond.alternative.dialog deleted file mode 100644 index 7d27a815..00000000 --- a/locale/de-de/at.time.forecast.local.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass es eine Alternative zum klaren Himmel gibt -Nein, die {time} Vorhersage {day} zeigt {condition} -Scheint nicht so, die {time} Vorhersage {day} legt nahe, dass es {condition} sein wird diff --git a/locale/de-de/at.time.forecast.local.no.cond.predicted.dialog b/locale/de-de/at.time.forecast.local.no.cond.predicted.dialog deleted file mode 100644 index 563d4e73..00000000 --- a/locale/de-de/at.time.forecast.local.no.cond.predicted.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# Wenn der Benutzer fragt, ob es sich um eine Bedingung handelt, dies jedoch nicht -Nein, die {time} Vorhersage {day} legt {condition} nahe diff --git a/locale/de-de/at.time.forecast.no.cond.predicted.dialog b/locale/de-de/at.time.forecast.no.cond.predicted.dialog deleted file mode 100644 index ff62485f..00000000 --- a/locale/de-de/at.time.forecast.no.cond.predicted.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es sich um eine Bedingung handelt, dies jedoch nicht -Nein, die {time} Vorhersage in {location} legt nahe, dass es sich um {condition} handeln wird. -Es scheint nicht so, die {time} Vorhersage in {location} legt nahe, dass es sich um {condition} handeln wird. diff --git a/locale/de-de/at.time.local.high.temperature.dialog b/locale/de-de/at.time.local.high.temperature.dialog deleted file mode 100644 index a95bb7f1..00000000 --- a/locale/de-de/at.time.local.high.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Es wird so hoch wie {temp} Grad {time} sein -{time}, wird es auf {temp} Grad kommen diff --git a/locale/de-de/at.time.local.low.temperature.dialog b/locale/de-de/at.time.local.low.temperature.dialog deleted file mode 100644 index 5c8f5187..00000000 --- a/locale/de-de/at.time.local.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Es wird so niedrig wie {temp} Grad {time} sein -{time}, wird auf es auf {temp} Grad herunterkommen diff --git a/locale/de-de/at.time.local.weather.dialog b/locale/de-de/at.time.local.weather.dialog deleted file mode 100644 index 4948e0b5..00000000 --- a/locale/de-de/at.time.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Es wird {condition}, mit Temperaturen nahe {temp} Grad um {time} -{time}, es wird {condition} und ungefähr {temp} Grad geben -{time}, es werden {condition} und {temp} Grad erwartet -{time}, es werden {temp} Grad mit {condition} diff --git a/locale/de-de/local.clear.alternative.dialog b/locale/de-de/current.clear.alternative.local.dialog similarity index 100% rename from locale/de-de/local.clear.alternative.dialog rename to locale/de-de/current.clear.alternative.local.dialog diff --git a/locale/de-de/clear.alternative.dialog b/locale/de-de/current.clear.alternative.location.dialog similarity index 100% rename from locale/de-de/clear.alternative.dialog rename to locale/de-de/current.clear.alternative.location.dialog diff --git a/locale/de-de/no.clear.predicted.dialog b/locale/de-de/current.clear.not.expected.location.dialog similarity index 100% rename from locale/de-de/no.clear.predicted.dialog rename to locale/de-de/current.clear.not.expected.location.dialog diff --git a/locale/de-de/local.cloudy.alternative.dialog b/locale/de-de/current.clouds.alternative.local.dialog similarity index 100% rename from locale/de-de/local.cloudy.alternative.dialog rename to locale/de-de/current.clouds.alternative.local.dialog diff --git a/locale/de-de/cloudy.alternative.dialog b/locale/de-de/current.clouds.alternative.location.dialog similarity index 100% rename from locale/de-de/cloudy.alternative.dialog rename to locale/de-de/current.clouds.alternative.location.dialog diff --git a/locale/de-de/local.no.cloudy.predicted.dialog b/locale/de-de/current.clouds.not.expected.local.dialog similarity index 100% rename from locale/de-de/local.no.cloudy.predicted.dialog rename to locale/de-de/current.clouds.not.expected.local.dialog diff --git a/locale/de-de/no.cloudy.predicted.dialog b/locale/de-de/current.clouds.not.expected.location.dialog similarity index 100% rename from locale/de-de/no.cloudy.predicted.dialog rename to locale/de-de/current.clouds.not.expected.location.dialog diff --git a/locale/de-de/local.affirmative.condition.dialog b/locale/de-de/current.condition.expected.local.dialog similarity index 100% rename from locale/de-de/local.affirmative.condition.dialog rename to locale/de-de/current.condition.expected.local.dialog diff --git a/locale/de-de/affirmative.condition.dialog b/locale/de-de/current.condition.expected.location.dialog similarity index 100% rename from locale/de-de/affirmative.condition.dialog rename to locale/de-de/current.condition.expected.location.dialog diff --git a/locale/de-de/local.foggy.alternative.dialog b/locale/de-de/current.fog.alternative.local.dialog similarity index 100% rename from locale/de-de/local.foggy.alternative.dialog rename to locale/de-de/current.fog.alternative.local.dialog diff --git a/locale/de-de/fog.alternative.dialog b/locale/de-de/current.fog.alternative.location.dialog similarity index 100% rename from locale/de-de/fog.alternative.dialog rename to locale/de-de/current.fog.alternative.location.dialog diff --git a/locale/de-de/local.no.fog.predicted.dialog b/locale/de-de/current.fog.not.expected.local.dialog similarity index 100% rename from locale/de-de/local.no.fog.predicted.dialog rename to locale/de-de/current.fog.not.expected.local.dialog diff --git a/locale/de-de/no.fog.predicted.dialog b/locale/de-de/current.fog.not.expected.location.dialog similarity index 100% rename from locale/de-de/no.fog.predicted.dialog rename to locale/de-de/current.fog.not.expected.location.dialog diff --git a/locale/de-de/current.hot.dialog b/locale/de-de/current.hot.dialog deleted file mode 100644 index 968ecef0..00000000 --- a/locale/de-de/current.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Es ist {temp} Grad {scale} in {location}, gut innerhalb meiner Betriebstemperatur. -Es sind {temp} Grad in {location}, das passt zu einer K.I. Alles gut. diff --git a/locale/de-de/humidity.dialog b/locale/de-de/current.humidity.location.dialog similarity index 100% rename from locale/de-de/humidity.dialog rename to locale/de-de/current.humidity.location.dialog diff --git a/locale/de-de/current.local.cold.dialog b/locale/de-de/current.local.cold.dialog deleted file mode 100644 index a8155bd4..00000000 --- a/locale/de-de/current.local.cold.dialog +++ /dev/null @@ -1,2 +0,0 @@ -derzeit ist es {temp}, also gut innerhalb meiner Betriebstemperatur -Es sind {temp} grad, sehr angenehm für eine K. I. diff --git a/locale/de-de/current.local.hot.dialog b/locale/de-de/current.local.hot.dialog deleted file mode 100644 index 12130428..00000000 --- a/locale/de-de/current.local.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Es liegt innerhalb meiner Betriebstemperatur, derzeit bei {temp} Grad -Es ist {temp} Grad, ziemlich bequem für eine KI diff --git a/locale/de-de/local.raining.alternative.dialog b/locale/de-de/current.rain.alternative.local.dialog similarity index 100% rename from locale/de-de/local.raining.alternative.dialog rename to locale/de-de/current.rain.alternative.local.dialog diff --git a/locale/de-de/raining.alternative.dialog b/locale/de-de/current.rain.alternative.location.dialog similarity index 100% rename from locale/de-de/raining.alternative.dialog rename to locale/de-de/current.rain.alternative.location.dialog diff --git a/locale/de-de/local.no.rain.predicted.dialog b/locale/de-de/current.rain.not.expected.local.dialog similarity index 100% rename from locale/de-de/local.no.rain.predicted.dialog rename to locale/de-de/current.rain.not.expected.local.dialog diff --git a/locale/de-de/no.rain.predicted.dialog b/locale/de-de/current.rain.not.expected.location.dialog similarity index 100% rename from locale/de-de/no.rain.predicted.dialog rename to locale/de-de/current.rain.not.expected.location.dialog diff --git a/locale/de-de/local.snowing.alternative.dialog b/locale/de-de/current.snow.alternative.local.dialog similarity index 100% rename from locale/de-de/local.snowing.alternative.dialog rename to locale/de-de/current.snow.alternative.local.dialog diff --git a/locale/de-de/snowing.alternative.dialog b/locale/de-de/current.snow.alternative.location.dialog similarity index 100% rename from locale/de-de/snowing.alternative.dialog rename to locale/de-de/current.snow.alternative.location.dialog diff --git a/locale/de-de/local.no.snow.predicted.dialog b/locale/de-de/current.snow.not.expected.local.dialog similarity index 100% rename from locale/de-de/local.no.snow.predicted.dialog rename to locale/de-de/current.snow.not.expected.local.dialog diff --git a/locale/de-de/no.snow.predicted.dialog b/locale/de-de/current.snow.not.expected.location.dialog similarity index 100% rename from locale/de-de/no.snow.predicted.dialog rename to locale/de-de/current.snow.not.expected.location.dialog diff --git a/locale/de-de/current.local.high.temperature.dialog b/locale/de-de/current.temperature.high.local.dialog similarity index 100% rename from locale/de-de/current.local.high.temperature.dialog rename to locale/de-de/current.temperature.high.local.dialog diff --git a/locale/de-de/current.high.temperature.dialog b/locale/de-de/current.temperature.high.location.dialog similarity index 100% rename from locale/de-de/current.high.temperature.dialog rename to locale/de-de/current.temperature.high.location.dialog diff --git a/locale/de-de/min.max.dialog b/locale/de-de/current.temperature.high.low.dialog similarity index 100% rename from locale/de-de/min.max.dialog rename to locale/de-de/current.temperature.high.low.dialog diff --git a/locale/de-de/current.local.temperature.dialog b/locale/de-de/current.temperature.local.dialog similarity index 100% rename from locale/de-de/current.local.temperature.dialog rename to locale/de-de/current.temperature.local.dialog diff --git a/locale/de-de/current.temperature.dialog b/locale/de-de/current.temperature.location.dialog similarity index 100% rename from locale/de-de/current.temperature.dialog rename to locale/de-de/current.temperature.location.dialog diff --git a/locale/de-de/current.local.low.temperature.dialog b/locale/de-de/current.temperature.low.local.dialog similarity index 100% rename from locale/de-de/current.local.low.temperature.dialog rename to locale/de-de/current.temperature.low.local.dialog diff --git a/locale/de-de/current.low.temperature.dialog b/locale/de-de/current.temperature.low.location.dialog similarity index 100% rename from locale/de-de/current.low.temperature.dialog rename to locale/de-de/current.temperature.low.location.dialog diff --git a/locale/de-de/local.storm.alternative.dialog b/locale/de-de/current.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/de-de/local.storm.alternative.dialog rename to locale/de-de/current.thunderstorm.alternative.local.dialog diff --git a/locale/de-de/storm.alternative.dialog b/locale/de-de/current.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/de-de/storm.alternative.dialog rename to locale/de-de/current.thunderstorm.alternative.location.dialog diff --git a/locale/de-de/local.no.storm.predicted.dialog b/locale/de-de/current.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/de-de/local.no.storm.predicted.dialog rename to locale/de-de/current.thunderstorm.not.expected.local.dialog diff --git a/locale/de-de/no.storm.predicted.dialog b/locale/de-de/current.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/de-de/no.storm.predicted.dialog rename to locale/de-de/current.thunderstorm.not.expected.location.dialog diff --git a/locale/de-de/current.local.weather.dialog b/locale/de-de/current.weather.local.dialog similarity index 100% rename from locale/de-de/current.local.weather.dialog rename to locale/de-de/current.weather.local.dialog diff --git a/locale/de-de/current.weather.dialog b/locale/de-de/current.weather.location.dialog similarity index 100% rename from locale/de-de/current.weather.dialog rename to locale/de-de/current.weather.location.dialog diff --git a/locale/de-de/local.light.wind.dialog b/locale/de-de/current.wind.light.local.dialog similarity index 100% rename from locale/de-de/local.light.wind.dialog rename to locale/de-de/current.wind.light.local.dialog diff --git a/locale/de-de/light.wind.dialog b/locale/de-de/current.wind.light.location.dialog similarity index 100% rename from locale/de-de/light.wind.dialog rename to locale/de-de/current.wind.light.location.dialog diff --git a/locale/de-de/local.medium.wind.dialog b/locale/de-de/current.wind.moderate.local.dialog similarity index 100% rename from locale/de-de/local.medium.wind.dialog rename to locale/de-de/current.wind.moderate.local.dialog diff --git a/locale/de-de/medium.wind.dialog b/locale/de-de/current.wind.moderate.location.dialog similarity index 100% rename from locale/de-de/medium.wind.dialog rename to locale/de-de/current.wind.moderate.location.dialog diff --git a/locale/de-de/local.hard.wind.dialog b/locale/de-de/current.wind.strong.local.dialog similarity index 100% rename from locale/de-de/local.hard.wind.dialog rename to locale/de-de/current.wind.strong.local.dialog diff --git a/locale/de-de/hard.wind.dialog b/locale/de-de/current.wind.strong.location.dialog similarity index 100% rename from locale/de-de/hard.wind.dialog rename to locale/de-de/current.wind.strong.location.dialog diff --git a/locale/de-de/forecast.local.clear.alternative.dialog b/locale/de-de/daily.clear.alternative.local.dialog similarity index 100% rename from locale/de-de/forecast.local.clear.alternative.dialog rename to locale/de-de/daily.clear.alternative.local.dialog diff --git a/locale/de-de/forecast.clear.alternative.dialog b/locale/de-de/daily.clear.alternative.location.dialog similarity index 100% rename from locale/de-de/forecast.clear.alternative.dialog rename to locale/de-de/daily.clear.alternative.location.dialog diff --git a/locale/de-de/forecast.local.no.clear.predicted.dialog b/locale/de-de/daily.clear.not.expected.local.dialog similarity index 100% rename from locale/de-de/forecast.local.no.clear.predicted.dialog rename to locale/de-de/daily.clear.not.expected.local.dialog diff --git a/locale/de-de/forecast.no.clear.predicted.dialog b/locale/de-de/daily.clear.not.expected.location.dialog similarity index 100% rename from locale/de-de/forecast.no.clear.predicted.dialog rename to locale/de-de/daily.clear.not.expected.location.dialog diff --git a/locale/de-de/forecast.local.cloudy.alternative.dialog b/locale/de-de/daily.clouds.alternative.local.dialog similarity index 100% rename from locale/de-de/forecast.local.cloudy.alternative.dialog rename to locale/de-de/daily.clouds.alternative.local.dialog diff --git a/locale/de-de/forecast.cloudy.alternative.dialog b/locale/de-de/daily.clouds.alternative.location.dialog similarity index 100% rename from locale/de-de/forecast.cloudy.alternative.dialog rename to locale/de-de/daily.clouds.alternative.location.dialog diff --git a/locale/de-de/forecast.local.no.cloudy.predicted.dialog b/locale/de-de/daily.clouds.not.expected.local.dialog similarity index 100% rename from locale/de-de/forecast.local.no.cloudy.predicted.dialog rename to locale/de-de/daily.clouds.not.expected.local.dialog diff --git a/locale/de-de/forecast.no.cloudy.predicted.dialog b/locale/de-de/daily.clouds.not.expected.location.dialog similarity index 100% rename from locale/de-de/forecast.no.cloudy.predicted.dialog rename to locale/de-de/daily.clouds.not.expected.location.dialog diff --git a/locale/de-de/forecast.local.affirmative.condition.dialog b/locale/de-de/daily.condition.expected.local.dialog similarity index 100% rename from locale/de-de/forecast.local.affirmative.condition.dialog rename to locale/de-de/daily.condition.expected.local.dialog diff --git a/locale/de-de/forecast.affirmative.condition.dialog b/locale/de-de/daily.condition.expected.location.dialog similarity index 100% rename from locale/de-de/forecast.affirmative.condition.dialog rename to locale/de-de/daily.condition.expected.location.dialog diff --git a/locale/de-de/forecast.local.foggy.alternative.dialog b/locale/de-de/daily.fog.alternative.local.dialog similarity index 100% rename from locale/de-de/forecast.local.foggy.alternative.dialog rename to locale/de-de/daily.fog.alternative.local.dialog diff --git a/locale/de-de/forecast.foggy.alternative.dialog b/locale/de-de/daily.fog.alternative.location.dialog similarity index 100% rename from locale/de-de/forecast.foggy.alternative.dialog rename to locale/de-de/daily.fog.alternative.location.dialog diff --git a/locale/de-de/forecast.local.no.fog.predicted.dialog b/locale/de-de/daily.fog.not.expected.local.dialog similarity index 100% rename from locale/de-de/forecast.local.no.fog.predicted.dialog rename to locale/de-de/daily.fog.not.expected.local.dialog diff --git a/locale/de-de/forecast.no.fog.predicted.dialog b/locale/de-de/daily.fog.not.expected.location.dialog similarity index 100% rename from locale/de-de/forecast.no.fog.predicted.dialog rename to locale/de-de/daily.fog.not.expected.location.dialog diff --git a/locale/de-de/forecast.local.raining.alternative.dialog b/locale/de-de/daily.rain.alternative.local.dialog similarity index 100% rename from locale/de-de/forecast.local.raining.alternative.dialog rename to locale/de-de/daily.rain.alternative.local.dialog diff --git a/locale/de-de/forecast.raining.alternative.dialog b/locale/de-de/daily.rain.alternative.location.dialog similarity index 100% rename from locale/de-de/forecast.raining.alternative.dialog rename to locale/de-de/daily.rain.alternative.location.dialog diff --git a/locale/de-de/forecast.local.no.rain.predicted.dialog b/locale/de-de/daily.rain.not.expected.local.dialog similarity index 100% rename from locale/de-de/forecast.local.no.rain.predicted.dialog rename to locale/de-de/daily.rain.not.expected.local.dialog diff --git a/locale/de-de/forecast.no.rain.predicted.dialog b/locale/de-de/daily.rain.not.expected.location.dialog similarity index 100% rename from locale/de-de/forecast.no.rain.predicted.dialog rename to locale/de-de/daily.rain.not.expected.location.dialog diff --git a/locale/de-de/forecast.snowing.alternative.dialog b/locale/de-de/daily.snow.alternative.location.dialog similarity index 100% rename from locale/de-de/forecast.snowing.alternative.dialog rename to locale/de-de/daily.snow.alternative.location.dialog diff --git a/locale/de-de/forecast.local.no.snow.predicted.dialog b/locale/de-de/daily.snow.not.expected.local.dialog similarity index 100% rename from locale/de-de/forecast.local.no.snow.predicted.dialog rename to locale/de-de/daily.snow.not.expected.local.dialog diff --git a/locale/de-de/forecast.no.snow.predicted.dialog b/locale/de-de/daily.snow.not.expected.location.dialog similarity index 100% rename from locale/de-de/forecast.no.snow.predicted.dialog rename to locale/de-de/daily.snow.not.expected.location.dialog diff --git a/locale/de-de/forecast.local.high.temperature.dialog b/locale/de-de/daily.temperature.high.local.dialog similarity index 100% rename from locale/de-de/forecast.local.high.temperature.dialog rename to locale/de-de/daily.temperature.high.local.dialog diff --git a/locale/de-de/forecast.high.temperature.dialog b/locale/de-de/daily.temperature.high.location.dialog similarity index 100% rename from locale/de-de/forecast.high.temperature.dialog rename to locale/de-de/daily.temperature.high.location.dialog diff --git a/locale/de-de/forecast.local.temperature.dialog b/locale/de-de/daily.temperature.local.dialog similarity index 100% rename from locale/de-de/forecast.local.temperature.dialog rename to locale/de-de/daily.temperature.local.dialog diff --git a/locale/de-de/forecast.temperature.dialog b/locale/de-de/daily.temperature.location.dialog similarity index 100% rename from locale/de-de/forecast.temperature.dialog rename to locale/de-de/daily.temperature.location.dialog diff --git a/locale/de-de/forecast.local.low.temperature.dialog b/locale/de-de/daily.temperature.low.local.dialog similarity index 100% rename from locale/de-de/forecast.local.low.temperature.dialog rename to locale/de-de/daily.temperature.low.local.dialog diff --git a/locale/de-de/forecast.low.temperature.dialog b/locale/de-de/daily.temperature.low.location.dialog similarity index 100% rename from locale/de-de/forecast.low.temperature.dialog rename to locale/de-de/daily.temperature.low.location.dialog diff --git a/locale/de-de/forecast.local.storm.alternative.dialog b/locale/de-de/daily.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/de-de/forecast.local.storm.alternative.dialog rename to locale/de-de/daily.thunderstorm.alternative.local.dialog diff --git a/locale/de-de/forecast.storm.alternative.dialog b/locale/de-de/daily.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/de-de/forecast.storm.alternative.dialog rename to locale/de-de/daily.thunderstorm.alternative.location.dialog diff --git a/locale/de-de/forecast.local.no.storm.predicted.dialog b/locale/de-de/daily.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/de-de/forecast.local.no.storm.predicted.dialog rename to locale/de-de/daily.thunderstorm.not.expected.local.dialog diff --git a/locale/de-de/forecast.no.storm.predicted.dialog b/locale/de-de/daily.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/de-de/forecast.no.storm.predicted.dialog rename to locale/de-de/daily.thunderstorm.not.expected.location.dialog diff --git a/locale/de-de/forecast.local.weather.dialog b/locale/de-de/daily.weather.local.dialog similarity index 100% rename from locale/de-de/forecast.local.weather.dialog rename to locale/de-de/daily.weather.local.dialog diff --git a/locale/de-de/forecast.weather.dialog b/locale/de-de/daily.weather.location.dialog similarity index 100% rename from locale/de-de/forecast.weather.dialog rename to locale/de-de/daily.weather.location.dialog diff --git a/locale/de-de/forecast.local.light.wind.dialog b/locale/de-de/daily.wind.light.local.dialog similarity index 100% rename from locale/de-de/forecast.local.light.wind.dialog rename to locale/de-de/daily.wind.light.local.dialog diff --git a/locale/de-de/forecast.light.wind.dialog b/locale/de-de/daily.wind.light.location.dialog similarity index 100% rename from locale/de-de/forecast.light.wind.dialog rename to locale/de-de/daily.wind.light.location.dialog diff --git a/locale/de-de/forecast.local.medium.wind.dialog b/locale/de-de/daily.wind.moderate.local.dialog similarity index 100% rename from locale/de-de/forecast.local.medium.wind.dialog rename to locale/de-de/daily.wind.moderate.local.dialog diff --git a/locale/de-de/forecast.medium.wind.dialog b/locale/de-de/daily.wind.moderate.location.dialog similarity index 100% rename from locale/de-de/forecast.medium.wind.dialog rename to locale/de-de/daily.wind.moderate.location.dialog diff --git a/locale/de-de/forecast.local.hard.wind.dialog b/locale/de-de/daily.wind.strong.local.dialog similarity index 100% rename from locale/de-de/forecast.local.hard.wind.dialog rename to locale/de-de/daily.wind.strong.local.dialog diff --git a/locale/de-de/forecast.hard.wind.dialog b/locale/de-de/daily.wind.strong.location.dialog similarity index 100% rename from locale/de-de/forecast.hard.wind.dialog rename to locale/de-de/daily.wind.strong.location.dialog diff --git a/locale/de-de/E.dialog b/locale/de-de/east.dialog similarity index 100% rename from locale/de-de/E.dialog rename to locale/de-de/east.dialog diff --git a/locale/de-de/forecast.hot.dialog b/locale/de-de/forecast.hot.dialog deleted file mode 100644 index 3ebda1e2..00000000 --- a/locale/de-de/forecast.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} Es wird {temp} Grad in {location} sein, ziemlich bequem für eine KI -{day} die Temperatur wird {temp} in {location} liegen, was meinen Spezifikationen entspricht diff --git a/locale/de-de/forecast.local.hot.dialog b/locale/de-de/forecast.local.hot.dialog deleted file mode 100644 index d073dbbe..00000000 --- a/locale/de-de/forecast.local.hot.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} wird es {temp} sein, ziemlich bequem für eine KI diff --git a/locale/de-de/hour.weather.dialog b/locale/de-de/hour.weather.location.dialog similarity index 100% rename from locale/de-de/hour.weather.dialog rename to locale/de-de/hour.weather.location.dialog diff --git a/locale/de-de/at.time.local.cond.alternative.dialog b/locale/de-de/hourly.condition.alternative.local.dialog similarity index 100% rename from locale/de-de/at.time.local.cond.alternative.dialog rename to locale/de-de/hourly.condition.alternative.local.dialog diff --git a/locale/de-de/at.time.cond.alternative.dialog b/locale/de-de/hourly.condition.alternative.location.dialog similarity index 100% rename from locale/de-de/at.time.cond.alternative.dialog rename to locale/de-de/hourly.condition.alternative.location.dialog diff --git a/locale/de-de/at.time.local.affirmative.condition.dialog b/locale/de-de/hourly.condition.expected.local.dialog similarity index 100% rename from locale/de-de/at.time.local.affirmative.condition.dialog rename to locale/de-de/hourly.condition.expected.local.dialog diff --git a/locale/de-de/at.time.affirmative.condition.dialog b/locale/de-de/hourly.condition.expected.location.dialog similarity index 100% rename from locale/de-de/at.time.affirmative.condition.dialog rename to locale/de-de/hourly.condition.expected.location.dialog diff --git a/locale/de-de/at.time.local.no.cond.predicted.dialog b/locale/de-de/hourly.condition.not.expected.local.dialog similarity index 100% rename from locale/de-de/at.time.local.no.cond.predicted.dialog rename to locale/de-de/hourly.condition.not.expected.local.dialog diff --git a/locale/de-de/at.time.no.cond.predicted.dialog b/locale/de-de/hourly.condition.not.expected.location.dialog similarity index 100% rename from locale/de-de/at.time.no.cond.predicted.dialog rename to locale/de-de/hourly.condition.not.expected.location.dialog diff --git a/locale/de-de/at.time.local.temperature.dialog b/locale/de-de/hourly.temperature.local.dialog similarity index 100% rename from locale/de-de/at.time.local.temperature.dialog rename to locale/de-de/hourly.temperature.local.dialog diff --git a/locale/de-de/hour.local.weather.dialog b/locale/de-de/hourly.weather.local.dialog similarity index 100% rename from locale/de-de/hour.local.weather.dialog rename to locale/de-de/hourly.weather.local.dialog diff --git a/locale/de-de/N.dialog b/locale/de-de/north.dialog similarity index 100% rename from locale/de-de/N.dialog rename to locale/de-de/north.dialog diff --git a/locale/de-de/NE.dialog b/locale/de-de/northeast.dialog similarity index 100% rename from locale/de-de/NE.dialog rename to locale/de-de/northeast.dialog diff --git a/locale/de-de/NW.dialog b/locale/de-de/northwest.dialog similarity index 100% rename from locale/de-de/NW.dialog rename to locale/de-de/northwest.dialog diff --git a/locale/de-de/report.condition.at.location.dialog b/locale/de-de/report.condition.at.location.dialog deleted file mode 100644 index 672df5bb..00000000 --- a/locale/de-de/report.condition.at.location.dialog +++ /dev/null @@ -1 +0,0 @@ -Derzeit ist {condition} in {location} {value} diff --git a/locale/de-de/report.condition.dialog b/locale/de-de/report.condition.dialog deleted file mode 100644 index 868277ff..00000000 --- a/locale/de-de/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -Derzeit ist {condition} {value} diff --git a/locale/de-de/report.condition.future.at.location.dialog b/locale/de-de/report.condition.future.at.location.dialog deleted file mode 100644 index 71064758..00000000 --- a/locale/de-de/report.condition.future.at.location.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} in {location} {day} wird {value} -Am {day} wird in {location} für {condition} {value} vorhergesagt diff --git a/locale/de-de/report.condition.future.dialog b/locale/de-de/report.condition.future.dialog deleted file mode 100644 index e7f4397c..00000000 --- a/locale/de-de/report.condition.future.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} am {day} wird {value} sein -Am {day} wird für {condition} {value} vorhergesagt diff --git a/locale/de-de/report.wind.dialog b/locale/de-de/report.wind.dialog deleted file mode 100644 index e6628b93..00000000 --- a/locale/de-de/report.wind.dialog +++ /dev/null @@ -1 +0,0 @@ -{condition} ist {value} diff --git a/locale/de-de/S.dialog b/locale/de-de/south.dialog similarity index 100% rename from locale/de-de/S.dialog rename to locale/de-de/south.dialog diff --git a/locale/de-de/SE.dialog b/locale/de-de/southeast.dialog similarity index 100% rename from locale/de-de/SE.dialog rename to locale/de-de/southeast.dialog diff --git a/locale/de-de/SW.dialog b/locale/de-de/southwest.dialog similarity index 100% rename from locale/de-de/SW.dialog rename to locale/de-de/southwest.dialog diff --git a/locale/de-de/tonight.local.weather.dialog b/locale/de-de/tonight.local.weather.dialog deleted file mode 100644 index 8116b065..00000000 --- a/locale/de-de/tonight.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Heute Abend wird es {condition}, mit Temperaturen nahe {temp} -Später wird es {condition} und wir haben um die {temp} Grad -Später wird es {condition} und wir haben {temp} Grad -Um die {temp} Grad bei {condition} Heute Abend diff --git a/locale/de-de/W.dialog b/locale/de-de/west.dialog similarity index 100% rename from locale/de-de/W.dialog rename to locale/de-de/west.dialog diff --git a/locale/de-de/what.is.three.day.forecast.intent b/locale/de-de/what.is.three.day.forecast.intent deleted file mode 100644 index a7bafa9c..00000000 --- a/locale/de-de/what.is.three.day.forecast.intent +++ /dev/null @@ -1,2 +0,0 @@ -(3 | drei) Tage Vorhersage -(sag mir |was ist) die (3 Tage |drei-Tages|verlängerte|wöchentliche|Wochen) (Vorhersage|Wettervorhersage) diff --git a/locale/de-de/what.is.three.day.forecast.location.intent b/locale/de-de/what.is.three.day.forecast.location.intent deleted file mode 100644 index a2fc8ea9..00000000 --- a/locale/de-de/what.is.three.day.forecast.location.intent +++ /dev/null @@ -1 +0,0 @@ -(sag mir|was ist) die (3 Tage|drei-Tages|verlängerte|wöchentliche|Wochen) (Wettervorhersage|Wettervorhersage) (für|in) {Location} diff --git a/locale/de-de/what.is.two.day.forecast.intent b/locale/de-de/what.is.two.day.forecast.intent deleted file mode 100644 index a7edb94b..00000000 --- a/locale/de-de/what.is.two.day.forecast.intent +++ /dev/null @@ -1,3 +0,0 @@ -Wetter (für die| über die |) (nächsten |) {day_one} und {day_two} -(wie wird|das ) Wetter (wird | sein |) (für | den |) (nächsten |) {day_one} und {day_two} -Wie wird das Wetter (für | am |) (nächsten |) {day_one} und {day_two} diff --git a/locale/de-de/whats.weather.like.intent b/locale/de-de/whats.weather.like.intent deleted file mode 100644 index 761ac1f0..00000000 --- a/locale/de-de/whats.weather.like.intent +++ /dev/null @@ -1,5 +0,0 @@ -Vorhersage -Wetter -wie ist es (heute |) drausen -Wie ist es draußen -Wettervorhersage diff --git a/locale/de-de/wind.speed.dialog b/locale/de-de/wind.speed.dialog deleted file mode 100644 index b98efb6f..00000000 --- a/locale/de-de/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{speed} {unit} diff --git a/locale/de-de/wind.speed.dir.dialog b/locale/de-de/wind.speed.dir.dialog deleted file mode 100644 index da512647..00000000 --- a/locale/de-de/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -mit {speed} {unit} aus Richtung {dir} -aus Richtung {dir} mit {speed} {unit} diff --git a/locale/de-de/wind.strength.hard.dialog b/locale/de-de/wind.strength.hard.dialog deleted file mode 100644 index 3658ef1e..00000000 --- a/locale/de-de/wind.strength.hard.dialog +++ /dev/null @@ -1 +0,0 @@ -Das ist ziemlich stark diff --git a/locale/de-de/wind.strength.light.dialog b/locale/de-de/wind.strength.light.dialog deleted file mode 100644 index 89b5b96f..00000000 --- a/locale/de-de/wind.strength.light.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Nicht sehr windig -Nicht viel Wind -Ziemlich ruhig diff --git a/locale/de-de/wind.strength.medium.dialog b/locale/de-de/wind.strength.medium.dialog deleted file mode 100644 index 36811db0..00000000 --- a/locale/de-de/wind.strength.medium.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Das wird luftig. -Vielleicht möchten Sie eine Jacke mitnehmen diff --git a/locale/de-de/winds.dialog b/locale/de-de/winds.dialog deleted file mode 100644 index 837d8988..00000000 --- a/locale/de-de/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -Windgeschwindigkeit diff --git a/locale/es-es/current.local.weather.dialog b/locale/es-es/current.weather.local.dialog similarity index 100% rename from locale/es-es/current.local.weather.dialog rename to locale/es-es/current.weather.local.dialog diff --git a/locale/es-es/current.weather.dialog b/locale/es-es/current.weather.location.dialog similarity index 100% rename from locale/es-es/current.weather.dialog rename to locale/es-es/current.weather.location.dialog diff --git a/locale/es-es/forecast.local.weather.dialog b/locale/es-es/daily.weather.local.dialog similarity index 100% rename from locale/es-es/forecast.local.weather.dialog rename to locale/es-es/daily.weather.local.dialog diff --git a/locale/es-es/forecast.weather.dialog b/locale/es-es/daily.weather.location.dialog similarity index 100% rename from locale/es-es/forecast.weather.dialog rename to locale/es-es/daily.weather.location.dialog diff --git a/locale/es-es/E.dialog b/locale/es-es/east.dialog similarity index 100% rename from locale/es-es/E.dialog rename to locale/es-es/east.dialog diff --git a/locale/es-es/N.dialog b/locale/es-es/north.dialog similarity index 100% rename from locale/es-es/N.dialog rename to locale/es-es/north.dialog diff --git a/locale/es-es/NE.dialog b/locale/es-es/northeast.dialog similarity index 100% rename from locale/es-es/NE.dialog rename to locale/es-es/northeast.dialog diff --git a/locale/es-es/NW.dialog b/locale/es-es/northwest.dialog similarity index 100% rename from locale/es-es/NW.dialog rename to locale/es-es/northwest.dialog diff --git a/locale/es-es/S.dialog b/locale/es-es/south.dialog similarity index 100% rename from locale/es-es/S.dialog rename to locale/es-es/south.dialog diff --git a/locale/es-es/SE.dialog b/locale/es-es/southeast.dialog similarity index 100% rename from locale/es-es/SE.dialog rename to locale/es-es/southeast.dialog diff --git a/locale/es-es/SW.dialog b/locale/es-es/southwest.dialog similarity index 100% rename from locale/es-es/SW.dialog rename to locale/es-es/southwest.dialog diff --git a/locale/es-es/W.dialog b/locale/es-es/west.dialog similarity index 100% rename from locale/es-es/W.dialog rename to locale/es-es/west.dialog diff --git a/locale/fr-fr/humidity.dialog b/locale/fr-fr/current.humitidy.location.dialog similarity index 100% rename from locale/fr-fr/humidity.dialog rename to locale/fr-fr/current.humitidy.location.dialog diff --git a/locale/fr-fr/current.local.weather.dialog b/locale/fr-fr/current.weather.local.dialog similarity index 100% rename from locale/fr-fr/current.local.weather.dialog rename to locale/fr-fr/current.weather.local.dialog diff --git a/locale/fr-fr/current.weather.dialog b/locale/fr-fr/current.weather.location.dialog similarity index 100% rename from locale/fr-fr/current.weather.dialog rename to locale/fr-fr/current.weather.location.dialog diff --git a/locale/fr-fr/forecast.local.weather.dialog b/locale/fr-fr/daily.weather.local.dialog similarity index 100% rename from locale/fr-fr/forecast.local.weather.dialog rename to locale/fr-fr/daily.weather.local.dialog diff --git a/locale/fr-fr/forecast.weather.dialog b/locale/fr-fr/daily.weather.location.dialog similarity index 100% rename from locale/fr-fr/forecast.weather.dialog rename to locale/fr-fr/daily.weather.location.dialog diff --git a/locale/fr-fr/E.dialog b/locale/fr-fr/east.dialog similarity index 100% rename from locale/fr-fr/E.dialog rename to locale/fr-fr/east.dialog diff --git a/locale/fr-fr/hour.local.weather.dialog b/locale/fr-fr/hourly.weather.local.dialog similarity index 100% rename from locale/fr-fr/hour.local.weather.dialog rename to locale/fr-fr/hourly.weather.local.dialog diff --git a/locale/fr-fr/hour.weather.dialog b/locale/fr-fr/hourly.weather.location.dialog similarity index 100% rename from locale/fr-fr/hour.weather.dialog rename to locale/fr-fr/hourly.weather.location.dialog diff --git a/locale/fr-fr/N.dialog b/locale/fr-fr/north.dialog similarity index 100% rename from locale/fr-fr/N.dialog rename to locale/fr-fr/north.dialog diff --git a/locale/fr-fr/NE.dialog b/locale/fr-fr/northeast.dialog similarity index 100% rename from locale/fr-fr/NE.dialog rename to locale/fr-fr/northeast.dialog diff --git a/locale/fr-fr/NW.dialog b/locale/fr-fr/northwest.dialog similarity index 100% rename from locale/fr-fr/NW.dialog rename to locale/fr-fr/northwest.dialog diff --git a/locale/fr-fr/report.condition.dialog b/locale/fr-fr/report.condition.dialog deleted file mode 100644 index e4e7e279..00000000 --- a/locale/fr-fr/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -{{condition}} est {{value}} diff --git a/locale/fr-fr/report.future.condition.dialog b/locale/fr-fr/report.future.condition.dialog deleted file mode 100644 index d693ffcf..00000000 --- a/locale/fr-fr/report.future.condition.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{{condition}} pour {{day}} sera {{value}} -Pour {{day}} la prévision annonce {{condition}} de {{value}} diff --git a/locale/fr-fr/S.dialog b/locale/fr-fr/south.dialog similarity index 100% rename from locale/fr-fr/S.dialog rename to locale/fr-fr/south.dialog diff --git a/locale/fr-fr/SE.dialog b/locale/fr-fr/southeast.dialog similarity index 100% rename from locale/fr-fr/SE.dialog rename to locale/fr-fr/southeast.dialog diff --git a/locale/fr-fr/SW.dialog b/locale/fr-fr/southwest.dialog similarity index 100% rename from locale/fr-fr/SW.dialog rename to locale/fr-fr/southwest.dialog diff --git a/locale/fr-fr/W.dialog b/locale/fr-fr/west.dialog similarity index 100% rename from locale/fr-fr/W.dialog rename to locale/fr-fr/west.dialog diff --git a/locale/fr-fr/wind.speed.dialog b/locale/fr-fr/wind.speed.dialog deleted file mode 100644 index cff9d7e4..00000000 --- a/locale/fr-fr/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{{speed}} {{unit}} diff --git a/locale/fr-fr/wind.speed.dir.dialog b/locale/fr-fr/wind.speed.dir.dialog deleted file mode 100644 index ea683eb8..00000000 --- a/locale/fr-fr/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -de {{speed}} {{unit}} du {{dir}} -du {{dir}} à {{speed}} {{unit}} diff --git a/locale/fr-fr/winds.dialog b/locale/fr-fr/winds.dialog deleted file mode 100644 index 41cbb5b9..00000000 --- a/locale/fr-fr/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -le vent diff --git a/locale/gl-es/Cloudy.voc b/locale/gl-es/Clouds.voc similarity index 100% rename from locale/gl-es/Cloudy.voc rename to locale/gl-es/Clouds.voc diff --git a/locale/gl-es/CloudyAlternatives.voc b/locale/gl-es/CloudsAlternatives.voc similarity index 100% rename from locale/gl-es/CloudyAlternatives.voc rename to locale/gl-es/CloudsAlternatives.voc diff --git a/locale/gl-es/Foggy.voc b/locale/gl-es/Fog.voc similarity index 100% rename from locale/gl-es/Foggy.voc rename to locale/gl-es/Fog.voc diff --git a/locale/gl-es/Raining.voc b/locale/gl-es/Rain.voc similarity index 100% rename from locale/gl-es/Raining.voc rename to locale/gl-es/Rain.voc diff --git a/locale/gl-es/Snowing.voc b/locale/gl-es/Snow.voc similarity index 100% rename from locale/gl-es/Snowing.voc rename to locale/gl-es/Snow.voc diff --git a/locale/gl-es/Storm.voc b/locale/gl-es/Thunderstorm.voc similarity index 100% rename from locale/gl-es/Storm.voc rename to locale/gl-es/Thunderstorm.voc diff --git a/locale/gl-es/StormAlternatives.voc b/locale/gl-es/ThunderstormAlternatives.voc similarity index 100% rename from locale/gl-es/StormAlternatives.voc rename to locale/gl-es/ThunderstormAlternatives.voc diff --git a/locale/gl-es/and.dialog b/locale/gl-es/and.dialog deleted file mode 100644 index b18c97b5..00000000 --- a/locale/gl-es/and.dialog +++ /dev/null @@ -1 +0,0 @@ -, e diff --git a/locale/gl-es/at.time.forecast.affirmative.condition.dialog b/locale/gl-es/at.time.forecast.affirmative.condition.dialog deleted file mode 100644 index af78c0a3..00000000 --- a/locale/gl-es/at.time.forecast.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Resposta afirmativa a cuestións como "vai nevar en Paris mañá á tarde" -Si, o {time} pronóstico suxire {condition} en {location} o {day} -Si, o {time} pronóstico require {condition} en {location} o {day} diff --git a/locale/gl-es/at.time.forecast.cond.alternative.dialog b/locale/gl-es/at.time.forecast.cond.alternative.dialog deleted file mode 100644 index 95544ccb..00000000 --- a/locale/gl-es/at.time.forecast.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que unha alternativa ao tempo bo vai ocorrer nun horario especificado -Si, o {time} pronóstico o {day} require {condition} en {location} {day} -Parece que non, a previsión de {time} {day} suxire que será {condition} en {location} diff --git a/locale/gl-es/at.time.forecast.local.affirmative.condition.dialog b/locale/gl-es/at.time.forecast.local.affirmative.condition.dialog deleted file mode 100644 index 99756987..00000000 --- a/locale/gl-es/at.time.forecast.local.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Resposta afirmativa a cuestións como "vai nevar mañá" -Si, esperado {condition} de acordo coa previsión ás {time} o {day} -Si, o pronóstico do {time} require {condition} {day} diff --git a/locale/gl-es/at.time.forecast.local.cond.alternative.dialog b/locale/gl-es/at.time.forecast.local.cond.alternative.dialog deleted file mode 100644 index 7df3d2e8..00000000 --- a/locale/gl-es/at.time.forecast.local.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que unha alternativa ao tempo bo vai ocorrer -Non, a previsión de {time} {day} require {condition} -Parece que non, a previsión de {time} {day} suxire que será {condition} diff --git a/locale/gl-es/at.time.forecast.local.no.cond.predicted.dialog b/locale/gl-es/at.time.forecast.local.no.cond.predicted.dialog deleted file mode 100644 index e4323016..00000000 --- a/locale/gl-es/at.time.forecast.local.no.cond.predicted.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# Cando o usuario pregunta se hai unha condición pero non a hai -Non, a previsión do {time} {day} indica {condition} diff --git a/locale/gl-es/at.time.forecast.no.cond.predicted.dialog b/locale/gl-es/at.time.forecast.no.cond.predicted.dialog deleted file mode 100644 index 58afc181..00000000 --- a/locale/gl-es/at.time.forecast.no.cond.predicted.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se hai unha condición pero non a hai -Non, a previsión para {time} en {location} suxire que se dará {condition} -Parece que non, a previsión de {time} en {location} suxire que será {condition} diff --git a/locale/gl-es/at.time.local.high.temperature.dialog b/locale/gl-es/at.time.local.high.temperature.dialog deleted file mode 100644 index 9618e75c..00000000 --- a/locale/gl-es/at.time.local.high.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -A temperatura vai subir ata {temp} graos {time} -{time}, a temperatura vai subir ata {temp} graos diff --git a/locale/gl-es/at.time.local.low.temperature.dialog b/locale/gl-es/at.time.local.low.temperature.dialog deleted file mode 100644 index 54d10235..00000000 --- a/locale/gl-es/at.time.local.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -A temperatura vai baixar ata {temp} graos {time} -{time}, vai enfriar ata os {temp} graos diff --git a/locale/gl-es/at.time.local.weather.dialog b/locale/gl-es/at.time.local.weather.dialog deleted file mode 100644 index 65fce356..00000000 --- a/locale/gl-es/at.time.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Teremos {condition}, con temperaturas preto de {temp} ás {time} -{time}, teremos {condition} e temperatura ao redor de {temp} graos -{time}, teremos {condition} e {temp} graos -{time}, teremos {condition} con {temp} graos diff --git a/locale/gl-es/local.clear.alternative.dialog b/locale/gl-es/current.clear.alternative.local.dialog similarity index 100% rename from locale/gl-es/local.clear.alternative.dialog rename to locale/gl-es/current.clear.alternative.local.dialog diff --git a/locale/gl-es/clear.alternative.dialog b/locale/gl-es/current.clear.alternative.location.dialog similarity index 100% rename from locale/gl-es/clear.alternative.dialog rename to locale/gl-es/current.clear.alternative.location.dialog diff --git a/locale/gl-es/no.clear.predicted.dialog b/locale/gl-es/current.clear.not.expected.location.dialog similarity index 100% rename from locale/gl-es/no.clear.predicted.dialog rename to locale/gl-es/current.clear.not.expected.location.dialog diff --git a/locale/gl-es/local.cloudy.alternative.dialog b/locale/gl-es/current.clouds.alternative.local.dialog similarity index 100% rename from locale/gl-es/local.cloudy.alternative.dialog rename to locale/gl-es/current.clouds.alternative.local.dialog diff --git a/locale/gl-es/cloudy.alternative.dialog b/locale/gl-es/current.clouds.alternative.location.dialog similarity index 100% rename from locale/gl-es/cloudy.alternative.dialog rename to locale/gl-es/current.clouds.alternative.location.dialog diff --git a/locale/gl-es/local.no.cloudy.predicted.dialog b/locale/gl-es/current.clouds.not.expected.local.dialog similarity index 100% rename from locale/gl-es/local.no.cloudy.predicted.dialog rename to locale/gl-es/current.clouds.not.expected.local.dialog diff --git a/locale/gl-es/no.cloudy.predicted.dialog b/locale/gl-es/current.clouds.not.expected.location.dialog similarity index 100% rename from locale/gl-es/no.cloudy.predicted.dialog rename to locale/gl-es/current.clouds.not.expected.location.dialog diff --git a/locale/gl-es/local.affirmative.condition.dialog b/locale/gl-es/current.condition.expected.local.dialog similarity index 100% rename from locale/gl-es/local.affirmative.condition.dialog rename to locale/gl-es/current.condition.expected.local.dialog diff --git a/locale/gl-es/affirmative.condition.dialog b/locale/gl-es/current.condition.expected.location.dialog similarity index 100% rename from locale/gl-es/affirmative.condition.dialog rename to locale/gl-es/current.condition.expected.location.dialog diff --git a/locale/gl-es/local.foggy.alternative.dialog b/locale/gl-es/current.fog.alternative.local.dialog similarity index 100% rename from locale/gl-es/local.foggy.alternative.dialog rename to locale/gl-es/current.fog.alternative.local.dialog diff --git a/locale/gl-es/fog.alternative.dialog b/locale/gl-es/current.fog.alternative.location.dialog similarity index 100% rename from locale/gl-es/fog.alternative.dialog rename to locale/gl-es/current.fog.alternative.location.dialog diff --git a/locale/gl-es/local.no.fog.predicted.dialog b/locale/gl-es/current.fog.not.expected.local.dialog similarity index 100% rename from locale/gl-es/local.no.fog.predicted.dialog rename to locale/gl-es/current.fog.not.expected.local.dialog diff --git a/locale/gl-es/no.fog.predicted.dialog b/locale/gl-es/current.fog.not.expected.location.dialog similarity index 100% rename from locale/gl-es/no.fog.predicted.dialog rename to locale/gl-es/current.fog.not.expected.location.dialog diff --git a/locale/gl-es/current.hot.dialog b/locale/gl-es/current.hot.dialog deleted file mode 100644 index 8a5ec8c8..00000000 --- a/locale/gl-es/current.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Está {temp} graos {scale} en {location}, ben dentro da miña temperatura operacional. -Está a {temp} graos en {location}, o que vai ben para unha I.A. diff --git a/locale/gl-es/humidity.dialog b/locale/gl-es/current.humidity.location.dialog similarity index 100% rename from locale/gl-es/humidity.dialog rename to locale/gl-es/current.humidity.location.dialog diff --git a/locale/gl-es/current.local.cold.dialog b/locale/gl-es/current.local.cold.dialog deleted file mode 100644 index 5a6db354..00000000 --- a/locale/gl-es/current.local.cold.dialog +++ /dev/null @@ -1,2 +0,0 @@ -neste momento fai {temp}, ben dentro da miña temperatura operacional -Fai {temp}, bastante confortable para unha I.A. diff --git a/locale/gl-es/current.local.hot.dialog b/locale/gl-es/current.local.hot.dialog deleted file mode 100644 index f76fc00e..00000000 --- a/locale/gl-es/current.local.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Está dentro da miña temperatura operacional, actualmente en {temp} graos -Fai {temp} graus, bastante confortable para unha I.A. diff --git a/locale/gl-es/local.raining.alternative.dialog b/locale/gl-es/current.rain.alternative.local.dialog similarity index 100% rename from locale/gl-es/local.raining.alternative.dialog rename to locale/gl-es/current.rain.alternative.local.dialog diff --git a/locale/gl-es/raining.alternative.dialog b/locale/gl-es/current.rain.alternative.location.dialog similarity index 100% rename from locale/gl-es/raining.alternative.dialog rename to locale/gl-es/current.rain.alternative.location.dialog diff --git a/locale/gl-es/local.no.rain.predicted.dialog b/locale/gl-es/current.rain.not.expected.local.dialog similarity index 100% rename from locale/gl-es/local.no.rain.predicted.dialog rename to locale/gl-es/current.rain.not.expected.local.dialog diff --git a/locale/gl-es/no.rain.predicted.dialog b/locale/gl-es/current.rain.not.expected.location.dialog similarity index 100% rename from locale/gl-es/no.rain.predicted.dialog rename to locale/gl-es/current.rain.not.expected.location.dialog diff --git a/locale/gl-es/local.snowing.alternative.dialog b/locale/gl-es/current.snow.alternative.local.dialog similarity index 100% rename from locale/gl-es/local.snowing.alternative.dialog rename to locale/gl-es/current.snow.alternative.local.dialog diff --git a/locale/gl-es/snowing.alternative.dialog b/locale/gl-es/current.snow.alternative.location.dialog similarity index 100% rename from locale/gl-es/snowing.alternative.dialog rename to locale/gl-es/current.snow.alternative.location.dialog diff --git a/locale/gl-es/local.no.snow.predicted.dialog b/locale/gl-es/current.snow.not.expected.local.dialog similarity index 100% rename from locale/gl-es/local.no.snow.predicted.dialog rename to locale/gl-es/current.snow.not.expected.local.dialog diff --git a/locale/gl-es/no.snow.predicted.dialog b/locale/gl-es/current.snow.not.expected.location.dialog similarity index 100% rename from locale/gl-es/no.snow.predicted.dialog rename to locale/gl-es/current.snow.not.expected.location.dialog diff --git a/locale/gl-es/current.local.high.temperature.dialog b/locale/gl-es/current.temperature.high.local.dialog similarity index 100% rename from locale/gl-es/current.local.high.temperature.dialog rename to locale/gl-es/current.temperature.high.local.dialog diff --git a/locale/gl-es/current.high.temperature.dialog b/locale/gl-es/current.temperature.high.location.dialog similarity index 100% rename from locale/gl-es/current.high.temperature.dialog rename to locale/gl-es/current.temperature.high.location.dialog diff --git a/locale/gl-es/min.max.dialog b/locale/gl-es/current.temperature.high.low.dialog similarity index 100% rename from locale/gl-es/min.max.dialog rename to locale/gl-es/current.temperature.high.low.dialog diff --git a/locale/gl-es/current.local.temperature.dialog b/locale/gl-es/current.temperature.local.dialog similarity index 100% rename from locale/gl-es/current.local.temperature.dialog rename to locale/gl-es/current.temperature.local.dialog diff --git a/locale/gl-es/current.temperature.dialog b/locale/gl-es/current.temperature.location.dialog similarity index 100% rename from locale/gl-es/current.temperature.dialog rename to locale/gl-es/current.temperature.location.dialog diff --git a/locale/gl-es/current.local.low.temperature.dialog b/locale/gl-es/current.temperature.low.local.dialog similarity index 100% rename from locale/gl-es/current.local.low.temperature.dialog rename to locale/gl-es/current.temperature.low.local.dialog diff --git a/locale/gl-es/current.low.temperature.dialog b/locale/gl-es/current.temperature.low.location.dialog similarity index 100% rename from locale/gl-es/current.low.temperature.dialog rename to locale/gl-es/current.temperature.low.location.dialog diff --git a/locale/gl-es/local.storm.alternative.dialog b/locale/gl-es/current.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/gl-es/local.storm.alternative.dialog rename to locale/gl-es/current.thunderstorm.alternative.local.dialog diff --git a/locale/gl-es/storm.alternative.dialog b/locale/gl-es/current.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/gl-es/storm.alternative.dialog rename to locale/gl-es/current.thunderstorm.alternative.location.dialog diff --git a/locale/gl-es/local.no.storm.predicted.dialog b/locale/gl-es/current.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/gl-es/local.no.storm.predicted.dialog rename to locale/gl-es/current.thunderstorm.not.expected.local.dialog diff --git a/locale/gl-es/no.storm.predicted.dialog b/locale/gl-es/current.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/gl-es/no.storm.predicted.dialog rename to locale/gl-es/current.thunderstorm.not.expected.location.dialog diff --git a/locale/gl-es/current.local.weather.dialog b/locale/gl-es/current.weather.local.dialog similarity index 100% rename from locale/gl-es/current.local.weather.dialog rename to locale/gl-es/current.weather.local.dialog diff --git a/locale/gl-es/current.weather.dialog b/locale/gl-es/current.weather.location.dialog similarity index 100% rename from locale/gl-es/current.weather.dialog rename to locale/gl-es/current.weather.location.dialog diff --git a/locale/gl-es/local.light.wind.dialog b/locale/gl-es/current.wind.light.local.dialog similarity index 100% rename from locale/gl-es/local.light.wind.dialog rename to locale/gl-es/current.wind.light.local.dialog diff --git a/locale/gl-es/light.wind.dialog b/locale/gl-es/current.wind.light.location.dialog similarity index 100% rename from locale/gl-es/light.wind.dialog rename to locale/gl-es/current.wind.light.location.dialog diff --git a/locale/gl-es/local.medium.wind.dialog b/locale/gl-es/current.wind.moderate.local.dialog similarity index 100% rename from locale/gl-es/local.medium.wind.dialog rename to locale/gl-es/current.wind.moderate.local.dialog diff --git a/locale/gl-es/medium.wind.dialog b/locale/gl-es/current.wind.moderate.location.dialog similarity index 100% rename from locale/gl-es/medium.wind.dialog rename to locale/gl-es/current.wind.moderate.location.dialog diff --git a/locale/gl-es/local.hard.wind.dialog b/locale/gl-es/current.wind.strong.local.dialog similarity index 100% rename from locale/gl-es/local.hard.wind.dialog rename to locale/gl-es/current.wind.strong.local.dialog diff --git a/locale/gl-es/hard.wind.dialog b/locale/gl-es/current.wind.strong.location.dialog similarity index 100% rename from locale/gl-es/hard.wind.dialog rename to locale/gl-es/current.wind.strong.location.dialog diff --git a/locale/gl-es/forecast.local.clear.alternative.dialog b/locale/gl-es/daily.clear.alternative.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.clear.alternative.dialog rename to locale/gl-es/daily.clear.alternative.local.dialog diff --git a/locale/gl-es/forecast.clear.alternative.dialog b/locale/gl-es/daily.clear.alternative.location.dialog similarity index 100% rename from locale/gl-es/forecast.clear.alternative.dialog rename to locale/gl-es/daily.clear.alternative.location.dialog diff --git a/locale/gl-es/forecast.local.no.clear.predicted.dialog b/locale/gl-es/daily.clear.not.expected.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.no.clear.predicted.dialog rename to locale/gl-es/daily.clear.not.expected.local.dialog diff --git a/locale/gl-es/forecast.no.clear.predicted.dialog b/locale/gl-es/daily.clear.not.expected.location.dialog similarity index 100% rename from locale/gl-es/forecast.no.clear.predicted.dialog rename to locale/gl-es/daily.clear.not.expected.location.dialog diff --git a/locale/gl-es/forecast.local.cloudy.alternative.dialog b/locale/gl-es/daily.clouds.alternative.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.cloudy.alternative.dialog rename to locale/gl-es/daily.clouds.alternative.local.dialog diff --git a/locale/gl-es/forecast.cloudy.alternative.dialog b/locale/gl-es/daily.clouds.alternative.location.dialog similarity index 100% rename from locale/gl-es/forecast.cloudy.alternative.dialog rename to locale/gl-es/daily.clouds.alternative.location.dialog diff --git a/locale/gl-es/forecast.local.no.cloudy.predicted.dialog b/locale/gl-es/daily.clouds.not.expected.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.no.cloudy.predicted.dialog rename to locale/gl-es/daily.clouds.not.expected.local.dialog diff --git a/locale/gl-es/forecast.no.cloudy.predicted.dialog b/locale/gl-es/daily.clouds.not.expected.location.dialog similarity index 100% rename from locale/gl-es/forecast.no.cloudy.predicted.dialog rename to locale/gl-es/daily.clouds.not.expected.location.dialog diff --git a/locale/gl-es/forecast.local.affirmative.condition.dialog b/locale/gl-es/daily.condition.expected.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.affirmative.condition.dialog rename to locale/gl-es/daily.condition.expected.local.dialog diff --git a/locale/gl-es/forecast.affirmative.condition.dialog b/locale/gl-es/daily.condition.expected.location.dialog similarity index 100% rename from locale/gl-es/forecast.affirmative.condition.dialog rename to locale/gl-es/daily.condition.expected.location.dialog diff --git a/locale/gl-es/forecast.local.foggy.alternative.dialog b/locale/gl-es/daily.fog.alternative.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.foggy.alternative.dialog rename to locale/gl-es/daily.fog.alternative.local.dialog diff --git a/locale/gl-es/forecast.foggy.alternative.dialog b/locale/gl-es/daily.fog.alternative.location.dialog similarity index 100% rename from locale/gl-es/forecast.foggy.alternative.dialog rename to locale/gl-es/daily.fog.alternative.location.dialog diff --git a/locale/gl-es/forecast.local.no.fog.predicted.dialog b/locale/gl-es/daily.fog.not.expected.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.no.fog.predicted.dialog rename to locale/gl-es/daily.fog.not.expected.local.dialog diff --git a/locale/gl-es/forecast.no.fog.predicted.dialog b/locale/gl-es/daily.fog.not.expected.location.dialog similarity index 100% rename from locale/gl-es/forecast.no.fog.predicted.dialog rename to locale/gl-es/daily.fog.not.expected.location.dialog diff --git a/locale/gl-es/forecast.local.raining.alternative.dialog b/locale/gl-es/daily.rain.alternative.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.raining.alternative.dialog rename to locale/gl-es/daily.rain.alternative.local.dialog diff --git a/locale/gl-es/forecast.raining.alternative.dialog b/locale/gl-es/daily.rain.alternative.location.dialog similarity index 100% rename from locale/gl-es/forecast.raining.alternative.dialog rename to locale/gl-es/daily.rain.alternative.location.dialog diff --git a/locale/gl-es/forecast.local.no.rain.predicted.dialog b/locale/gl-es/daily.rain.not.expected.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.no.rain.predicted.dialog rename to locale/gl-es/daily.rain.not.expected.local.dialog diff --git a/locale/gl-es/forecast.no.rain.predicted.dialog b/locale/gl-es/daily.rain.not.expected.location.dialog similarity index 100% rename from locale/gl-es/forecast.no.rain.predicted.dialog rename to locale/gl-es/daily.rain.not.expected.location.dialog diff --git a/locale/gl-es/forecast.snowing.alternative.dialog b/locale/gl-es/daily.snow.alternative.location.dialog similarity index 100% rename from locale/gl-es/forecast.snowing.alternative.dialog rename to locale/gl-es/daily.snow.alternative.location.dialog diff --git a/locale/gl-es/forecast.local.no.snow.predicted.dialog b/locale/gl-es/daily.snow.not.expected.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.no.snow.predicted.dialog rename to locale/gl-es/daily.snow.not.expected.local.dialog diff --git a/locale/gl-es/forecast.no.snow.predicted.dialog b/locale/gl-es/daily.snow.not.expected.location.dialog similarity index 100% rename from locale/gl-es/forecast.no.snow.predicted.dialog rename to locale/gl-es/daily.snow.not.expected.location.dialog diff --git a/locale/gl-es/forecast.local.high.temperature.dialog b/locale/gl-es/daily.temperature.high.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.high.temperature.dialog rename to locale/gl-es/daily.temperature.high.local.dialog diff --git a/locale/gl-es/forecast.high.temperature.dialog b/locale/gl-es/daily.temperature.high.location.dialog similarity index 100% rename from locale/gl-es/forecast.high.temperature.dialog rename to locale/gl-es/daily.temperature.high.location.dialog diff --git a/locale/gl-es/forecast.local.temperature.dialog b/locale/gl-es/daily.temperature.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.temperature.dialog rename to locale/gl-es/daily.temperature.local.dialog diff --git a/locale/gl-es/forecast.temperature.dialog b/locale/gl-es/daily.temperature.location.dialog similarity index 100% rename from locale/gl-es/forecast.temperature.dialog rename to locale/gl-es/daily.temperature.location.dialog diff --git a/locale/gl-es/forecast.local.low.temperature.dialog b/locale/gl-es/daily.temperature.low.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.low.temperature.dialog rename to locale/gl-es/daily.temperature.low.local.dialog diff --git a/locale/gl-es/forecast.low.temperature.dialog b/locale/gl-es/daily.temperature.low.location.dialog similarity index 100% rename from locale/gl-es/forecast.low.temperature.dialog rename to locale/gl-es/daily.temperature.low.location.dialog diff --git a/locale/gl-es/forecast.local.storm.alternative.dialog b/locale/gl-es/daily.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.storm.alternative.dialog rename to locale/gl-es/daily.thunderstorm.alternative.local.dialog diff --git a/locale/gl-es/forecast.storm.alternative.dialog b/locale/gl-es/daily.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/gl-es/forecast.storm.alternative.dialog rename to locale/gl-es/daily.thunderstorm.alternative.location.dialog diff --git a/locale/gl-es/forecast.local.no.storm.predicted.dialog b/locale/gl-es/daily.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.no.storm.predicted.dialog rename to locale/gl-es/daily.thunderstorm.not.expected.local.dialog diff --git a/locale/gl-es/forecast.no.storm.predicted.dialog b/locale/gl-es/daily.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/gl-es/forecast.no.storm.predicted.dialog rename to locale/gl-es/daily.thunderstorm.not.expected.location.dialog diff --git a/locale/gl-es/forecast.local.weather.dialog b/locale/gl-es/daily.weather.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.weather.dialog rename to locale/gl-es/daily.weather.local.dialog diff --git a/locale/gl-es/forecast.weather.dialog b/locale/gl-es/daily.weather.location.dialog similarity index 100% rename from locale/gl-es/forecast.weather.dialog rename to locale/gl-es/daily.weather.location.dialog diff --git a/locale/gl-es/forecast.local.light.wind.dialog b/locale/gl-es/daily.wind.light.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.light.wind.dialog rename to locale/gl-es/daily.wind.light.local.dialog diff --git a/locale/gl-es/forecast.light.wind.dialog b/locale/gl-es/daily.wind.light.location.dialog similarity index 100% rename from locale/gl-es/forecast.light.wind.dialog rename to locale/gl-es/daily.wind.light.location.dialog diff --git a/locale/gl-es/forecast.local.medium.wind.dialog b/locale/gl-es/daily.wind.moderate.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.medium.wind.dialog rename to locale/gl-es/daily.wind.moderate.local.dialog diff --git a/locale/gl-es/forecast.medium.wind.dialog b/locale/gl-es/daily.wind.moderate.location.dialog similarity index 100% rename from locale/gl-es/forecast.medium.wind.dialog rename to locale/gl-es/daily.wind.moderate.location.dialog diff --git a/locale/gl-es/forecast.local.hard.wind.dialog b/locale/gl-es/daily.wind.strong.local.dialog similarity index 100% rename from locale/gl-es/forecast.local.hard.wind.dialog rename to locale/gl-es/daily.wind.strong.local.dialog diff --git a/locale/gl-es/forecast.hard.wind.dialog b/locale/gl-es/daily.wind.strong.location.dialog similarity index 100% rename from locale/gl-es/forecast.hard.wind.dialog rename to locale/gl-es/daily.wind.strong.location.dialog diff --git a/locale/gl-es/E.dialog b/locale/gl-es/east.dialog similarity index 100% rename from locale/gl-es/E.dialog rename to locale/gl-es/east.dialog diff --git a/locale/gl-es/forecast.hot.dialog b/locale/gl-es/forecast.hot.dialog deleted file mode 100644 index b1cd4163..00000000 --- a/locale/gl-es/forecast.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} fará {temp} graos en {location}, bastante confortable para unha I.A. -{day} a temperatura será de {temp} en {location}, dentro das miñas especificacións diff --git a/locale/gl-es/forecast.local.hot.dialog b/locale/gl-es/forecast.local.hot.dialog deleted file mode 100644 index e3192961..00000000 --- a/locale/gl-es/forecast.local.hot.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} fará {temp}, bastante confortable para unha IA diff --git a/locale/gl-es/at.time.local.cond.alternative.dialog b/locale/gl-es/hourly.condition.alternative.local.dialog similarity index 100% rename from locale/gl-es/at.time.local.cond.alternative.dialog rename to locale/gl-es/hourly.condition.alternative.local.dialog diff --git a/locale/gl-es/at.time.cond.alternative.dialog b/locale/gl-es/hourly.condition.alternative.location.dialog similarity index 100% rename from locale/gl-es/at.time.cond.alternative.dialog rename to locale/gl-es/hourly.condition.alternative.location.dialog diff --git a/locale/gl-es/at.time.affirmative.condition.dialog b/locale/gl-es/hourly.condition.expected.dialog similarity index 100% rename from locale/gl-es/at.time.affirmative.condition.dialog rename to locale/gl-es/hourly.condition.expected.dialog diff --git a/locale/gl-es/at.time.local.affirmative.condition.dialog b/locale/gl-es/hourly.condition.expected.local.dialog similarity index 100% rename from locale/gl-es/at.time.local.affirmative.condition.dialog rename to locale/gl-es/hourly.condition.expected.local.dialog diff --git a/locale/gl-es/at.time.local.no.cond.predicted.dialog b/locale/gl-es/hourly.condition.not.expected.local.dialog similarity index 100% rename from locale/gl-es/at.time.local.no.cond.predicted.dialog rename to locale/gl-es/hourly.condition.not.expected.local.dialog diff --git a/locale/gl-es/at.time.no.cond.predicted.dialog b/locale/gl-es/hourly.condition.not.expected.location.dialog similarity index 100% rename from locale/gl-es/at.time.no.cond.predicted.dialog rename to locale/gl-es/hourly.condition.not.expected.location.dialog diff --git a/locale/gl-es/at.time.local.temperature.dialog b/locale/gl-es/hourly.temperature.local.dialog similarity index 100% rename from locale/gl-es/at.time.local.temperature.dialog rename to locale/gl-es/hourly.temperature.local.dialog diff --git a/locale/gl-es/hour.local.weather.dialog b/locale/gl-es/hourly.weather.local.dialog similarity index 100% rename from locale/gl-es/hour.local.weather.dialog rename to locale/gl-es/hourly.weather.local.dialog diff --git a/locale/gl-es/hour.weather.dialog b/locale/gl-es/hourly.weather.location.dialog similarity index 100% rename from locale/gl-es/hour.weather.dialog rename to locale/gl-es/hourly.weather.location.dialog diff --git a/locale/gl-es/N.dialog b/locale/gl-es/north.dialog similarity index 100% rename from locale/gl-es/N.dialog rename to locale/gl-es/north.dialog diff --git a/locale/gl-es/NE.dialog b/locale/gl-es/northeast.dialog similarity index 100% rename from locale/gl-es/NE.dialog rename to locale/gl-es/northeast.dialog diff --git a/locale/gl-es/NW.dialog b/locale/gl-es/northwest.dialog similarity index 100% rename from locale/gl-es/NW.dialog rename to locale/gl-es/northwest.dialog diff --git a/locale/gl-es/report.condition.at.location.dialog b/locale/gl-es/report.condition.at.location.dialog deleted file mode 100644 index 5a1d967e..00000000 --- a/locale/gl-es/report.condition.at.location.dialog +++ /dev/null @@ -1 +0,0 @@ -Actualmente, {condition} en {location} é de {value} diff --git a/locale/gl-es/report.condition.dialog b/locale/gl-es/report.condition.dialog deleted file mode 100644 index fd6ac7a8..00000000 --- a/locale/gl-es/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -Neste momento, {condition} é de {value} diff --git a/locale/gl-es/report.condition.future.at.location.dialog b/locale/gl-es/report.condition.future.at.location.dialog deleted file mode 100644 index e6f5cc14..00000000 --- a/locale/gl-es/report.condition.future.at.location.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} en {location} o {day} será de {value} -{day} a previsión en {location} indica {condition} de {value} diff --git a/locale/gl-es/report.condition.future.dialog b/locale/gl-es/report.condition.future.dialog deleted file mode 100644 index 402816cb..00000000 --- a/locale/gl-es/report.condition.future.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} o {day} será {value} -o {day} a previsión indica {condition} de {value} diff --git a/locale/gl-es/report.wind.dialog b/locale/gl-es/report.wind.dialog deleted file mode 100644 index ec0a3932..00000000 --- a/locale/gl-es/report.wind.dialog +++ /dev/null @@ -1 +0,0 @@ -{condition} é {value} diff --git a/locale/gl-es/S.dialog b/locale/gl-es/south.dialog similarity index 100% rename from locale/gl-es/S.dialog rename to locale/gl-es/south.dialog diff --git a/locale/gl-es/SE.dialog b/locale/gl-es/southeast.dialog similarity index 100% rename from locale/gl-es/SE.dialog rename to locale/gl-es/southeast.dialog diff --git a/locale/gl-es/SW.dialog b/locale/gl-es/southwest.dialog similarity index 100% rename from locale/gl-es/SW.dialog rename to locale/gl-es/southwest.dialog diff --git a/locale/gl-es/W.dialog b/locale/gl-es/west.dialog similarity index 100% rename from locale/gl-es/W.dialog rename to locale/gl-es/west.dialog diff --git a/locale/gl-es/what.is.three.day.forecast.intent b/locale/gl-es/what.is.three.day.forecast.intent deleted file mode 100644 index a6b92ca2..00000000 --- a/locale/gl-es/what.is.three.day.forecast.intent +++ /dev/null @@ -1,2 +0,0 @@ -previsión para (3|tres) días -(dime|cal é) a (previsión|previsión do tempo) (de 3 días|para tres días|prolongada|semanal| para a semana) diff --git a/locale/gl-es/what.is.three.day.forecast.location.intent b/locale/gl-es/what.is.three.day.forecast.location.intent deleted file mode 100644 index c5d2b786..00000000 --- a/locale/gl-es/what.is.three.day.forecast.location.intent +++ /dev/null @@ -1 +0,0 @@ -(dime|cal é) (o|a) (previsión do tempo| tempo|previsión) (para 3 días|de tres días|prolongada|semanal|para a semana) (para|en) {Location} diff --git a/locale/gl-es/what.is.two.day.forecast.intent b/locale/gl-es/what.is.two.day.forecast.intent deleted file mode 100644 index 8b496ba6..00000000 --- a/locale/gl-es/what.is.two.day.forecast.intent +++ /dev/null @@ -1,3 +0,0 @@ -tempo (para|en) (próximo|) {day_one} e {day_two} -como será o tempo (nos próximos|en) {day_one} e {day_two} -como será o tempo (en|nos próximos) {day_one} e {day_two} diff --git a/locale/gl-es/whats.weather.like.intent b/locale/gl-es/whats.weather.like.intent deleted file mode 100644 index cd4bff33..00000000 --- a/locale/gl-es/whats.weather.like.intent +++ /dev/null @@ -1,5 +0,0 @@ -previsión -(tempo|clima) -como está o tempo fóra (hoxe|) -Como está o tempo fóra -previsión meteorolóxica diff --git a/locale/gl-es/wind.speed.dialog b/locale/gl-es/wind.speed.dialog deleted file mode 100644 index b98efb6f..00000000 --- a/locale/gl-es/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{speed} {unit} diff --git a/locale/gl-es/wind.speed.dir.dialog b/locale/gl-es/wind.speed.dir.dialog deleted file mode 100644 index 34e1bde8..00000000 --- a/locale/gl-es/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -a {speed} {unit} vindo do {dir} -do {dir} a {speed} {unit} diff --git a/locale/gl-es/wind.strength.hard.dialog b/locale/gl-es/wind.strength.hard.dialog deleted file mode 100644 index e1f92e9f..00000000 --- a/locale/gl-es/wind.strength.hard.dialog +++ /dev/null @@ -1 +0,0 @@ -Isto é bastante forte diff --git a/locale/gl-es/wind.strength.light.dialog b/locale/gl-es/wind.strength.light.dialog deleted file mode 100644 index ad7d4c42..00000000 --- a/locale/gl-es/wind.strength.light.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Non fai moito vento -Non fai moito vento -Un pouco calmado diff --git a/locale/gl-es/wind.strength.medium.dialog b/locale/gl-es/wind.strength.medium.dialog deleted file mode 100644 index d58a7c04..00000000 --- a/locale/gl-es/wind.strength.medium.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Está soprando unha brisa. -Deberías levar unha chaqueta diff --git a/locale/gl-es/winds.dialog b/locale/gl-es/winds.dialog deleted file mode 100644 index 1bd4fbcb..00000000 --- a/locale/gl-es/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -velocidade do vento diff --git a/locale/it-it/Cloudy.voc b/locale/it-it/Clouds.voc similarity index 100% rename from locale/it-it/Cloudy.voc rename to locale/it-it/Clouds.voc diff --git a/locale/it-it/CloudyAlternatives.voc b/locale/it-it/CloudsAlternatives.voc similarity index 100% rename from locale/it-it/CloudyAlternatives.voc rename to locale/it-it/CloudsAlternatives.voc diff --git a/locale/it-it/Foggy.voc b/locale/it-it/Fog.voc similarity index 100% rename from locale/it-it/Foggy.voc rename to locale/it-it/Fog.voc diff --git a/locale/it-it/FoggyAlternatives.voc b/locale/it-it/FogAlternatives.voc similarity index 100% rename from locale/it-it/FoggyAlternatives.voc rename to locale/it-it/FogAlternatives.voc diff --git a/locale/it-it/Raining.voc b/locale/it-it/Rain.voc similarity index 100% rename from locale/it-it/Raining.voc rename to locale/it-it/Rain.voc diff --git a/locale/it-it/Snowing.voc b/locale/it-it/Snow.voc similarity index 100% rename from locale/it-it/Snowing.voc rename to locale/it-it/Snow.voc diff --git a/locale/it-it/local.clear.alternative.dialog b/locale/it-it/current.clear.alternative.local.dialog similarity index 100% rename from locale/it-it/local.clear.alternative.dialog rename to locale/it-it/current.clear.alternative.local.dialog diff --git a/locale/it-it/clear.alternative.dialog b/locale/it-it/current.clear.alternative.location.dialog similarity index 100% rename from locale/it-it/clear.alternative.dialog rename to locale/it-it/current.clear.alternative.location.dialog diff --git a/locale/it-it/no.clear.predicted.dialog b/locale/it-it/current.clear.not.expected.location.dialog similarity index 100% rename from locale/it-it/no.clear.predicted.dialog rename to locale/it-it/current.clear.not.expected.location.dialog diff --git a/locale/it-it/cloudy.alternative.dialog b/locale/it-it/current.clouds.alternative.local.dialog similarity index 100% rename from locale/it-it/cloudy.alternative.dialog rename to locale/it-it/current.clouds.alternative.local.dialog diff --git a/locale/it-it/forecast.local.cloudy.alternative.dialog b/locale/it-it/current.clouds.alternative.location.dialog similarity index 100% rename from locale/it-it/forecast.local.cloudy.alternative.dialog rename to locale/it-it/current.clouds.alternative.location.dialog diff --git a/locale/it-it/no.cloudy.predicted.dialog b/locale/it-it/current.clouds.not.expected.location.dialog similarity index 100% rename from locale/it-it/no.cloudy.predicted.dialog rename to locale/it-it/current.clouds.not.expected.location.dialog diff --git a/locale/it-it/local.affirmative.condition.dialog b/locale/it-it/current.condition.expected.local.dialog similarity index 100% rename from locale/it-it/local.affirmative.condition.dialog rename to locale/it-it/current.condition.expected.local.dialog diff --git a/locale/it-it/affirmative.condition.dialog b/locale/it-it/current.condition.expected.location.dialog similarity index 100% rename from locale/it-it/affirmative.condition.dialog rename to locale/it-it/current.condition.expected.location.dialog diff --git a/locale/it-it/forecast.local.foggy.alternative.dialog b/locale/it-it/current.fog.alternative.local.dialog similarity index 100% rename from locale/it-it/forecast.local.foggy.alternative.dialog rename to locale/it-it/current.fog.alternative.local.dialog diff --git a/locale/it-it/fog.alternative.dialog b/locale/it-it/current.fog.alternative.location.dialog similarity index 100% rename from locale/it-it/fog.alternative.dialog rename to locale/it-it/current.fog.alternative.location.dialog diff --git a/locale/it-it/local.no.fog.predicted.dialog b/locale/it-it/current.fog.not.expected.local.dialog similarity index 100% rename from locale/it-it/local.no.fog.predicted.dialog rename to locale/it-it/current.fog.not.expected.local.dialog diff --git a/locale/it-it/no.fog.predicted.dialog b/locale/it-it/current.fog.not.expected.location.dialog similarity index 100% rename from locale/it-it/no.fog.predicted.dialog rename to locale/it-it/current.fog.not.expected.location.dialog diff --git a/locale/it-it/current.hot.dialog b/locale/it-it/current.hot.dialog deleted file mode 100644 index 459d32c3..00000000 --- a/locale/it-it/current.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Ci sono {{temp}} gradi {{scale}} a {{location}}, ben all'interno della mia temperatura operativa. -Ci sono {{temp}} gradi a {{location}} che si adattano bene ad un A.I. diff --git a/locale/it-it/humidity.dialog b/locale/it-it/current.humidity.location.dialog similarity index 100% rename from locale/it-it/humidity.dialog rename to locale/it-it/current.humidity.location.dialog diff --git a/locale/it-it/current.local.cold.dialog b/locale/it-it/current.local.cold.dialog deleted file mode 100644 index 8bd82967..00000000 --- a/locale/it-it/current.local.cold.dialog +++ /dev/null @@ -1,2 +0,0 @@ -attualmente ci sono {{temp}} gradi, bene entro la mia temperatura operativa -Ci sono {{temp}} gradi, abbastanza comodo per un A. I. diff --git a/locale/it-it/current.local.hot.dialog b/locale/it-it/current.local.hot.dialog deleted file mode 100644 index c20c5da6..00000000 --- a/locale/it-it/current.local.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Rientra nella mia temperatura operazionale, correntemente {{temp}} gradi -Ci sono {{temp}} gradi, abbastanza comodo per un A.I. diff --git a/locale/it-it/local.raining.alternative.dialog b/locale/it-it/current.rain.alternative.local.dialog similarity index 100% rename from locale/it-it/local.raining.alternative.dialog rename to locale/it-it/current.rain.alternative.local.dialog diff --git a/locale/it-it/raining.alternative.dialog b/locale/it-it/current.rain.alternative.location.dialog similarity index 100% rename from locale/it-it/raining.alternative.dialog rename to locale/it-it/current.rain.alternative.location.dialog diff --git a/locale/it-it/local.no.rain.predicted.dialog b/locale/it-it/current.rain.not.expected.local.dialog similarity index 100% rename from locale/it-it/local.no.rain.predicted.dialog rename to locale/it-it/current.rain.not.expected.local.dialog diff --git a/locale/it-it/no.rain.predicted.dialog b/locale/it-it/current.rain.not.expected.location.dialog similarity index 100% rename from locale/it-it/no.rain.predicted.dialog rename to locale/it-it/current.rain.not.expected.location.dialog diff --git a/locale/it-it/local.snowing.alternative.dialog b/locale/it-it/current.snow.alternative.local.dialog similarity index 100% rename from locale/it-it/local.snowing.alternative.dialog rename to locale/it-it/current.snow.alternative.local.dialog diff --git a/locale/it-it/snowing.alternative.dialog b/locale/it-it/current.snow.alternative.location.dialog similarity index 100% rename from locale/it-it/snowing.alternative.dialog rename to locale/it-it/current.snow.alternative.location.dialog diff --git a/locale/it-it/forecast.local.no.snow.predicted.dialog b/locale/it-it/current.snow.not.expected.local.dialog similarity index 100% rename from locale/it-it/forecast.local.no.snow.predicted.dialog rename to locale/it-it/current.snow.not.expected.local.dialog diff --git a/locale/it-it/no.snow.predicted.dialog b/locale/it-it/current.snow.not.expected.location.dialog similarity index 100% rename from locale/it-it/no.snow.predicted.dialog rename to locale/it-it/current.snow.not.expected.location.dialog diff --git a/locale/it-it/current.local.high.temperature.dialog b/locale/it-it/current.temperature.high.local.dialog similarity index 100% rename from locale/it-it/current.local.high.temperature.dialog rename to locale/it-it/current.temperature.high.local.dialog diff --git a/locale/it-it/current.high.temperature.dialog b/locale/it-it/current.temperature.high.location.dialog similarity index 100% rename from locale/it-it/current.high.temperature.dialog rename to locale/it-it/current.temperature.high.location.dialog diff --git a/locale/it-it/min.max.dialog b/locale/it-it/current.temperature.high.low.dialog similarity index 100% rename from locale/it-it/min.max.dialog rename to locale/it-it/current.temperature.high.low.dialog diff --git a/locale/it-it/current.local.temperature.dialog b/locale/it-it/current.temperature.local.dialog similarity index 100% rename from locale/it-it/current.local.temperature.dialog rename to locale/it-it/current.temperature.local.dialog diff --git a/locale/it-it/current.temperature.dialog b/locale/it-it/current.temperature.location.dialog similarity index 100% rename from locale/it-it/current.temperature.dialog rename to locale/it-it/current.temperature.location.dialog diff --git a/locale/it-it/current.local.low.temperature.dialog b/locale/it-it/current.temperature.low.local.dialog similarity index 100% rename from locale/it-it/current.local.low.temperature.dialog rename to locale/it-it/current.temperature.low.local.dialog diff --git a/locale/it-it/current.low.temperature.dialog b/locale/it-it/current.temperature.low.location.dialog similarity index 100% rename from locale/it-it/current.low.temperature.dialog rename to locale/it-it/current.temperature.low.location.dialog diff --git a/locale/it-it/current.local.weather.dialog b/locale/it-it/current.weather.local.dialog similarity index 100% rename from locale/it-it/current.local.weather.dialog rename to locale/it-it/current.weather.local.dialog diff --git a/locale/it-it/current.weather.dialog b/locale/it-it/current.weather.location.dialog similarity index 100% rename from locale/it-it/current.weather.dialog rename to locale/it-it/current.weather.location.dialog diff --git a/locale/it-it/local.light.wind.dialog b/locale/it-it/current.wind.light.local.dialog similarity index 100% rename from locale/it-it/local.light.wind.dialog rename to locale/it-it/current.wind.light.local.dialog diff --git a/locale/it-it/light.wind.dialog b/locale/it-it/current.wind.light.location.dialog similarity index 100% rename from locale/it-it/light.wind.dialog rename to locale/it-it/current.wind.light.location.dialog diff --git a/locale/it-it/local.medium.wind.dialog b/locale/it-it/current.wind.moderate.local.dialog similarity index 100% rename from locale/it-it/local.medium.wind.dialog rename to locale/it-it/current.wind.moderate.local.dialog diff --git a/locale/it-it/medium.wind.dialog b/locale/it-it/current.wind.moderate.location.dialog similarity index 100% rename from locale/it-it/medium.wind.dialog rename to locale/it-it/current.wind.moderate.location.dialog diff --git a/locale/it-it/local.hard.wind.dialog b/locale/it-it/current.wind.strong.local.dialog similarity index 100% rename from locale/it-it/local.hard.wind.dialog rename to locale/it-it/current.wind.strong.local.dialog diff --git a/locale/it-it/hard.wind.dialog b/locale/it-it/current.wind.strong.location.dialog similarity index 100% rename from locale/it-it/hard.wind.dialog rename to locale/it-it/current.wind.strong.location.dialog diff --git a/locale/it-it/forecast.local.clear.alternative.dialog b/locale/it-it/daily.clear.alternative.local.dialog similarity index 100% rename from locale/it-it/forecast.local.clear.alternative.dialog rename to locale/it-it/daily.clear.alternative.local.dialog diff --git a/locale/it-it/forecast.clear.alternative.dialog b/locale/it-it/daily.clear.alternative.location.dialog similarity index 100% rename from locale/it-it/forecast.clear.alternative.dialog rename to locale/it-it/daily.clear.alternative.location.dialog diff --git a/locale/it-it/forecast.local.no.clear.predicted.dialog b/locale/it-it/daily.clear.not.expected.local.dialog similarity index 100% rename from locale/it-it/forecast.local.no.clear.predicted.dialog rename to locale/it-it/daily.clear.not.expected.local.dialog diff --git a/locale/it-it/forecast.no.clear.predicted.dialog b/locale/it-it/daily.clear.not.expected.location.dialog similarity index 100% rename from locale/it-it/forecast.no.clear.predicted.dialog rename to locale/it-it/daily.clear.not.expected.location.dialog diff --git a/locale/it-it/local.cloudy.alternative.dialog b/locale/it-it/daily.clouds.alternative.local.dialog similarity index 100% rename from locale/it-it/local.cloudy.alternative.dialog rename to locale/it-it/daily.clouds.alternative.local.dialog diff --git a/locale/it-it/forecast.cloudy.alternative.dialog b/locale/it-it/daily.clouds.alternative.location.dialog similarity index 100% rename from locale/it-it/forecast.cloudy.alternative.dialog rename to locale/it-it/daily.clouds.alternative.location.dialog diff --git a/locale/it-it/forecast.local.no.cloudy.predicted.dialog b/locale/it-it/daily.clouds.not.expected.local.dialog similarity index 100% rename from locale/it-it/forecast.local.no.cloudy.predicted.dialog rename to locale/it-it/daily.clouds.not.expected.local.dialog diff --git a/locale/it-it/forecast.no.cloudy.predicted.dialog b/locale/it-it/daily.clouds.not.expected.location.dialog similarity index 100% rename from locale/it-it/forecast.no.cloudy.predicted.dialog rename to locale/it-it/daily.clouds.not.expected.location.dialog diff --git a/locale/it-it/forecast.local.affirmative.condition.dialog b/locale/it-it/daily.condition.expected.local.dialog similarity index 100% rename from locale/it-it/forecast.local.affirmative.condition.dialog rename to locale/it-it/daily.condition.expected.local.dialog diff --git a/locale/it-it/forecast.affirmative.condition.dialog b/locale/it-it/daily.condition.expected.location.dialog similarity index 100% rename from locale/it-it/forecast.affirmative.condition.dialog rename to locale/it-it/daily.condition.expected.location.dialog diff --git a/locale/it-it/local.foggy.alternative.dialog b/locale/it-it/daily.fog.alternative.local.dialog similarity index 100% rename from locale/it-it/local.foggy.alternative.dialog rename to locale/it-it/daily.fog.alternative.local.dialog diff --git a/locale/it-it/forecast.foggy.alternative.dialog b/locale/it-it/daily.fog.alternative.location.dialog similarity index 100% rename from locale/it-it/forecast.foggy.alternative.dialog rename to locale/it-it/daily.fog.alternative.location.dialog diff --git a/locale/it-it/forecast.local.no.fog.predicted.dialog b/locale/it-it/daily.fog.not.expected.local.dialog similarity index 100% rename from locale/it-it/forecast.local.no.fog.predicted.dialog rename to locale/it-it/daily.fog.not.expected.local.dialog diff --git a/locale/it-it/forecast.no.fog.predicted.dialog b/locale/it-it/daily.fog.not.expected.location.dialog similarity index 100% rename from locale/it-it/forecast.no.fog.predicted.dialog rename to locale/it-it/daily.fog.not.expected.location.dialog diff --git a/locale/it-it/forecast.local.raining.alternative.dialog b/locale/it-it/daily.rain.alternative.local.dialog similarity index 100% rename from locale/it-it/forecast.local.raining.alternative.dialog rename to locale/it-it/daily.rain.alternative.local.dialog diff --git a/locale/it-it/forecast.raining.alternative.dialog b/locale/it-it/daily.rain.alternative.location.dialog similarity index 100% rename from locale/it-it/forecast.raining.alternative.dialog rename to locale/it-it/daily.rain.alternative.location.dialog diff --git a/locale/it-it/forecast.local.no.rain.predicted.dialog b/locale/it-it/daily.rain.not.expected.local.dialog similarity index 100% rename from locale/it-it/forecast.local.no.rain.predicted.dialog rename to locale/it-it/daily.rain.not.expected.local.dialog diff --git a/locale/it-it/forecast.no.rain.predicted.dialog b/locale/it-it/daily.rain.not.expected.location.dialog similarity index 100% rename from locale/it-it/forecast.no.rain.predicted.dialog rename to locale/it-it/daily.rain.not.expected.location.dialog diff --git a/locale/it-it/forecast.snowing.alternative.dialog b/locale/it-it/daily.snow.alternative.location.dialog similarity index 100% rename from locale/it-it/forecast.snowing.alternative.dialog rename to locale/it-it/daily.snow.alternative.location.dialog diff --git a/locale/it-it/local.no.snow.predicted.dialog b/locale/it-it/daily.snow.not.expected.local.dialog similarity index 100% rename from locale/it-it/local.no.snow.predicted.dialog rename to locale/it-it/daily.snow.not.expected.local.dialog diff --git a/locale/it-it/forecast.no.snow.predicted.dialog b/locale/it-it/daily.snow.not.expected.location.dialog similarity index 100% rename from locale/it-it/forecast.no.snow.predicted.dialog rename to locale/it-it/daily.snow.not.expected.location.dialog diff --git a/locale/it-it/forecast.local.high.temperature.dialog b/locale/it-it/daily.temperature.high.local.dialog similarity index 100% rename from locale/it-it/forecast.local.high.temperature.dialog rename to locale/it-it/daily.temperature.high.local.dialog diff --git a/locale/it-it/forecast.high.temperature.dialog b/locale/it-it/daily.temperature.high.location.dialog similarity index 100% rename from locale/it-it/forecast.high.temperature.dialog rename to locale/it-it/daily.temperature.high.location.dialog diff --git a/locale/it-it/forecast.local.temperature.dialog b/locale/it-it/daily.temperature.local.dialog similarity index 100% rename from locale/it-it/forecast.local.temperature.dialog rename to locale/it-it/daily.temperature.local.dialog diff --git a/locale/it-it/forecast.temperature.dialog b/locale/it-it/daily.temperature.location.dialog similarity index 100% rename from locale/it-it/forecast.temperature.dialog rename to locale/it-it/daily.temperature.location.dialog diff --git a/locale/it-it/forecast.local.low.temperature.dialog b/locale/it-it/daily.temperature.low.local.dialog similarity index 100% rename from locale/it-it/forecast.local.low.temperature.dialog rename to locale/it-it/daily.temperature.low.local.dialog diff --git a/locale/it-it/forecast.local.weather.dialog b/locale/it-it/daily.weather.local.dialog similarity index 100% rename from locale/it-it/forecast.local.weather.dialog rename to locale/it-it/daily.weather.local.dialog diff --git a/locale/it-it/forecast.weather.dialog b/locale/it-it/daily.weather.location.dialog similarity index 100% rename from locale/it-it/forecast.weather.dialog rename to locale/it-it/daily.weather.location.dialog diff --git a/locale/it-it/forecast.local.light.wind.dialog b/locale/it-it/daily.wind.light.local.dialog similarity index 100% rename from locale/it-it/forecast.local.light.wind.dialog rename to locale/it-it/daily.wind.light.local.dialog diff --git a/locale/it-it/forecast.light.wind.dialog b/locale/it-it/daily.wind.light.location.dialog similarity index 100% rename from locale/it-it/forecast.light.wind.dialog rename to locale/it-it/daily.wind.light.location.dialog diff --git a/locale/it-it/forecast.local.medium.wind.dialog b/locale/it-it/daily.wind.moderate.local.dialog similarity index 100% rename from locale/it-it/forecast.local.medium.wind.dialog rename to locale/it-it/daily.wind.moderate.local.dialog diff --git a/locale/it-it/forecast.medium.wind.dialog b/locale/it-it/daily.wind.moderate.location.dialog similarity index 100% rename from locale/it-it/forecast.medium.wind.dialog rename to locale/it-it/daily.wind.moderate.location.dialog diff --git a/locale/it-it/forecast.local.hard.wind.dialog b/locale/it-it/daily.wind.strong.local.dialog similarity index 100% rename from locale/it-it/forecast.local.hard.wind.dialog rename to locale/it-it/daily.wind.strong.local.dialog diff --git a/locale/it-it/forecast.hard.wind.dialog b/locale/it-it/daily.wind.strong.location.dialog similarity index 100% rename from locale/it-it/forecast.hard.wind.dialog rename to locale/it-it/daily.wind.strong.location.dialog diff --git a/locale/it-it/E.dialog b/locale/it-it/east.dialog similarity index 100% rename from locale/it-it/E.dialog rename to locale/it-it/east.dialog diff --git a/locale/it-it/forecast.hot.dialog b/locale/it-it/forecast.hot.dialog deleted file mode 100644 index 4c520b87..00000000 --- a/locale/it-it/forecast.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} a {{location}} ci saranno {{temp}} gradi, abbastanza confortevole per una A.I. -{{day}} a {{location}} la temperatura sarà di {{temp}}, perfettamente tra le mie specifiche diff --git a/locale/it-it/forecast.local.hot.dialog b/locale/it-it/forecast.local.hot.dialog deleted file mode 100644 index 4a7505d0..00000000 --- a/locale/it-it/forecast.local.hot.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} ci saranno {{temp}}, abbastanza confortevole per una A.I. diff --git a/locale/it-it/hour.local.weather.dialog b/locale/it-it/hourly.weather.local.dialog similarity index 100% rename from locale/it-it/hour.local.weather.dialog rename to locale/it-it/hourly.weather.local.dialog diff --git a/locale/it-it/hour.weather.dialog b/locale/it-it/hourly.weather.location.dialog similarity index 100% rename from locale/it-it/hour.weather.dialog rename to locale/it-it/hourly.weather.location.dialog diff --git a/locale/it-it/N.dialog b/locale/it-it/north.dialog similarity index 100% rename from locale/it-it/N.dialog rename to locale/it-it/north.dialog diff --git a/locale/it-it/NE.dialog b/locale/it-it/northeast.dialog similarity index 100% rename from locale/it-it/NE.dialog rename to locale/it-it/northeast.dialog diff --git a/locale/it-it/NW.dialog b/locale/it-it/northwest.dialog similarity index 100% rename from locale/it-it/NW.dialog rename to locale/it-it/northwest.dialog diff --git a/locale/it-it/report.condition.dialog b/locale/it-it/report.condition.dialog deleted file mode 100644 index c822ce42..00000000 --- a/locale/it-it/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -{{condition}} è {{value}} diff --git a/locale/it-it/report.future.condition.dialog b/locale/it-it/report.future.condition.dialog deleted file mode 100644 index fab31071..00000000 --- a/locale/it-it/report.future.condition.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{{condition}} per {{day}} sarà {{value}} -Per {{day}} la previsione indica {{condition}} al {{value}} diff --git a/locale/it-it/S.dialog b/locale/it-it/south.dialog similarity index 100% rename from locale/it-it/S.dialog rename to locale/it-it/south.dialog diff --git a/locale/it-it/SE.dialog b/locale/it-it/southeast.dialog similarity index 100% rename from locale/it-it/SE.dialog rename to locale/it-it/southeast.dialog diff --git a/locale/it-it/SW.dialog b/locale/it-it/southwest.dialog similarity index 100% rename from locale/it-it/SW.dialog rename to locale/it-it/southwest.dialog diff --git a/locale/it-it/W.dialog b/locale/it-it/west.dialog similarity index 100% rename from locale/it-it/W.dialog rename to locale/it-it/west.dialog diff --git a/locale/it-it/what.is.three.day.forecast.intent b/locale/it-it/what.is.three.day.forecast.intent deleted file mode 100644 index c2dc125e..00000000 --- a/locale/it-it/what.is.three.day.forecast.intent +++ /dev/null @@ -1,5 +0,0 @@ - -(dimmi|com'è|qual'è) (il|le) (meteo|previsioni|previsioni meteo) (per|dei) (prossimi|prossima) (giorni|3 giorni|settimana) - -quali sono le previsioni per questa settimana -com'è il tempo questa settimana diff --git a/locale/it-it/what.is.three.day.forecast.location.intent b/locale/it-it/what.is.three.day.forecast.location.intent deleted file mode 100644 index 1e5cf895..00000000 --- a/locale/it-it/what.is.three.day.forecast.location.intent +++ /dev/null @@ -1,4 +0,0 @@ - - -quali sono le previsioni per questa settimana a {location} -com'è il tempo questa settimana a {location} diff --git a/locale/it-it/what.is.two.day.forecast.intent b/locale/it-it/what.is.two.day.forecast.intent deleted file mode 100644 index 7f27c3dc..00000000 --- a/locale/it-it/what.is.two.day.forecast.intent +++ /dev/null @@ -1,2 +0,0 @@ -il tempo per (i prossimi|) {day_one} e {day_two} -come sarà il tempo per (i prossimi|) {day_one} e {day_two} diff --git a/locale/it-it/whats.weather.like.intent b/locale/it-it/whats.weather.like.intent deleted file mode 100644 index 508cd543..00000000 --- a/locale/it-it/whats.weather.like.intent +++ /dev/null @@ -1,2 +0,0 @@ -com'è il meteo (oggi|) -come si sta fuori diff --git a/locale/it-it/wind.speed.dialog b/locale/it-it/wind.speed.dialog deleted file mode 100644 index cff9d7e4..00000000 --- a/locale/it-it/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{{speed}} {{unit}} diff --git a/locale/it-it/wind.speed.dir.dialog b/locale/it-it/wind.speed.dir.dialog deleted file mode 100644 index 56c35fb1..00000000 --- a/locale/it-it/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -di {{speed}} {{unit}} proveniente da {{dir}} -proveniente da {{dir}} a {{speed}} {{unit}} diff --git a/locale/it-it/winds.dialog b/locale/it-it/winds.dialog deleted file mode 100644 index 57d1c7df..00000000 --- a/locale/it-it/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -il vento diff --git a/locale/nl-nl/W.dialog b/locale/nl-nl/W.dialog deleted file mode 100644 index f25afc34..00000000 --- a/locale/nl-nl/W.dialog +++ /dev/null @@ -1 +0,0 @@ -west diff --git a/locale/nl-nl/humidity.dialog b/locale/nl-nl/current.humidity.location.dialog similarity index 100% rename from locale/nl-nl/humidity.dialog rename to locale/nl-nl/current.humidity.location.dialog diff --git a/locale/nl-nl/current.local.weather.dialog b/locale/nl-nl/current.weather.local.dialog similarity index 100% rename from locale/nl-nl/current.local.weather.dialog rename to locale/nl-nl/current.weather.local.dialog diff --git a/locale/nl-nl/current.weather.dialog b/locale/nl-nl/current.weather.location.dialog similarity index 100% rename from locale/nl-nl/current.weather.dialog rename to locale/nl-nl/current.weather.location.dialog diff --git a/locale/nl-nl/forecast.local.weather.dialog b/locale/nl-nl/daily.weather.local.dialog similarity index 100% rename from locale/nl-nl/forecast.local.weather.dialog rename to locale/nl-nl/daily.weather.local.dialog diff --git a/locale/nl-nl/forecast.weather.dialog b/locale/nl-nl/daily.weather.location.dialog similarity index 100% rename from locale/nl-nl/forecast.weather.dialog rename to locale/nl-nl/daily.weather.location.dialog diff --git a/locale/nl-nl/E.dialog b/locale/nl-nl/east.dialog similarity index 100% rename from locale/nl-nl/E.dialog rename to locale/nl-nl/east.dialog diff --git a/locale/nl-nl/hour.local.weather.dialog b/locale/nl-nl/hourly.weather.local.dialog similarity index 100% rename from locale/nl-nl/hour.local.weather.dialog rename to locale/nl-nl/hourly.weather.local.dialog diff --git a/locale/nl-nl/hour.weather.dialog b/locale/nl-nl/hourly.weather.location.dialog similarity index 100% rename from locale/nl-nl/hour.weather.dialog rename to locale/nl-nl/hourly.weather.location.dialog diff --git a/locale/nl-nl/N.dialog b/locale/nl-nl/north.dialog similarity index 100% rename from locale/nl-nl/N.dialog rename to locale/nl-nl/north.dialog diff --git a/locale/nl-nl/NE.dialog b/locale/nl-nl/northeast.dialog similarity index 100% rename from locale/nl-nl/NE.dialog rename to locale/nl-nl/northeast.dialog diff --git a/locale/nl-nl/NW.dialog b/locale/nl-nl/northwest.dialog similarity index 100% rename from locale/nl-nl/NW.dialog rename to locale/nl-nl/northwest.dialog diff --git a/locale/nl-nl/report.condition.dialog b/locale/nl-nl/report.condition.dialog deleted file mode 100644 index 1aee200b..00000000 --- a/locale/nl-nl/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -{{condition}} is {{value}} diff --git a/locale/nl-nl/report.future.condition.dialog b/locale/nl-nl/report.future.condition.dialog deleted file mode 100644 index 6d0d4268..00000000 --- a/locale/nl-nl/report.future.condition.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{{condition}} voor {{day}} zal {{value}} zijn -Op {{day}} is de verwachting met een {{condition}} van {{value}} diff --git a/locale/nl-nl/S.dialog b/locale/nl-nl/south.dialog similarity index 100% rename from locale/nl-nl/S.dialog rename to locale/nl-nl/south.dialog diff --git a/locale/nl-nl/SE.dialog b/locale/nl-nl/southeast.dialog similarity index 100% rename from locale/nl-nl/SE.dialog rename to locale/nl-nl/southeast.dialog diff --git a/locale/nl-nl/SW.dialog b/locale/nl-nl/southwest.dialog similarity index 100% rename from locale/nl-nl/SW.dialog rename to locale/nl-nl/southwest.dialog diff --git a/locale/nl-nl/wind.speed.dialog b/locale/nl-nl/wind.speed.dialog deleted file mode 100644 index cff9d7e4..00000000 --- a/locale/nl-nl/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{{speed}} {{unit}} diff --git a/locale/nl-nl/wind.speed.dir.dialog b/locale/nl-nl/wind.speed.dir.dialog deleted file mode 100644 index 6c6262e4..00000000 --- a/locale/nl-nl/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -met {{speed}} {{unit}} vanuit {{dir}} -vanuit het {{dir}} met {{speed}} {{unit}} diff --git a/locale/nl-nl/winds.dialog b/locale/nl-nl/winds.dialog deleted file mode 100644 index 20268dd3..00000000 --- a/locale/nl-nl/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -de wind diff --git a/locale/pt-br/Cloudy.voc b/locale/pt-br/Clouds.voc similarity index 100% rename from locale/pt-br/Cloudy.voc rename to locale/pt-br/Clouds.voc diff --git a/locale/pt-br/CloudyAlternatives.voc b/locale/pt-br/CloudsAlternatives.voc similarity index 100% rename from locale/pt-br/CloudyAlternatives.voc rename to locale/pt-br/CloudsAlternatives.voc diff --git a/locale/pt-br/Foggy.voc b/locale/pt-br/Fog.voc similarity index 100% rename from locale/pt-br/Foggy.voc rename to locale/pt-br/Fog.voc diff --git a/locale/pt-br/Raining.voc b/locale/pt-br/Rain.voc similarity index 100% rename from locale/pt-br/Raining.voc rename to locale/pt-br/Rain.voc diff --git a/locale/pt-br/Snowing.voc b/locale/pt-br/Snow.voc similarity index 100% rename from locale/pt-br/Snowing.voc rename to locale/pt-br/Snow.voc diff --git a/locale/pt-br/Storm.voc b/locale/pt-br/Thunderstorm.voc similarity index 100% rename from locale/pt-br/Storm.voc rename to locale/pt-br/Thunderstorm.voc diff --git a/locale/pt-br/StormAlternatives.voc b/locale/pt-br/ThunderstormAlternatives.voc similarity index 100% rename from locale/pt-br/StormAlternatives.voc rename to locale/pt-br/ThunderstormAlternatives.voc diff --git a/locale/pt-br/and.dialog b/locale/pt-br/and.dialog deleted file mode 100644 index b18c97b5..00000000 --- a/locale/pt-br/and.dialog +++ /dev/null @@ -1 +0,0 @@ -, e diff --git a/locale/pt-br/at.time.forecast.affirmative.condition.dialog b/locale/pt-br/at.time.forecast.affirmative.condition.dialog deleted file mode 100644 index 66293ab2..00000000 --- a/locale/pt-br/at.time.forecast.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Resposta afirmativa a questões como "vai nevar em Paris amanhã de tarde" -Sim, a previsão para {day}{time} indica {condition} em {location} -Sim, a previsão para {time} de {day} em {location} indica {condition} diff --git a/locale/pt-br/at.time.forecast.cond.alternative.dialog b/locale/pt-br/at.time.forecast.cond.alternative.dialog deleted file mode 100644 index 0fa80f50..00000000 --- a/locale/pt-br/at.time.forecast.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa ao tempo bom vai ocorrer em um horário especificado -Não, a previsão para {time} de {day} indica {condition} em {location} -Parece que não, a previsão às {time} em {day} sugere que {location} terá {condition} diff --git a/locale/pt-br/at.time.forecast.local.affirmative.condition.dialog b/locale/pt-br/at.time.forecast.local.affirmative.condition.dialog deleted file mode 100644 index 12b78fa1..00000000 --- a/locale/pt-br/at.time.forecast.local.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Resposta afirmativa a questões como "vai nevar amanhã" -Sim, esperado {condition} de acordo com a previsão às {time} em {day} -Sim, a previsão para {time} indica {condition} {day} diff --git a/locale/pt-br/at.time.forecast.local.cond.alternative.dialog b/locale/pt-br/at.time.forecast.local.cond.alternative.dialog deleted file mode 100644 index 977c0de7..00000000 --- a/locale/pt-br/at.time.forecast.local.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa para limpar o tempo vai ocorrer -Não, a previsão para {time} indica {condition} {day} -Parece que não, a previsão às {time} em {day} sugere que será {condition} diff --git a/locale/pt-br/at.time.forecast.local.no.cond.predicted.dialog b/locale/pt-br/at.time.forecast.local.no.cond.predicted.dialog deleted file mode 100644 index a7485b37..00000000 --- a/locale/pt-br/at.time.forecast.local.no.cond.predicted.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# Quando o usuário pergunta se uma condição de tempo mas isso não acontece -Não, a previsão para {time} indica {condition} {day} diff --git a/locale/pt-br/at.time.forecast.no.cond.predicted.dialog b/locale/pt-br/at.time.forecast.no.cond.predicted.dialog deleted file mode 100644 index b4db78fe..00000000 --- a/locale/pt-br/at.time.forecast.no.cond.predicted.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se ocorre uma condição de tempo mas isso não acontece -Não, a previsão de {time} em {location} sugere que será {condition} -Parece que não, a previsão de {time} em {location} sugere que será {condition} diff --git a/locale/pt-br/at.time.local.high.temperature.dialog b/locale/pt-br/at.time.local.high.temperature.dialog deleted file mode 100644 index 03ac176e..00000000 --- a/locale/pt-br/at.time.local.high.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -A temperatura vai subir até {temp} graus {time} -{time}, a temperatura vai subir até {temp} graus diff --git a/locale/pt-br/at.time.local.low.temperature.dialog b/locale/pt-br/at.time.local.low.temperature.dialog deleted file mode 100644 index 5e22b979..00000000 --- a/locale/pt-br/at.time.local.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -A temperatura vai baixar até {temp} graus {time} -{time}, vai esfriar até {temp} graus diff --git a/locale/pt-br/at.time.local.weather.dialog b/locale/pt-br/at.time.local.weather.dialog deleted file mode 100644 index 6b36e8ba..00000000 --- a/locale/pt-br/at.time.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Teremos {condition}, com temperaturas perto de {temp} às {time} -{time}, teremos {condition} e temperatura por volta de {temp} graus -{time}, teremos {condition} e {temp} graus -{time}, teremos {condition} com {temp} graus diff --git a/locale/pt-br/local.clear.alternative.dialog b/locale/pt-br/current.clear.alternative.local.dialog similarity index 100% rename from locale/pt-br/local.clear.alternative.dialog rename to locale/pt-br/current.clear.alternative.local.dialog diff --git a/locale/pt-br/clear.alternative.dialog b/locale/pt-br/current.clear.alternative.location.dialog similarity index 100% rename from locale/pt-br/clear.alternative.dialog rename to locale/pt-br/current.clear.alternative.location.dialog diff --git a/locale/pt-br/no.clear.predicted.dialog b/locale/pt-br/current.clear.not.expected.location.dialog similarity index 100% rename from locale/pt-br/no.clear.predicted.dialog rename to locale/pt-br/current.clear.not.expected.location.dialog diff --git a/locale/pt-br/local.cloudy.alternative.dialog b/locale/pt-br/current.clouds.alternative.local.dialog similarity index 100% rename from locale/pt-br/local.cloudy.alternative.dialog rename to locale/pt-br/current.clouds.alternative.local.dialog diff --git a/locale/pt-br/cloudy.alternative.dialog b/locale/pt-br/current.clouds.alternative.location.dialog similarity index 100% rename from locale/pt-br/cloudy.alternative.dialog rename to locale/pt-br/current.clouds.alternative.location.dialog diff --git a/locale/pt-br/local.no.cloudy.predicted.dialog b/locale/pt-br/current.clouds.not.expected.local.dialog similarity index 100% rename from locale/pt-br/local.no.cloudy.predicted.dialog rename to locale/pt-br/current.clouds.not.expected.local.dialog diff --git a/locale/pt-br/no.cloudy.predicted.dialog b/locale/pt-br/current.clouds.not.expected.location.dialog similarity index 100% rename from locale/pt-br/no.cloudy.predicted.dialog rename to locale/pt-br/current.clouds.not.expected.location.dialog diff --git a/locale/pt-br/local.affirmative.condition.dialog b/locale/pt-br/current.condition.expected.local.dialog similarity index 100% rename from locale/pt-br/local.affirmative.condition.dialog rename to locale/pt-br/current.condition.expected.local.dialog diff --git a/locale/pt-br/affirmative.condition.dialog b/locale/pt-br/current.condition.expected.location.dialog similarity index 100% rename from locale/pt-br/affirmative.condition.dialog rename to locale/pt-br/current.condition.expected.location.dialog diff --git a/locale/pt-br/local.foggy.alternative.dialog b/locale/pt-br/current.fog.alternative.local.dialog similarity index 100% rename from locale/pt-br/local.foggy.alternative.dialog rename to locale/pt-br/current.fog.alternative.local.dialog diff --git a/locale/pt-br/fog.alternative.dialog b/locale/pt-br/current.fog.alternative.location.dialog similarity index 100% rename from locale/pt-br/fog.alternative.dialog rename to locale/pt-br/current.fog.alternative.location.dialog diff --git a/locale/pt-br/local.no.fog.predicted.dialog b/locale/pt-br/current.fog.not.expected.local.dialog similarity index 100% rename from locale/pt-br/local.no.fog.predicted.dialog rename to locale/pt-br/current.fog.not.expected.local.dialog diff --git a/locale/pt-br/no.fog.predicted.dialog b/locale/pt-br/current.fog.not.expected.location.dialog similarity index 100% rename from locale/pt-br/no.fog.predicted.dialog rename to locale/pt-br/current.fog.not.expected.location.dialog diff --git a/locale/pt-br/current.hot.dialog b/locale/pt-br/current.hot.dialog deleted file mode 100644 index 4c77b3ba..00000000 --- a/locale/pt-br/current.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Está {temp} graus {scale} em {location}, bem dentro da minha temperatura operacional. -Está {temp} graus em {location}, o que cai bem para uma I.A.. diff --git a/locale/pt-br/humidity.dialog b/locale/pt-br/current.humidity.location.dialog similarity index 100% rename from locale/pt-br/humidity.dialog rename to locale/pt-br/current.humidity.location.dialog diff --git a/locale/pt-br/current.local.cold.dialog b/locale/pt-br/current.local.cold.dialog deleted file mode 100644 index 88900389..00000000 --- a/locale/pt-br/current.local.cold.dialog +++ /dev/null @@ -1,2 +0,0 @@ -no momento faz {temp}, bem dentro da minha temperatura operacional -Faz {temp}, bastante confortável para uma I.A. diff --git a/locale/pt-br/current.local.hot.dialog b/locale/pt-br/current.local.hot.dialog deleted file mode 100644 index f1127be5..00000000 --- a/locale/pt-br/current.local.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Está dentro da minha temperatura operacional, atualmente em {temp} graus -Faz {temp} graus, bastante confortável para uma I.A. diff --git a/locale/pt-br/local.raining.alternative.dialog b/locale/pt-br/current.rain.alternative.local.dialog similarity index 100% rename from locale/pt-br/local.raining.alternative.dialog rename to locale/pt-br/current.rain.alternative.local.dialog diff --git a/locale/pt-br/raining.alternative.dialog b/locale/pt-br/current.rain.alternative.location.dialog similarity index 100% rename from locale/pt-br/raining.alternative.dialog rename to locale/pt-br/current.rain.alternative.location.dialog diff --git a/locale/pt-br/local.no.rain.predicted.dialog b/locale/pt-br/current.rain.not.expected.local.dialog similarity index 100% rename from locale/pt-br/local.no.rain.predicted.dialog rename to locale/pt-br/current.rain.not.expected.local.dialog diff --git a/locale/pt-br/no.rain.predicted.dialog b/locale/pt-br/current.rain.not.expected.location.dialog similarity index 100% rename from locale/pt-br/no.rain.predicted.dialog rename to locale/pt-br/current.rain.not.expected.location.dialog diff --git a/locale/pt-br/local.snowing.alternative.dialog b/locale/pt-br/current.snow.alternative.local.dialog similarity index 100% rename from locale/pt-br/local.snowing.alternative.dialog rename to locale/pt-br/current.snow.alternative.local.dialog diff --git a/locale/pt-br/snowing.alternative.dialog b/locale/pt-br/current.snow.alternative.location.dialog similarity index 100% rename from locale/pt-br/snowing.alternative.dialog rename to locale/pt-br/current.snow.alternative.location.dialog diff --git a/locale/pt-br/local.no.snow.predicted.dialog b/locale/pt-br/current.snow.not.expected.local.dialog similarity index 100% rename from locale/pt-br/local.no.snow.predicted.dialog rename to locale/pt-br/current.snow.not.expected.local.dialog diff --git a/locale/pt-br/no.snow.predicted.dialog b/locale/pt-br/current.snow.not.expected.location.dialog similarity index 100% rename from locale/pt-br/no.snow.predicted.dialog rename to locale/pt-br/current.snow.not.expected.location.dialog diff --git a/locale/pt-br/current.local.high.temperature.dialog b/locale/pt-br/current.temperature.high.local.dialog similarity index 100% rename from locale/pt-br/current.local.high.temperature.dialog rename to locale/pt-br/current.temperature.high.local.dialog diff --git a/locale/pt-br/current.high.temperature.dialog b/locale/pt-br/current.temperature.high.location.dialog similarity index 100% rename from locale/pt-br/current.high.temperature.dialog rename to locale/pt-br/current.temperature.high.location.dialog diff --git a/locale/pt-br/min.max.dialog b/locale/pt-br/current.temperature.high.low.dialog similarity index 100% rename from locale/pt-br/min.max.dialog rename to locale/pt-br/current.temperature.high.low.dialog diff --git a/locale/pt-br/current.local.temperature.dialog b/locale/pt-br/current.temperature.local.dialog similarity index 100% rename from locale/pt-br/current.local.temperature.dialog rename to locale/pt-br/current.temperature.local.dialog diff --git a/locale/pt-br/current.temperature.dialog b/locale/pt-br/current.temperature.location.dialog similarity index 100% rename from locale/pt-br/current.temperature.dialog rename to locale/pt-br/current.temperature.location.dialog diff --git a/locale/pt-br/current.local.low.temperature.dialog b/locale/pt-br/current.temperature.low.local.dialog similarity index 100% rename from locale/pt-br/current.local.low.temperature.dialog rename to locale/pt-br/current.temperature.low.local.dialog diff --git a/locale/pt-br/current.low.temperature.dialog b/locale/pt-br/current.temperature.low.location.dialog similarity index 100% rename from locale/pt-br/current.low.temperature.dialog rename to locale/pt-br/current.temperature.low.location.dialog diff --git a/locale/pt-br/local.storm.alternative.dialog b/locale/pt-br/current.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/pt-br/local.storm.alternative.dialog rename to locale/pt-br/current.thunderstorm.alternative.local.dialog diff --git a/locale/pt-br/storm.alternative.dialog b/locale/pt-br/current.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/pt-br/storm.alternative.dialog rename to locale/pt-br/current.thunderstorm.alternative.location.dialog diff --git a/locale/pt-br/local.no.storm.predicted.dialog b/locale/pt-br/current.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/pt-br/local.no.storm.predicted.dialog rename to locale/pt-br/current.thunderstorm.not.expected.local.dialog diff --git a/locale/pt-br/no.storm.predicted.dialog b/locale/pt-br/current.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/pt-br/no.storm.predicted.dialog rename to locale/pt-br/current.thunderstorm.not.expected.location.dialog diff --git a/locale/pt-br/current.local.weather.dialog b/locale/pt-br/current.weather.local.dialog similarity index 100% rename from locale/pt-br/current.local.weather.dialog rename to locale/pt-br/current.weather.local.dialog diff --git a/locale/pt-br/current.weather.dialog b/locale/pt-br/current.weather.location.dialog similarity index 100% rename from locale/pt-br/current.weather.dialog rename to locale/pt-br/current.weather.location.dialog diff --git a/locale/pt-br/local.light.wind.dialog b/locale/pt-br/current.wind.light.local.dialog similarity index 100% rename from locale/pt-br/local.light.wind.dialog rename to locale/pt-br/current.wind.light.local.dialog diff --git a/locale/pt-br/light.wind.dialog b/locale/pt-br/current.wind.light.location.dialog similarity index 100% rename from locale/pt-br/light.wind.dialog rename to locale/pt-br/current.wind.light.location.dialog diff --git a/locale/pt-br/local.medium.wind.dialog b/locale/pt-br/current.wind.moderate.local.dialog similarity index 100% rename from locale/pt-br/local.medium.wind.dialog rename to locale/pt-br/current.wind.moderate.local.dialog diff --git a/locale/pt-br/medium.wind.dialog b/locale/pt-br/current.wind.moderate.location.dialog similarity index 100% rename from locale/pt-br/medium.wind.dialog rename to locale/pt-br/current.wind.moderate.location.dialog diff --git a/locale/pt-br/local.hard.wind.dialog b/locale/pt-br/current.wind.strong.local.dialog similarity index 100% rename from locale/pt-br/local.hard.wind.dialog rename to locale/pt-br/current.wind.strong.local.dialog diff --git a/locale/pt-br/hard.wind.dialog b/locale/pt-br/current.wind.strong.location.dialog similarity index 100% rename from locale/pt-br/hard.wind.dialog rename to locale/pt-br/current.wind.strong.location.dialog diff --git a/locale/pt-br/forecast.local.clear.alternative.dialog b/locale/pt-br/daily.clear.alternative.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.clear.alternative.dialog rename to locale/pt-br/daily.clear.alternative.local.dialog diff --git a/locale/pt-br/forecast.clear.alternative.dialog b/locale/pt-br/daily.clear.alternative.location.dialog similarity index 100% rename from locale/pt-br/forecast.clear.alternative.dialog rename to locale/pt-br/daily.clear.alternative.location.dialog diff --git a/locale/pt-br/forecast.local.no.clear.predicted.dialog b/locale/pt-br/daily.clear.not.expected.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.no.clear.predicted.dialog rename to locale/pt-br/daily.clear.not.expected.local.dialog diff --git a/locale/pt-br/forecast.no.clear.predicted.dialog b/locale/pt-br/daily.clear.not.expected.location.dialog similarity index 100% rename from locale/pt-br/forecast.no.clear.predicted.dialog rename to locale/pt-br/daily.clear.not.expected.location.dialog diff --git a/locale/pt-br/forecast.local.cloudy.alternative.dialog b/locale/pt-br/daily.clouds.alternative.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.cloudy.alternative.dialog rename to locale/pt-br/daily.clouds.alternative.local.dialog diff --git a/locale/pt-br/forecast.cloudy.alternative.dialog b/locale/pt-br/daily.clouds.alternative.location.dialog similarity index 100% rename from locale/pt-br/forecast.cloudy.alternative.dialog rename to locale/pt-br/daily.clouds.alternative.location.dialog diff --git a/locale/pt-br/forecast.local.no.cloudy.predicted.dialog b/locale/pt-br/daily.clouds.not.expected.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.no.cloudy.predicted.dialog rename to locale/pt-br/daily.clouds.not.expected.local.dialog diff --git a/locale/pt-br/forecast.no.cloudy.predicted.dialog b/locale/pt-br/daily.clouds.not.expected.location.dialog similarity index 100% rename from locale/pt-br/forecast.no.cloudy.predicted.dialog rename to locale/pt-br/daily.clouds.not.expected.location.dialog diff --git a/locale/pt-br/forecast.local.affirmative.condition.dialog b/locale/pt-br/daily.condition.expected.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.affirmative.condition.dialog rename to locale/pt-br/daily.condition.expected.local.dialog diff --git a/locale/pt-br/forecast.affirmative.condition.dialog b/locale/pt-br/daily.condition.expected.location.dialog similarity index 100% rename from locale/pt-br/forecast.affirmative.condition.dialog rename to locale/pt-br/daily.condition.expected.location.dialog diff --git a/locale/pt-br/forecast.local.foggy.alternative.dialog b/locale/pt-br/daily.fog.alternative.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.foggy.alternative.dialog rename to locale/pt-br/daily.fog.alternative.local.dialog diff --git a/locale/pt-br/forecast.foggy.alternative.dialog b/locale/pt-br/daily.fog.alternative.location.dialog similarity index 100% rename from locale/pt-br/forecast.foggy.alternative.dialog rename to locale/pt-br/daily.fog.alternative.location.dialog diff --git a/locale/pt-br/forecast.local.no.fog.predicted.dialog b/locale/pt-br/daily.fog.not.expected.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.no.fog.predicted.dialog rename to locale/pt-br/daily.fog.not.expected.local.dialog diff --git a/locale/pt-br/forecast.no.fog.predicted.dialog b/locale/pt-br/daily.fog.not.expected.location.dialog similarity index 100% rename from locale/pt-br/forecast.no.fog.predicted.dialog rename to locale/pt-br/daily.fog.not.expected.location.dialog diff --git a/locale/pt-br/forecast.local.raining.alternative.dialog b/locale/pt-br/daily.rain.alternative.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.raining.alternative.dialog rename to locale/pt-br/daily.rain.alternative.local.dialog diff --git a/locale/pt-br/forecast.raining.alternative.dialog b/locale/pt-br/daily.rain.alternative.location.dialog similarity index 100% rename from locale/pt-br/forecast.raining.alternative.dialog rename to locale/pt-br/daily.rain.alternative.location.dialog diff --git a/locale/pt-br/forecast.local.no.rain.predicted.dialog b/locale/pt-br/daily.rain.not.expected.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.no.rain.predicted.dialog rename to locale/pt-br/daily.rain.not.expected.local.dialog diff --git a/locale/pt-br/forecast.no.rain.predicted.dialog b/locale/pt-br/daily.rain.not.expected.location.dialog similarity index 100% rename from locale/pt-br/forecast.no.rain.predicted.dialog rename to locale/pt-br/daily.rain.not.expected.location.dialog diff --git a/locale/pt-br/forecast.snowing.alternative.dialog b/locale/pt-br/daily.snow.alternative.location.dialog similarity index 100% rename from locale/pt-br/forecast.snowing.alternative.dialog rename to locale/pt-br/daily.snow.alternative.location.dialog diff --git a/locale/pt-br/forecast.local.no.snow.predicted.dialog b/locale/pt-br/daily.snow.not.expected.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.no.snow.predicted.dialog rename to locale/pt-br/daily.snow.not.expected.local.dialog diff --git a/locale/pt-br/forecast.no.snow.predicted.dialog b/locale/pt-br/daily.snow.not.expected.location.dialog similarity index 100% rename from locale/pt-br/forecast.no.snow.predicted.dialog rename to locale/pt-br/daily.snow.not.expected.location.dialog diff --git a/locale/pt-br/forecast.high.temperature.dialog b/locale/pt-br/daily.temperature.high.dialog similarity index 100% rename from locale/pt-br/forecast.high.temperature.dialog rename to locale/pt-br/daily.temperature.high.dialog diff --git a/locale/pt-br/forecast.local.high.temperature.dialog b/locale/pt-br/daily.temperature.high.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.high.temperature.dialog rename to locale/pt-br/daily.temperature.high.local.dialog diff --git a/locale/pt-br/forecast.local.temperature.dialog b/locale/pt-br/daily.temperature.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.temperature.dialog rename to locale/pt-br/daily.temperature.local.dialog diff --git a/locale/pt-br/forecast.temperature.dialog b/locale/pt-br/daily.temperature.location.dialog similarity index 100% rename from locale/pt-br/forecast.temperature.dialog rename to locale/pt-br/daily.temperature.location.dialog diff --git a/locale/pt-br/forecast.local.low.temperature.dialog b/locale/pt-br/daily.temperature.low.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.low.temperature.dialog rename to locale/pt-br/daily.temperature.low.local.dialog diff --git a/locale/pt-br/forecast.low.temperature.dialog b/locale/pt-br/daily.temperature.low.location.dialog similarity index 100% rename from locale/pt-br/forecast.low.temperature.dialog rename to locale/pt-br/daily.temperature.low.location.dialog diff --git a/locale/pt-br/forecast.local.storm.alternative.dialog b/locale/pt-br/daily.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.storm.alternative.dialog rename to locale/pt-br/daily.thunderstorm.alternative.local.dialog diff --git a/locale/pt-br/forecast.storm.alternative.dialog b/locale/pt-br/daily.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/pt-br/forecast.storm.alternative.dialog rename to locale/pt-br/daily.thunderstorm.alternative.location.dialog diff --git a/locale/pt-br/forecast.local.no.storm.predicted.dialog b/locale/pt-br/daily.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.no.storm.predicted.dialog rename to locale/pt-br/daily.thunderstorm.not.expected.local.dialog diff --git a/locale/pt-br/forecast.no.storm.predicted.dialog b/locale/pt-br/daily.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/pt-br/forecast.no.storm.predicted.dialog rename to locale/pt-br/daily.thunderstorm.not.expected.location.dialog diff --git a/locale/pt-br/forecast.local.weather.dialog b/locale/pt-br/daily.weather.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.weather.dialog rename to locale/pt-br/daily.weather.local.dialog diff --git a/locale/pt-br/forecast.weather.dialog b/locale/pt-br/daily.weather.location.dialog similarity index 100% rename from locale/pt-br/forecast.weather.dialog rename to locale/pt-br/daily.weather.location.dialog diff --git a/locale/pt-br/forecast.local.light.wind.dialog b/locale/pt-br/daily.wind.light.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.light.wind.dialog rename to locale/pt-br/daily.wind.light.local.dialog diff --git a/locale/pt-br/forecast.light.wind.dialog b/locale/pt-br/daily.wind.light.location.dialog similarity index 100% rename from locale/pt-br/forecast.light.wind.dialog rename to locale/pt-br/daily.wind.light.location.dialog diff --git a/locale/pt-br/forecast.local.medium.wind.dialog b/locale/pt-br/daily.wind.moderate.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.medium.wind.dialog rename to locale/pt-br/daily.wind.moderate.local.dialog diff --git a/locale/pt-br/forecast.medium.wind.dialog b/locale/pt-br/daily.wind.moderate.location.dialog similarity index 100% rename from locale/pt-br/forecast.medium.wind.dialog rename to locale/pt-br/daily.wind.moderate.location.dialog diff --git a/locale/pt-br/forecast.local.hard.wind.dialog b/locale/pt-br/daily.wind.strong.local.dialog similarity index 100% rename from locale/pt-br/forecast.local.hard.wind.dialog rename to locale/pt-br/daily.wind.strong.local.dialog diff --git a/locale/pt-br/forecast.hard.wind.dialog b/locale/pt-br/daily.wind.strong.location.dialog similarity index 100% rename from locale/pt-br/forecast.hard.wind.dialog rename to locale/pt-br/daily.wind.strong.location.dialog diff --git a/locale/pt-br/E.dialog b/locale/pt-br/east.dialog similarity index 100% rename from locale/pt-br/E.dialog rename to locale/pt-br/east.dialog diff --git a/locale/pt-br/forecast.hot.dialog b/locale/pt-br/forecast.hot.dialog deleted file mode 100644 index badfaab9..00000000 --- a/locale/pt-br/forecast.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} fará {temp} graus em {location}, bastante confortável para uma I.A. -{day} a temperatura será de {temp} em {location}, bem dentro das minhas especificações diff --git a/locale/pt-br/forecast.local.hot.dialog b/locale/pt-br/forecast.local.hot.dialog deleted file mode 100644 index 3daa600b..00000000 --- a/locale/pt-br/forecast.local.hot.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} fará {temp}, bastante confortável para uma IA diff --git a/locale/pt-br/at.time.local.cond.alternative.dialog b/locale/pt-br/hourly.condition.alternative.local.dialog similarity index 100% rename from locale/pt-br/at.time.local.cond.alternative.dialog rename to locale/pt-br/hourly.condition.alternative.local.dialog diff --git a/locale/pt-br/at.time.cond.alternative.dialog b/locale/pt-br/hourly.condition.alternative.location.dialog similarity index 100% rename from locale/pt-br/at.time.cond.alternative.dialog rename to locale/pt-br/hourly.condition.alternative.location.dialog diff --git a/locale/pt-br/at.time.local.affirmative.condition.dialog b/locale/pt-br/hourly.condition.expected.local.dialog similarity index 100% rename from locale/pt-br/at.time.local.affirmative.condition.dialog rename to locale/pt-br/hourly.condition.expected.local.dialog diff --git a/locale/pt-br/at.time.affirmative.condition.dialog b/locale/pt-br/hourly.condition.expected.location.dialog similarity index 100% rename from locale/pt-br/at.time.affirmative.condition.dialog rename to locale/pt-br/hourly.condition.expected.location.dialog diff --git a/locale/pt-br/at.time.local.no.cond.predicted.dialog b/locale/pt-br/hourly.condition.not.expected.local.dialog similarity index 100% rename from locale/pt-br/at.time.local.no.cond.predicted.dialog rename to locale/pt-br/hourly.condition.not.expected.local.dialog diff --git a/locale/pt-br/at.time.no.cond.predicted.dialog b/locale/pt-br/hourly.condition.not.expected.location.dialog similarity index 100% rename from locale/pt-br/at.time.no.cond.predicted.dialog rename to locale/pt-br/hourly.condition.not.expected.location.dialog diff --git a/locale/pt-br/at.time.local.temperature.dialog b/locale/pt-br/hourly.temperature.local.dialog similarity index 100% rename from locale/pt-br/at.time.local.temperature.dialog rename to locale/pt-br/hourly.temperature.local.dialog diff --git a/locale/pt-br/hour.local.weather.dialog b/locale/pt-br/hourly.weather.local.dialog similarity index 100% rename from locale/pt-br/hour.local.weather.dialog rename to locale/pt-br/hourly.weather.local.dialog diff --git a/locale/pt-br/hour.weather.dialog b/locale/pt-br/hourly.weather.location.dialog similarity index 100% rename from locale/pt-br/hour.weather.dialog rename to locale/pt-br/hourly.weather.location.dialog diff --git a/locale/pt-br/N.dialog b/locale/pt-br/north.dialog similarity index 100% rename from locale/pt-br/N.dialog rename to locale/pt-br/north.dialog diff --git a/locale/pt-br/NE.dialog b/locale/pt-br/northeast.dialog similarity index 100% rename from locale/pt-br/NE.dialog rename to locale/pt-br/northeast.dialog diff --git a/locale/pt-br/NW.dialog b/locale/pt-br/northwest.dialog similarity index 100% rename from locale/pt-br/NW.dialog rename to locale/pt-br/northwest.dialog diff --git a/locale/pt-br/report.condition.at.location.dialog b/locale/pt-br/report.condition.at.location.dialog deleted file mode 100644 index 9b8f844b..00000000 --- a/locale/pt-br/report.condition.at.location.dialog +++ /dev/null @@ -1 +0,0 @@ -No momento, {condition} em {location} é {value} diff --git a/locale/pt-br/report.condition.dialog b/locale/pt-br/report.condition.dialog deleted file mode 100644 index 291251b1..00000000 --- a/locale/pt-br/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -No momento, {condition} é {value} diff --git a/locale/pt-br/report.condition.future.at.location.dialog b/locale/pt-br/report.condition.future.at.location.dialog deleted file mode 100644 index 15e83b08..00000000 --- a/locale/pt-br/report.condition.future.at.location.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} em {location} {day} será {value} -{day} a previsão em {location} indica {condition} de {value} diff --git a/locale/pt-br/report.condition.future.dialog b/locale/pt-br/report.condition.future.dialog deleted file mode 100644 index 1012b036..00000000 --- a/locale/pt-br/report.condition.future.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} {day} será {value} -{day} a previsão indica {condition} de {value} diff --git a/locale/pt-br/report.wind.dialog b/locale/pt-br/report.wind.dialog deleted file mode 100644 index ec0a3932..00000000 --- a/locale/pt-br/report.wind.dialog +++ /dev/null @@ -1 +0,0 @@ -{condition} é {value} diff --git a/locale/pt-br/S.dialog b/locale/pt-br/south.dialog similarity index 100% rename from locale/pt-br/S.dialog rename to locale/pt-br/south.dialog diff --git a/locale/pt-br/SE.dialog b/locale/pt-br/southeast.dialog similarity index 100% rename from locale/pt-br/SE.dialog rename to locale/pt-br/southeast.dialog diff --git a/locale/pt-br/SW.dialog b/locale/pt-br/southwest.dialog similarity index 100% rename from locale/pt-br/SW.dialog rename to locale/pt-br/southwest.dialog diff --git a/locale/pt-br/tonight.local.weather.dialog b/locale/pt-br/tonight.local.weather.dialog deleted file mode 100644 index ec7c4b5e..00000000 --- a/locale/pt-br/tonight.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Hoje a noite teremos {condition}, com temperaturas de aproximadamente {temp} -Hoje a noite teremos {condition} e cerca de {temp} graus -Hoje a noite estará {condition} e {temp} graus -Cerca de {temp} graus com {condition} hoje a noite diff --git a/locale/pt-br/W.dialog b/locale/pt-br/west.dialog similarity index 100% rename from locale/pt-br/W.dialog rename to locale/pt-br/west.dialog diff --git a/locale/pt-br/what.is.three.day.forecast.intent b/locale/pt-br/what.is.three.day.forecast.intent deleted file mode 100644 index 34ad6836..00000000 --- a/locale/pt-br/what.is.three.day.forecast.intent +++ /dev/null @@ -1,2 +0,0 @@ -previsão para (3|três) dias -(diga-me|qual é) a (previsão|previsão do tempo) (de 3 dias|para três dias|prolongada|semanal| para a semana) diff --git a/locale/pt-br/what.is.three.day.forecast.location.intent b/locale/pt-br/what.is.three.day.forecast.location.intent deleted file mode 100644 index 640d1b9d..00000000 --- a/locale/pt-br/what.is.three.day.forecast.location.intent +++ /dev/null @@ -1 +0,0 @@ -(diga-me|me diga|qual é) (o|a) (previsão do tempo| tempo|previsão) (para 3 dias|de três dias|prolongada|semanal|para a semana) (para|em) {Location} diff --git a/locale/pt-br/what.is.two.day.forecast.intent b/locale/pt-br/what.is.two.day.forecast.intent deleted file mode 100644 index 786e0cdd..00000000 --- a/locale/pt-br/what.is.two.day.forecast.intent +++ /dev/null @@ -1,3 +0,0 @@ -tempo (para|em) (próximo|) {day_one} e {day_two} -como será o tempo (nos próximos|em) {day_one} e {day_two} -como será o tempo (em|nos próximos) {day_one} e {day_two} diff --git a/locale/pt-br/whats.weather.like.intent b/locale/pt-br/whats.weather.like.intent deleted file mode 100644 index 6f76530e..00000000 --- a/locale/pt-br/whats.weather.like.intent +++ /dev/null @@ -1,5 +0,0 @@ -previsão -(tempo|clima) -como está lá fora (hoje|) -como está lá fora -previsão do tempo diff --git a/locale/pt-br/wind.speed.dialog b/locale/pt-br/wind.speed.dialog deleted file mode 100644 index b98efb6f..00000000 --- a/locale/pt-br/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{speed} {unit} diff --git a/locale/pt-br/wind.speed.dir.dialog b/locale/pt-br/wind.speed.dir.dialog deleted file mode 100644 index 34e1bde8..00000000 --- a/locale/pt-br/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -a {speed} {unit} vindo do {dir} -do {dir} a {speed} {unit} diff --git a/locale/pt-br/wind.strength.hard.dialog b/locale/pt-br/wind.strength.hard.dialog deleted file mode 100644 index f3bfb8f3..00000000 --- a/locale/pt-br/wind.strength.hard.dialog +++ /dev/null @@ -1 +0,0 @@ -Isso é bastante forte diff --git a/locale/pt-br/wind.strength.light.dialog b/locale/pt-br/wind.strength.light.dialog deleted file mode 100644 index 40b73147..00000000 --- a/locale/pt-br/wind.strength.light.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Não muito vento -Não muto vento -Bem calmo diff --git a/locale/pt-br/wind.strength.medium.dialog b/locale/pt-br/wind.strength.medium.dialog deleted file mode 100644 index b5105fa5..00000000 --- a/locale/pt-br/wind.strength.medium.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Está soprando uma brisa -Você deve levar um casaco diff --git a/locale/pt-br/winds.dialog b/locale/pt-br/winds.dialog deleted file mode 100644 index 1bd4fbcb..00000000 --- a/locale/pt-br/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -velocidade do vento diff --git a/locale/ru-ru/humidity.dialog b/locale/ru-ru/current.humidity.location.dialog similarity index 100% rename from locale/ru-ru/humidity.dialog rename to locale/ru-ru/current.humidity.location.dialog diff --git a/locale/ru-ru/current.local.weather.dialog b/locale/ru-ru/current.weather.local.dialog similarity index 100% rename from locale/ru-ru/current.local.weather.dialog rename to locale/ru-ru/current.weather.local.dialog diff --git a/locale/ru-ru/current.weather.dialog b/locale/ru-ru/current.weather.location.dialog similarity index 100% rename from locale/ru-ru/current.weather.dialog rename to locale/ru-ru/current.weather.location.dialog diff --git a/locale/ru-ru/forecast.weather.dialog b/locale/ru-ru/daily.weather.loation.dialog similarity index 100% rename from locale/ru-ru/forecast.weather.dialog rename to locale/ru-ru/daily.weather.loation.dialog diff --git a/locale/ru-ru/forecast.local.weather.dialog b/locale/ru-ru/daily.weather.local.dialog similarity index 100% rename from locale/ru-ru/forecast.local.weather.dialog rename to locale/ru-ru/daily.weather.local.dialog diff --git a/locale/ru-ru/E.dialog b/locale/ru-ru/east.dialog similarity index 100% rename from locale/ru-ru/E.dialog rename to locale/ru-ru/east.dialog diff --git a/locale/ru-ru/hour.local.weather.dialog b/locale/ru-ru/hourly.weather.local.dialog similarity index 100% rename from locale/ru-ru/hour.local.weather.dialog rename to locale/ru-ru/hourly.weather.local.dialog diff --git a/locale/ru-ru/hour.weather.dialog b/locale/ru-ru/hourly.weather.location.dialog similarity index 100% rename from locale/ru-ru/hour.weather.dialog rename to locale/ru-ru/hourly.weather.location.dialog diff --git a/locale/ru-ru/N.dialog b/locale/ru-ru/north.dialog similarity index 100% rename from locale/ru-ru/N.dialog rename to locale/ru-ru/north.dialog diff --git a/locale/ru-ru/NE.dialog b/locale/ru-ru/northeast.dialog similarity index 100% rename from locale/ru-ru/NE.dialog rename to locale/ru-ru/northeast.dialog diff --git a/locale/ru-ru/NW.dialog b/locale/ru-ru/northwest.dialog similarity index 100% rename from locale/ru-ru/NW.dialog rename to locale/ru-ru/northwest.dialog diff --git a/locale/ru-ru/report.condition.dialog b/locale/ru-ru/report.condition.dialog deleted file mode 100644 index 48565ab0..00000000 --- a/locale/ru-ru/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -{{condition}} {{value}} diff --git a/locale/ru-ru/report.future.condition.dialog b/locale/ru-ru/report.future.condition.dialog deleted file mode 100644 index fbf1b01c..00000000 --- a/locale/ru-ru/report.future.condition.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{{condition}} в {{day}} будет{{value}} -В {{day}} прогноз погоды предсказывает {{condition}} {{value}} diff --git a/locale/ru-ru/S.dialog b/locale/ru-ru/south.dialog similarity index 100% rename from locale/ru-ru/S.dialog rename to locale/ru-ru/south.dialog diff --git a/locale/ru-ru/SE.dialog b/locale/ru-ru/southeast.dialog similarity index 100% rename from locale/ru-ru/SE.dialog rename to locale/ru-ru/southeast.dialog diff --git a/locale/ru-ru/SW.dialog b/locale/ru-ru/southwest.dialog similarity index 100% rename from locale/ru-ru/SW.dialog rename to locale/ru-ru/southwest.dialog diff --git a/locale/ru-ru/W.dialog b/locale/ru-ru/west.dialog similarity index 100% rename from locale/ru-ru/W.dialog rename to locale/ru-ru/west.dialog diff --git a/locale/ru-ru/wind.speed.dialog b/locale/ru-ru/wind.speed.dialog deleted file mode 100644 index cff9d7e4..00000000 --- a/locale/ru-ru/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{{speed}} {{unit}} diff --git a/locale/ru-ru/wind.speed.dir.dialog b/locale/ru-ru/wind.speed.dir.dialog deleted file mode 100644 index 4c76e5c2..00000000 --- a/locale/ru-ru/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -со {{speed}} {{unit}} из {{dir}} -от {{dir}} со {{speed}} {{unit}} diff --git a/locale/ru-ru/winds.dialog b/locale/ru-ru/winds.dialog deleted file mode 100644 index 99ae9ac2..00000000 --- a/locale/ru-ru/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -ветер diff --git a/locale/sv-se/Cloudy.voc b/locale/sv-se/Clouds.voc similarity index 100% rename from locale/sv-se/Cloudy.voc rename to locale/sv-se/Clouds.voc diff --git a/locale/sv-se/CloudyAlternatives.voc b/locale/sv-se/CloudsAlternatives.voc similarity index 100% rename from locale/sv-se/CloudyAlternatives.voc rename to locale/sv-se/CloudsAlternatives.voc diff --git a/locale/sv-se/Foggy.voc b/locale/sv-se/Fog.voc similarity index 100% rename from locale/sv-se/Foggy.voc rename to locale/sv-se/Fog.voc diff --git a/locale/sv-se/Raining.voc b/locale/sv-se/Rain.voc similarity index 100% rename from locale/sv-se/Raining.voc rename to locale/sv-se/Rain.voc diff --git a/locale/sv-se/Snowing.voc b/locale/sv-se/Snow.voc similarity index 100% rename from locale/sv-se/Snowing.voc rename to locale/sv-se/Snow.voc diff --git a/locale/sv-se/Storm.voc b/locale/sv-se/Thunderstorm.voc similarity index 100% rename from locale/sv-se/Storm.voc rename to locale/sv-se/Thunderstorm.voc diff --git a/locale/sv-se/StormAlternatives.voc b/locale/sv-se/ThunderstormAlternatives.voc similarity index 100% rename from locale/sv-se/StormAlternatives.voc rename to locale/sv-se/ThunderstormAlternatives.voc diff --git a/locale/sv-se/and.dialog b/locale/sv-se/and.dialog deleted file mode 100644 index c32e3925..00000000 --- a/locale/sv-se/and.dialog +++ /dev/null @@ -1 +0,0 @@ -, och diff --git a/locale/sv-se/at.time.forecast.affirmative.condition.dialog b/locale/sv-se/at.time.forecast.affirmative.condition.dialog deleted file mode 100644 index c37cbf31..00000000 --- a/locale/sv-se/at.time.forecast.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Bekräftande svar på frågor som "kommer det att snöa i Paris i morgon eftermiddag" -Ja, för {day} visar prognosen för {time} på {condition} i {location} -Ja, prognosen för {time} verkar bli {condition} i {location} på {day} diff --git a/locale/sv-se/at.time.forecast.cond.alternative.dialog b/locale/sv-se/at.time.forecast.cond.alternative.dialog deleted file mode 100644 index 94d19cb9..00000000 --- a/locale/sv-se/at.time.forecast.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informera att ett alternativ till klar himmel kommer att ske på bestämda tidpunkter -Nej, {day} så visar prognosen för {time} på {condition} i {location} -Det verkar inte så, {time} prognosen för {day} antyder {location} kommer att ha {condition} diff --git a/locale/sv-se/at.time.forecast.local.affirmative.condition.dialog b/locale/sv-se/at.time.forecast.local.affirmative.condition.dialog deleted file mode 100644 index 2ed28245..00000000 --- a/locale/sv-se/at.time.forecast.local.affirmative.condition.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Bekräftande svar på frågor som "kommer det att snöa imorgon" -Ja, förvänta dig {condition} enligt {time} prognosen {day} -Ja, enligt prognosen för {time} blir det {condition} på {day} diff --git a/locale/sv-se/at.time.forecast.local.cond.alternative.dialog b/locale/sv-se/at.time.forecast.local.cond.alternative.dialog deleted file mode 100644 index 6e5d6f65..00000000 --- a/locale/sv-se/at.time.forecast.local.cond.alternative.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to clear skies will occur -Nej, prognosen för {time} på {day} hävdar {condition} -Det verkar inte så, {time} prognosen {day} antyder att det kommer att vara {condition} diff --git a/locale/sv-se/at.time.forecast.local.no.cond.predicted.dialog b/locale/sv-se/at.time.forecast.local.no.cond.predicted.dialog deleted file mode 100644 index 6656bb23..00000000 --- a/locale/sv-se/at.time.forecast.local.no.cond.predicted.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# När användaren frågar om ett villkor men det är inte -Nej, vid {time} på {day} hävdar prognosen att det blir {condition} diff --git a/locale/sv-se/at.time.forecast.no.cond.predicted.dialog b/locale/sv-se/at.time.forecast.no.cond.predicted.dialog deleted file mode 100644 index 800377d5..00000000 --- a/locale/sv-se/at.time.forecast.no.cond.predicted.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# När användaren frågar om ett villkor men det inte är -Nej, {time} prognosen på {location} antyder att det kommer att vara {condition} -Det verkar inte så, {time} prognosen på {location} antyder att det kommer att vara {condition} diff --git a/locale/sv-se/at.time.local.high.temperature.dialog b/locale/sv-se/at.time.local.high.temperature.dialog deleted file mode 100644 index 01840cef..00000000 --- a/locale/sv-se/at.time.local.high.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Det kommer att vara så högt som {temp} grader {time} -{time} kommer det att komma upp till {temp} grader diff --git a/locale/sv-se/at.time.local.low.temperature.dialog b/locale/sv-se/at.time.local.low.temperature.dialog deleted file mode 100644 index beffb766..00000000 --- a/locale/sv-se/at.time.local.low.temperature.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Det kommer att vara så lågt som {temp} grader {time} -{time}, kommer det att gå ner till {temp} grader diff --git a/locale/sv-se/at.time.local.weather.dialog b/locale/sv-se/at.time.local.weather.dialog deleted file mode 100644 index 2924a2e7..00000000 --- a/locale/sv-se/at.time.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Det kommer bli {condition}, med temperaturer nära {temp} grader vid {time} -{time}, kommer det vara {condition} och runt {temp} -Vid {time}, kommer det vara {condition} och {temp} grader -{time}, kommer det bli {temp} grader och {condition} diff --git a/locale/sv-se/local.clear.alternative.dialog b/locale/sv-se/current.clear.alternative.local.dialog similarity index 100% rename from locale/sv-se/local.clear.alternative.dialog rename to locale/sv-se/current.clear.alternative.local.dialog diff --git a/locale/sv-se/clear.alternative.dialog b/locale/sv-se/current.clear.alternative.location.dialog similarity index 100% rename from locale/sv-se/clear.alternative.dialog rename to locale/sv-se/current.clear.alternative.location.dialog diff --git a/locale/sv-se/no.clear.predicted.dialog b/locale/sv-se/current.clear.not.expected.locatioin.dialog similarity index 100% rename from locale/sv-se/no.clear.predicted.dialog rename to locale/sv-se/current.clear.not.expected.locatioin.dialog diff --git a/locale/sv-se/local.cloudy.alternative.dialog b/locale/sv-se/current.clouds.alternative.local.dialog similarity index 100% rename from locale/sv-se/local.cloudy.alternative.dialog rename to locale/sv-se/current.clouds.alternative.local.dialog diff --git a/locale/sv-se/cloudy.alternative.dialog b/locale/sv-se/current.clouds.alternative.location.dialog similarity index 100% rename from locale/sv-se/cloudy.alternative.dialog rename to locale/sv-se/current.clouds.alternative.location.dialog diff --git a/locale/sv-se/local.no.cloudy.predicted.dialog b/locale/sv-se/current.clouds.not.expected.local.dialog similarity index 100% rename from locale/sv-se/local.no.cloudy.predicted.dialog rename to locale/sv-se/current.clouds.not.expected.local.dialog diff --git a/locale/sv-se/no.cloudy.predicted.dialog b/locale/sv-se/current.clouds.not.expected.location.dialog similarity index 100% rename from locale/sv-se/no.cloudy.predicted.dialog rename to locale/sv-se/current.clouds.not.expected.location.dialog diff --git a/locale/sv-se/local.affirmative.condition.dialog b/locale/sv-se/current.condition.expected.local.dialog similarity index 100% rename from locale/sv-se/local.affirmative.condition.dialog rename to locale/sv-se/current.condition.expected.local.dialog diff --git a/locale/sv-se/affirmative.condition.dialog b/locale/sv-se/current.condition.expected.location.dialog similarity index 100% rename from locale/sv-se/affirmative.condition.dialog rename to locale/sv-se/current.condition.expected.location.dialog diff --git a/locale/sv-se/local.foggy.alternative.dialog b/locale/sv-se/current.fog.alternative.local.dialog similarity index 100% rename from locale/sv-se/local.foggy.alternative.dialog rename to locale/sv-se/current.fog.alternative.local.dialog diff --git a/locale/sv-se/fog.alternative.dialog b/locale/sv-se/current.fog.alternative.location.dialog similarity index 100% rename from locale/sv-se/fog.alternative.dialog rename to locale/sv-se/current.fog.alternative.location.dialog diff --git a/locale/sv-se/local.no.fog.predicted.dialog b/locale/sv-se/current.fog.not.expected.local.dialog similarity index 100% rename from locale/sv-se/local.no.fog.predicted.dialog rename to locale/sv-se/current.fog.not.expected.local.dialog diff --git a/locale/sv-se/no.fog.predicted.dialog b/locale/sv-se/current.fog.not.expected.location.dialog similarity index 100% rename from locale/sv-se/no.fog.predicted.dialog rename to locale/sv-se/current.fog.not.expected.location.dialog diff --git a/locale/sv-se/current.hot.dialog b/locale/sv-se/current.hot.dialog deleted file mode 100644 index a93a2abf..00000000 --- a/locale/sv-se/current.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Det är {temp} grader {scale} i {location}, gott och väl inom mina specifikationer. -Det är {temp} grader i {location} vilket passar en A.I. finfint. diff --git a/locale/sv-se/humidity.dialog b/locale/sv-se/current.humidity.location.dialog similarity index 100% rename from locale/sv-se/humidity.dialog rename to locale/sv-se/current.humidity.location.dialog diff --git a/locale/sv-se/current.local.cold.dialog b/locale/sv-se/current.local.cold.dialog deleted file mode 100644 index d55cef1a..00000000 --- a/locale/sv-se/current.local.cold.dialog +++ /dev/null @@ -1,2 +0,0 @@ -för närvarande är det {temp}, gott och väl inom min specificerade arbetstemperatur -Det är {temp}, ganska bekvämt för en A. I. diff --git a/locale/sv-se/current.local.hot.dialog b/locale/sv-se/current.local.hot.dialog deleted file mode 100644 index aa224a56..00000000 --- a/locale/sv-se/current.local.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Okej för en A.I., för närvarande {temp} grader -Det är {temp} grader, passar en AI fint diff --git a/locale/sv-se/local.raining.alternative.dialog b/locale/sv-se/current.rain.alternative.local.dialog similarity index 100% rename from locale/sv-se/local.raining.alternative.dialog rename to locale/sv-se/current.rain.alternative.local.dialog diff --git a/locale/sv-se/raining.alternative.dialog b/locale/sv-se/current.rain.alternative.location.dialog similarity index 100% rename from locale/sv-se/raining.alternative.dialog rename to locale/sv-se/current.rain.alternative.location.dialog diff --git a/locale/sv-se/local.no.rain.predicted.dialog b/locale/sv-se/current.rain.not.expected.local.dialog similarity index 100% rename from locale/sv-se/local.no.rain.predicted.dialog rename to locale/sv-se/current.rain.not.expected.local.dialog diff --git a/locale/sv-se/no.rain.predicted.dialog b/locale/sv-se/current.rain.not.expected.location.dialog similarity index 100% rename from locale/sv-se/no.rain.predicted.dialog rename to locale/sv-se/current.rain.not.expected.location.dialog diff --git a/locale/sv-se/local.snowing.alternative.dialog b/locale/sv-se/current.snow.alternative.local.dialog similarity index 100% rename from locale/sv-se/local.snowing.alternative.dialog rename to locale/sv-se/current.snow.alternative.local.dialog diff --git a/locale/sv-se/snowing.alternative.dialog b/locale/sv-se/current.snow.alternative.location.dialog similarity index 100% rename from locale/sv-se/snowing.alternative.dialog rename to locale/sv-se/current.snow.alternative.location.dialog diff --git a/locale/sv-se/local.no.snow.predicted.dialog b/locale/sv-se/current.snow.not.expected.local.dialog similarity index 100% rename from locale/sv-se/local.no.snow.predicted.dialog rename to locale/sv-se/current.snow.not.expected.local.dialog diff --git a/locale/sv-se/no.snow.predicted.dialog b/locale/sv-se/current.snow.not.expected.location.dialog similarity index 100% rename from locale/sv-se/no.snow.predicted.dialog rename to locale/sv-se/current.snow.not.expected.location.dialog diff --git a/locale/sv-se/current.local.high.temperature.dialog b/locale/sv-se/current.temperature.high.local.dialog similarity index 100% rename from locale/sv-se/current.local.high.temperature.dialog rename to locale/sv-se/current.temperature.high.local.dialog diff --git a/locale/sv-se/current.high.temperature.dialog b/locale/sv-se/current.temperature.high.location.dialog similarity index 100% rename from locale/sv-se/current.high.temperature.dialog rename to locale/sv-se/current.temperature.high.location.dialog diff --git a/locale/sv-se/min.max.dialog b/locale/sv-se/current.temperature.high.low.dialog similarity index 100% rename from locale/sv-se/min.max.dialog rename to locale/sv-se/current.temperature.high.low.dialog diff --git a/locale/sv-se/current.local.temperature.dialog b/locale/sv-se/current.temperature.local.dialog similarity index 100% rename from locale/sv-se/current.local.temperature.dialog rename to locale/sv-se/current.temperature.local.dialog diff --git a/locale/sv-se/current.temperature.dialog b/locale/sv-se/current.temperature.location.dialog similarity index 100% rename from locale/sv-se/current.temperature.dialog rename to locale/sv-se/current.temperature.location.dialog diff --git a/locale/sv-se/current.local.low.temperature.dialog b/locale/sv-se/current.temperature.low.local.dialog similarity index 100% rename from locale/sv-se/current.local.low.temperature.dialog rename to locale/sv-se/current.temperature.low.local.dialog diff --git a/locale/sv-se/current.low.temperature.dialog b/locale/sv-se/current.temperature.low.location.dialog similarity index 100% rename from locale/sv-se/current.low.temperature.dialog rename to locale/sv-se/current.temperature.low.location.dialog diff --git a/locale/sv-se/local.storm.alternative.dialog b/locale/sv-se/current.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/sv-se/local.storm.alternative.dialog rename to locale/sv-se/current.thunderstorm.alternative.local.dialog diff --git a/locale/sv-se/storm.alternative.dialog b/locale/sv-se/current.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/sv-se/storm.alternative.dialog rename to locale/sv-se/current.thunderstorm.alternative.location.dialog diff --git a/locale/sv-se/local.no.storm.predicted.dialog b/locale/sv-se/current.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/sv-se/local.no.storm.predicted.dialog rename to locale/sv-se/current.thunderstorm.not.expected.local.dialog diff --git a/locale/sv-se/no.storm.predicted.dialog b/locale/sv-se/current.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/sv-se/no.storm.predicted.dialog rename to locale/sv-se/current.thunderstorm.not.expected.location.dialog diff --git a/locale/sv-se/current.local.weather.dialog b/locale/sv-se/current.weather.local.dialog similarity index 100% rename from locale/sv-se/current.local.weather.dialog rename to locale/sv-se/current.weather.local.dialog diff --git a/locale/sv-se/current.weather.dialog b/locale/sv-se/current.weather.location.dialog similarity index 100% rename from locale/sv-se/current.weather.dialog rename to locale/sv-se/current.weather.location.dialog diff --git a/locale/sv-se/local.light.wind.dialog b/locale/sv-se/current.wind.light.local.dialog similarity index 100% rename from locale/sv-se/local.light.wind.dialog rename to locale/sv-se/current.wind.light.local.dialog diff --git a/locale/sv-se/light.wind.dialog b/locale/sv-se/current.wind.light.location.dialog similarity index 100% rename from locale/sv-se/light.wind.dialog rename to locale/sv-se/current.wind.light.location.dialog diff --git a/locale/sv-se/local.medium.wind.dialog b/locale/sv-se/current.wind.moderate.local.dialog similarity index 100% rename from locale/sv-se/local.medium.wind.dialog rename to locale/sv-se/current.wind.moderate.local.dialog diff --git a/locale/sv-se/medium.wind.dialog b/locale/sv-se/current.wind.moderate.location.dialog similarity index 100% rename from locale/sv-se/medium.wind.dialog rename to locale/sv-se/current.wind.moderate.location.dialog diff --git a/locale/sv-se/local.hard.wind.dialog b/locale/sv-se/current.wind.strong.local.dialog similarity index 100% rename from locale/sv-se/local.hard.wind.dialog rename to locale/sv-se/current.wind.strong.local.dialog diff --git a/locale/sv-se/hard.wind.dialog b/locale/sv-se/current.wind.strong.location.dialog similarity index 100% rename from locale/sv-se/hard.wind.dialog rename to locale/sv-se/current.wind.strong.location.dialog diff --git a/locale/sv-se/forecast.local.clear.alternative.dialog b/locale/sv-se/daily.clear.alternative.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.clear.alternative.dialog rename to locale/sv-se/daily.clear.alternative.local.dialog diff --git a/locale/sv-se/forecast.clear.alternative.dialog b/locale/sv-se/daily.clear.alternative.location.dialog similarity index 100% rename from locale/sv-se/forecast.clear.alternative.dialog rename to locale/sv-se/daily.clear.alternative.location.dialog diff --git a/locale/sv-se/forecast.local.no.clear.predicted.dialog b/locale/sv-se/daily.clear.not.expected.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.no.clear.predicted.dialog rename to locale/sv-se/daily.clear.not.expected.local.dialog diff --git a/locale/sv-se/forecast.no.clear.predicted.dialog b/locale/sv-se/daily.clear.not.expected.location.dialog similarity index 100% rename from locale/sv-se/forecast.no.clear.predicted.dialog rename to locale/sv-se/daily.clear.not.expected.location.dialog diff --git a/locale/sv-se/forecast.local.cloudy.alternative.dialog b/locale/sv-se/daily.clouds.alternative.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.cloudy.alternative.dialog rename to locale/sv-se/daily.clouds.alternative.local.dialog diff --git a/locale/sv-se/forecast.cloudy.alternative.dialog b/locale/sv-se/daily.clouds.alternative.location.dialog similarity index 100% rename from locale/sv-se/forecast.cloudy.alternative.dialog rename to locale/sv-se/daily.clouds.alternative.location.dialog diff --git a/locale/sv-se/forecast.local.no.cloudy.predicted.dialog b/locale/sv-se/daily.clouds.not.expected.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.no.cloudy.predicted.dialog rename to locale/sv-se/daily.clouds.not.expected.local.dialog diff --git a/locale/sv-se/forecast.no.cloudy.predicted.dialog b/locale/sv-se/daily.clouds.not.expected.location.dialog similarity index 100% rename from locale/sv-se/forecast.no.cloudy.predicted.dialog rename to locale/sv-se/daily.clouds.not.expected.location.dialog diff --git a/locale/sv-se/forecast.local.affirmative.condition.dialog b/locale/sv-se/daily.condition.expected.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.affirmative.condition.dialog rename to locale/sv-se/daily.condition.expected.local.dialog diff --git a/locale/sv-se/forecast.affirmative.condition.dialog b/locale/sv-se/daily.condition.expected.location.dialog similarity index 100% rename from locale/sv-se/forecast.affirmative.condition.dialog rename to locale/sv-se/daily.condition.expected.location.dialog diff --git a/locale/sv-se/forecast.local.foggy.alternative.dialog b/locale/sv-se/daily.fog.alternative.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.foggy.alternative.dialog rename to locale/sv-se/daily.fog.alternative.local.dialog diff --git a/locale/sv-se/forecast.foggy.alternative.dialog b/locale/sv-se/daily.fog.alternative.location.dialog similarity index 100% rename from locale/sv-se/forecast.foggy.alternative.dialog rename to locale/sv-se/daily.fog.alternative.location.dialog diff --git a/locale/sv-se/forecast.local.no.fog.predicted.dialog b/locale/sv-se/daily.fog.not.expected.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.no.fog.predicted.dialog rename to locale/sv-se/daily.fog.not.expected.local.dialog diff --git a/locale/sv-se/forecast.no.fog.predicted.dialog b/locale/sv-se/daily.fog.not.expected.location.dialog similarity index 100% rename from locale/sv-se/forecast.no.fog.predicted.dialog rename to locale/sv-se/daily.fog.not.expected.location.dialog diff --git a/locale/sv-se/forecast.local.raining.alternative.dialog b/locale/sv-se/daily.rain.alternative.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.raining.alternative.dialog rename to locale/sv-se/daily.rain.alternative.local.dialog diff --git a/locale/sv-se/forecast.raining.alternative.dialog b/locale/sv-se/daily.rain.alternative.location.dialog similarity index 100% rename from locale/sv-se/forecast.raining.alternative.dialog rename to locale/sv-se/daily.rain.alternative.location.dialog diff --git a/locale/sv-se/forecast.local.no.rain.predicted.dialog b/locale/sv-se/daily.rain.not.expected.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.no.rain.predicted.dialog rename to locale/sv-se/daily.rain.not.expected.local.dialog diff --git a/locale/sv-se/forecast.no.rain.predicted.dialog b/locale/sv-se/daily.rain.not.expected.location.dialog similarity index 100% rename from locale/sv-se/forecast.no.rain.predicted.dialog rename to locale/sv-se/daily.rain.not.expected.location.dialog diff --git a/locale/sv-se/forecast.snowing.alternative.dialog b/locale/sv-se/daily.snow.alternative.location.dialog similarity index 100% rename from locale/sv-se/forecast.snowing.alternative.dialog rename to locale/sv-se/daily.snow.alternative.location.dialog diff --git a/locale/sv-se/forecast.local.no.snow.predicted.dialog b/locale/sv-se/daily.snow.not.expected.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.no.snow.predicted.dialog rename to locale/sv-se/daily.snow.not.expected.local.dialog diff --git a/locale/sv-se/forecast.no.snow.predicted.dialog b/locale/sv-se/daily.snow.not.expected.location.dialog similarity index 100% rename from locale/sv-se/forecast.no.snow.predicted.dialog rename to locale/sv-se/daily.snow.not.expected.location.dialog diff --git a/locale/sv-se/forecast.local.high.temperature.dialog b/locale/sv-se/daily.temperature.high.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.high.temperature.dialog rename to locale/sv-se/daily.temperature.high.local.dialog diff --git a/locale/sv-se/forecast.high.temperature.dialog b/locale/sv-se/daily.temperature.high.location.dialog similarity index 100% rename from locale/sv-se/forecast.high.temperature.dialog rename to locale/sv-se/daily.temperature.high.location.dialog diff --git a/locale/sv-se/forecast.local.temperature.dialog b/locale/sv-se/daily.temperature.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.temperature.dialog rename to locale/sv-se/daily.temperature.local.dialog diff --git a/locale/sv-se/forecast.temperature.dialog b/locale/sv-se/daily.temperature.location.dialog similarity index 100% rename from locale/sv-se/forecast.temperature.dialog rename to locale/sv-se/daily.temperature.location.dialog diff --git a/locale/sv-se/forecast.local.low.temperature.dialog b/locale/sv-se/daily.temperature.low.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.low.temperature.dialog rename to locale/sv-se/daily.temperature.low.local.dialog diff --git a/locale/sv-se/forecast.low.temperature.dialog b/locale/sv-se/daily.temperature.low.location.dialog similarity index 100% rename from locale/sv-se/forecast.low.temperature.dialog rename to locale/sv-se/daily.temperature.low.location.dialog diff --git a/locale/sv-se/forecast.local.storm.alternative.dialog b/locale/sv-se/daily.thunderstorm.alternative.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.storm.alternative.dialog rename to locale/sv-se/daily.thunderstorm.alternative.local.dialog diff --git a/locale/sv-se/forecast.storm.alternative.dialog b/locale/sv-se/daily.thunderstorm.alternative.location.dialog similarity index 100% rename from locale/sv-se/forecast.storm.alternative.dialog rename to locale/sv-se/daily.thunderstorm.alternative.location.dialog diff --git a/locale/sv-se/forecast.local.no.storm.predicted.dialog b/locale/sv-se/daily.thunderstorm.not.expected.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.no.storm.predicted.dialog rename to locale/sv-se/daily.thunderstorm.not.expected.local.dialog diff --git a/locale/sv-se/forecast.no.storm.predicted.dialog b/locale/sv-se/daily.thunderstorm.not.expected.location.dialog similarity index 100% rename from locale/sv-se/forecast.no.storm.predicted.dialog rename to locale/sv-se/daily.thunderstorm.not.expected.location.dialog diff --git a/locale/sv-se/forecast.local.weather.dialog b/locale/sv-se/daily.weather.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.weather.dialog rename to locale/sv-se/daily.weather.local.dialog diff --git a/locale/sv-se/forecast.weather.dialog b/locale/sv-se/daily.weather.location.dialog similarity index 100% rename from locale/sv-se/forecast.weather.dialog rename to locale/sv-se/daily.weather.location.dialog diff --git a/locale/sv-se/forecast.local.light.wind.dialog b/locale/sv-se/daily.wind.light.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.light.wind.dialog rename to locale/sv-se/daily.wind.light.local.dialog diff --git a/locale/sv-se/forecast.light.wind.dialog b/locale/sv-se/daily.wind.light.location.dialog similarity index 100% rename from locale/sv-se/forecast.light.wind.dialog rename to locale/sv-se/daily.wind.light.location.dialog diff --git a/locale/sv-se/forecast.local.medium.wind.dialog b/locale/sv-se/daily.wind.moderate.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.medium.wind.dialog rename to locale/sv-se/daily.wind.moderate.local.dialog diff --git a/locale/sv-se/forecast.medium.wind.dialog b/locale/sv-se/daily.wind.moderate.location.dialog similarity index 100% rename from locale/sv-se/forecast.medium.wind.dialog rename to locale/sv-se/daily.wind.moderate.location.dialog diff --git a/locale/sv-se/forecast.local.hard.wind.dialog b/locale/sv-se/daily.wind.strong.local.dialog similarity index 100% rename from locale/sv-se/forecast.local.hard.wind.dialog rename to locale/sv-se/daily.wind.strong.local.dialog diff --git a/locale/sv-se/forecast.hard.wind.dialog b/locale/sv-se/daily.wind.strong.location.dialog similarity index 100% rename from locale/sv-se/forecast.hard.wind.dialog rename to locale/sv-se/daily.wind.strong.location.dialog diff --git a/locale/sv-se/E.dialog b/locale/sv-se/east.dialog similarity index 100% rename from locale/sv-se/E.dialog rename to locale/sv-se/east.dialog diff --git a/locale/sv-se/forecast.hot.dialog b/locale/sv-se/forecast.hot.dialog deleted file mode 100644 index 064b3e05..00000000 --- a/locale/sv-se/forecast.hot.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{day} blir det {temp} i {location}, ganska behagligt för en A.I. -{day} kommer temperaturen bli {temp} i {location}, väl inom mina specifikationer diff --git a/locale/sv-se/forecast.local.hot.dialog b/locale/sv-se/forecast.local.hot.dialog deleted file mode 100644 index c89453a1..00000000 --- a/locale/sv-se/forecast.local.hot.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} kommer det vara {temp}, väl passande en AI diff --git a/locale/sv-se/at.time.local.cond.alternative.dialog b/locale/sv-se/hourly.condition.alternative.local.dialog similarity index 100% rename from locale/sv-se/at.time.local.cond.alternative.dialog rename to locale/sv-se/hourly.condition.alternative.local.dialog diff --git a/locale/sv-se/at.time.cond.alternative.dialog b/locale/sv-se/hourly.condition.alternative.location.dialog similarity index 100% rename from locale/sv-se/at.time.cond.alternative.dialog rename to locale/sv-se/hourly.condition.alternative.location.dialog diff --git a/locale/sv-se/at.time.local.affirmative.condition.dialog b/locale/sv-se/hourly.condition.expected.local.dialog similarity index 100% rename from locale/sv-se/at.time.local.affirmative.condition.dialog rename to locale/sv-se/hourly.condition.expected.local.dialog diff --git a/locale/sv-se/at.time.affirmative.condition.dialog b/locale/sv-se/hourly.condition.expected.location.dialog similarity index 100% rename from locale/sv-se/at.time.affirmative.condition.dialog rename to locale/sv-se/hourly.condition.expected.location.dialog diff --git a/locale/sv-se/at.time.local.no.cond.predicted.dialog b/locale/sv-se/hourly.condition.not.expected.local.dialog similarity index 100% rename from locale/sv-se/at.time.local.no.cond.predicted.dialog rename to locale/sv-se/hourly.condition.not.expected.local.dialog diff --git a/locale/sv-se/at.time.no.cond.predicted.dialog b/locale/sv-se/hourly.condition.not.expected.location.dialog similarity index 100% rename from locale/sv-se/at.time.no.cond.predicted.dialog rename to locale/sv-se/hourly.condition.not.expected.location.dialog diff --git a/locale/sv-se/at.time.local.temperature.dialog b/locale/sv-se/hourly.temperature.local.dialog similarity index 100% rename from locale/sv-se/at.time.local.temperature.dialog rename to locale/sv-se/hourly.temperature.local.dialog diff --git a/locale/sv-se/hour.local.weather.dialog b/locale/sv-se/hourly.weather.local.dialog similarity index 100% rename from locale/sv-se/hour.local.weather.dialog rename to locale/sv-se/hourly.weather.local.dialog diff --git a/locale/sv-se/hour.weather.dialog b/locale/sv-se/hourly.weather.location.dialog similarity index 100% rename from locale/sv-se/hour.weather.dialog rename to locale/sv-se/hourly.weather.location.dialog diff --git a/locale/sv-se/N.dialog b/locale/sv-se/north.dialog similarity index 100% rename from locale/sv-se/N.dialog rename to locale/sv-se/north.dialog diff --git a/locale/sv-se/NE.dialog b/locale/sv-se/northeast.dialog similarity index 100% rename from locale/sv-se/NE.dialog rename to locale/sv-se/northeast.dialog diff --git a/locale/sv-se/NW.dialog b/locale/sv-se/northwest.dialog similarity index 100% rename from locale/sv-se/NW.dialog rename to locale/sv-se/northwest.dialog diff --git a/locale/sv-se/report.condition.at.location.dialog b/locale/sv-se/report.condition.at.location.dialog deleted file mode 100644 index 6d1a36c1..00000000 --- a/locale/sv-se/report.condition.at.location.dialog +++ /dev/null @@ -1 +0,0 @@ -För närvarande, {condition} i {location} är {value} diff --git a/locale/sv-se/report.condition.dialog b/locale/sv-se/report.condition.dialog deleted file mode 100644 index 8d540419..00000000 --- a/locale/sv-se/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -För närvarande är {condition} {value} diff --git a/locale/sv-se/report.condition.future.at.location.dialog b/locale/sv-se/report.condition.future.at.location.dialog deleted file mode 100644 index 8b459d4b..00000000 --- a/locale/sv-se/report.condition.future.at.location.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} i {location} {day} kommer att vara {value} -för {day} i {location} visar prognosen {condition} av {value} diff --git a/locale/sv-se/report.condition.future.dialog b/locale/sv-se/report.condition.future.dialog deleted file mode 100644 index 24b63870..00000000 --- a/locale/sv-se/report.condition.future.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{condition} på {day} kommer vara {value} -för {day} visar prognosen {condition} av {value} diff --git a/locale/sv-se/report.wind.dialog b/locale/sv-se/report.wind.dialog deleted file mode 100644 index dbefaabc..00000000 --- a/locale/sv-se/report.wind.dialog +++ /dev/null @@ -1 +0,0 @@ -{condition} är {value} diff --git a/locale/sv-se/S.dialog b/locale/sv-se/south.dialog similarity index 100% rename from locale/sv-se/S.dialog rename to locale/sv-se/south.dialog diff --git a/locale/sv-se/SE.dialog b/locale/sv-se/southeast.dialog similarity index 100% rename from locale/sv-se/SE.dialog rename to locale/sv-se/southeast.dialog diff --git a/locale/sv-se/SW.dialog b/locale/sv-se/southwest.dialog similarity index 100% rename from locale/sv-se/SW.dialog rename to locale/sv-se/southwest.dialog diff --git a/locale/sv-se/tonight.local.weather.dialog b/locale/sv-se/tonight.local.weather.dialog deleted file mode 100644 index 036a8731..00000000 --- a/locale/sv-se/tonight.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Ikväll kommer det bli {condition}, med temperaturer nära {temp} grader -Ikväll kommer det vara {condition} och runt {temp} grader -Ikväll kommer det vara {condition} och {temp} grader -Omkring {temp} grader och {condition} ikväll diff --git a/locale/sv-se/W.dialog b/locale/sv-se/west.dialog similarity index 100% rename from locale/sv-se/W.dialog rename to locale/sv-se/west.dialog diff --git a/locale/sv-se/what.is.three.day.forecast.intent b/locale/sv-se/what.is.three.day.forecast.intent deleted file mode 100644 index b3b7bc8a..00000000 --- a/locale/sv-se/what.is.three.day.forecast.intent +++ /dev/null @@ -1,2 +0,0 @@ -(3|tre) dagars prognos -(berätta|vad är) (3 dagars|tre dagars|tredagars|den utökade) (prognosen|väderprognosen) diff --git a/locale/sv-se/what.is.three.day.forecast.location.intent b/locale/sv-se/what.is.three.day.forecast.location.intent deleted file mode 100644 index a77323dc..00000000 --- a/locale/sv-se/what.is.three.day.forecast.location.intent +++ /dev/null @@ -1 +0,0 @@ -(berätta|vad är) (3 dagars|tre dagars|tredagars|den utökade) (prognosen|väderprognosen|väderleksrapporten) (för|i) {Location} diff --git a/locale/sv-se/what.is.two.day.forecast.intent b/locale/sv-se/what.is.two.day.forecast.intent deleted file mode 100644 index 4e2a0fc4..00000000 --- a/locale/sv-se/what.is.two.day.forecast.intent +++ /dev/null @@ -1,3 +0,0 @@ -väder (för|på|) (nästa|) {day_one} och {day_two} -hur (är vädret |kommer vädret vara|) (för|på|) (nästa|) {day_one} och {day_two} -vad blir vädret (för|på|) (nästa|) {day_one} och {day_two} diff --git a/locale/sv-se/whats.weather.like.intent b/locale/sv-se/whats.weather.like.intent deleted file mode 100644 index fe998a05..00000000 --- a/locale/sv-se/whats.weather.like.intent +++ /dev/null @@ -1,5 +0,0 @@ -prognos -väder -hur är det utomhus (idag|) -hur ser det ut ute -väderleksprognos diff --git a/locale/sv-se/wind.speed.dialog b/locale/sv-se/wind.speed.dialog deleted file mode 100644 index b98efb6f..00000000 --- a/locale/sv-se/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{speed} {unit} diff --git a/locale/sv-se/wind.speed.dir.dialog b/locale/sv-se/wind.speed.dir.dialog deleted file mode 100644 index 29afdc19..00000000 --- a/locale/sv-se/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -vid {speed} {unit} från {dir} -från {dir} vid {speed} {unit} diff --git a/locale/sv-se/wind.strength.hard.dialog b/locale/sv-se/wind.strength.hard.dialog deleted file mode 100644 index 18f22783..00000000 --- a/locale/sv-se/wind.strength.hard.dialog +++ /dev/null @@ -1 +0,0 @@ -Det är ganska starkt diff --git a/locale/sv-se/wind.strength.light.dialog b/locale/sv-se/wind.strength.light.dialog deleted file mode 100644 index 05894ad7..00000000 --- a/locale/sv-se/wind.strength.light.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Inte speciellt blåsigt -Inte mycket blåsigt -Ganska lugnt diff --git a/locale/sv-se/wind.strength.medium.dialog b/locale/sv-se/wind.strength.medium.dialog deleted file mode 100644 index f07d8e80..00000000 --- a/locale/sv-se/wind.strength.medium.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Det blir blåsigt. -Du kanske vill ta med en jacka diff --git a/locale/sv-se/winds.dialog b/locale/sv-se/winds.dialog deleted file mode 100644 index f3055cd9..00000000 --- a/locale/sv-se/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -vindhastighet From 5d38589c10e59accc30a0fc96288d89742113ac2 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 28 Apr 2021 15:36:30 -0500 Subject: [PATCH 25/42] Second pass at refactoring, including reworking the dialog classes, removing a bunch of condition specific dialog files, code review changes and other minor cleanups. --- __init__.py | 215 +++++--- locale/ca-es/ClearAlternatives.voc | 2 - locale/ca-es/CloudsAlternatives.voc | 2 - locale/ca-es/RainAlternatives.voc | 2 - locale/ca-es/SnowAlternatives.voc | 2 - locale/ca-es/ThunderstormAlternatives.voc | 2 - locale/ca-es/and.dialog | 1 + locale/ca-es/clear.future.dialog | 1 - locale/ca-es/condition.category.value | 15 - .../current.clear.alternative.local.dialog | 4 - .../current.clear.alternative.location.dialog | 4 - .../current.clear.not.expected.local.dialog | 3 - .../current.clouds.alternative.local.dialog | 4 - ...current.clouds.alternative.location.dialog | 4 - .../current.clouds.not.expected.local.dialog | 3 - ...urrent.clouds.not.expected.location.dialog | 3 - .../current.fog.alternative.local.dialog | 4 - .../current.fog.alternative.location.dialog | 4 - .../current.fog.not.expected.local.dialog | 3 - .../current.fog.not.expected.location.dialog | 3 - .../current.rain.alternative.local.dialog | 3 - .../current.rain.alternative.location.dialog | 3 - .../current.rain.not.expected.local.dialog | 4 - .../current.rain.not.expected.location.dialog | 4 - .../current.snow.alternative.local.dialog | 3 - .../current.snow.alternative.location.dialog | 3 - .../current.snow.not.expected.local.dialog | 3 - .../current.snow.not.expected.location.dialog | 3 - ...rent.thunderstorm.alternative.local.dialog | 3 - ...ent.thunderstorm.not.expected.local.dialog | 6 - ....thunderstorm.not.expected.location.dialog | 4 - ...nt.thundestorm.alternative.location.dialog | 3 - .../daily.clear.alternative.local.dialog | 3 - .../daily.clear.alternative.location.dialog | 3 - .../daily.clear.not.expected.local.dialog | 3 - .../daily.clear.not.expected.location.dialog | 3 - .../daily.clouds.alternative.local.dialog | 4 - .../daily.clouds.alternative.location.dialog | 4 - .../daily.clouds.not.expected.local.dialog | 5 - .../daily.clouds.not.expected.location.dialog | 5 - .../ca-es/daily.fog.alternative.local.dialog | 4 - .../daily.fog.alternative.location.dialog | 4 - .../ca-es/daily.fog.not.expected.local.dialog | 3 - .../daily.fog.not.expected.location.dialog | 3 - .../ca-es/daily.rain.alternative.local.dialog | 3 - .../daily.rain.alternative.location.dialog | 3 - .../daily.rain.not.expected.local.dialog | 4 - .../daily.rain.not.expected.location.dialog | 4 - .../daily.snow.alternative.location.dialog | 3 - .../daily.snow.not.expected.local.dialog | 3 - .../daily.snow.not.expected.location.dialog | 3 - ...aily.thunderstorm.alternative.local.dialog | 3 - ...y.thunderstorm.alternative.location.dialog | 3 - ...ily.thunderstorm.not.expected.local.dialog | 4 - ....thunderstorm.not.expected.location.dialog | 4 - locale/ca-es/do not know.dialog | 2 - locale/ca-es/light.dialog | 1 - locale/ca-es/on.date.dialog | 1 - locale/ca-es/on.dialog | 1 - .../{storm.dialog => thunderstorm.dialog} | 0 locale/ca-es/weekly.condition.on.day.dialog | 1 - .../ca-es/weekly.conditions.mostly.one.dialog | 1 - .../ca-es/weekly.conditions.seq.extra.dialog | 2 - .../ca-es/weekly.conditions.seq.period.dialog | 1 - .../ca-es/weekly.conditions.seq.start.dialog | 1 - .../ca-es/weekly.conditions.some.days.dialog | 1 - ...range.dialog => weekly.temperature.dialog} | 0 .../ca-es/what.is.multi.day.forecast.intent | 4 - locale/ca-es/whats.weather.like.intent | 5 - locale/da-dk/ClearAlternatives.voc | 3 - locale/da-dk/CloudsAlternatives.voc | 3 - locale/da-dk/FogAlternatives.voc | 3 - locale/da-dk/RainAlternatives.voc | 3 - locale/da-dk/SnowAlternatives.voc | 3 - locale/da-dk/and.dialog | 2 + locale/da-dk/clear.future.dialog | 2 - locale/da-dk/condition.category.value | 30 -- .../current.clear.alternative.local.dialog | 7 - .../current.clear.alternative.location.dialog | 7 - ...current.clear.not.expected.location.dialog | 5 - .../current.clouds.alternative.local.dialog | 7 - ...current.clouds.alternative.location.dialog | 7 - .../current.clouds.not.expected.local.dialog | 5 - ...urrent.clouds.not.expected.location.dialog | 5 - .../current.fog.alternative.local.dialog | 7 - .../current.fog.alternative.location.dialog | 7 - .../current.fog.not.expected.local.dialog | 5 - .../current.fog.not.expected.location.dialog | 5 - .../current.rain.alternative.local.dialog | 5 - .../current.rain.alternative.location.dialog | 5 - .../current.rain.not.expected.local.dialog | 7 - .../current.rain.not.expected.location.dialog | 7 - .../current.snow.alternative.local.dialog | 5 - .../current.snow.alternative.location.dialog | 5 - .../current.snow.not.expected.local.dialog | 5 - .../current.snow.not.expected.location.dialog | 5 - ...rent.thunderstorm.alternative.local.dialog | 5 - ...t.thunderstorm.alternative.location.dialog | 5 - ...ent.thunderstorm.not.expected.local.dialog | 11 - ....thunderstorm.not.expected.location.dialog | 7 - .../daily.clear.alternative.local.dialog | 5 - .../daily.clear.alternative.location.dialog | 5 - .../daily.clear.not.expected.local.dialog | 5 - .../daily.clear.not.expected.location.dialog | 5 - .../daily.clouds.alternative.local.dialog | 7 - .../daily.clouds.alternative.location.dialog | 5 - .../daily.clouds.not.expected.local.dialog | 9 - .../daily.clouds.not.expected.location.dialog | 9 - .../da-dk/daily.fog.alternative.local.dialog | 7 - .../daily.fog.alternative.location.dialog | 7 - .../da-dk/daily.fog.not.expected.local.dialog | 5 - .../daily.fog.not.expected.location.dialog | 5 - .../da-dk/daily.rain.alternative.local.dialog | 5 - .../daily.rain.alternative.location.dialog | 5 - .../daily.rain.not.expected.local.dialog | 7 - .../daily.rain.not.expected.location.dialog | 7 - .../daily.snow.alternative.location.dialog | 5 - .../daily.snow.not.expected.local.dialog | 5 - .../daily.snow.not.expected.location.dialog | 5 - ...aily.thunderstorm.alternative.local.dialog | 5 - ...y.thunderstorm.alternative.location.dialog | 5 - ...ily.thunderstorm.not.expected.local.dialog | 7 - ...thunderstorm.not.exptected.location.dialog | 7 - locale/da-dk/do not know.dialog | 6 - locale/da-dk/from.day.dialog | 2 - locale/da-dk/heavy.dialog | 2 - locale/da-dk/light.dialog | 2 - locale/da-dk/on.date.dialog | 2 - locale/da-dk/on.dialog | 2 - locale/da-dk/simple.temperature.intent | 2 - locale/da-dk/sky is clear.future.dialog | 2 - locale/da-dk/sunrise.dialog | 4 - locale/da-dk/sunset.dialog | 6 - .../{storm.dialog => thunderstorm.dialog} | 0 locale/da-dk/weekly.condition.on.day.dialog | 2 - .../da-dk/weekly.conditions.mostly.one.dialog | 2 - .../da-dk/weekly.conditions.seq.extra.dialog | 4 - .../da-dk/weekly.conditions.seq.period.dialog | 2 - .../da-dk/weekly.conditions.seq.start.dialog | 2 - .../da-dk/weekly.conditions.some.days.dialog | 2 - ...range.dialog => weekly.temperature.dialog} | 0 .../da-dk/what.is.multi.day.forecast.intent | 8 - locale/de-de/ClearAlternatives.voc | 2 - locale/de-de/CloudsAlternatives.voc | 2 - locale/de-de/FogAlternatives.voc | 2 - locale/de-de/RainAlternatives.voc | 2 - locale/de-de/SnowAlternatives.voc | 2 - locale/de-de/ThunderstormAlternatives.voc | 2 - locale/de-de/and.dialog | 1 + locale/de-de/clear.future.dialog | 1 - locale/de-de/condition.category.value | 15 - .../current.clear.alternative.local.dialog | 4 - .../current.clear.alternative.location.dialog | 4 - ...current.clear.not.expected.location.dialog | 3 - .../current.clouds.alternative.local.dialog | 4 - ...current.clouds.alternative.location.dialog | 4 - .../current.clouds.not.expected.local.dialog | 3 - ...urrent.clouds.not.expected.location.dialog | 3 - .../current.fog.alternative.local.dialog | 4 - .../current.fog.alternative.location.dialog | 4 - .../current.fog.not.expected.local.dialog | 3 - .../current.fog.not.expected.location.dialog | 3 - .../current.rain.alternative.local.dialog | 3 - .../current.rain.alternative.location.dialog | 3 - .../current.rain.not.expected.local.dialog | 4 - .../current.rain.not.expected.location.dialog | 4 - .../current.snow.alternative.local.dialog | 3 - .../current.snow.alternative.location.dialog | 3 - .../current.snow.not.expected.local.dialog | 3 - .../current.snow.not.expected.location.dialog | 3 - ...rent.thunderstorm.alternative.local.dialog | 3 - ...t.thunderstorm.alternative.location.dialog | 3 - ...ent.thunderstorm.not.expected.local.dialog | 6 - ....thunderstorm.not.expected.location.dialog | 4 - .../daily.clear.alternative.local.dialog | 3 - .../daily.clear.alternative.location.dialog | 3 - .../daily.clear.not.expected.local.dialog | 3 - .../daily.clear.not.expected.location.dialog | 3 - .../daily.clouds.alternative.local.dialog | 4 - .../daily.clouds.alternative.location.dialog | 4 - .../daily.clouds.not.expected.local.dialog | 5 - .../daily.clouds.not.expected.location.dialog | 5 - .../de-de/daily.fog.alternative.local.dialog | 4 - .../daily.fog.alternative.location.dialog | 4 - .../de-de/daily.fog.not.expected.local.dialog | 3 - .../daily.fog.not.expected.location.dialog | 3 - .../de-de/daily.rain.alternative.local.dialog | 3 - .../daily.rain.alternative.location.dialog | 3 - .../daily.rain.not.expected.local.dialog | 4 - .../daily.rain.not.expected.location.dialog | 4 - .../daily.snow.alternative.location.dialog | 3 - .../daily.snow.not.expected.local.dialog | 3 - .../daily.snow.not.expected.location.dialog | 3 - ...aily.thunderstorm.alternative.local.dialog | 3 - ...y.thunderstorm.alternative.location.dialog | 3 - ...ily.thunderstorm.not.expected.local.dialog | 4 - ....thunderstorm.not.expected.location.dialog | 4 - locale/de-de/from.day.dialog | 1 - locale/de-de/heavy.dialog | 1 - ....dialog => hourly.weather.location.dialog} | 0 locale/de-de/light.dialog | 1 - locale/de-de/on.date.dialog | 1 - locale/de-de/on.dialog | 1 - locale/de-de/simple.temperature.intent | 1 - locale/de-de/sky is clear.future.dialog | 1 - .../{storm.dialog => thunderstorm.dialog} | 0 locale/de-de/weekly.condition.on.day.dialog | 1 - .../de-de/weekly.conditions.mostly.one.dialog | 1 - .../de-de/weekly.conditions.seq.extra.dialog | 2 - .../de-de/weekly.conditions.seq.period.dialog | 1 - .../de-de/weekly.conditions.seq.start.dialog | 1 - .../de-de/weekly.conditions.some.days.dialog | 1 - ...range.dialog => weekly.temperature.dialog} | 0 .../de-de/what.is.multi.day.forecast.intent | 4 - locale/en-us/ClearAlternatives.voc | 2 - locale/en-us/CloudsAlternatives.voc | 2 - locale/en-us/FogAlternatives.voc | 2 - locale/en-us/NumberDays.voc | 23 + locale/en-us/Query.voc | 1 + locale/en-us/RainAlternatives.voc | 2 - locale/en-us/SnowAlternatives.voc | 2 - locale/en-us/ThreeDay.voc | 3 - locale/en-us/ThunderstormAlternatives.voc | 2 - locale/en-us/WeatherType.voc | 8 - locale/en-us/When.voc | 4 +- locale/en-us/and.dialog | 1 + locale/en-us/clear.future.dialog | 1 - locale/en-us/clouds.dialog | 1 + .../current.clear.alternative.location.dialog | 4 - .../current.clear.not.expected.local.dialog | 4 - ...current.clear.not.expected.location.dialog | 3 - ...current.clouds.alternative.location.dialog | 4 - .../current.clouds.not.expected.local.dialog | 3 - ...urrent.clouds.not.expected.location.dialog | 3 - .../current.condition.expected.local.dialog | 1 + ...current.condition.expected.location.dialog | 1 + ...urrent.condition.not.expected.local.dialog | 3 + ...ent.condition.not.expected.location.dialog | 3 + .../current.fog.alternative.local.dialog | 4 - .../current.fog.alternative.location.dialog | 4 - .../current.fog.not.expected.local.dialog | 3 - .../current.fog.not.expected.location.dialog | 3 - .../current.rain.alternative.local.dialog | 3 - .../current.rain.alternative.location.dialog | 3 - .../current.rain.not.expected.local.dialog | 4 - .../current.rain.not.expected.location.dialog | 4 - .../current.snow.alternative.local.dialog | 3 - .../current.snow.alternative.location.dialog | 3 - .../current.snow.not.expected.local.dialog | 3 - .../current.snow.not.expected.location.dialog | 3 - ...rent.thunderstorm.alternative.local.dialog | 3 - ...t.thunderstorm.alternative.location.dialog | 3 - ...ent.thunderstorm.not.expected.local.dialog | 6 - ....thunderstorm.not.expected.location.dialog | 4 - .../daily.clear.alternative.local.dialog | 3 - .../daily.clear.alternative.location.dialog | 3 - .../daily.clear.not.expected.local.dialog | 3 - .../daily.clear.not.expected.location.dialog | 3 - .../daily.clouds.alternative.local.dialog | 4 - .../daily.clouds.alternative.location.dialog | 4 - .../daily.clouds.not.expected.local.dialog | 5 - .../daily.clouds.not.expected.location.dialog | 5 - .../daily.condition.expected.local.dialog | 4 +- .../daily.condition.not.expected.local.dialog | 3 + ...ily.condition.not.expected.location.dialog | 3 + .../en-us/daily.fog.alternative.local.dialog | 4 - .../daily.fog.alternative.location.dialog | 4 - .../en-us/daily.fog.not.expected.local.dialog | 3 - .../daily.fog.not.expected.location.dialog | 3 - .../en-us/daily.rain.alternative.local.dialog | 3 - .../daily.rain.alternative.location.dialog | 3 - .../daily.rain.not.expected.local.dialog | 4 - .../daily.rain.not.expected.location.dialog | 4 - .../daily.snow.alternative.location.dialog | 3 - .../daily.snow.not.expected.local.dialog | 3 - .../daily.snow.not.expected.location.dialog | 3 - ...aily.thunderstorm.alternative.local.dialog | 3 - ...y.thunderstorm.alternative.location.dialog | 3 - ...ily.thunderstorm.not.expected.local.dialog | 4 - ....thunderstorm.not.expected.location.dialog | 4 - locale/en-us/do not know.dialog | 3 - locale/en-us/from.day.dialog | 1 - locale/en-us/heavy.dialog | 1 - .../hourly.condition.alternative.local.dialog | 3 - ...urly.condition.alternative.location.dialog | 3 - locale/en-us/light.dialog | 1 - locale/en-us/simple.temperature.intent | 1 - locale/en-us/sky is clear.future.dialog | 1 - locale/en-us/thunderstorm.dialog | 1 + locale/en-us/weekly.condition.dialog | 2 + locale/en-us/weekly.temperature.dialog | 1 + .../en-us/what.is.multi.day.forecast.intent | 4 - locale/es-es/heavy.dialog | 1 - ...her.dialog => hourly.weather.local.dialog} | 0 ....dialog => hourly.weather.location.dialog} | 0 locale/es-es/light.dialog | 1 - locale/es-es/report.condition.dialog | 1 - locale/es-es/report.future.condition.dialog | 2 - locale/es-es/sky is clear.future.dialog | 1 - locale/es-es/wind.speed.dialog | 1 - locale/es-es/wind.speed.dir.dialog | 2 - locale/es-es/winds.dialog | 1 - ...ialog => current.humidity.location.dialog} | 0 locale/fr-fr/do not know.dialog | 2 - locale/fr-fr/heavy.dialog | 1 - locale/fr-fr/light.dialog | 1 - locale/fr-fr/sky is clear.future.dialog | 1 - locale/gl-es/ClearAlternatives.voc | 2 - locale/gl-es/CloudsAlternatives.voc | 2 - locale/gl-es/FogAlternatives.voc | 2 - locale/gl-es/RainAlternatives.voc | 2 - locale/gl-es/SnowAlternatives.voc | 2 - locale/gl-es/ThunderstormAlternatives.voc | 2 - locale/gl-es/and.dialog | 1 + locale/gl-es/clear.future.dialog | 1 - locale/gl-es/condition.category.value | 15 - .../current.clear.alternative.local.dialog | 4 - .../current.clear.alternative.location.dialog | 4 - ...current.clear.not.expected.location.dialog | 3 - .../current.clouds.alternative.local.dialog | 4 - ...current.clouds.alternative.location.dialog | 4 - .../current.clouds.not.expected.local.dialog | 3 - ...urrent.clouds.not.expected.location.dialog | 3 - .../current.fog.alternative.local.dialog | 4 - .../current.fog.alternative.location.dialog | 4 - .../current.fog.not.expected.local.dialog | 3 - .../current.fog.not.expected.location.dialog | 3 - .../current.rain.alternative.local.dialog | 3 - .../current.rain.alternative.location.dialog | 3 - .../current.rain.not.expected.local.dialog | 4 - .../current.rain.not.expected.location.dialog | 4 - .../current.snow.alternative.local.dialog | 3 - .../current.snow.alternative.location.dialog | 3 - .../current.snow.not.expected.local.dialog | 3 - .../current.snow.not.expected.location.dialog | 3 - ...rent.thunderstorm.alternative.local.dialog | 3 - ...t.thunderstorm.alternative.location.dialog | 3 - ...ent.thunderstorm.not.expected.local.dialog | 6 - ....thunderstorm.not.expected.location.dialog | 4 - .../daily.clear.alternative.local.dialog | 3 - .../daily.clear.alternative.location.dialog | 3 - .../daily.clear.not.expected.local.dialog | 3 - .../daily.clear.not.expected.location.dialog | 3 - .../daily.clouds.alternative.local.dialog | 4 - .../daily.clouds.alternative.location.dialog | 4 - .../daily.clouds.not.expected.local.dialog | 5 - .../daily.clouds.not.expected.location.dialog | 5 - .../gl-es/daily.fog.alternative.local.dialog | 4 - .../daily.fog.alternative.location.dialog | 4 - .../gl-es/daily.fog.not.expected.local.dialog | 3 - .../daily.fog.not.expected.location.dialog | 3 - .../gl-es/daily.rain.alternative.local.dialog | 3 - .../daily.rain.alternative.location.dialog | 3 - .../daily.rain.not.expected.local.dialog | 4 - .../daily.rain.not.expected.location.dialog | 4 - .../daily.snow.alternative.location.dialog | 3 - .../daily.snow.not.expected.local.dialog | 3 - .../daily.snow.not.expected.location.dialog | 3 - ...aily.thunderstorm.alternative.local.dialog | 3 - ...y.thunderstorm.alternative.location.dialog | 3 - ...ily.thunderstorm.not.expected.local.dialog | 4 - ....thunderstorm.not.expected.location.dialog | 4 - locale/gl-es/do not know.dialog | 2 - locale/gl-es/from.day.dialog | 1 - locale/gl-es/heavy.dialog | 1 - locale/gl-es/light.dialog | 1 - locale/gl-es/on.date.dialog | 1 - locale/gl-es/on.dialog | 1 - locale/gl-es/simple.temperature.intent | 1 - locale/gl-es/sky is clear.future.dialog | 1 - locale/gl-es/sunrise.dialog | 2 - locale/gl-es/sunset.dialog | 3 - .../{storm.dialog => thunderstorm.dialog} | 0 locale/gl-es/tonight.local.weather.dialog | 4 - locale/gl-es/weekly.condition.on.day.dialog | 1 - .../gl-es/weekly.conditions.mostly.one.dialog | 1 - .../gl-es/weekly.conditions.seq.extra.dialog | 2 - .../gl-es/weekly.conditions.seq.period.dialog | 1 - .../gl-es/weekly.conditions.seq.start.dialog | 1 - .../gl-es/weekly.conditions.some.days.dialog | 1 - ...range.dialog => weekly.temperature.dialog} | 0 .../gl-es/what.is.multi.day.forecast.intent | 4 - locale/it-it/ClearAlternatives.voc | 2 - locale/it-it/CloudsAlternatives.voc | 2 - locale/it-it/FogAlternatives.voc | 2 - locale/it-it/RainAlternatives.voc | 2 - locale/it-it/SnowAlternatives.voc | 2 - .../current.clear.alternative.local.dialog | 4 - .../current.clear.alternative.location.dialog | 4 - ...current.clear.not.expected.location.dialog | 3 - .../current.clouds.alternative.local.dialog | 4 - ...current.clouds.alternative.location.dialog | 4 - ...urrent.clouds.not.expected.location.dialog | 3 - .../current.fog.alternative.local.dialog | 4 - .../current.fog.alternative.location.dialog | 4 - .../current.fog.not.expected.local.dialog | 3 - .../current.fog.not.expected.location.dialog | 3 - .../current.rain.alternative.local.dialog | 3 - .../current.rain.alternative.location.dialog | 3 - .../current.rain.not.expected.local.dialog | 4 - .../current.rain.not.expected.location.dialog | 4 - .../current.snow.alternative.local.dialog | 3 - .../current.snow.alternative.location.dialog | 3 - .../current.snow.not.expected.local.dialog | 3 - .../current.snow.not.expected.location.dialog | 3 - .../daily.clear.alternative.local.dialog | 3 - .../daily.clear.alternative.location.dialog | 3 - .../daily.clear.not.expected.local.dialog | 3 - .../daily.clear.not.expected.location.dialog | 3 - .../daily.clouds.alternative.local.dialog | 4 - .../daily.clouds.alternative.location.dialog | 4 - .../daily.clouds.not.expected.local.dialog | 5 - .../daily.clouds.not.expected.location.dialog | 5 - .../it-it/daily.fog.alternative.local.dialog | 4 - .../daily.fog.alternative.location.dialog | 4 - .../it-it/daily.fog.not.expected.local.dialog | 3 - .../daily.fog.not.expected.location.dialog | 3 - .../it-it/daily.rain.alternative.local.dialog | 3 - .../daily.rain.alternative.location.dialog | 3 - .../daily.rain.not.expected.local.dialog | 4 - .../daily.rain.not.expected.location.dialog | 4 - .../daily.snow.alternative.location.dialog | 3 - .../daily.snow.not.expected.local.dialog | 3 - .../daily.snow.not.expected.location.dialog | 3 - locale/it-it/do not know.dialog | 2 - locale/it-it/heavy.dialog | 1 - locale/it-it/light.dialog | 1 - locale/it-it/simple.temperature.intent | 1 - locale/it-it/sky is clear.future.dialog | 1 - .../it-it/what.is.multi.day.forecast.intent | 2 - locale/nl-nl/do not know.dialog | 2 - locale/nl-nl/heavy.dialog | 1 - locale/nl-nl/light.dialog | 1 - locale/nl-nl/sky is clear.future.dialog | 1 - locale/pt-br/ClearAlternatives.voc | 2 - locale/pt-br/CloudsAlternatives.voc | 2 - locale/pt-br/FogAlternatives.voc | 2 - locale/pt-br/RainAlternatives.voc | 2 - locale/pt-br/SnowAlternatives.voc | 2 - locale/pt-br/ThunderstormAlternatives.voc | 2 - locale/pt-br/and.dialog | 1 + locale/pt-br/clear.future.dialog | 1 - locale/pt-br/condition.category.value | 15 - .../current.clear.alternative.local.dialog | 4 - .../current.clear.alternative.location.dialog | 4 - ...current.clear.not.expected.location.dialog | 3 - .../current.clouds.alternative.local.dialog | 4 - ...current.clouds.alternative.location.dialog | 4 - .../current.clouds.not.expected.local.dialog | 3 - ...urrent.clouds.not.expected.location.dialog | 3 - .../current.fog.alternative.local.dialog | 4 - .../current.fog.alternative.location.dialog | 4 - .../current.fog.not.expected.local.dialog | 3 - .../current.fog.not.expected.location.dialog | 3 - .../current.rain.alternative.local.dialog | 3 - .../current.rain.alternative.location.dialog | 3 - .../current.rain.not.expected.local.dialog | 4 - .../current.rain.not.expected.location.dialog | 4 - .../current.snow.alternative.local.dialog | 3 - .../current.snow.alternative.location.dialog | 3 - .../current.snow.not.expected.local.dialog | 3 - .../current.snow.not.expected.location.dialog | 3 - ...rent.thunderstorm.alternative.local.dialog | 3 - ...t.thunderstorm.alternative.location.dialog | 3 - ...ent.thunderstorm.not.expected.local.dialog | 6 - ....thunderstorm.not.expected.location.dialog | 4 - .../daily.clear.alternative.local.dialog | 3 - .../daily.clear.alternative.location.dialog | 3 - .../daily.clear.not.expected.local.dialog | 3 - .../daily.clear.not.expected.location.dialog | 3 - .../daily.clouds.alternative.local.dialog | 4 - .../daily.clouds.alternative.location.dialog | 4 - .../daily.clouds.not.expected.local.dialog | 5 - .../daily.clouds.not.expected.location.dialog | 5 - .../pt-br/daily.fog.alternative.local.dialog | 4 - .../daily.fog.alternative.location.dialog | 4 - .../pt-br/daily.fog.not.expected.local.dialog | 3 - .../daily.fog.not.expected.location.dialog | 3 - .../pt-br/daily.rain.alternative.local.dialog | 3 - .../daily.rain.alternative.location.dialog | 3 - .../daily.rain.not.expected.local.dialog | 4 - .../daily.rain.not.expected.location.dialog | 4 - .../daily.snow.alternative.location.dialog | 3 - .../daily.snow.not.expected.local.dialog | 3 - .../daily.snow.not.expected.location.dialog | 3 - ...aily.thunderstorm.alternative.local.dialog | 3 - ...y.thunderstorm.alternative.location.dialog | 3 - ...ily.thunderstorm.not.expected.local.dialog | 4 - ....thunderstorm.not.expected.location.dialog | 4 - locale/pt-br/do not know.dialog | 2 - locale/pt-br/from.day.dialog | 1 - locale/pt-br/heavy.dialog | 1 - locale/pt-br/light.dialog | 1 - locale/pt-br/on.date.dialog | 1 - locale/pt-br/on.dialog | 1 - locale/pt-br/simple.temperature.intent | 1 - locale/pt-br/sky is clear.future.dialog | 1 - locale/pt-br/sunrise.dialog | 2 - locale/pt-br/sunset.dialog | 3 - .../{storm.dialog => thunderstorm.dialog} | 0 locale/pt-br/weekly.condition.on.day.dialog | 1 - .../pt-br/weekly.conditions.mostly.one.dialog | 1 - .../pt-br/weekly.conditions.seq.extra.dialog | 2 - .../pt-br/weekly.conditions.seq.period.dialog | 1 - .../pt-br/weekly.conditions.seq.start.dialog | 1 - .../pt-br/weekly.conditions.some.days.dialog | 1 - ...range.dialog => weekly.temperature.dialog} | 0 .../pt-br/what.is.multi.day.forecast.intent | 4 - locale/ru-ru/do not know.dialog | 2 - locale/ru-ru/heavy.dialog | 1 - locale/ru-ru/light.dialog | 1 - locale/ru-ru/sky is clear.future.dialog | 1 - locale/sv-se/ClearAlternatives.voc | 2 - locale/sv-se/CloudsAlternatives.voc | 2 - locale/sv-se/FogAlternatives.voc | 2 - locale/sv-se/RainAlternatives.voc | 2 - locale/sv-se/SnowAlternatives.voc | 2 - locale/sv-se/ThunderstormAlternatives.voc | 2 - locale/sv-se/and.dialog | 1 + locale/sv-se/clear.future.dialog | 1 - locale/sv-se/condition.category.value | 15 - .../current.clear.alternative.local.dialog | 4 - .../current.clear.alternative.location.dialog | 4 - ...urrent.clear.not.expected.locatioin.dialog | 3 - .../current.clouds.alternative.local.dialog | 4 - ...current.clouds.alternative.location.dialog | 4 - .../current.clouds.not.expected.local.dialog | 3 - ...urrent.clouds.not.expected.location.dialog | 3 - .../current.fog.alternative.local.dialog | 4 - .../current.fog.alternative.location.dialog | 4 - .../current.fog.not.expected.local.dialog | 3 - .../current.fog.not.expected.location.dialog | 3 - .../current.rain.alternative.local.dialog | 3 - .../current.rain.alternative.location.dialog | 3 - .../current.rain.not.expected.local.dialog | 4 - .../current.rain.not.expected.location.dialog | 4 - .../current.snow.alternative.local.dialog | 3 - .../current.snow.alternative.location.dialog | 3 - .../current.snow.not.expected.local.dialog | 3 - .../current.snow.not.expected.location.dialog | 3 - ...rent.thunderstorm.alternative.local.dialog | 3 - ...t.thunderstorm.alternative.location.dialog | 3 - ...ent.thunderstorm.not.expected.local.dialog | 6 - ....thunderstorm.not.expected.location.dialog | 4 - .../daily.clear.alternative.local.dialog | 3 - .../daily.clear.alternative.location.dialog | 3 - .../daily.clear.not.expected.local.dialog | 3 - .../daily.clear.not.expected.location.dialog | 3 - .../daily.clouds.alternative.local.dialog | 4 - .../daily.clouds.alternative.location.dialog | 4 - .../daily.clouds.not.expected.local.dialog | 5 - .../daily.clouds.not.expected.location.dialog | 5 - .../sv-se/daily.fog.alternative.local.dialog | 4 - .../daily.fog.alternative.location.dialog | 4 - .../sv-se/daily.fog.not.expected.local.dialog | 3 - .../daily.fog.not.expected.location.dialog | 3 - .../sv-se/daily.rain.alternative.local.dialog | 3 - .../daily.rain.alternative.location.dialog | 3 - .../daily.rain.not.expected.local.dialog | 4 - .../daily.rain.not.expected.location.dialog | 4 - .../daily.snow.alternative.location.dialog | 3 - .../daily.snow.not.expected.local.dialog | 3 - .../daily.snow.not.expected.location.dialog | 3 - ...aily.thunderstorm.alternative.local.dialog | 3 - ...y.thunderstorm.alternative.location.dialog | 3 - ...ily.thunderstorm.not.expected.local.dialog | 4 - ....thunderstorm.not.expected.location.dialog | 4 - locale/sv-se/do not know.dialog | 2 - locale/sv-se/from.day.dialog | 1 - locale/sv-se/heavy.dialog | 1 - locale/sv-se/light.dialog | 1 - locale/sv-se/on.date.dialog | 1 - locale/sv-se/on.dialog | 1 - locale/sv-se/simple.temperature.intent | 1 - locale/sv-se/sky is clear.future.dialog | 1 - locale/sv-se/storm.dialog | 1 - .../thunderstorm.dialog} | 0 locale/sv-se/weekly.condition.on.day.dialog | 1 - .../sv-se/weekly.conditions.mostly.one.dialog | 1 - .../sv-se/weekly.conditions.seq.extra.dialog | 2 - .../sv-se/weekly.conditions.seq.period.dialog | 1 - .../sv-se/weekly.conditions.seq.start.dialog | 1 - .../sv-se/weekly.conditions.some.days.dialog | 1 - ...range.dialog => weekly.temperature.dialog} | 0 .../sv-se/what.is.multi.day.forecast.intent | 4 - source/__init__.py | 11 +- source/dialog.py | 462 +++++++++++------- source/intent.py | 3 +- source/util.py | 25 +- source/weather.py | 9 +- 590 files changed, 527 insertions(+), 2066 deletions(-) delete mode 100644 locale/ca-es/ClearAlternatives.voc delete mode 100644 locale/ca-es/CloudsAlternatives.voc delete mode 100644 locale/ca-es/RainAlternatives.voc delete mode 100644 locale/ca-es/SnowAlternatives.voc delete mode 100644 locale/ca-es/ThunderstormAlternatives.voc create mode 100644 locale/ca-es/and.dialog delete mode 100644 locale/ca-es/clear.future.dialog delete mode 100644 locale/ca-es/condition.category.value delete mode 100644 locale/ca-es/current.clear.alternative.local.dialog delete mode 100644 locale/ca-es/current.clear.alternative.location.dialog delete mode 100644 locale/ca-es/current.clear.not.expected.local.dialog delete mode 100644 locale/ca-es/current.clouds.alternative.local.dialog delete mode 100644 locale/ca-es/current.clouds.alternative.location.dialog delete mode 100644 locale/ca-es/current.clouds.not.expected.local.dialog delete mode 100644 locale/ca-es/current.clouds.not.expected.location.dialog delete mode 100644 locale/ca-es/current.fog.alternative.local.dialog delete mode 100644 locale/ca-es/current.fog.alternative.location.dialog delete mode 100644 locale/ca-es/current.fog.not.expected.local.dialog delete mode 100644 locale/ca-es/current.fog.not.expected.location.dialog delete mode 100644 locale/ca-es/current.rain.alternative.local.dialog delete mode 100644 locale/ca-es/current.rain.alternative.location.dialog delete mode 100644 locale/ca-es/current.rain.not.expected.local.dialog delete mode 100644 locale/ca-es/current.rain.not.expected.location.dialog delete mode 100644 locale/ca-es/current.snow.alternative.local.dialog delete mode 100644 locale/ca-es/current.snow.alternative.location.dialog delete mode 100644 locale/ca-es/current.snow.not.expected.local.dialog delete mode 100644 locale/ca-es/current.snow.not.expected.location.dialog delete mode 100644 locale/ca-es/current.thunderstorm.alternative.local.dialog delete mode 100644 locale/ca-es/current.thunderstorm.not.expected.local.dialog delete mode 100644 locale/ca-es/current.thunderstorm.not.expected.location.dialog delete mode 100644 locale/ca-es/current.thundestorm.alternative.location.dialog delete mode 100644 locale/ca-es/daily.clear.alternative.local.dialog delete mode 100644 locale/ca-es/daily.clear.alternative.location.dialog delete mode 100644 locale/ca-es/daily.clear.not.expected.local.dialog delete mode 100644 locale/ca-es/daily.clear.not.expected.location.dialog delete mode 100644 locale/ca-es/daily.clouds.alternative.local.dialog delete mode 100644 locale/ca-es/daily.clouds.alternative.location.dialog delete mode 100644 locale/ca-es/daily.clouds.not.expected.local.dialog delete mode 100644 locale/ca-es/daily.clouds.not.expected.location.dialog delete mode 100644 locale/ca-es/daily.fog.alternative.local.dialog delete mode 100644 locale/ca-es/daily.fog.alternative.location.dialog delete mode 100644 locale/ca-es/daily.fog.not.expected.local.dialog delete mode 100644 locale/ca-es/daily.fog.not.expected.location.dialog delete mode 100644 locale/ca-es/daily.rain.alternative.local.dialog delete mode 100644 locale/ca-es/daily.rain.alternative.location.dialog delete mode 100644 locale/ca-es/daily.rain.not.expected.local.dialog delete mode 100644 locale/ca-es/daily.rain.not.expected.location.dialog delete mode 100644 locale/ca-es/daily.snow.alternative.location.dialog delete mode 100644 locale/ca-es/daily.snow.not.expected.local.dialog delete mode 100644 locale/ca-es/daily.snow.not.expected.location.dialog delete mode 100644 locale/ca-es/daily.thunderstorm.alternative.local.dialog delete mode 100644 locale/ca-es/daily.thunderstorm.alternative.location.dialog delete mode 100644 locale/ca-es/daily.thunderstorm.not.expected.local.dialog delete mode 100644 locale/ca-es/daily.thunderstorm.not.expected.location.dialog delete mode 100644 locale/ca-es/do not know.dialog delete mode 100644 locale/ca-es/light.dialog delete mode 100644 locale/ca-es/on.date.dialog delete mode 100644 locale/ca-es/on.dialog rename locale/ca-es/{storm.dialog => thunderstorm.dialog} (100%) delete mode 100644 locale/ca-es/weekly.condition.on.day.dialog delete mode 100644 locale/ca-es/weekly.conditions.mostly.one.dialog delete mode 100644 locale/ca-es/weekly.conditions.seq.extra.dialog delete mode 100644 locale/ca-es/weekly.conditions.seq.period.dialog delete mode 100644 locale/ca-es/weekly.conditions.seq.start.dialog delete mode 100644 locale/ca-es/weekly.conditions.some.days.dialog rename locale/ca-es/{weekly.temp.range.dialog => weekly.temperature.dialog} (100%) delete mode 100644 locale/ca-es/what.is.multi.day.forecast.intent delete mode 100644 locale/ca-es/whats.weather.like.intent delete mode 100644 locale/da-dk/ClearAlternatives.voc delete mode 100644 locale/da-dk/CloudsAlternatives.voc delete mode 100644 locale/da-dk/FogAlternatives.voc delete mode 100644 locale/da-dk/RainAlternatives.voc delete mode 100644 locale/da-dk/SnowAlternatives.voc create mode 100644 locale/da-dk/and.dialog delete mode 100644 locale/da-dk/clear.future.dialog delete mode 100644 locale/da-dk/condition.category.value delete mode 100644 locale/da-dk/current.clear.alternative.local.dialog delete mode 100644 locale/da-dk/current.clear.alternative.location.dialog delete mode 100644 locale/da-dk/current.clear.not.expected.location.dialog delete mode 100644 locale/da-dk/current.clouds.alternative.local.dialog delete mode 100644 locale/da-dk/current.clouds.alternative.location.dialog delete mode 100644 locale/da-dk/current.clouds.not.expected.local.dialog delete mode 100644 locale/da-dk/current.clouds.not.expected.location.dialog delete mode 100644 locale/da-dk/current.fog.alternative.local.dialog delete mode 100644 locale/da-dk/current.fog.alternative.location.dialog delete mode 100644 locale/da-dk/current.fog.not.expected.local.dialog delete mode 100644 locale/da-dk/current.fog.not.expected.location.dialog delete mode 100644 locale/da-dk/current.rain.alternative.local.dialog delete mode 100644 locale/da-dk/current.rain.alternative.location.dialog delete mode 100644 locale/da-dk/current.rain.not.expected.local.dialog delete mode 100644 locale/da-dk/current.rain.not.expected.location.dialog delete mode 100644 locale/da-dk/current.snow.alternative.local.dialog delete mode 100644 locale/da-dk/current.snow.alternative.location.dialog delete mode 100644 locale/da-dk/current.snow.not.expected.local.dialog delete mode 100644 locale/da-dk/current.snow.not.expected.location.dialog delete mode 100644 locale/da-dk/current.thunderstorm.alternative.local.dialog delete mode 100644 locale/da-dk/current.thunderstorm.alternative.location.dialog delete mode 100644 locale/da-dk/current.thunderstorm.not.expected.local.dialog delete mode 100644 locale/da-dk/current.thunderstorm.not.expected.location.dialog delete mode 100644 locale/da-dk/daily.clear.alternative.local.dialog delete mode 100644 locale/da-dk/daily.clear.alternative.location.dialog delete mode 100644 locale/da-dk/daily.clear.not.expected.local.dialog delete mode 100644 locale/da-dk/daily.clear.not.expected.location.dialog delete mode 100644 locale/da-dk/daily.clouds.alternative.local.dialog delete mode 100644 locale/da-dk/daily.clouds.alternative.location.dialog delete mode 100644 locale/da-dk/daily.clouds.not.expected.local.dialog delete mode 100644 locale/da-dk/daily.clouds.not.expected.location.dialog delete mode 100644 locale/da-dk/daily.fog.alternative.local.dialog delete mode 100644 locale/da-dk/daily.fog.alternative.location.dialog delete mode 100644 locale/da-dk/daily.fog.not.expected.local.dialog delete mode 100644 locale/da-dk/daily.fog.not.expected.location.dialog delete mode 100644 locale/da-dk/daily.rain.alternative.local.dialog delete mode 100644 locale/da-dk/daily.rain.alternative.location.dialog delete mode 100644 locale/da-dk/daily.rain.not.expected.local.dialog delete mode 100644 locale/da-dk/daily.rain.not.expected.location.dialog delete mode 100644 locale/da-dk/daily.snow.alternative.location.dialog delete mode 100644 locale/da-dk/daily.snow.not.expected.local.dialog delete mode 100644 locale/da-dk/daily.snow.not.expected.location.dialog delete mode 100644 locale/da-dk/daily.thunderstorm.alternative.local.dialog delete mode 100644 locale/da-dk/daily.thunderstorm.alternative.location.dialog delete mode 100644 locale/da-dk/daily.thunderstorm.not.expected.local.dialog delete mode 100644 locale/da-dk/daily.thunderstorm.not.exptected.location.dialog delete mode 100644 locale/da-dk/do not know.dialog delete mode 100644 locale/da-dk/from.day.dialog delete mode 100644 locale/da-dk/heavy.dialog delete mode 100644 locale/da-dk/light.dialog delete mode 100644 locale/da-dk/on.date.dialog delete mode 100644 locale/da-dk/on.dialog delete mode 100644 locale/da-dk/simple.temperature.intent delete mode 100644 locale/da-dk/sky is clear.future.dialog delete mode 100644 locale/da-dk/sunrise.dialog delete mode 100644 locale/da-dk/sunset.dialog rename locale/da-dk/{storm.dialog => thunderstorm.dialog} (100%) delete mode 100644 locale/da-dk/weekly.condition.on.day.dialog delete mode 100644 locale/da-dk/weekly.conditions.mostly.one.dialog delete mode 100644 locale/da-dk/weekly.conditions.seq.extra.dialog delete mode 100644 locale/da-dk/weekly.conditions.seq.period.dialog delete mode 100644 locale/da-dk/weekly.conditions.seq.start.dialog delete mode 100644 locale/da-dk/weekly.conditions.some.days.dialog rename locale/da-dk/{weekly.temp.range.dialog => weekly.temperature.dialog} (100%) delete mode 100644 locale/da-dk/what.is.multi.day.forecast.intent delete mode 100644 locale/de-de/ClearAlternatives.voc delete mode 100644 locale/de-de/CloudsAlternatives.voc delete mode 100644 locale/de-de/FogAlternatives.voc delete mode 100644 locale/de-de/RainAlternatives.voc delete mode 100644 locale/de-de/SnowAlternatives.voc delete mode 100644 locale/de-de/ThunderstormAlternatives.voc create mode 100644 locale/de-de/and.dialog delete mode 100644 locale/de-de/clear.future.dialog delete mode 100644 locale/de-de/condition.category.value delete mode 100644 locale/de-de/current.clear.alternative.local.dialog delete mode 100644 locale/de-de/current.clear.alternative.location.dialog delete mode 100644 locale/de-de/current.clear.not.expected.location.dialog delete mode 100644 locale/de-de/current.clouds.alternative.local.dialog delete mode 100644 locale/de-de/current.clouds.alternative.location.dialog delete mode 100644 locale/de-de/current.clouds.not.expected.local.dialog delete mode 100644 locale/de-de/current.clouds.not.expected.location.dialog delete mode 100644 locale/de-de/current.fog.alternative.local.dialog delete mode 100644 locale/de-de/current.fog.alternative.location.dialog delete mode 100644 locale/de-de/current.fog.not.expected.local.dialog delete mode 100644 locale/de-de/current.fog.not.expected.location.dialog delete mode 100644 locale/de-de/current.rain.alternative.local.dialog delete mode 100644 locale/de-de/current.rain.alternative.location.dialog delete mode 100644 locale/de-de/current.rain.not.expected.local.dialog delete mode 100644 locale/de-de/current.rain.not.expected.location.dialog delete mode 100644 locale/de-de/current.snow.alternative.local.dialog delete mode 100644 locale/de-de/current.snow.alternative.location.dialog delete mode 100644 locale/de-de/current.snow.not.expected.local.dialog delete mode 100644 locale/de-de/current.snow.not.expected.location.dialog delete mode 100644 locale/de-de/current.thunderstorm.alternative.local.dialog delete mode 100644 locale/de-de/current.thunderstorm.alternative.location.dialog delete mode 100644 locale/de-de/current.thunderstorm.not.expected.local.dialog delete mode 100644 locale/de-de/current.thunderstorm.not.expected.location.dialog delete mode 100644 locale/de-de/daily.clear.alternative.local.dialog delete mode 100644 locale/de-de/daily.clear.alternative.location.dialog delete mode 100644 locale/de-de/daily.clear.not.expected.local.dialog delete mode 100644 locale/de-de/daily.clear.not.expected.location.dialog delete mode 100644 locale/de-de/daily.clouds.alternative.local.dialog delete mode 100644 locale/de-de/daily.clouds.alternative.location.dialog delete mode 100644 locale/de-de/daily.clouds.not.expected.local.dialog delete mode 100644 locale/de-de/daily.clouds.not.expected.location.dialog delete mode 100644 locale/de-de/daily.fog.alternative.local.dialog delete mode 100644 locale/de-de/daily.fog.alternative.location.dialog delete mode 100644 locale/de-de/daily.fog.not.expected.local.dialog delete mode 100644 locale/de-de/daily.fog.not.expected.location.dialog delete mode 100644 locale/de-de/daily.rain.alternative.local.dialog delete mode 100644 locale/de-de/daily.rain.alternative.location.dialog delete mode 100644 locale/de-de/daily.rain.not.expected.local.dialog delete mode 100644 locale/de-de/daily.rain.not.expected.location.dialog delete mode 100644 locale/de-de/daily.snow.alternative.location.dialog delete mode 100644 locale/de-de/daily.snow.not.expected.local.dialog delete mode 100644 locale/de-de/daily.snow.not.expected.location.dialog delete mode 100644 locale/de-de/daily.thunderstorm.alternative.local.dialog delete mode 100644 locale/de-de/daily.thunderstorm.alternative.location.dialog delete mode 100644 locale/de-de/daily.thunderstorm.not.expected.local.dialog delete mode 100644 locale/de-de/daily.thunderstorm.not.expected.location.dialog delete mode 100644 locale/de-de/from.day.dialog delete mode 100644 locale/de-de/heavy.dialog rename locale/de-de/{hour.weather.location.dialog => hourly.weather.location.dialog} (100%) delete mode 100644 locale/de-de/light.dialog delete mode 100644 locale/de-de/on.date.dialog delete mode 100644 locale/de-de/on.dialog delete mode 100644 locale/de-de/simple.temperature.intent delete mode 100644 locale/de-de/sky is clear.future.dialog rename locale/de-de/{storm.dialog => thunderstorm.dialog} (100%) delete mode 100644 locale/de-de/weekly.condition.on.day.dialog delete mode 100644 locale/de-de/weekly.conditions.mostly.one.dialog delete mode 100644 locale/de-de/weekly.conditions.seq.extra.dialog delete mode 100644 locale/de-de/weekly.conditions.seq.period.dialog delete mode 100644 locale/de-de/weekly.conditions.seq.start.dialog delete mode 100644 locale/de-de/weekly.conditions.some.days.dialog rename locale/de-de/{weekly.temp.range.dialog => weekly.temperature.dialog} (100%) delete mode 100644 locale/de-de/what.is.multi.day.forecast.intent delete mode 100644 locale/en-us/ClearAlternatives.voc delete mode 100644 locale/en-us/CloudsAlternatives.voc delete mode 100644 locale/en-us/FogAlternatives.voc create mode 100644 locale/en-us/NumberDays.voc delete mode 100644 locale/en-us/RainAlternatives.voc delete mode 100644 locale/en-us/SnowAlternatives.voc delete mode 100644 locale/en-us/ThreeDay.voc delete mode 100644 locale/en-us/ThunderstormAlternatives.voc delete mode 100644 locale/en-us/WeatherType.voc create mode 100644 locale/en-us/and.dialog delete mode 100644 locale/en-us/clear.future.dialog create mode 100644 locale/en-us/clouds.dialog delete mode 100644 locale/en-us/current.clear.alternative.location.dialog delete mode 100644 locale/en-us/current.clear.not.expected.local.dialog delete mode 100644 locale/en-us/current.clear.not.expected.location.dialog delete mode 100644 locale/en-us/current.clouds.alternative.location.dialog delete mode 100644 locale/en-us/current.clouds.not.expected.local.dialog delete mode 100644 locale/en-us/current.clouds.not.expected.location.dialog create mode 100644 locale/en-us/current.condition.not.expected.local.dialog create mode 100644 locale/en-us/current.condition.not.expected.location.dialog delete mode 100644 locale/en-us/current.fog.alternative.local.dialog delete mode 100644 locale/en-us/current.fog.alternative.location.dialog delete mode 100644 locale/en-us/current.fog.not.expected.local.dialog delete mode 100644 locale/en-us/current.fog.not.expected.location.dialog delete mode 100644 locale/en-us/current.rain.alternative.local.dialog delete mode 100644 locale/en-us/current.rain.alternative.location.dialog delete mode 100644 locale/en-us/current.rain.not.expected.local.dialog delete mode 100644 locale/en-us/current.rain.not.expected.location.dialog delete mode 100644 locale/en-us/current.snow.alternative.local.dialog delete mode 100644 locale/en-us/current.snow.alternative.location.dialog delete mode 100644 locale/en-us/current.snow.not.expected.local.dialog delete mode 100644 locale/en-us/current.snow.not.expected.location.dialog delete mode 100644 locale/en-us/current.thunderstorm.alternative.local.dialog delete mode 100644 locale/en-us/current.thunderstorm.alternative.location.dialog delete mode 100644 locale/en-us/current.thunderstorm.not.expected.local.dialog delete mode 100644 locale/en-us/current.thunderstorm.not.expected.location.dialog delete mode 100644 locale/en-us/daily.clear.alternative.local.dialog delete mode 100644 locale/en-us/daily.clear.alternative.location.dialog delete mode 100644 locale/en-us/daily.clear.not.expected.local.dialog delete mode 100644 locale/en-us/daily.clear.not.expected.location.dialog delete mode 100644 locale/en-us/daily.clouds.alternative.local.dialog delete mode 100644 locale/en-us/daily.clouds.alternative.location.dialog delete mode 100644 locale/en-us/daily.clouds.not.expected.local.dialog delete mode 100644 locale/en-us/daily.clouds.not.expected.location.dialog create mode 100644 locale/en-us/daily.condition.not.expected.local.dialog create mode 100644 locale/en-us/daily.condition.not.expected.location.dialog delete mode 100644 locale/en-us/daily.fog.alternative.local.dialog delete mode 100644 locale/en-us/daily.fog.alternative.location.dialog delete mode 100644 locale/en-us/daily.fog.not.expected.local.dialog delete mode 100644 locale/en-us/daily.fog.not.expected.location.dialog delete mode 100644 locale/en-us/daily.rain.alternative.local.dialog delete mode 100644 locale/en-us/daily.rain.alternative.location.dialog delete mode 100644 locale/en-us/daily.rain.not.expected.local.dialog delete mode 100644 locale/en-us/daily.rain.not.expected.location.dialog delete mode 100644 locale/en-us/daily.snow.alternative.location.dialog delete mode 100644 locale/en-us/daily.snow.not.expected.local.dialog delete mode 100644 locale/en-us/daily.snow.not.expected.location.dialog delete mode 100644 locale/en-us/daily.thunderstorm.alternative.local.dialog delete mode 100644 locale/en-us/daily.thunderstorm.alternative.location.dialog delete mode 100644 locale/en-us/daily.thunderstorm.not.expected.local.dialog delete mode 100644 locale/en-us/daily.thunderstorm.not.expected.location.dialog delete mode 100644 locale/en-us/do not know.dialog delete mode 100644 locale/en-us/from.day.dialog delete mode 100644 locale/en-us/heavy.dialog delete mode 100644 locale/en-us/hourly.condition.alternative.local.dialog delete mode 100644 locale/en-us/hourly.condition.alternative.location.dialog delete mode 100644 locale/en-us/light.dialog delete mode 100644 locale/en-us/simple.temperature.intent delete mode 100644 locale/en-us/sky is clear.future.dialog create mode 100644 locale/en-us/thunderstorm.dialog create mode 100644 locale/en-us/weekly.condition.dialog create mode 100644 locale/en-us/weekly.temperature.dialog delete mode 100644 locale/en-us/what.is.multi.day.forecast.intent delete mode 100644 locale/es-es/heavy.dialog rename locale/es-es/{hour.local.weather.dialog => hourly.weather.local.dialog} (100%) rename locale/es-es/{hour.weather.dialog => hourly.weather.location.dialog} (100%) delete mode 100644 locale/es-es/light.dialog delete mode 100644 locale/es-es/report.condition.dialog delete mode 100644 locale/es-es/report.future.condition.dialog delete mode 100644 locale/es-es/sky is clear.future.dialog delete mode 100644 locale/es-es/wind.speed.dialog delete mode 100644 locale/es-es/wind.speed.dir.dialog delete mode 100644 locale/es-es/winds.dialog rename locale/fr-fr/{current.humitidy.location.dialog => current.humidity.location.dialog} (100%) delete mode 100644 locale/fr-fr/do not know.dialog delete mode 100644 locale/fr-fr/heavy.dialog delete mode 100644 locale/fr-fr/light.dialog delete mode 100644 locale/fr-fr/sky is clear.future.dialog delete mode 100644 locale/gl-es/ClearAlternatives.voc delete mode 100644 locale/gl-es/CloudsAlternatives.voc delete mode 100644 locale/gl-es/FogAlternatives.voc delete mode 100644 locale/gl-es/RainAlternatives.voc delete mode 100644 locale/gl-es/SnowAlternatives.voc delete mode 100644 locale/gl-es/ThunderstormAlternatives.voc create mode 100644 locale/gl-es/and.dialog delete mode 100644 locale/gl-es/clear.future.dialog delete mode 100644 locale/gl-es/condition.category.value delete mode 100644 locale/gl-es/current.clear.alternative.local.dialog delete mode 100644 locale/gl-es/current.clear.alternative.location.dialog delete mode 100644 locale/gl-es/current.clear.not.expected.location.dialog delete mode 100644 locale/gl-es/current.clouds.alternative.local.dialog delete mode 100644 locale/gl-es/current.clouds.alternative.location.dialog delete mode 100644 locale/gl-es/current.clouds.not.expected.local.dialog delete mode 100644 locale/gl-es/current.clouds.not.expected.location.dialog delete mode 100644 locale/gl-es/current.fog.alternative.local.dialog delete mode 100644 locale/gl-es/current.fog.alternative.location.dialog delete mode 100644 locale/gl-es/current.fog.not.expected.local.dialog delete mode 100644 locale/gl-es/current.fog.not.expected.location.dialog delete mode 100644 locale/gl-es/current.rain.alternative.local.dialog delete mode 100644 locale/gl-es/current.rain.alternative.location.dialog delete mode 100644 locale/gl-es/current.rain.not.expected.local.dialog delete mode 100644 locale/gl-es/current.rain.not.expected.location.dialog delete mode 100644 locale/gl-es/current.snow.alternative.local.dialog delete mode 100644 locale/gl-es/current.snow.alternative.location.dialog delete mode 100644 locale/gl-es/current.snow.not.expected.local.dialog delete mode 100644 locale/gl-es/current.snow.not.expected.location.dialog delete mode 100644 locale/gl-es/current.thunderstorm.alternative.local.dialog delete mode 100644 locale/gl-es/current.thunderstorm.alternative.location.dialog delete mode 100644 locale/gl-es/current.thunderstorm.not.expected.local.dialog delete mode 100644 locale/gl-es/current.thunderstorm.not.expected.location.dialog delete mode 100644 locale/gl-es/daily.clear.alternative.local.dialog delete mode 100644 locale/gl-es/daily.clear.alternative.location.dialog delete mode 100644 locale/gl-es/daily.clear.not.expected.local.dialog delete mode 100644 locale/gl-es/daily.clear.not.expected.location.dialog delete mode 100644 locale/gl-es/daily.clouds.alternative.local.dialog delete mode 100644 locale/gl-es/daily.clouds.alternative.location.dialog delete mode 100644 locale/gl-es/daily.clouds.not.expected.local.dialog delete mode 100644 locale/gl-es/daily.clouds.not.expected.location.dialog delete mode 100644 locale/gl-es/daily.fog.alternative.local.dialog delete mode 100644 locale/gl-es/daily.fog.alternative.location.dialog delete mode 100644 locale/gl-es/daily.fog.not.expected.local.dialog delete mode 100644 locale/gl-es/daily.fog.not.expected.location.dialog delete mode 100644 locale/gl-es/daily.rain.alternative.local.dialog delete mode 100644 locale/gl-es/daily.rain.alternative.location.dialog delete mode 100644 locale/gl-es/daily.rain.not.expected.local.dialog delete mode 100644 locale/gl-es/daily.rain.not.expected.location.dialog delete mode 100644 locale/gl-es/daily.snow.alternative.location.dialog delete mode 100644 locale/gl-es/daily.snow.not.expected.local.dialog delete mode 100644 locale/gl-es/daily.snow.not.expected.location.dialog delete mode 100644 locale/gl-es/daily.thunderstorm.alternative.local.dialog delete mode 100644 locale/gl-es/daily.thunderstorm.alternative.location.dialog delete mode 100644 locale/gl-es/daily.thunderstorm.not.expected.local.dialog delete mode 100644 locale/gl-es/daily.thunderstorm.not.expected.location.dialog delete mode 100644 locale/gl-es/do not know.dialog delete mode 100644 locale/gl-es/from.day.dialog delete mode 100644 locale/gl-es/heavy.dialog delete mode 100644 locale/gl-es/light.dialog delete mode 100644 locale/gl-es/on.date.dialog delete mode 100644 locale/gl-es/on.dialog delete mode 100644 locale/gl-es/simple.temperature.intent delete mode 100644 locale/gl-es/sky is clear.future.dialog delete mode 100644 locale/gl-es/sunrise.dialog delete mode 100644 locale/gl-es/sunset.dialog rename locale/gl-es/{storm.dialog => thunderstorm.dialog} (100%) delete mode 100644 locale/gl-es/tonight.local.weather.dialog delete mode 100644 locale/gl-es/weekly.condition.on.day.dialog delete mode 100644 locale/gl-es/weekly.conditions.mostly.one.dialog delete mode 100644 locale/gl-es/weekly.conditions.seq.extra.dialog delete mode 100644 locale/gl-es/weekly.conditions.seq.period.dialog delete mode 100644 locale/gl-es/weekly.conditions.seq.start.dialog delete mode 100644 locale/gl-es/weekly.conditions.some.days.dialog rename locale/gl-es/{weekly.temp.range.dialog => weekly.temperature.dialog} (100%) delete mode 100644 locale/gl-es/what.is.multi.day.forecast.intent delete mode 100644 locale/it-it/ClearAlternatives.voc delete mode 100644 locale/it-it/CloudsAlternatives.voc delete mode 100644 locale/it-it/FogAlternatives.voc delete mode 100644 locale/it-it/RainAlternatives.voc delete mode 100644 locale/it-it/SnowAlternatives.voc delete mode 100644 locale/it-it/current.clear.alternative.local.dialog delete mode 100644 locale/it-it/current.clear.alternative.location.dialog delete mode 100644 locale/it-it/current.clear.not.expected.location.dialog delete mode 100644 locale/it-it/current.clouds.alternative.local.dialog delete mode 100644 locale/it-it/current.clouds.alternative.location.dialog delete mode 100644 locale/it-it/current.clouds.not.expected.location.dialog delete mode 100644 locale/it-it/current.fog.alternative.local.dialog delete mode 100644 locale/it-it/current.fog.alternative.location.dialog delete mode 100644 locale/it-it/current.fog.not.expected.local.dialog delete mode 100644 locale/it-it/current.fog.not.expected.location.dialog delete mode 100644 locale/it-it/current.rain.alternative.local.dialog delete mode 100644 locale/it-it/current.rain.alternative.location.dialog delete mode 100644 locale/it-it/current.rain.not.expected.local.dialog delete mode 100644 locale/it-it/current.rain.not.expected.location.dialog delete mode 100644 locale/it-it/current.snow.alternative.local.dialog delete mode 100644 locale/it-it/current.snow.alternative.location.dialog delete mode 100644 locale/it-it/current.snow.not.expected.local.dialog delete mode 100644 locale/it-it/current.snow.not.expected.location.dialog delete mode 100644 locale/it-it/daily.clear.alternative.local.dialog delete mode 100644 locale/it-it/daily.clear.alternative.location.dialog delete mode 100644 locale/it-it/daily.clear.not.expected.local.dialog delete mode 100644 locale/it-it/daily.clear.not.expected.location.dialog delete mode 100644 locale/it-it/daily.clouds.alternative.local.dialog delete mode 100644 locale/it-it/daily.clouds.alternative.location.dialog delete mode 100644 locale/it-it/daily.clouds.not.expected.local.dialog delete mode 100644 locale/it-it/daily.clouds.not.expected.location.dialog delete mode 100644 locale/it-it/daily.fog.alternative.local.dialog delete mode 100644 locale/it-it/daily.fog.alternative.location.dialog delete mode 100644 locale/it-it/daily.fog.not.expected.local.dialog delete mode 100644 locale/it-it/daily.fog.not.expected.location.dialog delete mode 100644 locale/it-it/daily.rain.alternative.local.dialog delete mode 100644 locale/it-it/daily.rain.alternative.location.dialog delete mode 100644 locale/it-it/daily.rain.not.expected.local.dialog delete mode 100644 locale/it-it/daily.rain.not.expected.location.dialog delete mode 100644 locale/it-it/daily.snow.alternative.location.dialog delete mode 100644 locale/it-it/daily.snow.not.expected.local.dialog delete mode 100644 locale/it-it/daily.snow.not.expected.location.dialog delete mode 100644 locale/it-it/do not know.dialog delete mode 100644 locale/it-it/heavy.dialog delete mode 100644 locale/it-it/light.dialog delete mode 100644 locale/it-it/simple.temperature.intent delete mode 100644 locale/it-it/sky is clear.future.dialog delete mode 100644 locale/it-it/what.is.multi.day.forecast.intent delete mode 100644 locale/nl-nl/do not know.dialog delete mode 100644 locale/nl-nl/heavy.dialog delete mode 100644 locale/nl-nl/light.dialog delete mode 100644 locale/nl-nl/sky is clear.future.dialog delete mode 100644 locale/pt-br/ClearAlternatives.voc delete mode 100644 locale/pt-br/CloudsAlternatives.voc delete mode 100644 locale/pt-br/FogAlternatives.voc delete mode 100644 locale/pt-br/RainAlternatives.voc delete mode 100644 locale/pt-br/SnowAlternatives.voc delete mode 100644 locale/pt-br/ThunderstormAlternatives.voc create mode 100644 locale/pt-br/and.dialog delete mode 100644 locale/pt-br/clear.future.dialog delete mode 100644 locale/pt-br/condition.category.value delete mode 100644 locale/pt-br/current.clear.alternative.local.dialog delete mode 100644 locale/pt-br/current.clear.alternative.location.dialog delete mode 100644 locale/pt-br/current.clear.not.expected.location.dialog delete mode 100644 locale/pt-br/current.clouds.alternative.local.dialog delete mode 100644 locale/pt-br/current.clouds.alternative.location.dialog delete mode 100644 locale/pt-br/current.clouds.not.expected.local.dialog delete mode 100644 locale/pt-br/current.clouds.not.expected.location.dialog delete mode 100644 locale/pt-br/current.fog.alternative.local.dialog delete mode 100644 locale/pt-br/current.fog.alternative.location.dialog delete mode 100644 locale/pt-br/current.fog.not.expected.local.dialog delete mode 100644 locale/pt-br/current.fog.not.expected.location.dialog delete mode 100644 locale/pt-br/current.rain.alternative.local.dialog delete mode 100644 locale/pt-br/current.rain.alternative.location.dialog delete mode 100644 locale/pt-br/current.rain.not.expected.local.dialog delete mode 100644 locale/pt-br/current.rain.not.expected.location.dialog delete mode 100644 locale/pt-br/current.snow.alternative.local.dialog delete mode 100644 locale/pt-br/current.snow.alternative.location.dialog delete mode 100644 locale/pt-br/current.snow.not.expected.local.dialog delete mode 100644 locale/pt-br/current.snow.not.expected.location.dialog delete mode 100644 locale/pt-br/current.thunderstorm.alternative.local.dialog delete mode 100644 locale/pt-br/current.thunderstorm.alternative.location.dialog delete mode 100644 locale/pt-br/current.thunderstorm.not.expected.local.dialog delete mode 100644 locale/pt-br/current.thunderstorm.not.expected.location.dialog delete mode 100644 locale/pt-br/daily.clear.alternative.local.dialog delete mode 100644 locale/pt-br/daily.clear.alternative.location.dialog delete mode 100644 locale/pt-br/daily.clear.not.expected.local.dialog delete mode 100644 locale/pt-br/daily.clear.not.expected.location.dialog delete mode 100644 locale/pt-br/daily.clouds.alternative.local.dialog delete mode 100644 locale/pt-br/daily.clouds.alternative.location.dialog delete mode 100644 locale/pt-br/daily.clouds.not.expected.local.dialog delete mode 100644 locale/pt-br/daily.clouds.not.expected.location.dialog delete mode 100644 locale/pt-br/daily.fog.alternative.local.dialog delete mode 100644 locale/pt-br/daily.fog.alternative.location.dialog delete mode 100644 locale/pt-br/daily.fog.not.expected.local.dialog delete mode 100644 locale/pt-br/daily.fog.not.expected.location.dialog delete mode 100644 locale/pt-br/daily.rain.alternative.local.dialog delete mode 100644 locale/pt-br/daily.rain.alternative.location.dialog delete mode 100644 locale/pt-br/daily.rain.not.expected.local.dialog delete mode 100644 locale/pt-br/daily.rain.not.expected.location.dialog delete mode 100644 locale/pt-br/daily.snow.alternative.location.dialog delete mode 100644 locale/pt-br/daily.snow.not.expected.local.dialog delete mode 100644 locale/pt-br/daily.snow.not.expected.location.dialog delete mode 100644 locale/pt-br/daily.thunderstorm.alternative.local.dialog delete mode 100644 locale/pt-br/daily.thunderstorm.alternative.location.dialog delete mode 100644 locale/pt-br/daily.thunderstorm.not.expected.local.dialog delete mode 100644 locale/pt-br/daily.thunderstorm.not.expected.location.dialog delete mode 100644 locale/pt-br/do not know.dialog delete mode 100644 locale/pt-br/from.day.dialog delete mode 100644 locale/pt-br/heavy.dialog delete mode 100644 locale/pt-br/light.dialog delete mode 100644 locale/pt-br/on.date.dialog delete mode 100644 locale/pt-br/on.dialog delete mode 100644 locale/pt-br/simple.temperature.intent delete mode 100644 locale/pt-br/sky is clear.future.dialog delete mode 100644 locale/pt-br/sunrise.dialog delete mode 100644 locale/pt-br/sunset.dialog rename locale/pt-br/{storm.dialog => thunderstorm.dialog} (100%) delete mode 100644 locale/pt-br/weekly.condition.on.day.dialog delete mode 100644 locale/pt-br/weekly.conditions.mostly.one.dialog delete mode 100644 locale/pt-br/weekly.conditions.seq.extra.dialog delete mode 100644 locale/pt-br/weekly.conditions.seq.period.dialog delete mode 100644 locale/pt-br/weekly.conditions.seq.start.dialog delete mode 100644 locale/pt-br/weekly.conditions.some.days.dialog rename locale/pt-br/{weekly.temp.range.dialog => weekly.temperature.dialog} (100%) delete mode 100644 locale/pt-br/what.is.multi.day.forecast.intent delete mode 100644 locale/ru-ru/do not know.dialog delete mode 100644 locale/ru-ru/heavy.dialog delete mode 100644 locale/ru-ru/light.dialog delete mode 100644 locale/ru-ru/sky is clear.future.dialog delete mode 100644 locale/sv-se/ClearAlternatives.voc delete mode 100644 locale/sv-se/CloudsAlternatives.voc delete mode 100644 locale/sv-se/FogAlternatives.voc delete mode 100644 locale/sv-se/RainAlternatives.voc delete mode 100644 locale/sv-se/SnowAlternatives.voc delete mode 100644 locale/sv-se/ThunderstormAlternatives.voc create mode 100644 locale/sv-se/and.dialog delete mode 100644 locale/sv-se/clear.future.dialog delete mode 100644 locale/sv-se/condition.category.value delete mode 100644 locale/sv-se/current.clear.alternative.local.dialog delete mode 100644 locale/sv-se/current.clear.alternative.location.dialog delete mode 100644 locale/sv-se/current.clear.not.expected.locatioin.dialog delete mode 100644 locale/sv-se/current.clouds.alternative.local.dialog delete mode 100644 locale/sv-se/current.clouds.alternative.location.dialog delete mode 100644 locale/sv-se/current.clouds.not.expected.local.dialog delete mode 100644 locale/sv-se/current.clouds.not.expected.location.dialog delete mode 100644 locale/sv-se/current.fog.alternative.local.dialog delete mode 100644 locale/sv-se/current.fog.alternative.location.dialog delete mode 100644 locale/sv-se/current.fog.not.expected.local.dialog delete mode 100644 locale/sv-se/current.fog.not.expected.location.dialog delete mode 100644 locale/sv-se/current.rain.alternative.local.dialog delete mode 100644 locale/sv-se/current.rain.alternative.location.dialog delete mode 100644 locale/sv-se/current.rain.not.expected.local.dialog delete mode 100644 locale/sv-se/current.rain.not.expected.location.dialog delete mode 100644 locale/sv-se/current.snow.alternative.local.dialog delete mode 100644 locale/sv-se/current.snow.alternative.location.dialog delete mode 100644 locale/sv-se/current.snow.not.expected.local.dialog delete mode 100644 locale/sv-se/current.snow.not.expected.location.dialog delete mode 100644 locale/sv-se/current.thunderstorm.alternative.local.dialog delete mode 100644 locale/sv-se/current.thunderstorm.alternative.location.dialog delete mode 100644 locale/sv-se/current.thunderstorm.not.expected.local.dialog delete mode 100644 locale/sv-se/current.thunderstorm.not.expected.location.dialog delete mode 100644 locale/sv-se/daily.clear.alternative.local.dialog delete mode 100644 locale/sv-se/daily.clear.alternative.location.dialog delete mode 100644 locale/sv-se/daily.clear.not.expected.local.dialog delete mode 100644 locale/sv-se/daily.clear.not.expected.location.dialog delete mode 100644 locale/sv-se/daily.clouds.alternative.local.dialog delete mode 100644 locale/sv-se/daily.clouds.alternative.location.dialog delete mode 100644 locale/sv-se/daily.clouds.not.expected.local.dialog delete mode 100644 locale/sv-se/daily.clouds.not.expected.location.dialog delete mode 100644 locale/sv-se/daily.fog.alternative.local.dialog delete mode 100644 locale/sv-se/daily.fog.alternative.location.dialog delete mode 100644 locale/sv-se/daily.fog.not.expected.local.dialog delete mode 100644 locale/sv-se/daily.fog.not.expected.location.dialog delete mode 100644 locale/sv-se/daily.rain.alternative.local.dialog delete mode 100644 locale/sv-se/daily.rain.alternative.location.dialog delete mode 100644 locale/sv-se/daily.rain.not.expected.local.dialog delete mode 100644 locale/sv-se/daily.rain.not.expected.location.dialog delete mode 100644 locale/sv-se/daily.snow.alternative.location.dialog delete mode 100644 locale/sv-se/daily.snow.not.expected.local.dialog delete mode 100644 locale/sv-se/daily.snow.not.expected.location.dialog delete mode 100644 locale/sv-se/daily.thunderstorm.alternative.local.dialog delete mode 100644 locale/sv-se/daily.thunderstorm.alternative.location.dialog delete mode 100644 locale/sv-se/daily.thunderstorm.not.expected.local.dialog delete mode 100644 locale/sv-se/daily.thunderstorm.not.expected.location.dialog delete mode 100644 locale/sv-se/do not know.dialog delete mode 100644 locale/sv-se/from.day.dialog delete mode 100644 locale/sv-se/heavy.dialog delete mode 100644 locale/sv-se/light.dialog delete mode 100644 locale/sv-se/on.date.dialog delete mode 100644 locale/sv-se/on.dialog delete mode 100644 locale/sv-se/simple.temperature.intent delete mode 100644 locale/sv-se/sky is clear.future.dialog delete mode 100644 locale/sv-se/storm.dialog rename locale/{en-us/storm.dialog => sv-se/thunderstorm.dialog} (100%) delete mode 100644 locale/sv-se/weekly.condition.on.day.dialog delete mode 100644 locale/sv-se/weekly.conditions.mostly.one.dialog delete mode 100644 locale/sv-se/weekly.conditions.seq.extra.dialog delete mode 100644 locale/sv-se/weekly.conditions.seq.period.dialog delete mode 100644 locale/sv-se/weekly.conditions.seq.start.dialog delete mode 100644 locale/sv-se/weekly.conditions.some.days.dialog rename locale/sv-se/{weekly.temp.range.dialog => weekly.temperature.dialog} (100%) delete mode 100644 locale/sv-se/what.is.multi.day.forecast.intent diff --git a/__init__.py b/__init__.py index 77dddd43..b86004b5 100644 --- a/__init__.py +++ b/__init__.py @@ -26,18 +26,24 @@ from adapt.intent import IntentBuilder from requests import HTTPError -import mycroft.audio from mycroft import MycroftSkill, intent_handler from mycroft.messagebus.message import Message from mycroft.util.parse import extract_number from .source import ( + CurrentDialog, + DAILY, + DailyDialog, DailyWeather, + HOURLY, + HourlyDialog, + get_dialog_for_timeframe, LocationNotFoundError, OpenWeatherMapApi, WeatherConfig, WeatherDialog, WeatherIntent, WeatherReport, + WeeklyDialog, ) # TODO: VK Failures @@ -67,7 +73,7 @@ def __init__(self): self.weather_api = OpenWeatherMapApi() self.weather_api.set_language_parameter(self.lang) self.weather_config = WeatherConfig(self.config_core, self.settings) - self.platform = self.config_core["enclosure"]["platform"] + self.platform = self.config_core["enclosure"].get("platform", "unknown") # Build a dictionary to translate OWM weather-conditions # codes into the Mycroft weather icon codes @@ -88,8 +94,8 @@ def __init__(self): @intent_handler( IntentBuilder("") - .one_of("Weather", "Forecast") .optionally("Query") + .one_of("Weather", "Forecast") .optionally("Location") .optionally("Today") ) @@ -114,8 +120,14 @@ def handle_like_outside(self, message: Message): """ self._report_current_weather(message) - @intent_handler("what.is.multi.day.forecast.intent") - def handle_multi_day_forecast(self, message: Message): + @intent_handler( + IntentBuilder("") + .optionally("Query") + .one_of("Weather", "Forecast") + .require("NumberDays") + .optionally("Location") + ) + def handle_number_days_forecast(self, message: Message): """Handle multiple day forecast without specified location. Examples: @@ -124,18 +136,18 @@ def handle_multi_day_forecast(self, message: Message): :param message: Message Bus event information from the intent parser """ - if self.voc_match(message.data["num"], "Couple"): + if self.voc_match(message.data["utterance"], "Couple"): days = 2 - elif self.voc_match(message.data["num"], "Few"): + elif self.voc_match(message.data["utterance"], "Few"): days = 3 else: - days = int(extract_number(message.data["num"])) + days = int(extract_number(message.data["utterance"])) self._report_multi_day_forecast(message, days) @intent_handler( IntentBuilder("") - .one_of("Weather", "Forecast") .optionally("Query") + .one_of("Weather", "Forecast") .require("RelativeDay") .optionally("Location") ) @@ -157,7 +169,7 @@ def handle_one_day_forecast(self, message): .require("Later") .optionally("Location") ) - def handle_next_hour(self, message: Message): + def handle_weather_later(self, message: Message): """Handle future weather requests such as: what's the weather later? :param message: Message Bus event information from the intent parser @@ -166,9 +178,9 @@ def handle_next_hour(self, message: Message): @intent_handler( IntentBuilder("") - .require("RelativeTime") - .one_of("Weather", "Forecast") .optionally("Query") + .one_of("Weather", "Forecast") + .require("RelativeTime") .optionally("RelativeDay") .optionally("Location") ) @@ -205,12 +217,12 @@ def handle_week_weather(self, message: Message): :param message: Message Bus event information from the intent parser """ - self._report_multi_day_forecast(message, days=7) + self._report_week_summary(message) @intent_handler( IntentBuilder("") - .require("Temperature") .optionally("Query") + .require("Temperature") .optionally("Location") .optionally("Unit") .optionally("Today") @@ -221,7 +233,7 @@ def handle_current_temperature(self, message: Message): Examples: "What is the temperature in Celsius?" - "What is the temperature in Baltimore?" + "What is the temperature in Baltimore now?" :param message: Message Bus event information from the intent parser """ @@ -229,11 +241,11 @@ def handle_current_temperature(self, message: Message): @intent_handler( IntentBuilder("") - .require("Temperature") .optionally("Query") + .require("Temperature") + .require("RelativeDay") .optionally("Location") .optionally("Unit") - .optionally("RelativeDay") ) def handle_daily_temperature(self, message: Message): """Handle simple requests for current temperature. @@ -246,9 +258,9 @@ def handle_daily_temperature(self, message: Message): @intent_handler( IntentBuilder("") + .optionally("Query") .require("Temperature") .require("RelativeTime") - .optionally("Query") .optionally("RelativeDay") .optionally("Location") ) @@ -321,7 +333,7 @@ def handle_is_it_hot(self, message: Message): IntentBuilder("") .optionally("How") .one_of("Hot", "Cold") - .one_of("ConfirmQueryFuture", "ConfirmQueryCurrent") + .require("ConfirmQuery") .optionally("Location") .optionally("RelativeDay") ) @@ -333,22 +345,6 @@ def handle_how_hot_or_cold(self, message): temperature_type = "high" if message.data.get("Hot") else "low" self._report_temperature(message, temperature_type) - @intent_handler( - IntentBuilder("") - .require("How") - .one_of("Hot", "Cold") - .one_of("ConfirmQueryFuture", "ConfirmQueryCurrent") - .optionally("Location") - .optionally("RelativeDay") - ) - def handle_how_hot_or_cold_alt(self, message: Message): - """Handler for temperature requests such as: how cold will it be today? - - :param message: Message Bus event information from the intent parser - """ - temperature_type = "high" if message.data.get("Hot") else "low" - self._report_temperature(message, temperature_type) - @intent_handler( IntentBuilder("") .require("ConfirmQuery") @@ -367,9 +363,9 @@ def handle_is_it_windy(self, message: Message): IntentBuilder("") .require("How") .require("Windy") - .optionally("Location") .optionally("ConfirmQuery") .optionally("RelativeDay") + .optionally("Location") ) def handle_windy(self, message): """Handler for weather requests such as: how windy is it? @@ -379,10 +375,7 @@ def handle_windy(self, message): self._report_wind(message) @intent_handler( - IntentBuilder("") - .require("ConfirmQuery") - .require("Snowing") - .optionally("Location") + IntentBuilder("").require("ConfirmQuery").require("Snow").optionally("Location") ) def handle_is_it_snowing(self, message: Message): """Handler for weather requests such as: is it snowing today? @@ -407,7 +400,7 @@ def handle_is_it_clear(self, message: Message): @intent_handler( IntentBuilder("") .require("ConfirmQuery") - .require("Cloudy") + .require("Clouds") .optionally("Location") .optionally("RelativeTime") ) @@ -419,10 +412,7 @@ def handle_is_it_cloudy(self, message: Message): self._report_weather_condition(message, "Clouds") @intent_handler( - IntentBuilder("") - .require("ConfirmQuery") - .require("Foggy") - .optionally("Location") + IntentBuilder("").require("ConfirmQuery").require("Fog").optionally("Location") ) def handle_is_it_foggy(self, message: Message): """Handler for weather requests such as: is it foggy today? @@ -432,10 +422,7 @@ def handle_is_it_foggy(self, message: Message): self._report_weather_condition(message, "Fog") @intent_handler( - IntentBuilder("") - .require("ConfirmQuery") - .require("Raining") - .optionally("Location") + IntentBuilder("").require("ConfirmQuery").require("Rain").optionally("Location") ) def handle_is_it_raining(self, message: Message): """Handler for weather requests such as: is it raining today? @@ -455,7 +442,7 @@ def handle_need_umbrella(self, message: Message): @intent_handler( IntentBuilder("") .require("ConfirmQuery") - .require("Storm") + .require("Thunderstorm") .optionally("Location") ) def handle_is_it_storming(self, message: Message): @@ -516,36 +503,42 @@ def handle_humidity(self, message: Message): .one_of("Query", "When") .optionally("Location") .require("Sunrise") + .optionally("Today") + .optionally("RelativeDay") ) def handle_sunrise(self, message: Message): """Handler for weather requests such as: when is the sunrise? :param message: Message Bus event information from the intent parser """ - intent_data = WeatherIntent(message, self.lang) + intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: intent_weather = weather.get_weather_for_intent(intent_data) - dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) + dialog_args = intent_data, self.weather_config, intent_weather + dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_sunrise_dialog() self._speak_weather(dialog) @intent_handler( IntentBuilder("") .one_of("Query", "When") - .optionally("Location") .require("Sunset") + .optionally("Location") + .optionally("Today") + .optionally("RelativeDay") ) def handle_sunset(self, message: Message): """Handler for weather requests such as: when is the sunset? :param message: Message Bus event information from the intent parser """ - intent_data = WeatherIntent(message, self.lang) + intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: intent_weather = weather.get_weather_for_intent(intent_data) - dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) + dialog_args = intent_data, self.weather_config, intent_weather + dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_sunset_dialog() self._speak_weather(dialog) @@ -558,8 +551,8 @@ def _report_current_weather(self, message: Message): weather = self._get_weather(intent_data) if weather is not None: self._display_current_conditions(weather, intent_data) - dialog = WeatherDialog(weather, self.weather_config, intent_data) - dialog.build_current_weather_dialog() + dialog = CurrentDialog(intent_data, self.weather_config, weather.current) + dialog.build_weather_dialog() self._speak_weather(dialog) if self.gui.connected and self.platform != MARK_II: self._display_more_current_conditions(weather) @@ -574,7 +567,9 @@ def _report_current_weather(self, message: Message): four_day_forecast = weather.daily[1:5] self._display_forecast(four_day_forecast) - def _display_current_conditions(self, weather: WeatherReport, intent_data: WeatherIntent): + def _display_current_conditions( + self, weather: WeatherReport, intent_data: WeatherIntent + ): """Display current weather conditions on a screen. This is the first screen that shows. Others will follow. @@ -598,6 +593,17 @@ def _display_current_conditions(self, weather: WeatherReport, intent_data: Weath self.enclosure.weather_display(image_code, weather.current.temperature) def _build_display_location(self, intent_data: WeatherIntent) -> str: + """Build a string representing the location of the weather for display on GUI + + The return value will be the device's configured location if no location is + specified in the intent. If a location is specified, and it is in the same + country as that in the device configuration, the return value will be city and + region. A specified location in a different country will result in a return + value of city and country. + + :param intent_data: information about the intent that was triggered + :return: The weather location to be displayed on the GUI + """ if intent_data.geolocation: location = [intent_data.geolocation["city"]] if intent_data.geolocation["country"] == self.weather_config.country: @@ -640,8 +646,8 @@ def _report_one_hour_weather(self, message: Message): except IndexError: self.speak_dialog("forty-eight.hours.available") else: - dialog = WeatherDialog(forecast, self.weather_config, intent_data) - dialog.build_hourly_weather_dialog() + dialog = HourlyDialog(intent_data, self.weather_config, forecast) + dialog.build_weather_dialog() self._speak_weather(dialog) def _display_hourly_forecast(self, weather: WeatherReport): @@ -659,7 +665,7 @@ def _display_hourly_forecast(self, weather: WeatherReport): if hour_count > 4: break # TODO: make the timeframe aware of language/location settings - if self.config_core['time_format'] == TWELVE_HOUR: + if self.config_core["time_format"] == TWELVE_HOUR: # The datetime builtin returns hour in two character format. Convert # to a integer and back again to remove the leading zero when present. hour = int(hourly.date_time.strftime("%I")) @@ -727,7 +733,7 @@ def _report_weekend_forecast(self, message: Message): def _build_forecast_dialogs( self, forecast: List[DailyWeather], intent_data: WeatherIntent - ) -> List[WeatherDialog]: + ) -> List[DailyDialog]: """ Build the dialogs for each of the forecast days being reported to the user. @@ -737,12 +743,66 @@ def _build_forecast_dialogs( """ dialogs = list() for forecast_day in forecast: - dialog = WeatherDialog(forecast_day, self.weather_config, intent_data) - dialog.build_daily_weather_dialog() + dialog = DailyDialog(intent_data, self.weather_config, forecast_day) + dialog.build_weather_dialog() dialogs.append(dialog) return dialogs + def _report_week_summary(self, message: Message): + """Summarize the week's weather rather than giving daily details. + + When the user requests the weather for the week, rather than give a daily + forecast for seven days, summarize the weather conditions for the week. + + :param message: Message Bus event information from the intent parser + """ + intent_data = WeatherIntent(message, self.lang) + weather = self._get_weather(intent_data) + if weather is not None: + forecast = weather.get_forecast_for_multiple_days(7) + dialogs = self._build_weekly_condition_dialogs(forecast, intent_data) + dialogs.append(self._build_weekly_temperature_dialog(forecast, intent_data)) + self._display_forecast(forecast) + for dialog in dialogs: + self._speak_weather(dialog) + + def _build_weekly_condition_dialogs( + self, forecast: List[DailyWeather], intent_data: WeatherIntent + ) -> List[WeeklyDialog]: + """Build the dialog communicating a weather condition on days it is forecasted. + + :param forecast: seven day daily forecast + :param intent_data: Parsed intent data + :return: List of dialogs for each condition expected in the coming week. + """ + dialogs = list() + conditions = set([daily.condition.category for daily in forecast]) + for condition in conditions: + dialog = WeeklyDialog(intent_data, self.weather_config, forecast) + dialog.build_condition_dialog(condition=condition) + dialog.data.update( + condition=self.translate(condition.lower()), + days=dialog.data["days"].replace("and", self.translate("and")), + ) + dialogs.append(dialog) + + return dialogs + + def _build_weekly_temperature_dialog( + self, forecast: List[DailyWeather], intent_data: WeatherIntent + ) -> WeeklyDialog: + """Build the dialog communicating the forecasted range of temperatures. + + :param forecast: seven day daily forecast + :param intent_data: Parsed intent data + :return: Dialog for the temperature ranges over the coming week. + """ + dialog = WeeklyDialog(intent_data, self.weather_config, forecast) + dialog.build_temperature_dialog() + + return dialog + def _display_forecast(self, forecast: List[DailyWeather]): """Display daily forecast data on devices that support the GUI. @@ -768,14 +828,14 @@ def _display_forecast_mark_ii(self, forecast: List[DailyWeather]): weatherCode=self.image_codes[day.condition.icon], day=day.date_time.strftime("%a"), highTemperature=day.temperature.high, - lowTemperature=day.temperature.low + lowTemperature=day.temperature.low, ) ) self.gui.clear() self.gui["dailyForecast"] = dict(days=daily_forecast[:4]) self.gui.show_page(page_name) if len(forecast) > 4: - sleep(20) + sleep(15) self.gui.clear() self.gui["dailyForecast"] = dict(days=daily_forecast[4:]) self.gui.show_page(page_name) @@ -816,7 +876,8 @@ def _report_temperature(self, message: Message, temperature_type: str = None): weather = self._get_weather(intent_data) if weather is not None: intent_weather = weather.get_weather_for_intent(intent_data) - dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) + dialog_args = intent_data, self.weather_config, intent_weather + dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_temperature_dialog(temperature_type) self._speak_weather(dialog) @@ -844,12 +905,11 @@ def _build_condition_dialog( :param intent_data: Parsed intent data :param condition: weather condition requested by the user """ - dialog = WeatherDialog(weather, self.weather_config, intent_data) + dialog_args = intent_data, self.weather_config, weather + dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) intent_match = self.voc_match(weather.condition.category.lower(), condition) - alternative_vocab = condition + "Alternatives" - alternative = self.voc_match(weather.condition.category, alternative_vocab) - dialog.build_condition_dialog(condition, intent_match, alternative) - dialog.data.update(condition=self.translate(condition)) + dialog.build_condition_dialog(intent_match) + dialog.data.update(condition=self.translate(weather.condition.description)) return dialog @@ -882,12 +942,12 @@ def _get_intent_data(self, message: Message) -> WeatherIntent: self.speak_dialog("cant.get.forecast") else: if self.voc_match(intent_data.utterance, "RelativeTime"): - intent_data.timeframe = "hourly" + intent_data.timeframe = HOURLY elif self.voc_match(intent_data.utterance, "Later"): - intent_data.timeframe = "hourly" + intent_data.timeframe = HOURLY elif self.voc_match(intent_data.utterance, "RelativeDay"): if not self.voc_match(intent_data.utterance, "Today"): - intent_data.timeframe = "daily" + intent_data.timeframe = DAILY return intent_data @@ -945,14 +1005,13 @@ def _determine_weather_location( return latitude, longitude - def _speak_weather(self, dialog: WeatherDialog): + def _speak_weather(self, dialog): """Instruct device to speak the contents of the specified dialog. :param dialog: the dialog that will be spoken """ self.log.info("Speaking dialog: " + dialog.name) - self.speak_dialog(dialog.name, dialog.data) - mycroft.audio.wait_while_speaking() + self.speak_dialog(dialog.name, dialog.data, wait=True) def create_skill(): diff --git a/locale/ca-es/ClearAlternatives.voc b/locale/ca-es/ClearAlternatives.voc deleted file mode 100644 index 7192d353..00000000 --- a/locale/ca-es/ClearAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similars a temps clar -(nebulós|nebulosa|bromós|bromos|boira|boirós|boirosa|enlleganyat|enlleganyada|lleganyós|lleganyos|calitjós|calitjosa|núvol|ennuvolat|ennuvolada|encapotat|encapotada|fosc|fosca|cobert|coberta|tapat|tapada|emboirat|emboirada|nuvolós|nuvolosa|embromat|embromada|núvol|núvols) diff --git a/locale/ca-es/CloudsAlternatives.voc b/locale/ca-es/CloudsAlternatives.voc deleted file mode 100644 index 9c2f0d7d..00000000 --- a/locale/ca-es/CloudsAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similars a temps ennuvolat -(clar|boirina|aigua|pluja|plovisqueja| pluja lleugera) diff --git a/locale/ca-es/RainAlternatives.voc b/locale/ca-es/RainAlternatives.voc deleted file mode 100644 index e1c6e8b6..00000000 --- a/locale/ca-es/RainAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similars a la pluja -(neu|nevada lleugera|aiguaneu|boira) diff --git a/locale/ca-es/SnowAlternatives.voc b/locale/ca-es/SnowAlternatives.voc deleted file mode 100644 index bdf3bde1..00000000 --- a/locale/ca-es/SnowAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Condicions similars a la neu -(pluja|pluja lleugera) diff --git a/locale/ca-es/ThunderstormAlternatives.voc b/locale/ca-es/ThunderstormAlternatives.voc deleted file mode 100644 index a382d361..00000000 --- a/locale/ca-es/ThunderstormAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similars a temps tempestuós -(plugim|plovisqueig|pluja|pluja lleugera|neu|poca neu|boirós|boira|núvol|núvols|nuvolat|parcialment ennuvolat) diff --git a/locale/ca-es/and.dialog b/locale/ca-es/and.dialog new file mode 100644 index 00000000..24e79aeb --- /dev/null +++ b/locale/ca-es/and.dialog @@ -0,0 +1 @@ +, i diff --git a/locale/ca-es/clear.future.dialog b/locale/ca-es/clear.future.dialog deleted file mode 100644 index 2789b6da..00000000 --- a/locale/ca-es/clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -un cel clar diff --git a/locale/ca-es/condition.category.value b/locale/ca-es/condition.category.value deleted file mode 100644 index fe43ad83..00000000 --- a/locale/ca-es/condition.category.value +++ /dev/null @@ -1,15 +0,0 @@ -Núvols, ennuvolat -Clar, un cel ras -Tempesta, tempestuós -Plugim, plovisquejant -pluja|plovent -neu|nevada|nevant -Boirina, boirós -Fum, amb fum -Calitja, boirina -Pols,polsegós -Boira,boirós -Sorra,sorrenc -Cendra,ennuvolat amb possible cendra volcànica -Ratxa de vent,tempestuós -Tornado,tempestat amb un possible tornado diff --git a/locale/ca-es/current.clear.alternative.local.dialog b/locale/ca-es/current.clear.alternative.local.dialog deleted file mode 100644 index 00ce0005..00000000 --- a/locale/ca-es/current.clear.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió d'avui és {condition} -Sembla que hi haurà {condition} avui -És possible que avui sigui {condition} diff --git a/locale/ca-es/current.clear.alternative.location.dialog b/locale/ca-es/current.clear.alternative.location.dialog deleted file mode 100644 index 5834454d..00000000 --- a/locale/ca-es/current.clear.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió a {location} és {condition} -Sembla que hi haurà {condition} a {location} -Es probable que {condition} a {location} diff --git a/locale/ca-es/current.clear.not.expected.local.dialog b/locale/ca-es/current.clear.not.expected.local.dialog deleted file mode 100644 index 48842485..00000000 --- a/locale/ca-es/current.clear.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si és clar però no ho és -Ho sento, sembla que serà {condition} -No és probable que el cel vagi a estar clar diff --git a/locale/ca-es/current.clouds.alternative.local.dialog b/locale/ca-es/current.clouds.alternative.local.dialog deleted file mode 100644 index 76fa6587..00000000 --- a/locale/ca-es/current.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -No, la previsió d'avui és {condition} -# Informant que es produirà una alternativa al cel ennuvolat -No hauria d'estar ennuvolat, sembla que avui farà {condition} -No sembla que sigui així, hi ha possibilitats que avui faci {condition} diff --git a/locale/ca-es/current.clouds.alternative.location.dialog b/locale/ca-es/current.clouds.alternative.location.dialog deleted file mode 100644 index 401f7485..00000000 --- a/locale/ca-es/current.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió meteorològica és {condition} -No hauria d'estar ennuvolat, sembla que farà {condition} -No sembla que sigui així, hi ha possibilitats que farà {condition} diff --git a/locale/ca-es/current.clouds.not.expected.local.dialog b/locale/ca-es/current.clouds.not.expected.local.dialog deleted file mode 100644 index 444434a8..00000000 --- a/locale/ca-es/current.clouds.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si plou, però no es preveu cap núvol o una previsió similar -Avui no es preveu boira -No hauria d'estar ennuvolat avui diff --git a/locale/ca-es/current.clouds.not.expected.location.dialog b/locale/ca-es/current.clouds.not.expected.location.dialog deleted file mode 100644 index dcc6c21c..00000000 --- a/locale/ca-es/current.clouds.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si farà núvol però no ho farà -No sembla que avui estigui ennuvolat -No hauria d'estar ennuvolat diff --git a/locale/ca-es/current.fog.alternative.local.dialog b/locale/ca-es/current.fog.alternative.local.dialog deleted file mode 100644 index 00ce0005..00000000 --- a/locale/ca-es/current.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió d'avui és {condition} -Sembla que hi haurà {condition} avui -És possible que avui sigui {condition} diff --git a/locale/ca-es/current.fog.alternative.location.dialog b/locale/ca-es/current.fog.alternative.location.dialog deleted file mode 100644 index f3523516..00000000 --- a/locale/ca-es/current.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -No, la previsió a {location} és {condition} -Es probable que {condition} a {location} -# S'informa que es produirà una alternativa a la boira en la ubicació -Sembla que hi haurà {condition} a {location} diff --git a/locale/ca-es/current.fog.not.expected.local.dialog b/locale/ca-es/current.fog.not.expected.local.dialog deleted file mode 100644 index 624cdd4a..00000000 --- a/locale/ca-es/current.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si fa boira, però no es preveu neu ni cap alternativa -Sembla que la visibilitat serà bona avui -No es preveu boira avui diff --git a/locale/ca-es/current.fog.not.expected.location.dialog b/locale/ca-es/current.fog.not.expected.location.dialog deleted file mode 100644 index 5ce3cab2..00000000 --- a/locale/ca-es/current.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si fa boira, però no es preveu neu ni cap alternativa -Sembla que la visibilitat serà bona a {location} -No es preveu cap tempesta a {location} avui diff --git a/locale/ca-es/current.rain.alternative.local.dialog b/locale/ca-es/current.rain.alternative.local.dialog deleted file mode 100644 index 7864854c..00000000 --- a/locale/ca-es/current.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informar que es produirà una alternativa a la pluja (com la neu o la boira) -No, però la previsió d'avui és {condition} -Avui no es preveu pluja, però sembla que hi haurà {condition} diff --git a/locale/ca-es/current.rain.alternative.location.dialog b/locale/ca-es/current.rain.alternative.location.dialog deleted file mode 100644 index 069bb28e..00000000 --- a/locale/ca-es/current.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informar que es produirà una alternativa a la pluja (com la neu o la boira) -No, però la previsió a {location} és {condition} -Avui no es preveu pluja a {location}, però sembla que hi haurà {condition} diff --git a/locale/ca-es/current.rain.not.expected.local.dialog b/locale/ca-es/current.rain.not.expected.local.dialog deleted file mode 100644 index c974e878..00000000 --- a/locale/ca-es/current.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quan l'usuari pregunta si plou, però no es preveu pluja ni cap alternativa -No es preveu cap pluja avui -Avui no hauria de ploure -No hi ha necessitat de paraigua avui diff --git a/locale/ca-es/current.rain.not.expected.location.dialog b/locale/ca-es/current.rain.not.expected.location.dialog deleted file mode 100644 index ddabf71a..00000000 --- a/locale/ca-es/current.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quan l'usuari pregunta si plou, però no es preveu pluja ni cap alternativa -No es preveu cap pluja a {location} -No hauria d'estar plovent a {location} -No hi ha cap necessitat de paraigua a {location} diff --git a/locale/ca-es/current.snow.alternative.local.dialog b/locale/ca-es/current.snow.alternative.local.dialog deleted file mode 100644 index e941ee22..00000000 --- a/locale/ca-es/current.snow.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa a la neu -No, però la previsió d'avui és {condition} -Avui no hi ha previsió de pluja, però hi ha possibilitat que faci {condition} diff --git a/locale/ca-es/current.snow.alternative.location.dialog b/locale/ca-es/current.snow.alternative.location.dialog deleted file mode 100644 index feeccd1b..00000000 --- a/locale/ca-es/current.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa a la neu -No, però la previsió a {location} és {condition} -Avui no hi ha previsió de pluja, però hi ha possibilitat que faci {condition} a {location} diff --git a/locale/ca-es/current.snow.not.expected.local.dialog b/locale/ca-es/current.snow.not.expected.local.dialog deleted file mode 100644 index 06cfe127..00000000 --- a/locale/ca-es/current.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si neva, però no es preveu neu ni cap alternativa -No es preveu neu avui -Avui no hauria de nevar diff --git a/locale/ca-es/current.snow.not.expected.location.dialog b/locale/ca-es/current.snow.not.expected.location.dialog deleted file mode 100644 index 7cfb1d3c..00000000 --- a/locale/ca-es/current.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si neva, però no neva ni es preveu alternativa -No es preveu cap tempesta per a {location} -No nevarà a {location} diff --git a/locale/ca-es/current.thunderstorm.alternative.local.dialog b/locale/ca-es/current.thunderstorm.alternative.local.dialog deleted file mode 100644 index f097999d..00000000 --- a/locale/ca-es/current.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No, però la previsió d'avui és {condition} -# Informar que es produirà una alternativa a una tempesta (com la neu o la boira) -Avui no hi ha prevsió de tempesta, però sembla que farà {condition} diff --git a/locale/ca-es/current.thunderstorm.not.expected.local.dialog b/locale/ca-es/current.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 87c2e132..00000000 --- a/locale/ca-es/current.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# Quan l'usuari pregunta si plou, però no es preveu pluja ni cap alternativa -No es preveu cap tempesta avui -Avui no hauria d'haver-hi tempesta -Avui no hauria d'haver-hi tempesta -Avui és poc probable que hi hagi tempesta -Una tempesta no és probable avui diff --git a/locale/ca-es/current.thunderstorm.not.expected.location.dialog b/locale/ca-es/current.thunderstorm.not.expected.location.dialog deleted file mode 100644 index 023c4223..00000000 --- a/locale/ca-es/current.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quan l'usuari pregunta si fa tempesta, però no n'hi ha ni es preveu cap alternativa -No es preveu cap tempesta a {location} -No s'ha de produir cap tempesta a {location} -No hauria d'haver-hi tempesta a {location} diff --git a/locale/ca-es/current.thundestorm.alternative.location.dialog b/locale/ca-es/current.thundestorm.alternative.location.dialog deleted file mode 100644 index 1ab19a73..00000000 --- a/locale/ca-es/current.thundestorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No, però la previsió a {location} és {condition} -# Informar que es produirà una alternativa a la tempesta (com la neu o la boira) -Avui no es preveu tempesta a {location}, però sembla que hi haurà {condition} diff --git a/locale/ca-es/daily.clear.alternative.local.dialog b/locale/ca-es/daily.clear.alternative.local.dialog deleted file mode 100644 index 268e1a27..00000000 --- a/locale/ca-es/daily.clear.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió de {day} és {condition} -El {day} sembla que hi haurà {condition} diff --git a/locale/ca-es/daily.clear.alternative.location.dialog b/locale/ca-es/daily.clear.alternative.location.dialog deleted file mode 100644 index 33ad44a4..00000000 --- a/locale/ca-es/daily.clear.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa a la pluja -No, però la previsió de {day} a {location} és {condition} -{day} no hi ha cap pluja prevista el {day} per a {location}, però sembla que hi haurà {condition} diff --git a/locale/ca-es/daily.clear.not.expected.local.dialog b/locale/ca-es/daily.clear.not.expected.local.dialog deleted file mode 100644 index 2bdd0bf4..00000000 --- a/locale/ca-es/daily.clear.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si és clar, però es preveu un alternativa -Ho sento, la previsió no prediu condicions clares per al {day} -{day} no és probable que estigui clar diff --git a/locale/ca-es/daily.clear.not.expected.location.dialog b/locale/ca-es/daily.clear.not.expected.location.dialog deleted file mode 100644 index b2a0a964..00000000 --- a/locale/ca-es/daily.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si és clar, però es preveu un alternativa -Ho sento, la previsió per a {day} no prediu condicions clares a {location} -{day} no és probable que estigui clar el temps a {location} diff --git a/locale/ca-es/daily.clouds.alternative.local.dialog b/locale/ca-es/daily.clouds.alternative.local.dialog deleted file mode 100644 index f813d739..00000000 --- a/locale/ca-es/daily.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió de {day} és {condition} -No hauria d'estar ennuvolat, sembla que farà {condition} el {day} -No sembla que sigui així, hi ha possibilitats que farà {condition} el {day} diff --git a/locale/ca-es/daily.clouds.alternative.location.dialog b/locale/ca-es/daily.clouds.alternative.location.dialog deleted file mode 100644 index c550fc71..00000000 --- a/locale/ca-es/daily.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -# No, la previsió de {day} a {location} és {condition} -# No hauria d'estar ennuvolat a {location} el {day}. Sembla que hi haurà {condition} -No sembla que sigui així, hi ha possibilitats que farà {condition} a {location} el {day} diff --git a/locale/ca-es/daily.clouds.not.expected.local.dialog b/locale/ca-es/daily.clouds.not.expected.local.dialog deleted file mode 100644 index ab8ba7e1..00000000 --- a/locale/ca-es/daily.clouds.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Quan l'usuari pregunta si farà núvol però no ho farà -No sembla que vagi a estar ennuvolat {day} -Es preveuen cels clars {day} -S'espera un cel clar {day} -No hauria d'estar ennuvolat {day} diff --git a/locale/ca-es/daily.clouds.not.expected.location.dialog b/locale/ca-es/daily.clouds.not.expected.location.dialog deleted file mode 100644 index c74a24e5..00000000 --- a/locale/ca-es/daily.clouds.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Quan l'usuari pregunta si farà núvol però no ho farà -No sembla que {day} hagi d'estar ennuvolat a {location} -Es preveuen cels clars a {location} el {day} -S'espera cels clars a {location} el {day} -No hauria d'estar ennuvolat a {location} el {day} diff --git a/locale/ca-es/daily.fog.alternative.local.dialog b/locale/ca-es/daily.fog.alternative.local.dialog deleted file mode 100644 index 8feea765..00000000 --- a/locale/ca-es/daily.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió de {day} és {condition} -Sembla que hi haurà {condition} el {day} -Hi ha possibilitats que {day} faci {condition} diff --git a/locale/ca-es/daily.fog.alternative.location.dialog b/locale/ca-es/daily.fog.alternative.location.dialog deleted file mode 100644 index 72cdb7b0..00000000 --- a/locale/ca-es/daily.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informant que es produirà una alternativa per aclarir els cels -No, la previsió el {day} per a {location} és de {condition} -Sembla que hi haurà {condition} a {location} el {day} -Hi ha possibilitats que {day} faci {condition} a {location} diff --git a/locale/ca-es/daily.fog.not.expected.local.dialog b/locale/ca-es/daily.fog.not.expected.local.dialog deleted file mode 100644 index 98ef337a..00000000 --- a/locale/ca-es/daily.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si fa boira, però no es preveu neu ni cap alternativa -{day} la visibilitat hauria de ser bona -No es preveu boira {day} diff --git a/locale/ca-es/daily.fog.not.expected.location.dialog b/locale/ca-es/daily.fog.not.expected.location.dialog deleted file mode 100644 index 95bbaff9..00000000 --- a/locale/ca-es/daily.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si fa boira, però no es preveu neu ni cap alternativa -{day} la visibilitat hauria de ser bona a {location} -No es preveu boira {day} a {location} diff --git a/locale/ca-es/daily.rain.alternative.local.dialog b/locale/ca-es/daily.rain.alternative.local.dialog deleted file mode 100644 index 44562f4c..00000000 --- a/locale/ca-es/daily.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa a la pluja -No, però la previsió de {day} és {condition} -{day} no hi ha previst pluja, però sembla que farà {condition} diff --git a/locale/ca-es/daily.rain.alternative.location.dialog b/locale/ca-es/daily.rain.alternative.location.dialog deleted file mode 100644 index 1b8a655e..00000000 --- a/locale/ca-es/daily.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa a la pluja -No, però la previsió {day} a {location} és {condition} -{day} no hi ha previsió de pluja a {location}, però sembla que hi haurà {condition} diff --git a/locale/ca-es/daily.rain.not.expected.local.dialog b/locale/ca-es/daily.rain.not.expected.local.dialog deleted file mode 100644 index 0cf0d56f..00000000 --- a/locale/ca-es/daily.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quan l'usuari pregunta si plou, però no es preveu pluja ni cap alternativa -No es preveu cap pluja {day} -No hauria de ploure {day} -No necessitareu un paraigua {day} diff --git a/locale/ca-es/daily.rain.not.expected.location.dialog b/locale/ca-es/daily.rain.not.expected.location.dialog deleted file mode 100644 index 80f5ba90..00000000 --- a/locale/ca-es/daily.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quan l'usuari pregunta si plou, però no es preveu pluja ni cap alternativa -No es preveu cap pluja per a {location} {day} -{day} no hauria de ploure a {location} -No hi ha cap necessitat de paraigua a {location} per a {day} diff --git a/locale/ca-es/daily.snow.alternative.location.dialog b/locale/ca-es/daily.snow.alternative.location.dialog deleted file mode 100644 index f205180e..00000000 --- a/locale/ca-es/daily.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa a la neu -No, però la previsió de {day} és {condition} -{day} no hi ha previsió de pluja, però hi ha possibilitat que faci {condition} diff --git a/locale/ca-es/daily.snow.not.expected.local.dialog b/locale/ca-es/daily.snow.not.expected.local.dialog deleted file mode 100644 index 90874b2e..00000000 --- a/locale/ca-es/daily.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si neva, però no neva ni es preveu alternativa -No es preveu neu {day} -No nevarà {day} diff --git a/locale/ca-es/daily.snow.not.expected.location.dialog b/locale/ca-es/daily.snow.not.expected.location.dialog deleted file mode 100644 index 89bf0e0a..00000000 --- a/locale/ca-es/daily.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quan l'usuari pregunta si neva, però no neva ni es preveu alternativa -No es preveu neu a {location} {day} -No hauria de nevar a {location} {day} diff --git a/locale/ca-es/daily.thunderstorm.alternative.local.dialog b/locale/ca-es/daily.thunderstorm.alternative.local.dialog deleted file mode 100644 index 48291433..00000000 --- a/locale/ca-es/daily.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informant que es produirà una alternativa a la pluja -No, però la previsió de {day} és {condition} -{day} no hi ha previsió de tempesta, però sembla que farà {condition} diff --git a/locale/ca-es/daily.thunderstorm.alternative.location.dialog b/locale/ca-es/daily.thunderstorm.alternative.location.dialog deleted file mode 100644 index c8455a53..00000000 --- a/locale/ca-es/daily.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No, però la previsió {day} a {location} és {condition} -# Informant que es produirà una alternativa a la tempesta -{day} no hi ha previsió de tempesta a {location}, però sembla que hi haurà {condition} diff --git a/locale/ca-es/daily.thunderstorm.not.expected.local.dialog b/locale/ca-es/daily.thunderstorm.not.expected.local.dialog deleted file mode 100644 index a358d563..00000000 --- a/locale/ca-es/daily.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quan l'usuari pregunta si plou, però no es preveu pluja ni cap alternativa -No es preveu cap tempesta {day} -{day}, no hauria de fer tempesta -No hauria d'haver-hi tempesta {day} diff --git a/locale/ca-es/daily.thunderstorm.not.expected.location.dialog b/locale/ca-es/daily.thunderstorm.not.expected.location.dialog deleted file mode 100644 index d81f5a67..00000000 --- a/locale/ca-es/daily.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quan l'usuari pregunta si plou, però no es preveu pluja ni cap alternativa -No es preveu cap tempesta per a {location} {day} -{day} no hauria d'haver-hi tempesta a {location} -És poc probable que hi hagi tempesta {day} a {location} diff --git a/locale/ca-es/do not know.dialog b/locale/ca-es/do not know.dialog deleted file mode 100644 index d22d7b83..00000000 --- a/locale/ca-es/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Em temo que no ho sé -No tinc aquesta informació diff --git a/locale/ca-es/light.dialog b/locale/ca-es/light.dialog deleted file mode 100644 index 001b4a58..00000000 --- a/locale/ca-es/light.dialog +++ /dev/null @@ -1 +0,0 @@ -llum diff --git a/locale/ca-es/on.date.dialog b/locale/ca-es/on.date.dialog deleted file mode 100644 index 78981922..00000000 --- a/locale/ca-es/on.date.dialog +++ /dev/null @@ -1 +0,0 @@ -a diff --git a/locale/ca-es/on.dialog b/locale/ca-es/on.dialog deleted file mode 100644 index c574d073..00000000 --- a/locale/ca-es/on.dialog +++ /dev/null @@ -1 +0,0 @@ -en diff --git a/locale/ca-es/storm.dialog b/locale/ca-es/thunderstorm.dialog similarity index 100% rename from locale/ca-es/storm.dialog rename to locale/ca-es/thunderstorm.dialog diff --git a/locale/ca-es/weekly.condition.on.day.dialog b/locale/ca-es/weekly.condition.on.day.dialog deleted file mode 100644 index d2d19228..00000000 --- a/locale/ca-es/weekly.condition.on.day.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} serà {condition}, diff --git a/locale/ca-es/weekly.conditions.mostly.one.dialog b/locale/ca-es/weekly.conditions.mostly.one.dialog deleted file mode 100644 index 31e11a0f..00000000 --- a/locale/ca-es/weekly.conditions.mostly.one.dialog +++ /dev/null @@ -1 +0,0 @@ -serà majoritàriament {condition}. diff --git a/locale/ca-es/weekly.conditions.seq.extra.dialog b/locale/ca-es/weekly.conditions.seq.extra.dialog deleted file mode 100644 index 70419434..00000000 --- a/locale/ca-es/weekly.conditions.seq.extra.dialog +++ /dev/null @@ -1,2 +0,0 @@ -sembla que també hi haurà -també ho serà diff --git a/locale/ca-es/weekly.conditions.seq.period.dialog b/locale/ca-es/weekly.conditions.seq.period.dialog deleted file mode 100644 index 1e87105a..00000000 --- a/locale/ca-es/weekly.conditions.seq.period.dialog +++ /dev/null @@ -1 +0,0 @@ -de {from} a {to} diff --git a/locale/ca-es/weekly.conditions.seq.start.dialog b/locale/ca-es/weekly.conditions.seq.start.dialog deleted file mode 100644 index 7a44b534..00000000 --- a/locale/ca-es/weekly.conditions.seq.start.dialog +++ /dev/null @@ -1 +0,0 @@ -serà {condition} diff --git a/locale/ca-es/weekly.conditions.some.days.dialog b/locale/ca-es/weekly.conditions.some.days.dialog deleted file mode 100644 index e2e64ba8..00000000 --- a/locale/ca-es/weekly.conditions.some.days.dialog +++ /dev/null @@ -1 +0,0 @@ -serà {condition} alguns dies. diff --git a/locale/ca-es/weekly.temp.range.dialog b/locale/ca-es/weekly.temperature.dialog similarity index 100% rename from locale/ca-es/weekly.temp.range.dialog rename to locale/ca-es/weekly.temperature.dialog diff --git a/locale/ca-es/what.is.multi.day.forecast.intent b/locale/ca-es/what.is.multi.day.forecast.intent deleted file mode 100644 index 1a212a3b..00000000 --- a/locale/ca-es/what.is.multi.day.forecast.intent +++ /dev/null @@ -1,4 +0,0 @@ -temps|clima (en|sobre|per) els següents {num} dies -com és el temps|clima (a|sobre|per) els pròxims {num} dies -quin serà el temps (a|sobre|per) els següents|pròxims {num} dies -com serà el temps|clima (a|sobre|per) als següents {num} dies diff --git a/locale/ca-es/whats.weather.like.intent b/locale/ca-es/whats.weather.like.intent deleted file mode 100644 index 2de5ea39..00000000 --- a/locale/ca-es/whats.weather.like.intent +++ /dev/null @@ -1,5 +0,0 @@ -pronòstic -oratge|el temps|meteo -quin temps fa (avui|) -quin temps fa fora -previsió meteorològica|pronòstic del temps diff --git a/locale/da-dk/ClearAlternatives.voc b/locale/da-dk/ClearAlternatives.voc deleted file mode 100644 index 7cbe3791..00000000 --- a/locale/da-dk/ClearAlternatives.voc +++ /dev/null @@ -1,3 +0,0 @@ -# Alternatives similar to clear weather -# (fog|mist|clouds|cloud) -(tåge|tåge|skyer|Sky) diff --git a/locale/da-dk/CloudsAlternatives.voc b/locale/da-dk/CloudsAlternatives.voc deleted file mode 100644 index 71cede88..00000000 --- a/locale/da-dk/CloudsAlternatives.voc +++ /dev/null @@ -1,3 +0,0 @@ -# Alternatives similar to clody weather -# (clear|mist|fog|rain| light rain) -(klar|tåge|tåge|regn| let regn) diff --git a/locale/da-dk/FogAlternatives.voc b/locale/da-dk/FogAlternatives.voc deleted file mode 100644 index 4a70db06..00000000 --- a/locale/da-dk/FogAlternatives.voc +++ /dev/null @@ -1,3 +0,0 @@ -# Alternatives to foggy weather -# (clear|clouds|cloud|partially cloudy) -(klar|skyer|Sky|delvis skyet) diff --git a/locale/da-dk/RainAlternatives.voc b/locale/da-dk/RainAlternatives.voc deleted file mode 100644 index 1ee1452a..00000000 --- a/locale/da-dk/RainAlternatives.voc +++ /dev/null @@ -1,3 +0,0 @@ -# Alternatives similar to rain -# (snow|light snow|sleet|fog|mist) -(sne|let sne|slud|tåge|tåge) diff --git a/locale/da-dk/SnowAlternatives.voc b/locale/da-dk/SnowAlternatives.voc deleted file mode 100644 index de5dee50..00000000 --- a/locale/da-dk/SnowAlternatives.voc +++ /dev/null @@ -1,3 +0,0 @@ -# Conditions similar to snow -# (rain|light rain) -(regn|let regn) diff --git a/locale/da-dk/and.dialog b/locale/da-dk/and.dialog new file mode 100644 index 00000000..49555825 --- /dev/null +++ b/locale/da-dk/and.dialog @@ -0,0 +1,2 @@ +# , and +, og diff --git a/locale/da-dk/clear.future.dialog b/locale/da-dk/clear.future.dialog deleted file mode 100644 index 69e97e40..00000000 --- a/locale/da-dk/clear.future.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# a clear sky -en klar himmel diff --git a/locale/da-dk/condition.category.value b/locale/da-dk/condition.category.value deleted file mode 100644 index aae8055f..00000000 --- a/locale/da-dk/condition.category.value +++ /dev/null @@ -1,30 +0,0 @@ -# Clouds,cloudy -Skyer,overskyet -# Clear,a clear sky -Klar,en klar himmel -# Thunderstorm,storming -Tordenvejr,stormen -# Drizzle,drizzling -støvregn,støvregn -# Rain,raining -Regn,regner -# Snow,snowing -Sne,sner -# Mist,misty -Tåge,tåget -# Smoke,smokey -Røg,smokey -# Haze,hazey -Dis,Hazey -# Dust,dusty -Støv,støvet -# Fog,foggy -Tåge,tåget -# Sand,sandy -Sand,sandet -# Ash,cloudy with possible volcanic ash -Aske,overskyet med mulig vulkansk aske -# Squall,storming -Squall,stormen -# Tornado,storming with a possible tornado -Tornado,storme med en mulig tornado diff --git a/locale/da-dk/current.clear.alternative.local.dialog b/locale/da-dk/current.clear.alternative.local.dialog deleted file mode 100644 index 44c7018f..00000000 --- a/locale/da-dk/current.clear.alternative.local.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to clear skies will occur -# No, the forecast calls for {condition} today -Ingen, prognosen kræver {condition} i dag -# It looks like there'll be {condition} today -Det ser ud som der vil være {condition} i dag -# Chances are it's going to be {condition} today -Det er chancerne for, at det bliver {condition} i dag diff --git a/locale/da-dk/current.clear.alternative.location.dialog b/locale/da-dk/current.clear.alternative.location.dialog deleted file mode 100644 index a54a7b64..00000000 --- a/locale/da-dk/current.clear.alternative.location.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to clear skies will occur -# No, the forecast calls for {condition} in {location} -Ingen, prognosen kræver {condition} i {location} -# It looks like there will be {condition} in {location} -Det ser ud som der vil være {condition} i {location} -# Chances are it's going to be {condition} in {location} -Det er chancerne for, at det bliver {condition} i {location} diff --git a/locale/da-dk/current.clear.not.expected.location.dialog b/locale/da-dk/current.clear.not.expected.location.dialog deleted file mode 100644 index 7551d4b6..00000000 --- a/locale/da-dk/current.clear.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's clear but it's not -# Sorry, it seems like it's going to be {condition} -Undskyld, det ser ud til, at det bliver {condition} -# It's not likely to be a clear sky -Det er sandsynligt, at det ikke er en klar himmel diff --git a/locale/da-dk/current.clouds.alternative.local.dialog b/locale/da-dk/current.clouds.alternative.local.dialog deleted file mode 100644 index e60df09a..00000000 --- a/locale/da-dk/current.clouds.alternative.local.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to cloudy skies will occur -# No, the forecast calls for {condition} today -Ingen, prognosen kræver {condition} i dag -# It should not be cloudy, it looks like there'll be {condition} today -Det skal ikke være overskyet, det ser ud som der vil være {condition} i dag -# Doesn't seem so, chances are it's going to be {condition} today -Ser ikke ud til, chancerne er, at det bliver {condition} i dag diff --git a/locale/da-dk/current.clouds.alternative.location.dialog b/locale/da-dk/current.clouds.alternative.location.dialog deleted file mode 100644 index 8ebe2257..00000000 --- a/locale/da-dk/current.clouds.alternative.location.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to clear skies will occur -# No, the forecast calls for {condition} -Ingen, prognosen kræver {condition} -# It should not be cloudy, it looks like there'll be {condition} -Det skal ikke være overskyet, det ser ud som der vil være {condition} -# Doesn't seem so, chances are it's going to be {condition} -Ser ikke ud til, chancerne er, at det bliver {condition} diff --git a/locale/da-dk/current.clouds.not.expected.local.dialog b/locale/da-dk/current.clouds.not.expected.local.dialog deleted file mode 100644 index ddd76675..00000000 --- a/locale/da-dk/current.clouds.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's raining but no cloud or alternative is forcasted -# No clouds are predicted for today -Der forudsiges ingen skyer i dag -# It should not be cloudy today -Det skulle ikke være overskyet i dag diff --git a/locale/da-dk/current.clouds.not.expected.location.dialog b/locale/da-dk/current.clouds.not.expected.location.dialog deleted file mode 100644 index 220a4b78..00000000 --- a/locale/da-dk/current.clouds.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's cloudy but it's not -# It doesn't seem to be cloudy today -Det ser ikke ud til at være overskyet i dag -# It should not be cloudy -Det skal ikke være overskyet diff --git a/locale/da-dk/current.fog.alternative.local.dialog b/locale/da-dk/current.fog.alternative.local.dialog deleted file mode 100644 index 8b2ae764..00000000 --- a/locale/da-dk/current.fog.alternative.local.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to fog will occur -# No, the forecast calls for {condition} today -Ingen, prognosen kræver {condition} i dag -# It looks like there'll be {condition} today -Det ser ud som der vil være {condition} i dag -# Chances are it's going to be {condition} today -Det er chancerne for, at det bliver {condition} i dag diff --git a/locale/da-dk/current.fog.alternative.location.dialog b/locale/da-dk/current.fog.alternative.location.dialog deleted file mode 100644 index fe92b46c..00000000 --- a/locale/da-dk/current.fog.alternative.location.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to fog will occur at a location -# No, the forecast calls for {condition} in {location} -Ingen, prognosen kræver {condition} i {location} -# It looks like there'll be {condition} in {location} -Det ser ud som der vil være {condition} i {location} -# Chances are it's going to be {condition} in {location} -Det er chancerne for, at det bliver {condition} i {location} diff --git a/locale/da-dk/current.fog.not.expected.local.dialog b/locale/da-dk/current.fog.not.expected.local.dialog deleted file mode 100644 index bfefe629..00000000 --- a/locale/da-dk/current.fog.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -# Seems like the visibility will be good today -Synes, at synligheden vil være god i dag -# No fog is predicted for today -Ingen tåge er forudsagt for i dag diff --git a/locale/da-dk/current.fog.not.expected.location.dialog b/locale/da-dk/current.fog.not.expected.location.dialog deleted file mode 100644 index 9ff5291c..00000000 --- a/locale/da-dk/current.fog.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -# Seems like the visibility will be good in {location} -Synes, at synligheden vil være god i {location} -# No fog is predicted for {location} today -Ingen tåge er forudsagt for {location} i dag diff --git a/locale/da-dk/current.rain.alternative.local.dialog b/locale/da-dk/current.rain.alternative.local.dialog deleted file mode 100644 index 4cb41d30..00000000 --- a/locale/da-dk/current.rain.alternative.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to rain will occur (like snow or fog) -# No, but today the forecast calls for {condition} -Ingen, men i dag kræver prognosen {condition} -# There is no rain predicted for today but it looks like there'll be {condition} -Der er ikke forventet regn for i dag, men det ser ud til, at der vil være {condition} diff --git a/locale/da-dk/current.rain.alternative.location.dialog b/locale/da-dk/current.rain.alternative.location.dialog deleted file mode 100644 index 0a2470c7..00000000 --- a/locale/da-dk/current.rain.alternative.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to rain will occur (like snow or fog) -# No, but the forecast calls for {condition} in {location} -Ingen, men prognosen kræver {condition} i {location} -# There is no rain predicted for today in {location}, but it looks like there'll be {condition} -Der er ikke forventet regn for i dag i {location}, men det ser ud som der vil være {condition} diff --git a/locale/da-dk/current.rain.not.expected.local.dialog b/locale/da-dk/current.rain.not.expected.local.dialog deleted file mode 100644 index b4b22432..00000000 --- a/locale/da-dk/current.rain.not.expected.local.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -# No rain is predicted today -Der regnes ikke med regn i dag -# It should not rain today -Det skulle ikke regne i dag -# There's no need for an umbrella today -Der er ikke behov for en paraply i dag diff --git a/locale/da-dk/current.rain.not.expected.location.dialog b/locale/da-dk/current.rain.not.expected.location.dialog deleted file mode 100644 index 908b97df..00000000 --- a/locale/da-dk/current.rain.not.expected.location.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -# No rain is predicted for {location} -Der regnes ikke med regn {location} -# It should not be raining in {location} -Det bør ikke regne ind {location} -# There's no need for an umbrella in {location} -Der er ikke behov for en paraply ind {location} diff --git a/locale/da-dk/current.snow.alternative.local.dialog b/locale/da-dk/current.snow.alternative.local.dialog deleted file mode 100644 index 0514b262..00000000 --- a/locale/da-dk/current.snow.alternative.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to snowing will occur -# No, but today the forecast calls for {condition} -Ingen, men i dag kræver prognosen {condition} -# There is no snow predicted for today but the chances are that it'll be {condition} -Der er ikke forudsagt sne i dag, men chancerne er for, at det bliver {condition} diff --git a/locale/da-dk/current.snow.alternative.location.dialog b/locale/da-dk/current.snow.alternative.location.dialog deleted file mode 100644 index 6921771c..00000000 --- a/locale/da-dk/current.snow.alternative.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to snowing will occur -# No, but the forecast calls for {condition} in {location} -Ingen, men prognosen kræver {condition} i {location} -# There is no snow predicted for today but the chances are that it'll be {condition} in {location} -Der er ikke forudsagt sne i dag, men chancerne er for, at det bliver {condition} i {location} diff --git a/locale/da-dk/current.snow.not.expected.local.dialog b/locale/da-dk/current.snow.not.expected.local.dialog deleted file mode 100644 index dc06e23a..00000000 --- a/locale/da-dk/current.snow.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forecasted -# No snow is predicted today -Der forudsiges ingen sne i dag -# It should not snow today -Det skulle ikke sne i dag diff --git a/locale/da-dk/current.snow.not.expected.location.dialog b/locale/da-dk/current.snow.not.expected.location.dialog deleted file mode 100644 index db87db81..00000000 --- a/locale/da-dk/current.snow.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -# No snow is predicted for {location} -Der er ikke forudsagt nogen sne {location} -# It will not snow in {location} -Det sneer ikke ind {location} diff --git a/locale/da-dk/current.thunderstorm.alternative.local.dialog b/locale/da-dk/current.thunderstorm.alternative.local.dialog deleted file mode 100644 index b3f7449d..00000000 --- a/locale/da-dk/current.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to a storm will occur (like snow or fog) -# No, but today the forecast calls for {condition} -Ingen, men i dag kræver prognosen {condition} -# There is no storm predicted for today but it looks like there'll be {condition} -Der er ingen storm forudsagt for i dag, men det ser ud til, at der vil være {condition} diff --git a/locale/da-dk/current.thunderstorm.alternative.location.dialog b/locale/da-dk/current.thunderstorm.alternative.location.dialog deleted file mode 100644 index c7db4aa3..00000000 --- a/locale/da-dk/current.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to storm will occur (like snow or fog) -# No, but the forecast calls for {condition} in {location} -Ingen, men prognosen kræver {condition} i {location} -# There is no storm predicted for today in {location}, but it looks like there'll be {condition} -Der er ingen storm forudsagt for i dag i {location}, men det ser ud som der vil være {condition} diff --git a/locale/da-dk/current.thunderstorm.not.expected.local.dialog b/locale/da-dk/current.thunderstorm.not.expected.local.dialog deleted file mode 100644 index a7aae65d..00000000 --- a/locale/da-dk/current.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,11 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -# No storm is predicted today -Ingen storm forudsiges i dag -# It should not storm today -Det skulle ikke storme i dag -# There should not be a storm today -Der skulle ikke være storm i dag -# Today it is unlikely to storm -I dag er det usandsynligt at storme -# A storm is not likely today -En storm er sandsynligvis ikke i dag diff --git a/locale/da-dk/current.thunderstorm.not.expected.location.dialog b/locale/da-dk/current.thunderstorm.not.expected.location.dialog deleted file mode 100644 index cc724bbf..00000000 --- a/locale/da-dk/current.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# When user asks if it's storming but no storm or alternative is forcasted -# No storm is predicted for {location} -Ingen storm forudsiges for {location} -# There should not be a storm in {location} -Der skulle ikke være en storm ind {location} -# It should not storm in {location} -Det bør ikke storme ind {location} diff --git a/locale/da-dk/daily.clear.alternative.local.dialog b/locale/da-dk/daily.clear.alternative.local.dialog deleted file mode 100644 index 44d3e0c0..00000000 --- a/locale/da-dk/daily.clear.alternative.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to clear skies will occur -# No, the forecast {day} calls for {condition} -Ingen, prognosen {day} kræver {condition} -# {day}, it looks like there'll be {condition} -{day}, det ser ud som der vil være {condition} diff --git a/locale/da-dk/daily.clear.alternative.location.dialog b/locale/da-dk/daily.clear.alternative.location.dialog deleted file mode 100644 index 5bbf6742..00000000 --- a/locale/da-dk/daily.clear.alternative.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to rain will occur -# No, but the forecast {day} calls for {condition} in {location} -Ingen, men prognosen {day} kræver {condition} i {location} -# {day}, there is no rain predicted {day} for {location} but it looks like there'll be {condition} -{day}, der er ingen regn {day} til {location} men det ser ud som der vil være {condition} diff --git a/locale/da-dk/daily.clear.not.expected.local.dialog b/locale/da-dk/daily.clear.not.expected.local.dialog deleted file mode 100644 index 581bf2e1..00000000 --- a/locale/da-dk/daily.clear.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's clear but an alternative is forcasted -# Sorry, the forecast doesn't predict clear conditions {day} -Undskyld, prognosen forudsiger ikke klare forhold {day} -# {day}, it is not likely to be clear -{day}, det er sandsynligvis ikke klart diff --git a/locale/da-dk/daily.clear.not.expected.location.dialog b/locale/da-dk/daily.clear.not.expected.location.dialog deleted file mode 100644 index ad78faaf..00000000 --- a/locale/da-dk/daily.clear.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's clear but an alternative is forcasted -# Sorry, the forecast {day} doesn't predict clear conditions for {location} -Undskyld, prognosen {day} forudsiger ikke klare betingelser for {location} -# {day}, it is not likely to be clear weather in {location} -{day}, det er sandsynligvis ikke klart vejr i {location} diff --git a/locale/da-dk/daily.clouds.alternative.local.dialog b/locale/da-dk/daily.clouds.alternative.local.dialog deleted file mode 100644 index 10b3a56e..00000000 --- a/locale/da-dk/daily.clouds.alternative.local.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to clear skies will occur -# No, the forecast {day} calls for {condition} -Ingen, prognosen {day} kræver {condition} -# It should not be cloudy, it looks like there'll be {condition} {day} -Det skal ikke være overskyet, det ser ud som der vil være {condition} {day} -# Doesn't seem so, chances are it's going to be {condition} {day} -Ser ikke ud til, chancerne er, at det bliver {condition} {day} diff --git a/locale/da-dk/daily.clouds.alternative.location.dialog b/locale/da-dk/daily.clouds.alternative.location.dialog deleted file mode 100644 index f6262f6c..00000000 --- a/locale/da-dk/daily.clouds.alternative.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to clear skies will occur -# No, the forecast {day} calls for {condition} in {location} -# It should not be cloudy in {location} {day}, it looks like there'll be {condition} -# Doesn't seem so, chances are {location} will have {condition} {day} -Ser ikke ud til, chancerne er {location} vil have {condition} {day} diff --git a/locale/da-dk/daily.clouds.not.expected.local.dialog b/locale/da-dk/daily.clouds.not.expected.local.dialog deleted file mode 100644 index 26bec585..00000000 --- a/locale/da-dk/daily.clouds.not.expected.local.dialog +++ /dev/null @@ -1,9 +0,0 @@ -# When user asks if it's cloudy but it's not -# It doesn't seem like it's going to be cloudy {day} -Det ser ikke ud til, at det bliver overskyet {day} -# Clear skies are forecast {day} -Klar himmel er forventet {day} -# Expect clear skies {day} -Forvent klare himmel {day} -# It should not be cloudy {day} -Det skal ikke være overskyet {day} diff --git a/locale/da-dk/daily.clouds.not.expected.location.dialog b/locale/da-dk/daily.clouds.not.expected.location.dialog deleted file mode 100644 index 1f3985c9..00000000 --- a/locale/da-dk/daily.clouds.not.expected.location.dialog +++ /dev/null @@ -1,9 +0,0 @@ -# When user asks if it's cloudy but it's not -# It doesn't seem like it's going to be cloudy in {location} {day} -Det ser ikke ud til, at det bliver overskyet i {location} {day} -# Clear skies are forecast in {location} {day} -Klar himmel er forventet i {location} {day} -# Expect clear skies in {location} {day} -Forvent klare himmel ind {location} {day} -# It should not be cloudy in {location} {day} -Det skal ikke være overskyet i {location} {day} diff --git a/locale/da-dk/daily.fog.alternative.local.dialog b/locale/da-dk/daily.fog.alternative.local.dialog deleted file mode 100644 index 8c8f8621..00000000 --- a/locale/da-dk/daily.fog.alternative.local.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to fog will occur -# No, the forecast {day} calls for {condition} -Ingen, prognosen {day} kræver {condition} -# It looks like there'll be {condition} {day} -Det ser ud som der vil være {condition} {day} -# Chances are it's going to be {condition} {day} -Det er chancerne for, at det bliver {condition} {day} diff --git a/locale/da-dk/daily.fog.alternative.location.dialog b/locale/da-dk/daily.fog.alternative.location.dialog deleted file mode 100644 index e980ea18..00000000 --- a/locale/da-dk/daily.fog.alternative.location.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# Informing that an alternative to fog will occur -# No, the forecast {day} for {location} calls for {condition} -Ingen, prognosen {day} til {location} kræver {condition} -# It looks like there'll be {condition} in {location} {day} -Det ser ud som der vil være {condition} i {location} {day} -# Chances are it's going to be {condition} in {location} {day} -Det er chancerne for, at det bliver {condition} i {location} {day} diff --git a/locale/da-dk/daily.fog.not.expected.local.dialog b/locale/da-dk/daily.fog.not.expected.local.dialog deleted file mode 100644 index d533515b..00000000 --- a/locale/da-dk/daily.fog.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -# {day} the visibility should be good -{day} synligheden skal være god -# No fog is predicted {day} -Ingen tåge er forudsagt {day} diff --git a/locale/da-dk/daily.fog.not.expected.location.dialog b/locale/da-dk/daily.fog.not.expected.location.dialog deleted file mode 100644 index 68a970d3..00000000 --- a/locale/da-dk/daily.fog.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -# {day} the visibility should be good in {location} -{day} synligheden skal være god i {location} -# No fog is predicted {day} in {location} -Ingen tåge er forudsagt {day} i {location} diff --git a/locale/da-dk/daily.rain.alternative.local.dialog b/locale/da-dk/daily.rain.alternative.local.dialog deleted file mode 100644 index fd2b5331..00000000 --- a/locale/da-dk/daily.rain.alternative.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to rain will occur -# No, but the forecast {day} calls for {condition} -Ingen, men prognosen {day} kræver {condition} -# {day}, there is no rain predicted but it looks like there'll be {condition} -{day}, der er ikke forudsagt regn, men det ser ud til, at der vil være {condition} diff --git a/locale/da-dk/daily.rain.alternative.location.dialog b/locale/da-dk/daily.rain.alternative.location.dialog deleted file mode 100644 index 9a682448..00000000 --- a/locale/da-dk/daily.rain.alternative.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to rain will occur -# No, but the forecast calls for {condition} in {location} {day} -Ingen, men prognosen kræver {condition} i {location} {day} -# {day}, there is no rain predicted for {location} but it looks like there'll be {condition} -{day}, der er ingen regn forventet for {location} men det ser ud som der vil være {condition} diff --git a/locale/da-dk/daily.rain.not.expected.local.dialog b/locale/da-dk/daily.rain.not.expected.local.dialog deleted file mode 100644 index fa8429b5..00000000 --- a/locale/da-dk/daily.rain.not.expected.local.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -# No rain is predicted {day} -Der forventes ingen regn {day} -# It should not rain {day} -Det bør ikke regne {day} -# You won't need an umbrella {day} -Du behøver ikke en paraply {day} diff --git a/locale/da-dk/daily.rain.not.expected.location.dialog b/locale/da-dk/daily.rain.not.expected.location.dialog deleted file mode 100644 index d54e4d29..00000000 --- a/locale/da-dk/daily.rain.not.expected.location.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -# No rain is predicted for {location} {day} -Der regnes ikke med regn {location} {day} -# {day}, it should not rain in {location} -{day}, det skulle ikke regne ind {location} -# There's no need for an umbrella in {location} {day} -Der er ikke behov for en paraply ind {location} {day} diff --git a/locale/da-dk/daily.snow.alternative.location.dialog b/locale/da-dk/daily.snow.alternative.location.dialog deleted file mode 100644 index 66421e2e..00000000 --- a/locale/da-dk/daily.snow.alternative.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to snowing will occur -# No, but the forecast calls for {condition} {day} -Ingen, men prognosen kræver {condition} {day} -# {day} there is no snow predicted but the chances are that it'll be {condition} -{day} der er ikke forudsagt sne, men chancerne er for, at det bliver {condition} diff --git a/locale/da-dk/daily.snow.not.expected.local.dialog b/locale/da-dk/daily.snow.not.expected.local.dialog deleted file mode 100644 index dafa500b..00000000 --- a/locale/da-dk/daily.snow.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -# No snow is predicted {day} -Der forudsiges ingen sne {day} -# It will not snow {day} -Det sneer ikke {day} diff --git a/locale/da-dk/daily.snow.not.expected.location.dialog b/locale/da-dk/daily.snow.not.expected.location.dialog deleted file mode 100644 index d313ce2a..00000000 --- a/locale/da-dk/daily.snow.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -# No snow is predicted in {location} {day} -Der forudsiges ingen sne i {location} {day} -# It should not snow in {location} {day} -Det skal ikke sne ind {location} {day} diff --git a/locale/da-dk/daily.thunderstorm.alternative.local.dialog b/locale/da-dk/daily.thunderstorm.alternative.local.dialog deleted file mode 100644 index 661a639e..00000000 --- a/locale/da-dk/daily.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to rain will occur -# No, but the forecast {day} calls for {condition} -Ingen, men prognosen {day} kræver {condition} -# {day}, there is no storm predicted but it looks like there'll be {condition} -{day}, der er ingen storm forudsagt, men det ser ud som der vil være {condition} diff --git a/locale/da-dk/daily.thunderstorm.alternative.location.dialog b/locale/da-dk/daily.thunderstorm.alternative.location.dialog deleted file mode 100644 index b0f90b95..00000000 --- a/locale/da-dk/daily.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Informing that an alternative to storm will occur -# No, but the forecast calls for {condition} in {location} {day} -Ingen, men prognosen kræver {condition} i {location} {day} -# {day}, there is no storm predicted for {location} but it looks like there'll be {condition} -{day}, der er ingen storm forudsagt for {location} men det ser ud som der vil være {condition} diff --git a/locale/da-dk/daily.thunderstorm.not.expected.local.dialog b/locale/da-dk/daily.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 8ee43356..00000000 --- a/locale/da-dk/daily.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -# No storm is predicted {day} -Ingen storm forudsiges {day} -# {day}, it should not storm -{day}, det skal ikke storme -# It should not storm {day} -Det bør ikke storme {day} diff --git a/locale/da-dk/daily.thunderstorm.not.exptected.location.dialog b/locale/da-dk/daily.thunderstorm.not.exptected.location.dialog deleted file mode 100644 index fbe23fb7..00000000 --- a/locale/da-dk/daily.thunderstorm.not.exptected.location.dialog +++ /dev/null @@ -1,7 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -# No storm is predicted for {location} {day} -Ingen storm forudsiges for {location} {day} -# {day}, it should not storm in {location} -{day}, det skal ikke storme ind {location} -# It is unlikely to storm {day} in {location} -Det er usandsynligt at storme {day} i {location} diff --git a/locale/da-dk/do not know.dialog b/locale/da-dk/do not know.dialog deleted file mode 100644 index a4696f42..00000000 --- a/locale/da-dk/do not know.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# I'm afraid I don't know that -Jeg er bange for, at jeg ikke ved det -# I don't have that information -Jeg har ikke de oplysninger -# - diff --git a/locale/da-dk/from.day.dialog b/locale/da-dk/from.day.dialog deleted file mode 100644 index 4d19defe..00000000 --- a/locale/da-dk/from.day.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# From {day} -Fra {day} diff --git a/locale/da-dk/heavy.dialog b/locale/da-dk/heavy.dialog deleted file mode 100644 index db7e28b6..00000000 --- a/locale/da-dk/heavy.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# heavy -tung diff --git a/locale/da-dk/light.dialog b/locale/da-dk/light.dialog deleted file mode 100644 index 78c76c1c..00000000 --- a/locale/da-dk/light.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# light -lys diff --git a/locale/da-dk/on.date.dialog b/locale/da-dk/on.date.dialog deleted file mode 100644 index 9dadba92..00000000 --- a/locale/da-dk/on.date.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# on -på diff --git a/locale/da-dk/on.dialog b/locale/da-dk/on.dialog deleted file mode 100644 index 752baeef..00000000 --- a/locale/da-dk/on.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# on -på diff --git a/locale/da-dk/simple.temperature.intent b/locale/da-dk/simple.temperature.intent deleted file mode 100644 index bad00a0e..00000000 --- a/locale/da-dk/simple.temperature.intent +++ /dev/null @@ -1,2 +0,0 @@ -# temperature -temperatur diff --git a/locale/da-dk/sky is clear.future.dialog b/locale/da-dk/sky is clear.future.dialog deleted file mode 100644 index 69e97e40..00000000 --- a/locale/da-dk/sky is clear.future.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# a clear sky -en klar himmel diff --git a/locale/da-dk/sunrise.dialog b/locale/da-dk/sunrise.dialog deleted file mode 100644 index 427766df..00000000 --- a/locale/da-dk/sunrise.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# the sun rose at {time} today -solen steg kl {time} i dag -# sunrise was at {time} today -solopgang var kl {time} i dag diff --git a/locale/da-dk/sunset.dialog b/locale/da-dk/sunset.dialog deleted file mode 100644 index 63494e47..00000000 --- a/locale/da-dk/sunset.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# the sun will set at {time} today -solen går ned kl {time} i dag -# the sun will go down at {time} today -solen går ned kl {time} i dag -# sunset will be at {time} today -solnedgang er kl {time} i dag diff --git a/locale/da-dk/storm.dialog b/locale/da-dk/thunderstorm.dialog similarity index 100% rename from locale/da-dk/storm.dialog rename to locale/da-dk/thunderstorm.dialog diff --git a/locale/da-dk/weekly.condition.on.day.dialog b/locale/da-dk/weekly.condition.on.day.dialog deleted file mode 100644 index dd061ae5..00000000 --- a/locale/da-dk/weekly.condition.on.day.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# {day} will be {condition}, -{day} vil være {condition}, diff --git a/locale/da-dk/weekly.conditions.mostly.one.dialog b/locale/da-dk/weekly.conditions.mostly.one.dialog deleted file mode 100644 index 5d8032c6..00000000 --- a/locale/da-dk/weekly.conditions.mostly.one.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# it will be mostly {condition}. -det vil være det meste {condition}. diff --git a/locale/da-dk/weekly.conditions.seq.extra.dialog b/locale/da-dk/weekly.conditions.seq.extra.dialog deleted file mode 100644 index afe2e149..00000000 --- a/locale/da-dk/weekly.conditions.seq.extra.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# it looks like there will also be -det ser ud som der også vil være -# it will also be -det vil det også være diff --git a/locale/da-dk/weekly.conditions.seq.period.dialog b/locale/da-dk/weekly.conditions.seq.period.dialog deleted file mode 100644 index 953bd7ef..00000000 --- a/locale/da-dk/weekly.conditions.seq.period.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# from {from} to {to} -fra {from} til {to} diff --git a/locale/da-dk/weekly.conditions.seq.start.dialog b/locale/da-dk/weekly.conditions.seq.start.dialog deleted file mode 100644 index dc3c8dc3..00000000 --- a/locale/da-dk/weekly.conditions.seq.start.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# it will be {condition} -det vil være {condition}  diff --git a/locale/da-dk/weekly.conditions.some.days.dialog b/locale/da-dk/weekly.conditions.some.days.dialog deleted file mode 100644 index 9f87b348..00000000 --- a/locale/da-dk/weekly.conditions.some.days.dialog +++ /dev/null @@ -1,2 +0,0 @@ -# it will be {condition} some days. -det vil være {condition} nogle dage. diff --git a/locale/da-dk/weekly.temp.range.dialog b/locale/da-dk/weekly.temperature.dialog similarity index 100% rename from locale/da-dk/weekly.temp.range.dialog rename to locale/da-dk/weekly.temperature.dialog diff --git a/locale/da-dk/what.is.multi.day.forecast.intent b/locale/da-dk/what.is.multi.day.forecast.intent deleted file mode 100644 index 7e518e38..00000000 --- a/locale/da-dk/what.is.multi.day.forecast.intent +++ /dev/null @@ -1,8 +0,0 @@ -# weather (in|over|for) the next {num} days -vejr (i|over|til) den næste {num} dage -# what is the weather (like|) (in|over|for) the next {num} days -hvordan er vejret (synes godt om|) (i|over|til) den næste {num} dage -# what will the weather be (like|) (in|over|for) the next {num} days -hvad bliver vejret (synes godt om|) (i|over|til) den næste {num} dage -# what is the weather (going to |gonna |)be (like |)(in|over|for) the next {num} days -hvordan er vejret (går til |skal nok |)være (synes godt om |)(i|over|til) den næste {num} dage diff --git a/locale/de-de/ClearAlternatives.voc b/locale/de-de/ClearAlternatives.voc deleted file mode 100644 index 7f2b86b8..00000000 --- a/locale/de-de/ClearAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Ähnliche Alternativen zu schönem Wetter -(Nebel|Wolken|Wolke) diff --git a/locale/de-de/CloudsAlternatives.voc b/locale/de-de/CloudsAlternatives.voc deleted file mode 100644 index 2ba67c34..00000000 --- a/locale/de-de/CloudsAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativen ähnlich zu bewölktem Wetter -(klar|Nebel|Nebel|Regen|Nieselregen) diff --git a/locale/de-de/FogAlternatives.voc b/locale/de-de/FogAlternatives.voc deleted file mode 100644 index bdcdd64f..00000000 --- a/locale/de-de/FogAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativen zu nebligem Wetter -(klar|Wolken|Wolke|teilweise bewölkt) diff --git a/locale/de-de/RainAlternatives.voc b/locale/de-de/RainAlternatives.voc deleted file mode 100644 index df30d577..00000000 --- a/locale/de-de/RainAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -Alternativen vergleichbar mit Regen -(Schnee|leichter Schneefall|Schneeregen|Nebel|Nebel) diff --git a/locale/de-de/SnowAlternatives.voc b/locale/de-de/SnowAlternatives.voc deleted file mode 100644 index 38e0b6aa..00000000 --- a/locale/de-de/SnowAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Bedingungen ähnlich wie Schneefall -(Regen|leichter Regen) diff --git a/locale/de-de/ThunderstormAlternatives.voc b/locale/de-de/ThunderstormAlternatives.voc deleted file mode 100644 index 8abfddfc..00000000 --- a/locale/de-de/ThunderstormAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativen ähnlich zu bewölktem Wetter -(Nieselregen | Regen | leichter Regen | Schnee | leichter Schnee | Schneeregen | Nebel | Nebel | Wolken | Wolke | teilweise bewölkt) diff --git a/locale/de-de/and.dialog b/locale/de-de/and.dialog new file mode 100644 index 00000000..c7d3bb55 --- /dev/null +++ b/locale/de-de/and.dialog @@ -0,0 +1 @@ +, und diff --git a/locale/de-de/clear.future.dialog b/locale/de-de/clear.future.dialog deleted file mode 100644 index 39e5a15b..00000000 --- a/locale/de-de/clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -Klarer Himmel diff --git a/locale/de-de/condition.category.value b/locale/de-de/condition.category.value deleted file mode 100644 index e8fb8d57..00000000 --- a/locale/de-de/condition.category.value +++ /dev/null @@ -1,15 +0,0 @@ -Wolken, bewölkt -Klar, klarer Himmel -Gewitter, Sturm -Nieselregen, Nieselregen -regnen|regnet -schneien|schneit -Nebel,neblig -Rauch,rauchig -Dunst,dunstig -Staub,staubig -Nebel,nebelig -Sand,sandig -Asche, trübe mit möglicher Vulkanasche -Böe, stürmend -Tornado,der mit einem möglichen Tornado stürmt diff --git a/locale/de-de/current.clear.alternative.local.dialog b/locale/de-de/current.clear.alternative.local.dialog deleted file mode 100644 index a02e2288..00000000 --- a/locale/de-de/current.clear.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informieren, dass es eine Alternative zum klaren Himmel gibt -Nein, die Prognose heute ist {condition} -Es sieht so aus, als gäbe es heute {condition} -Chancen stehen gut, dass es heute {condition} wird diff --git a/locale/de-de/current.clear.alternative.location.dialog b/locale/de-de/current.clear.alternative.location.dialog deleted file mode 100644 index 0f45a147..00000000 --- a/locale/de-de/current.clear.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informieren, dass es eine Alternative zum klaren Himmel gibt -Nein, aber die Prognose ist {condition} in {location} -Es sieht so aus, als wäre {condition} in {location} -Wahrscheinlich wird es {condition} in {location} sein diff --git a/locale/de-de/current.clear.not.expected.location.dialog b/locale/de-de/current.clear.not.expected.location.dialog deleted file mode 100644 index 9c262a51..00000000 --- a/locale/de-de/current.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es klar ist, aber nicht -Sorry, es sieht so aus, als würde es {condition} geben -Es wird wahrscheinlich keinen klaren Himmel geben diff --git a/locale/de-de/current.clouds.alternative.local.dialog b/locale/de-de/current.clouds.alternative.local.dialog deleted file mode 100644 index 23d0a4d2..00000000 --- a/locale/de-de/current.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Nein, die Prognose heute ist {condition} -# Es wird darauf hingewiesen, dass eine Alternative zum bewölkten Himmel auftreten wird -Es wird wahrscheinlich nicht bewölkt sein, es sieht so aus, als würde es {condition} geben -Scheint nicht so, es ist wahrscheinlich, dass es heute {condition} sein wird diff --git a/locale/de-de/current.clouds.alternative.location.dialog b/locale/de-de/current.clouds.alternative.location.dialog deleted file mode 100644 index 770265b0..00000000 --- a/locale/de-de/current.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informieren, dass es eine Alternative zum klaren Himmel gibt -Nein, die Prognose ist {condition} -Es wird wahrscheinlich nicht bewölkt sein, es sieht so aus, als würde es {condition} geben -Scheint nicht so; wahrscheinlich wird es {condition} diff --git a/locale/de-de/current.clouds.not.expected.local.dialog b/locale/de-de/current.clouds.not.expected.local.dialog deleted file mode 100644 index 0e918ca4..00000000 --- a/locale/de-de/current.clouds.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es regnet, aber keine Wolke oder Alternative vorhergesagt wird -Für heute ist kein Nebel vorhergesagt -Es sollte heute nicht bewölkt sein diff --git a/locale/de-de/current.clouds.not.expected.location.dialog b/locale/de-de/current.clouds.not.expected.location.dialog deleted file mode 100644 index 9c61f05f..00000000 --- a/locale/de-de/current.clouds.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es bewölkt ist, aber nicht -Es scheint heute nicht bewölkt zu sein -Es sollte nicht bewölkt sein diff --git a/locale/de-de/current.fog.alternative.local.dialog b/locale/de-de/current.fog.alternative.local.dialog deleted file mode 100644 index 6b69e3fe..00000000 --- a/locale/de-de/current.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informieren, dass eine Alternative zu Nebel auftritt -Nein, die Prognose heute ist {condition} -Es sieht so aus, als gäbe es heute {condition} -Chancen stehen gut, dass es heute {condition} wird diff --git a/locale/de-de/current.fog.alternative.location.dialog b/locale/de-de/current.fog.alternative.location.dialog deleted file mode 100644 index 3071cf63..00000000 --- a/locale/de-de/current.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Nein, aber die Prognose ist {condition} in {location} -Wahrscheinlich wird es {condition} in {location} sein -# Informieren, dass an einem Ort eine Alternative zum Nebel auftritt -Es sieht so aus, als wäre {condition} in {location} diff --git a/locale/de-de/current.fog.not.expected.local.dialog b/locale/de-de/current.fog.not.expected.local.dialog deleted file mode 100644 index f6a8878e..00000000 --- a/locale/de-de/current.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es nebelig ist, aber kein Schnee oder keine Alternative angezeigt wird -Die Sicht scheint heute gut zu sein -Für heute ist kein Nebel vorhergesagt diff --git a/locale/de-de/current.fog.not.expected.location.dialog b/locale/de-de/current.fog.not.expected.location.dialog deleted file mode 100644 index e2925588..00000000 --- a/locale/de-de/current.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es nebelig ist, aber kein Schnee oder keine Alternative angezeigt wird -Die Sicht scheint gut zu sein in {location} -Für {location} wird heute kein Nebel vorhergesagt diff --git a/locale/de-de/current.rain.alternative.local.dialog b/locale/de-de/current.rain.alternative.local.dialog deleted file mode 100644 index e02f96ed..00000000 --- a/locale/de-de/current.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass es eine Alternative zu Regen gibt (wie Schnee oder Nebel) -Nein, aber die Prognose ist {condition} -Es wird kein Regen für heute vorhergesagt, aber es sieht so aus, als würde es {condition} geben. diff --git a/locale/de-de/current.rain.alternative.location.dialog b/locale/de-de/current.rain.alternative.location.dialog deleted file mode 100644 index f011f726..00000000 --- a/locale/de-de/current.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass es eine Alternative zu Regen gibt (wie Schnee oder Nebel) -Nein, aber die Prognose ist {condition} in {location} -Es wird in {location} kein Regen vorhergesagt heute, aber es sieht so aus, als würde es {condition} geben. diff --git a/locale/de-de/current.rain.not.expected.local.dialog b/locale/de-de/current.rain.not.expected.local.dialog deleted file mode 100644 index 130edc97..00000000 --- a/locale/de-de/current.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Wenn der Benutzer fragt, ob es regnet, aber kein Regen oder eine Alternative angezeigt wird -Es wird heute kein Regen vorhergesagt -Es sollte heute nicht regnen -Es ist heute kein Regenschirm nötig diff --git a/locale/de-de/current.rain.not.expected.location.dialog b/locale/de-de/current.rain.not.expected.location.dialog deleted file mode 100644 index e5cf5958..00000000 --- a/locale/de-de/current.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Wenn der Benutzer fragt, ob es regnet, aber kein Regen oder eine Alternative angezeigt wird -Es wird kein Regen für {location} vorhergesagt -Es sollte nicht regnen in {location} -In {location} brauchst du keinen Regenschirm. diff --git a/locale/de-de/current.snow.alternative.local.dialog b/locale/de-de/current.snow.alternative.local.dialog deleted file mode 100644 index a8818ed7..00000000 --- a/locale/de-de/current.snow.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass eine Alternative zum Schneefall auftritt -Nein, aber die Prognose ist {condition} -Es ist kein Schnee für heute vorhergesagt, aber die Chancen stehen gut, dass es {condition} wird. diff --git a/locale/de-de/current.snow.alternative.location.dialog b/locale/de-de/current.snow.alternative.location.dialog deleted file mode 100644 index 90916ab7..00000000 --- a/locale/de-de/current.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass eine Alternative zum Schneefall auftritt -Nein, aber die Prognose ist {condition} in {location} -Es ist kein Schnee {location} vorhergesagt heute, aber die Chancen stehen gut, dass es {condition} wird. diff --git a/locale/de-de/current.snow.not.expected.local.dialog b/locale/de-de/current.snow.not.expected.local.dialog deleted file mode 100644 index 18fd8c87..00000000 --- a/locale/de-de/current.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es schneit, aber kein Schnee oder keine Alternative vorhergesagt wird -Es wird heute kein Schnee vorhergesagt -Es sollte nicht schneien heute diff --git a/locale/de-de/current.snow.not.expected.location.dialog b/locale/de-de/current.snow.not.expected.location.dialog deleted file mode 100644 index 32e17841..00000000 --- a/locale/de-de/current.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es schneit, aber kein Schnee oder eine Alternative ist -Es wird kein Schnee für {location} vorhergesagt -Es wird nicht schneien in {location} diff --git a/locale/de-de/current.thunderstorm.alternative.local.dialog b/locale/de-de/current.thunderstorm.alternative.local.dialog deleted file mode 100644 index a27813e9..00000000 --- a/locale/de-de/current.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Nein, aber die Prognose ist {condition} -# Informieren, dass es eine Alternative zu Regen gibt (wie Schnee oder Nebel) -Es wird kein Sturm für heute vorhergesagt, aber es sieht so aus, als würde es {condition} diff --git a/locale/de-de/current.thunderstorm.alternative.location.dialog b/locale/de-de/current.thunderstorm.alternative.location.dialog deleted file mode 100644 index 3ca8e4d8..00000000 --- a/locale/de-de/current.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Nein, aber die Prognose ist {condition} in {location} -# Informieren, dass es eine Alternative zu Regen gibt (wie Schnee oder Nebel) -Für heute ist in {location} kein Sturm vorhergesagt, aber es sieht so aus, als gäbe es {condition} diff --git a/locale/de-de/current.thunderstorm.not.expected.local.dialog b/locale/de-de/current.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 0fa4025b..00000000 --- a/locale/de-de/current.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# Wenn der Benutzer fragt, ob es regnet, aber kein Regen oder eine Alternative angezeigt wird -Es wird heute kein Sturm vorhergesagt -Es sollte nicht stürmen heute -Es sollte heute keinen Sturm geben -es ist unwahrscheinlich, dass es heute stürmt -Ein Sturm ist heute nicht wahrscheinlich diff --git a/locale/de-de/current.thunderstorm.not.expected.location.dialog b/locale/de-de/current.thunderstorm.not.expected.location.dialog deleted file mode 100644 index ac1605c0..00000000 --- a/locale/de-de/current.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Wenn der Benutzer fragt, ob es schneit, aber kein Schnee oder eine Alternative ist -Es wird kein Sturm für {location} vorhergesagt -Es wird nicht stürmisch in {location} -Es wird nicht stürmen in {location} diff --git a/locale/de-de/daily.clear.alternative.local.dialog b/locale/de-de/daily.clear.alternative.local.dialog deleted file mode 100644 index e66a019f..00000000 --- a/locale/de-de/daily.clear.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass es eine Alternative zum klaren Himmel gibt -Nein, die Prognose {day} ist {condition} -Es sieht so aus, als gäbe es {condition}{day} diff --git a/locale/de-de/daily.clear.alternative.location.dialog b/locale/de-de/daily.clear.alternative.location.dialog deleted file mode 100644 index 647a3bfb..00000000 --- a/locale/de-de/daily.clear.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass es eine Alternative zu Regen gibt -Nein, aber die Prognose für {day} ist {condition} in {location} -An {day} ist kein Regen in {location} vorhergesagt, aber es sieht so aus, als ob {day} {condition} kommt diff --git a/locale/de-de/daily.clear.not.expected.local.dialog b/locale/de-de/daily.clear.not.expected.local.dialog deleted file mode 100644 index 8b009f1d..00000000 --- a/locale/de-de/daily.clear.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es eindeutig ist, aber eine Alternative angezeigt wird -Entschuldigung, für {day} wird kein klares Wetter vorausgesagt -{day} wird es höchstwahrscheinlich nicht klar sein diff --git a/locale/de-de/daily.clear.not.expected.location.dialog b/locale/de-de/daily.clear.not.expected.location.dialog deleted file mode 100644 index 84baa570..00000000 --- a/locale/de-de/daily.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es eindeutig ist, aber eine Alternative angezeigt wird -Entschuldigung, die Vorhersage {day} sagt keine klaren Bedingungen in {location} voraus -{day} ist es wahrscheinlich nicht klares Wetter in {location} diff --git a/locale/de-de/daily.clouds.alternative.local.dialog b/locale/de-de/daily.clouds.alternative.local.dialog deleted file mode 100644 index c027f799..00000000 --- a/locale/de-de/daily.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informieren, dass es eine Alternative zum klaren Himmel gibt -Nein, die Prognose {day} ist {condition} -Es wird wahrscheinlich nicht bewölkt sein {day}, es sieht so aus, als würde es {condition} geben -Scheint nicht so; wahrscheinlich wird es {condition} {day} diff --git a/locale/de-de/daily.clouds.alternative.location.dialog b/locale/de-de/daily.clouds.alternative.location.dialog deleted file mode 100644 index 6a1f2adb..00000000 --- a/locale/de-de/daily.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informieren, dass es eine Alternative zum klaren Himmel gibt -# Nein, aber die {day} Prognose ist {condition} in {location} -# In {location} am {day} sollte es nicht bewölkt sein, es sieht so aus, als gäbe es {condition} -Scheint nicht so, die Wahrscheinlichkeit, dass {location} {condition} am {day} hat diff --git a/locale/de-de/daily.clouds.not.expected.local.dialog b/locale/de-de/daily.clouds.not.expected.local.dialog deleted file mode 100644 index 073fcbd6..00000000 --- a/locale/de-de/daily.clouds.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Wenn der Benutzer fragt, ob es bewölkt ist, aber nicht -Es scheint nicht so, als würde es {day} bewölkt sein -{day} wird Klarer Himmel vorhergesagt -Erwarte einen klaren Himmel {day} -Es sollte {day} nicht bewölkt sein diff --git a/locale/de-de/daily.clouds.not.expected.location.dialog b/locale/de-de/daily.clouds.not.expected.location.dialog deleted file mode 100644 index 61f336a5..00000000 --- a/locale/de-de/daily.clouds.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Wenn der Benutzer fragt, ob es bewölkt ist, aber nicht -Es scheint nicht so, als würde es {day} in {location} bewölkt sein -Klarer Himmel {day} in {location} wird vorhergesagt -Ich erwarte klaren Himmel {day} in {location} -Es wird in {location} {day} nicht schneien diff --git a/locale/de-de/daily.fog.alternative.local.dialog b/locale/de-de/daily.fog.alternative.local.dialog deleted file mode 100644 index 23092a22..00000000 --- a/locale/de-de/daily.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informieren, dass eine Alternative zu Nebel auftritt -Nein, die Prognose {day} ist {condition} -Es sieht so aus, als gäbe es {condition} {day} -Chancen stehen gut, dass es {condition} {day} wird diff --git a/locale/de-de/daily.fog.alternative.location.dialog b/locale/de-de/daily.fog.alternative.location.dialog deleted file mode 100644 index 5fc8a3bb..00000000 --- a/locale/de-de/daily.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informieren, dass eine Alternative zu Nebel auftritt -Nein, die Prognose für {day} in {location} ruft {condition} auf. -Es sieht so aus, als wäre {day} {condition} in {location} -Wahrscheinlich wird es {day} {condition} in {location} sein diff --git a/locale/de-de/daily.fog.not.expected.local.dialog b/locale/de-de/daily.fog.not.expected.local.dialog deleted file mode 100644 index d2f68a19..00000000 --- a/locale/de-de/daily.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es nebelig ist, aber kein Schnee oder keine Alternative angezeigt wird -{day} sollte es gute Sicht geben -{day} wird kein Nebel vorhergesagt diff --git a/locale/de-de/daily.fog.not.expected.location.dialog b/locale/de-de/daily.fog.not.expected.location.dialog deleted file mode 100644 index 1ec7f003..00000000 --- a/locale/de-de/daily.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es nebelig ist, aber kein Schnee oder keine Alternative angezeigt wird -{day} sollte die Sicht in {location} gut sein -Für {day} wird in {location} kein Nebel vorhergesagt diff --git a/locale/de-de/daily.rain.alternative.local.dialog b/locale/de-de/daily.rain.alternative.local.dialog deleted file mode 100644 index 589242db..00000000 --- a/locale/de-de/daily.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass es eine Alternative zu Regen gibt -Nein, aber die Prognose {day} ist {condition} -{day} ist kein Regen vorhergesagt, aber es sieht so aus, als ob {condition} kommt diff --git a/locale/de-de/daily.rain.alternative.location.dialog b/locale/de-de/daily.rain.alternative.location.dialog deleted file mode 100644 index ff03025c..00000000 --- a/locale/de-de/daily.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass es eine Alternative zu Regen gibt -Nein, aber die Prognose {day} ist {condition} in {location} -{day} ist kein Regen in {location} vorhergesagt, aber es sieht so aus, als ob {condition} kommt diff --git a/locale/de-de/daily.rain.not.expected.local.dialog b/locale/de-de/daily.rain.not.expected.local.dialog deleted file mode 100644 index 13224ed0..00000000 --- a/locale/de-de/daily.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Wenn der Benutzer fragt, ob es regnet, aber kein Regen oder eine Alternative angezeigt wird -Es wird kein Regen {day} vorhergesagt -Es sollte nicht regnen {day} -Du brauchst keinen Regenschirm {day} diff --git a/locale/de-de/daily.rain.not.expected.location.dialog b/locale/de-de/daily.rain.not.expected.location.dialog deleted file mode 100644 index 4fcaf6c0..00000000 --- a/locale/de-de/daily.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Wenn der Benutzer fragt, ob es regnet, aber kein Regen oder eine Alternative angezeigt wird -Für {location} wird am {day} kein Regen vorhergesagt -Es wird {day} nicht regnen in {location} -In {location} brauchst du {day} keinen Regenschirm. diff --git a/locale/de-de/daily.snow.alternative.location.dialog b/locale/de-de/daily.snow.alternative.location.dialog deleted file mode 100644 index 21754de1..00000000 --- a/locale/de-de/daily.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass eine Alternative zum Schneefall auftritt -Nein, aber die {day} Prognose ist {condition} -{day} wird kein Schnee vorhergesagt, aber die Chance ist, dass es {condition} ist. diff --git a/locale/de-de/daily.snow.not.expected.local.dialog b/locale/de-de/daily.snow.not.expected.local.dialog deleted file mode 100644 index 980e8686..00000000 --- a/locale/de-de/daily.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es schneit, aber kein Schnee oder eine Alternative ist -Es wird {day} kein Schnee vorhergesagt -Es wird {day} nicht schneien diff --git a/locale/de-de/daily.snow.not.expected.location.dialog b/locale/de-de/daily.snow.not.expected.location.dialog deleted file mode 100644 index 035fb6d8..00000000 --- a/locale/de-de/daily.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Wenn der Benutzer fragt, ob es schneit, aber kein Schnee oder eine Alternative ist -In {location} wird für {day} kein Schnee vorhergesagt -Es wird {day} nicht schneien in {location} diff --git a/locale/de-de/daily.thunderstorm.alternative.local.dialog b/locale/de-de/daily.thunderstorm.alternative.local.dialog deleted file mode 100644 index 38262cd8..00000000 --- a/locale/de-de/daily.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informieren, dass es eine Alternative zu Regen gibt -Nein, aber die Prognose {day} ist {condition} -{day} ist kein Sturm vorhergesagt, aber es sieht so aus, als ob {condition} kommt diff --git a/locale/de-de/daily.thunderstorm.alternative.location.dialog b/locale/de-de/daily.thunderstorm.alternative.location.dialog deleted file mode 100644 index 5b0b8308..00000000 --- a/locale/de-de/daily.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Nein, aber die Prognose {day} ist {condition} in {location} -# Informieren, dass eine Alternative zum Sturm auftreten wird -{day} ist kein Regen in {location} vorhergesagt, aber es sieht so aus, als ob {condition} kommt diff --git a/locale/de-de/daily.thunderstorm.not.expected.local.dialog b/locale/de-de/daily.thunderstorm.not.expected.local.dialog deleted file mode 100644 index d4a8275c..00000000 --- a/locale/de-de/daily.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Wenn der Benutzer fragt, ob es regnet, aber kein Regen oder eine Alternative angezeigt wird -Es wird {day} kein Sturm vorhergesagt -{day}, sollte es nicht stürmen -Es sollte nicht stürmen {day} diff --git a/locale/de-de/daily.thunderstorm.not.expected.location.dialog b/locale/de-de/daily.thunderstorm.not.expected.location.dialog deleted file mode 100644 index 841c00f6..00000000 --- a/locale/de-de/daily.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Wenn der Benutzer fragt, ob es regnet, aber kein Regen oder eine Alternative angezeigt wird -Für {location} {day} wird kein Sturm vorhergesagt -Es wird {day} nicht stürmen in {location} -Es ist unwahrscheinlich, dass {day} in {location} stürmt. diff --git a/locale/de-de/from.day.dialog b/locale/de-de/from.day.dialog deleted file mode 100644 index 4e2d099a..00000000 --- a/locale/de-de/from.day.dialog +++ /dev/null @@ -1 +0,0 @@ -Ab {day} diff --git a/locale/de-de/heavy.dialog b/locale/de-de/heavy.dialog deleted file mode 100644 index e26309cb..00000000 --- a/locale/de-de/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -schwerer diff --git a/locale/de-de/hour.weather.location.dialog b/locale/de-de/hourly.weather.location.dialog similarity index 100% rename from locale/de-de/hour.weather.location.dialog rename to locale/de-de/hourly.weather.location.dialog diff --git a/locale/de-de/light.dialog b/locale/de-de/light.dialog deleted file mode 100644 index c5141f41..00000000 --- a/locale/de-de/light.dialog +++ /dev/null @@ -1 +0,0 @@ -leichter diff --git a/locale/de-de/on.date.dialog b/locale/de-de/on.date.dialog deleted file mode 100644 index 1b65dc25..00000000 --- a/locale/de-de/on.date.dialog +++ /dev/null @@ -1 +0,0 @@ -am diff --git a/locale/de-de/on.dialog b/locale/de-de/on.dialog deleted file mode 100644 index 17f49231..00000000 --- a/locale/de-de/on.dialog +++ /dev/null @@ -1 +0,0 @@ -ein diff --git a/locale/de-de/simple.temperature.intent b/locale/de-de/simple.temperature.intent deleted file mode 100644 index 9d86c38a..00000000 --- a/locale/de-de/simple.temperature.intent +++ /dev/null @@ -1 +0,0 @@ -Temperatur diff --git a/locale/de-de/sky is clear.future.dialog b/locale/de-de/sky is clear.future.dialog deleted file mode 100644 index 39e5a15b..00000000 --- a/locale/de-de/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -Klarer Himmel diff --git a/locale/de-de/storm.dialog b/locale/de-de/thunderstorm.dialog similarity index 100% rename from locale/de-de/storm.dialog rename to locale/de-de/thunderstorm.dialog diff --git a/locale/de-de/weekly.condition.on.day.dialog b/locale/de-de/weekly.condition.on.day.dialog deleted file mode 100644 index 045a35e8..00000000 --- a/locale/de-de/weekly.condition.on.day.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} wird es {condition}, diff --git a/locale/de-de/weekly.conditions.mostly.one.dialog b/locale/de-de/weekly.conditions.mostly.one.dialog deleted file mode 100644 index 28481a0e..00000000 --- a/locale/de-de/weekly.conditions.mostly.one.dialog +++ /dev/null @@ -1 +0,0 @@ -es wird meistens {condition}. diff --git a/locale/de-de/weekly.conditions.seq.extra.dialog b/locale/de-de/weekly.conditions.seq.extra.dialog deleted file mode 100644 index 9fa71f00..00000000 --- a/locale/de-de/weekly.conditions.seq.extra.dialog +++ /dev/null @@ -1,2 +0,0 @@ -wie es aussieht wird es auch -es wird auch diff --git a/locale/de-de/weekly.conditions.seq.period.dialog b/locale/de-de/weekly.conditions.seq.period.dialog deleted file mode 100644 index 5e29471a..00000000 --- a/locale/de-de/weekly.conditions.seq.period.dialog +++ /dev/null @@ -1 +0,0 @@ -von {from} zu {to} diff --git a/locale/de-de/weekly.conditions.seq.start.dialog b/locale/de-de/weekly.conditions.seq.start.dialog deleted file mode 100644 index 8ef6acc6..00000000 --- a/locale/de-de/weekly.conditions.seq.start.dialog +++ /dev/null @@ -1 +0,0 @@ -es wird {condition} diff --git a/locale/de-de/weekly.conditions.some.days.dialog b/locale/de-de/weekly.conditions.some.days.dialog deleted file mode 100644 index 2908f4c2..00000000 --- a/locale/de-de/weekly.conditions.some.days.dialog +++ /dev/null @@ -1 +0,0 @@ -Es wird einige Tage {condition} geben. diff --git a/locale/de-de/weekly.temp.range.dialog b/locale/de-de/weekly.temperature.dialog similarity index 100% rename from locale/de-de/weekly.temp.range.dialog rename to locale/de-de/weekly.temperature.dialog diff --git a/locale/de-de/what.is.multi.day.forecast.intent b/locale/de-de/what.is.multi.day.forecast.intent deleted file mode 100644 index 90a7925b..00000000 --- a/locale/de-de/what.is.multi.day.forecast.intent +++ /dev/null @@ -1,4 +0,0 @@ -Wetter (in | über | für) die nächsten {num} Tage -(wie wird |) das Wetter (in | für | über) die nächsten {num} Tage -(wie wird|)das Wetter (in den| über die| für die) nächsten {num} Tagen sein -(wie wird das |das|) Wetter (in |über|für) (|die|den) nächsten {num} Tagen sein diff --git a/locale/en-us/ClearAlternatives.voc b/locale/en-us/ClearAlternatives.voc deleted file mode 100644 index f6bdd087..00000000 --- a/locale/en-us/ClearAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similar to clear weather -(fog|mist|clouds|cloud) diff --git a/locale/en-us/CloudsAlternatives.voc b/locale/en-us/CloudsAlternatives.voc deleted file mode 100644 index d3bf7f42..00000000 --- a/locale/en-us/CloudsAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similar to clody weather -(clear|mist|fog|rain| light rain) diff --git a/locale/en-us/FogAlternatives.voc b/locale/en-us/FogAlternatives.voc deleted file mode 100644 index 0bc78fe9..00000000 --- a/locale/en-us/FogAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives to foggy weather -(clear|clouds|cloud|partially cloudy) diff --git a/locale/en-us/NumberDays.voc b/locale/en-us/NumberDays.voc new file mode 100644 index 00000000..27800c6f --- /dev/null +++ b/locale/en-us/NumberDays.voc @@ -0,0 +1,23 @@ +2 day +two day +next 2 days +next two days +next couple of days +next couple days +3 day +three day +next 3 days +next three days +next few days +4 day +four day(s|) +next 4 days +next four days +5 days +five day +next 5 days +next five days +6 day(s|) +six day(s|) +next 6 days +next six days diff --git a/locale/en-us/Query.voc b/locale/en-us/Query.voc index 1dd41071..aae3edd4 100644 --- a/locale/en-us/Query.voc +++ b/locale/en-us/Query.voc @@ -4,3 +4,4 @@ what's what will tell (me|us) (about|) give me +what diff --git a/locale/en-us/RainAlternatives.voc b/locale/en-us/RainAlternatives.voc deleted file mode 100644 index 5ee042e6..00000000 --- a/locale/en-us/RainAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similar to rain -(snow|light snow|sleet|fog|mist) diff --git a/locale/en-us/SnowAlternatives.voc b/locale/en-us/SnowAlternatives.voc deleted file mode 100644 index 0ce959b0..00000000 --- a/locale/en-us/SnowAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Conditions similar to snow -(rain|light rain) diff --git a/locale/en-us/ThreeDay.voc b/locale/en-us/ThreeDay.voc deleted file mode 100644 index e0ef09c4..00000000 --- a/locale/en-us/ThreeDay.voc +++ /dev/null @@ -1,3 +0,0 @@ -3 day(s|) -three day(s|) -few days diff --git a/locale/en-us/ThunderstormAlternatives.voc b/locale/en-us/ThunderstormAlternatives.voc deleted file mode 100644 index df62273e..00000000 --- a/locale/en-us/ThunderstormAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similar to stormy weather -(drizzle|rain|light rain|snow|light snow|sleet|fog|mist|clouds|cloud|partially cloudy) diff --git a/locale/en-us/WeatherType.voc b/locale/en-us/WeatherType.voc deleted file mode 100644 index 79188010..00000000 --- a/locale/en-us/WeatherType.voc +++ /dev/null @@ -1,8 +0,0 @@ -rain|raining -snow|snowing -sleet -hail|hailing -sunny|sun -hot|warm -cold|cool - diff --git a/locale/en-us/When.voc b/locale/en-us/When.voc index 1a06d5b1..7be21d85 100644 --- a/locale/en-us/When.voc +++ b/locale/en-us/When.voc @@ -1,5 +1,5 @@ when when's -when will it -when is it +when will +when is what time diff --git a/locale/en-us/and.dialog b/locale/en-us/and.dialog new file mode 100644 index 00000000..e8c07838 --- /dev/null +++ b/locale/en-us/and.dialog @@ -0,0 +1 @@ +and diff --git a/locale/en-us/clear.future.dialog b/locale/en-us/clear.future.dialog deleted file mode 100644 index dceb7a14..00000000 --- a/locale/en-us/clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -a clear sky diff --git a/locale/en-us/clouds.dialog b/locale/en-us/clouds.dialog new file mode 100644 index 00000000..487078d1 --- /dev/null +++ b/locale/en-us/clouds.dialog @@ -0,0 +1 @@ +clouds diff --git a/locale/en-us/current.clear.alternative.location.dialog b/locale/en-us/current.clear.alternative.location.dialog deleted file mode 100644 index b8ce4992..00000000 --- a/locale/en-us/current.clear.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, the forecast calls for {condition} in {location} -It looks like there will be {condition} in {location} -Chances are it's going to be {condition} in {location} diff --git a/locale/en-us/current.clear.not.expected.local.dialog b/locale/en-us/current.clear.not.expected.local.dialog deleted file mode 100644 index 77ae6f37..00000000 --- a/locale/en-us/current.clear.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, the forecast calls for {condition} today -It looks like there'll be {condition} today -Chances are it's going to be {condition} today diff --git a/locale/en-us/current.clear.not.expected.location.dialog b/locale/en-us/current.clear.not.expected.location.dialog deleted file mode 100644 index 0db30deb..00000000 --- a/locale/en-us/current.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's clear but it's not -Sorry, it seems like it's going to be {condition} -It's not likely to be a clear sky diff --git a/locale/en-us/current.clouds.alternative.location.dialog b/locale/en-us/current.clouds.alternative.location.dialog deleted file mode 100644 index 90295084..00000000 --- a/locale/en-us/current.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, the forecast calls for {condition} -It should not be cloudy, it looks like there'll be {condition} -Doesn't seem so, chances are it's going to be {condition} diff --git a/locale/en-us/current.clouds.not.expected.local.dialog b/locale/en-us/current.clouds.not.expected.local.dialog deleted file mode 100644 index 1dd69ccd..00000000 --- a/locale/en-us/current.clouds.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's raining but no cloud or alternative is forcasted -No clouds are predicted for today -It should not be cloudy today diff --git a/locale/en-us/current.clouds.not.expected.location.dialog b/locale/en-us/current.clouds.not.expected.location.dialog deleted file mode 100644 index e53f0b1f..00000000 --- a/locale/en-us/current.clouds.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's cloudy but it's not -It doesn't seem to be cloudy today -It should not be cloudy diff --git a/locale/en-us/current.condition.expected.local.dialog b/locale/en-us/current.condition.expected.local.dialog index b8ad6597..e2506105 100644 --- a/locale/en-us/current.condition.expected.local.dialog +++ b/locale/en-us/current.condition.expected.local.dialog @@ -1,2 +1,3 @@ # The queried condition will occur today Yes, it is going to be {condition} today +It looks like there will be {condition} today diff --git a/locale/en-us/current.condition.expected.location.dialog b/locale/en-us/current.condition.expected.location.dialog index 93a8af0f..35fb0677 100644 --- a/locale/en-us/current.condition.expected.location.dialog +++ b/locale/en-us/current.condition.expected.location.dialog @@ -1,2 +1,3 @@ # The queried condition will occur Yes, it is going to be {condition} in {location} +In {location}, it looks like there will be {condition} today diff --git a/locale/en-us/current.condition.not.expected.local.dialog b/locale/en-us/current.condition.not.expected.local.dialog new file mode 100644 index 00000000..fa678544 --- /dev/null +++ b/locale/en-us/current.condition.not.expected.local.dialog @@ -0,0 +1,3 @@ +# Informing that an the requested condition is not in the forecast +No, the forecast calls for {condition} today +No, {condition} is expected today diff --git a/locale/en-us/current.condition.not.expected.location.dialog b/locale/en-us/current.condition.not.expected.location.dialog new file mode 100644 index 00000000..da5a406e --- /dev/null +++ b/locale/en-us/current.condition.not.expected.location.dialog @@ -0,0 +1,3 @@ +# Informing that an the requested condition is not in the forecast +No, the forecast calls for {condition} today in {location} +No, in {location} {condition} is expected today diff --git a/locale/en-us/current.fog.alternative.local.dialog b/locale/en-us/current.fog.alternative.local.dialog deleted file mode 100644 index d6c25852..00000000 --- a/locale/en-us/current.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to fog will occur -No, the forecast calls for {condition} today -It looks like there'll be {condition} today -Chances are it's going to be {condition} today diff --git a/locale/en-us/current.fog.alternative.location.dialog b/locale/en-us/current.fog.alternative.location.dialog deleted file mode 100644 index 4018ff7f..00000000 --- a/locale/en-us/current.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to fog will occur at a location -No, the forecast calls for {condition} in {location} -It looks like there'll be {condition} in {location} -Chances are it's going to be {condition} in {location} diff --git a/locale/en-us/current.fog.not.expected.local.dialog b/locale/en-us/current.fog.not.expected.local.dialog deleted file mode 100644 index 2ad54756..00000000 --- a/locale/en-us/current.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -Seems like the visibility will be good today -No fog is predicted for today diff --git a/locale/en-us/current.fog.not.expected.location.dialog b/locale/en-us/current.fog.not.expected.location.dialog deleted file mode 100644 index aac9a3fe..00000000 --- a/locale/en-us/current.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -Seems like the visibility will be good in {location} -No fog is predicted for {location} today diff --git a/locale/en-us/current.rain.alternative.local.dialog b/locale/en-us/current.rain.alternative.local.dialog deleted file mode 100644 index 1005d2ea..00000000 --- a/locale/en-us/current.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur (like snow or fog) -No, but today the forecast calls for {condition} -There is no rain predicted for today but it looks like there'll be {condition} diff --git a/locale/en-us/current.rain.alternative.location.dialog b/locale/en-us/current.rain.alternative.location.dialog deleted file mode 100644 index 72c16809..00000000 --- a/locale/en-us/current.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur (like snow or fog) -No, but the forecast calls for {condition} in {location} -There is no rain predicted for today in {location}, but it looks like there'll be {condition} diff --git a/locale/en-us/current.rain.not.expected.local.dialog b/locale/en-us/current.rain.not.expected.local.dialog deleted file mode 100644 index bf5fb348..00000000 --- a/locale/en-us/current.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -No rain is predicted today -It should not rain today -There's no need for an umbrella today diff --git a/locale/en-us/current.rain.not.expected.location.dialog b/locale/en-us/current.rain.not.expected.location.dialog deleted file mode 100644 index 08dc0f39..00000000 --- a/locale/en-us/current.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -No rain is predicted for {location} -It should not be raining in {location} -There's no need for an umbrella in {location} diff --git a/locale/en-us/current.snow.alternative.local.dialog b/locale/en-us/current.snow.alternative.local.dialog deleted file mode 100644 index 08ea49e1..00000000 --- a/locale/en-us/current.snow.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to snowing will occur -No, but today the forecast calls for {condition} -There is no snow predicted for today but the chances are that it'll be {condition} diff --git a/locale/en-us/current.snow.alternative.location.dialog b/locale/en-us/current.snow.alternative.location.dialog deleted file mode 100644 index fe7d2869..00000000 --- a/locale/en-us/current.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to snowing will occur -No, but the forecast calls for {condition} in {location} -There is no snow predicted for today but the chances are that it'll be {condition} in {location} diff --git a/locale/en-us/current.snow.not.expected.local.dialog b/locale/en-us/current.snow.not.expected.local.dialog deleted file mode 100644 index 164d6d42..00000000 --- a/locale/en-us/current.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forecasted -No snow is predicted today -It should not snow today diff --git a/locale/en-us/current.snow.not.expected.location.dialog b/locale/en-us/current.snow.not.expected.location.dialog deleted file mode 100644 index 774c89b4..00000000 --- a/locale/en-us/current.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -No snow is predicted for {location} -It will not snow in {location} diff --git a/locale/en-us/current.thunderstorm.alternative.local.dialog b/locale/en-us/current.thunderstorm.alternative.local.dialog deleted file mode 100644 index 14e9771f..00000000 --- a/locale/en-us/current.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to a storm will occur (like snow or fog) -No, but today the forecast calls for {condition} -There is no storm predicted for today but it looks like there'll be {condition} diff --git a/locale/en-us/current.thunderstorm.alternative.location.dialog b/locale/en-us/current.thunderstorm.alternative.location.dialog deleted file mode 100644 index 4e6e8174..00000000 --- a/locale/en-us/current.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to storm will occur (like snow or fog) -No, but the forecast calls for {condition} in {location} -There is no storm predicted for today in {location}, but it looks like there'll be {condition} diff --git a/locale/en-us/current.thunderstorm.not.expected.local.dialog b/locale/en-us/current.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 67679186..00000000 --- a/locale/en-us/current.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -No storm is predicted today -It should not storm today -There should not be a storm today -Today it is unlikely to storm -A storm is not likely today diff --git a/locale/en-us/current.thunderstorm.not.expected.location.dialog b/locale/en-us/current.thunderstorm.not.expected.location.dialog deleted file mode 100644 index 35aadc46..00000000 --- a/locale/en-us/current.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's storming but no storm or alternative is forcasted -No storm is predicted for {location} -There should not be a storm in {location} -It should not storm in {location} diff --git a/locale/en-us/daily.clear.alternative.local.dialog b/locale/en-us/daily.clear.alternative.local.dialog deleted file mode 100644 index 9b427c06..00000000 --- a/locale/en-us/daily.clear.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, the forecast {day} calls for {condition} -{day}, it looks like there'll be {condition} diff --git a/locale/en-us/daily.clear.alternative.location.dialog b/locale/en-us/daily.clear.alternative.location.dialog deleted file mode 100644 index 2d412d9e..00000000 --- a/locale/en-us/daily.clear.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -No, but the forecast {day} calls for {condition} in {location} -{day}, there is no rain predicted {day} for {location} but it looks like there'll be {condition} diff --git a/locale/en-us/daily.clear.not.expected.local.dialog b/locale/en-us/daily.clear.not.expected.local.dialog deleted file mode 100644 index 358a7bae..00000000 --- a/locale/en-us/daily.clear.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's clear but an alternative is forcasted -Sorry, the forecast doesn't predict clear conditions {day} -{day}, it is not likely to be clear diff --git a/locale/en-us/daily.clear.not.expected.location.dialog b/locale/en-us/daily.clear.not.expected.location.dialog deleted file mode 100644 index 5441faca..00000000 --- a/locale/en-us/daily.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's clear but an alternative is forcasted -Sorry, the forecast {day} doesn't predict clear conditions for {location} -{day}, it is not likely to be clear weather in {location} diff --git a/locale/en-us/daily.clouds.alternative.local.dialog b/locale/en-us/daily.clouds.alternative.local.dialog deleted file mode 100644 index 42a473bf..00000000 --- a/locale/en-us/daily.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, the forecast {day} calls for {condition} -It should not be cloudy, it looks like there'll be {condition} {day} -Doesn't seem so, chances are it's going to be {condition} {day} diff --git a/locale/en-us/daily.clouds.alternative.location.dialog b/locale/en-us/daily.clouds.alternative.location.dialog deleted file mode 100644 index b83a80db..00000000 --- a/locale/en-us/daily.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -# No, the forecast {day} calls for {condition} in {location} -# It should not be cloudy in {location} {day}, it looks like there'll be {condition} -Doesn't seem so, chances are {location} will have {condition} {day} diff --git a/locale/en-us/daily.clouds.not.expected.local.dialog b/locale/en-us/daily.clouds.not.expected.local.dialog deleted file mode 100644 index ffe9d171..00000000 --- a/locale/en-us/daily.clouds.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's cloudy but it's not -It doesn't seem like it's going to be cloudy {day} -Clear skies are forecast {day} -Expect clear skies {day} -It should not be cloudy {day} diff --git a/locale/en-us/daily.clouds.not.expected.location.dialog b/locale/en-us/daily.clouds.not.expected.location.dialog deleted file mode 100644 index bd9a08f6..00000000 --- a/locale/en-us/daily.clouds.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's cloudy but it's not -It doesn't seem like it's going to be cloudy in {location} {day} -Clear skies are forecast in {location} {day} -Expect clear skies in {location} {day} -It should not be cloudy in {location} {day} diff --git a/locale/en-us/daily.condition.expected.local.dialog b/locale/en-us/daily.condition.expected.local.dialog index 066ed694..2c9e146b 100644 --- a/locale/en-us/daily.condition.expected.local.dialog +++ b/locale/en-us/daily.condition.expected.local.dialog @@ -1,3 +1,3 @@ # Affirmative response to questions like "is it going to snow tomorrow" -Yes, expect {condition} -Yes, the forecast calls for {condition} +Yes, expect {condition} {day} +Yes, the forecast calls for {condition} {day} diff --git a/locale/en-us/daily.condition.not.expected.local.dialog b/locale/en-us/daily.condition.not.expected.local.dialog new file mode 100644 index 00000000..53dde4cc --- /dev/null +++ b/locale/en-us/daily.condition.not.expected.local.dialog @@ -0,0 +1,3 @@ +# Informing that an the requested condition is not in the forecast +No, {day} the forecast calls for {condition} +No, {condition} is expected {day} diff --git a/locale/en-us/daily.condition.not.expected.location.dialog b/locale/en-us/daily.condition.not.expected.location.dialog new file mode 100644 index 00000000..55098b21 --- /dev/null +++ b/locale/en-us/daily.condition.not.expected.location.dialog @@ -0,0 +1,3 @@ +# Informing that an the requested condition is not in the forecast +No, {day} the forecast calls for {condition} in {location} +No, in {location} {condition} is expected {day} diff --git a/locale/en-us/daily.fog.alternative.local.dialog b/locale/en-us/daily.fog.alternative.local.dialog deleted file mode 100644 index 5b9a7b0f..00000000 --- a/locale/en-us/daily.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to fog will occur -No, the forecast {day} calls for {condition} -It looks like there'll be {condition} {day} -Chances are it's going to be {condition} {day} diff --git a/locale/en-us/daily.fog.alternative.location.dialog b/locale/en-us/daily.fog.alternative.location.dialog deleted file mode 100644 index 25966c4b..00000000 --- a/locale/en-us/daily.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to fog will occur -No, the forecast {day} for {location} calls for {condition} -It looks like there'll be {condition} in {location} {day} -Chances are it's going to be {condition} in {location} {day} diff --git a/locale/en-us/daily.fog.not.expected.local.dialog b/locale/en-us/daily.fog.not.expected.local.dialog deleted file mode 100644 index 77ab2208..00000000 --- a/locale/en-us/daily.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -{day} the visibility should be good -No fog is predicted {day} diff --git a/locale/en-us/daily.fog.not.expected.location.dialog b/locale/en-us/daily.fog.not.expected.location.dialog deleted file mode 100644 index 9fed10f8..00000000 --- a/locale/en-us/daily.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -{day} the visibility should be good in {location} -No fog is predicted {day} in {location} diff --git a/locale/en-us/daily.rain.alternative.local.dialog b/locale/en-us/daily.rain.alternative.local.dialog deleted file mode 100644 index 27fd124e..00000000 --- a/locale/en-us/daily.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -No, but the forecast {day} calls for {condition} -{day}, there is no rain predicted but it looks like there'll be {condition} diff --git a/locale/en-us/daily.rain.alternative.location.dialog b/locale/en-us/daily.rain.alternative.location.dialog deleted file mode 100644 index 48dc1cc9..00000000 --- a/locale/en-us/daily.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -No, but the forecast calls for {condition} in {location} {day} -{day}, there is no rain predicted for {location} but it looks like there'll be {condition} diff --git a/locale/en-us/daily.rain.not.expected.local.dialog b/locale/en-us/daily.rain.not.expected.local.dialog deleted file mode 100644 index 9d8d8c98..00000000 --- a/locale/en-us/daily.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -No rain is predicted {day} -It should not rain {day} -You won't need an umbrella {day} diff --git a/locale/en-us/daily.rain.not.expected.location.dialog b/locale/en-us/daily.rain.not.expected.location.dialog deleted file mode 100644 index 0a915db0..00000000 --- a/locale/en-us/daily.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -No rain is predicted for {location} {day} -{day}, it should not rain in {location} -There's no need for an umbrella in {location} {day} diff --git a/locale/en-us/daily.snow.alternative.location.dialog b/locale/en-us/daily.snow.alternative.location.dialog deleted file mode 100644 index 08c34229..00000000 --- a/locale/en-us/daily.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to snowing will occur -No, but the forecast calls for {condition} {day} -{day} there is no snow predicted but the chances are that it'll be {condition} diff --git a/locale/en-us/daily.snow.not.expected.local.dialog b/locale/en-us/daily.snow.not.expected.local.dialog deleted file mode 100644 index 9fa7a729..00000000 --- a/locale/en-us/daily.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -No snow is predicted {day} -It will not snow {day} diff --git a/locale/en-us/daily.snow.not.expected.location.dialog b/locale/en-us/daily.snow.not.expected.location.dialog deleted file mode 100644 index 31828b0c..00000000 --- a/locale/en-us/daily.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -No snow is predicted in {location} {day} -It should not snow in {location} {day} diff --git a/locale/en-us/daily.thunderstorm.alternative.local.dialog b/locale/en-us/daily.thunderstorm.alternative.local.dialog deleted file mode 100644 index 50503cb6..00000000 --- a/locale/en-us/daily.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -No, but the forecast {day} calls for {condition} -{day}, there is no storm predicted but it looks like there'll be {condition} diff --git a/locale/en-us/daily.thunderstorm.alternative.location.dialog b/locale/en-us/daily.thunderstorm.alternative.location.dialog deleted file mode 100644 index 0cb8fde0..00000000 --- a/locale/en-us/daily.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to storm will occur -No, but the forecast calls for {condition} in {location} {day} -{day}, there is no storm predicted for {location} but it looks like there'll be {condition} diff --git a/locale/en-us/daily.thunderstorm.not.expected.local.dialog b/locale/en-us/daily.thunderstorm.not.expected.local.dialog deleted file mode 100644 index cebb8664..00000000 --- a/locale/en-us/daily.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -No storm is predicted {day} -{day}, it should not storm -It should not storm {day} diff --git a/locale/en-us/daily.thunderstorm.not.expected.location.dialog b/locale/en-us/daily.thunderstorm.not.expected.location.dialog deleted file mode 100644 index 5a028b54..00000000 --- a/locale/en-us/daily.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -No storm is predicted for {location} {day} -{day}, it should not storm in {location} -It is unlikely to storm {day} in {location} diff --git a/locale/en-us/do not know.dialog b/locale/en-us/do not know.dialog deleted file mode 100644 index 6467724d..00000000 --- a/locale/en-us/do not know.dialog +++ /dev/null @@ -1,3 +0,0 @@ -I'm afraid I don't know that -I don't have that information - diff --git a/locale/en-us/from.day.dialog b/locale/en-us/from.day.dialog deleted file mode 100644 index 6c0a30d9..00000000 --- a/locale/en-us/from.day.dialog +++ /dev/null @@ -1 +0,0 @@ -From {day} diff --git a/locale/en-us/heavy.dialog b/locale/en-us/heavy.dialog deleted file mode 100644 index 9d1f86a0..00000000 --- a/locale/en-us/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -heavy diff --git a/locale/en-us/hourly.condition.alternative.local.dialog b/locale/en-us/hourly.condition.alternative.local.dialog deleted file mode 100644 index b6f5ee33..00000000 --- a/locale/en-us/hourly.condition.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to a condition will occur -No, the {time} forecast calls for {condition} today -Doesn't seem so, the {time} forecast suggests it will be {condition} diff --git a/locale/en-us/hourly.condition.alternative.location.dialog b/locale/en-us/hourly.condition.alternative.location.dialog deleted file mode 100644 index e18a7ee1..00000000 --- a/locale/en-us/hourly.condition.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that at a specified time an alternative to some condition will occur -No, the {time} forecast calls for {condition} in {location} -Doesn't seem so, the {time} forecast suggests it's going to be {condition} in {location} diff --git a/locale/en-us/light.dialog b/locale/en-us/light.dialog deleted file mode 100644 index 162faa69..00000000 --- a/locale/en-us/light.dialog +++ /dev/null @@ -1 +0,0 @@ -light diff --git a/locale/en-us/simple.temperature.intent b/locale/en-us/simple.temperature.intent deleted file mode 100644 index 746a65eb..00000000 --- a/locale/en-us/simple.temperature.intent +++ /dev/null @@ -1 +0,0 @@ -temperature diff --git a/locale/en-us/sky is clear.future.dialog b/locale/en-us/sky is clear.future.dialog deleted file mode 100644 index dceb7a14..00000000 --- a/locale/en-us/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -a clear sky diff --git a/locale/en-us/thunderstorm.dialog b/locale/en-us/thunderstorm.dialog new file mode 100644 index 00000000..15750d69 --- /dev/null +++ b/locale/en-us/thunderstorm.dialog @@ -0,0 +1 @@ +storms diff --git a/locale/en-us/weekly.condition.dialog b/locale/en-us/weekly.condition.dialog new file mode 100644 index 00000000..15f37fc0 --- /dev/null +++ b/locale/en-us/weekly.condition.dialog @@ -0,0 +1,2 @@ +The forecast calls for {condition} on {days} +On {days} expect {condition} diff --git a/locale/en-us/weekly.temperature.dialog b/locale/en-us/weekly.temperature.dialog new file mode 100644 index 00000000..b67b3143 --- /dev/null +++ b/locale/en-us/weekly.temperature.dialog @@ -0,0 +1 @@ +lows will be between {low_min} and {low_max}, with highs between {high_min} and {high_max} diff --git a/locale/en-us/what.is.multi.day.forecast.intent b/locale/en-us/what.is.multi.day.forecast.intent deleted file mode 100644 index 4b46089d..00000000 --- a/locale/en-us/what.is.multi.day.forecast.intent +++ /dev/null @@ -1,4 +0,0 @@ -(weather|forecast) (in|over|for) the next {num} days -what is the (weather|forecast) (like|) (in|over|for) the next {num} days -what will the weather be (like|) (in|over|for) the next {num} days -what is the weather (going to|gonna|) be (like|) (in|over|for) the next {num} days diff --git a/locale/es-es/heavy.dialog b/locale/es-es/heavy.dialog deleted file mode 100644 index e524be2f..00000000 --- a/locale/es-es/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -pesado diff --git a/locale/es-es/hour.local.weather.dialog b/locale/es-es/hourly.weather.local.dialog similarity index 100% rename from locale/es-es/hour.local.weather.dialog rename to locale/es-es/hourly.weather.local.dialog diff --git a/locale/es-es/hour.weather.dialog b/locale/es-es/hourly.weather.location.dialog similarity index 100% rename from locale/es-es/hour.weather.dialog rename to locale/es-es/hourly.weather.location.dialog diff --git a/locale/es-es/light.dialog b/locale/es-es/light.dialog deleted file mode 100644 index abd55634..00000000 --- a/locale/es-es/light.dialog +++ /dev/null @@ -1 +0,0 @@ -luz diff --git a/locale/es-es/report.condition.dialog b/locale/es-es/report.condition.dialog deleted file mode 100644 index 3cd26d5d..00000000 --- a/locale/es-es/report.condition.dialog +++ /dev/null @@ -1 +0,0 @@ -{{condition}} es {{value}} diff --git a/locale/es-es/report.future.condition.dialog b/locale/es-es/report.future.condition.dialog deleted file mode 100644 index c633dff6..00000000 --- a/locale/es-es/report.future.condition.dialog +++ /dev/null @@ -1,2 +0,0 @@ -{{condition}} para el {{day}} será de {{value}} -El {{day}}, el pronóstico indica {{condition}} de {{value}} diff --git a/locale/es-es/sky is clear.future.dialog b/locale/es-es/sky is clear.future.dialog deleted file mode 100644 index 126bbb7b..00000000 --- a/locale/es-es/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -despejado diff --git a/locale/es-es/wind.speed.dialog b/locale/es-es/wind.speed.dialog deleted file mode 100644 index cff9d7e4..00000000 --- a/locale/es-es/wind.speed.dialog +++ /dev/null @@ -1 +0,0 @@ -{{speed}} {{unit}} diff --git a/locale/es-es/wind.speed.dir.dialog b/locale/es-es/wind.speed.dir.dialog deleted file mode 100644 index 1a4c3cfc..00000000 --- a/locale/es-es/wind.speed.dir.dialog +++ /dev/null @@ -1,2 +0,0 @@ -a {{speed}} {{unit}} desde el {{dir}} -desde el {{dir}} a {{speed}} {{unit}} diff --git a/locale/es-es/winds.dialog b/locale/es-es/winds.dialog deleted file mode 100644 index c3abf711..00000000 --- a/locale/es-es/winds.dialog +++ /dev/null @@ -1 +0,0 @@ -el viento diff --git a/locale/fr-fr/current.humitidy.location.dialog b/locale/fr-fr/current.humidity.location.dialog similarity index 100% rename from locale/fr-fr/current.humitidy.location.dialog rename to locale/fr-fr/current.humidity.location.dialog diff --git a/locale/fr-fr/do not know.dialog b/locale/fr-fr/do not know.dialog deleted file mode 100644 index 39258797..00000000 --- a/locale/fr-fr/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -J'ai bien peur de ne pas le savoir -Je n'ai pas cette information diff --git a/locale/fr-fr/heavy.dialog b/locale/fr-fr/heavy.dialog deleted file mode 100644 index c1992a78..00000000 --- a/locale/fr-fr/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -forte diff --git a/locale/fr-fr/light.dialog b/locale/fr-fr/light.dialog deleted file mode 100644 index a974bef3..00000000 --- a/locale/fr-fr/light.dialog +++ /dev/null @@ -1 +0,0 @@ -faible diff --git a/locale/fr-fr/sky is clear.future.dialog b/locale/fr-fr/sky is clear.future.dialog deleted file mode 100644 index 09b10976..00000000 --- a/locale/fr-fr/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -clair diff --git a/locale/gl-es/ClearAlternatives.voc b/locale/gl-es/ClearAlternatives.voc deleted file mode 100644 index d35fa5a0..00000000 --- a/locale/gl-es/ClearAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas similares a tempo firme -(nebuloso|neboeiro|néboa|nubes|nube) diff --git a/locale/gl-es/CloudsAlternatives.voc b/locale/gl-es/CloudsAlternatives.voc deleted file mode 100644 index b7bd2c9e..00000000 --- a/locale/gl-es/CloudsAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas semellantes ao tempo nubrado -(claro|neblina|neboeiro|chuvia|chuvia miúda) diff --git a/locale/gl-es/FogAlternatives.voc b/locale/gl-es/FogAlternatives.voc deleted file mode 100644 index 1b4c2bab..00000000 --- a/locale/gl-es/FogAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas ao tempo nubrado -(despexado|nubes|nubrado|parcialmente nubrado) diff --git a/locale/gl-es/RainAlternatives.voc b/locale/gl-es/RainAlternatives.voc deleted file mode 100644 index 25142570..00000000 --- a/locale/gl-es/RainAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas similares á chuvia -(neve|neve leve|granizo|néboa|neblina) diff --git a/locale/gl-es/SnowAlternatives.voc b/locale/gl-es/SnowAlternatives.voc deleted file mode 100644 index 743a0434..00000000 --- a/locale/gl-es/SnowAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Condicións similares para a neve -(chuvia|chuvia leve) diff --git a/locale/gl-es/ThunderstormAlternatives.voc b/locale/gl-es/ThunderstormAlternatives.voc deleted file mode 100644 index 9c4f7fac..00000000 --- a/locale/gl-es/ThunderstormAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas semellantes ao tempo tempestuoso -(chuvisco|chuvia|chuvia fraca|neve|neve fraca|granizo|neboeiro|néboa|néboa|nubes|nube|parcialmente nubrado) diff --git a/locale/gl-es/and.dialog b/locale/gl-es/and.dialog new file mode 100644 index 00000000..b18c97b5 --- /dev/null +++ b/locale/gl-es/and.dialog @@ -0,0 +1 @@ +, e diff --git a/locale/gl-es/clear.future.dialog b/locale/gl-es/clear.future.dialog deleted file mode 100644 index 969865c8..00000000 --- a/locale/gl-es/clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -un ceo despexado diff --git a/locale/gl-es/condition.category.value b/locale/gl-es/condition.category.value deleted file mode 100644 index f42da6dd..00000000 --- a/locale/gl-es/condition.category.value +++ /dev/null @@ -1,15 +0,0 @@ -Nubes, nubrado -despexado, un ceo despexado -Tempestades con trombas, tempestades -Chuviscos, chuviscando -Chuvia,chovendo -Neve,nevando -Néboa,neboado -Fume,fumento -neblina,nubrado -Poeira, empoeirado -Neboeiro, neboento -Area, areoso -Cinza, nubrado con posíble cinza volcánica -Borrasca, tempestuoso -Tornado, tempestuoso con posibilidade de tornado diff --git a/locale/gl-es/current.clear.alternative.local.dialog b/locale/gl-es/current.clear.alternative.local.dialog deleted file mode 100644 index 1b1b2fff..00000000 --- a/locale/gl-es/current.clear.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que unha alternativa ao tempo bo vai ocorrer -Non, a previsión require {condition} hoxe -Parece que hoxe teremos {condition} -Si, vai estar {condition} hoxe diff --git a/locale/gl-es/current.clear.alternative.location.dialog b/locale/gl-es/current.clear.alternative.location.dialog deleted file mode 100644 index 4d978203..00000000 --- a/locale/gl-es/current.clear.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que unha alternativa ao tempo bo vai ocorrer -Non, a previsión require {condition} en {location} -Parece que haberá {condition} en {location} -As opcións son que vai estar {condition} en {location} diff --git a/locale/gl-es/current.clear.not.expected.location.dialog b/locale/gl-es/current.clear.not.expected.location.dialog deleted file mode 100644 index 719aaaac..00000000 --- a/locale/gl-es/current.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está despexado ou non -Desculpa, parece que vai ocorrer {condition} -Non é probable que faga bo tempo diff --git a/locale/gl-es/current.clouds.alternative.local.dialog b/locale/gl-es/current.clouds.alternative.local.dialog deleted file mode 100644 index fe6d6040..00000000 --- a/locale/gl-es/current.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Non, a previsión require {condition} hoxe -# Informando de que unha alternativa ao ceo nubrado vai ocorrer -Non debería estar nubrado, parece que estará {condition} hoxe -Parece que non, as opcións son de que estea {condition} hoxe diff --git a/locale/gl-es/current.clouds.alternative.location.dialog b/locale/gl-es/current.clouds.alternative.location.dialog deleted file mode 100644 index 70bca1f2..00000000 --- a/locale/gl-es/current.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que unha alternativa ao tempo bo vai ocorrer -Non, a previsión require {condition} -Probablemente non estará nubrado, parece que estará {condition} -Parece que non, as opcións son de que estea {condition} diff --git a/locale/gl-es/current.clouds.not.expected.local.dialog b/locale/gl-es/current.clouds.not.expected.local.dialog deleted file mode 100644 index de0e27ba..00000000 --- a/locale/gl-es/current.clouds.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está chovendo mais non hai previsión de nubes ou alternativa -Non hai previsto nubes para hoxe -Non debería estar nubrado hoxe diff --git a/locale/gl-es/current.clouds.not.expected.location.dialog b/locale/gl-es/current.clouds.not.expected.location.dialog deleted file mode 100644 index 07309eb0..00000000 --- a/locale/gl-es/current.clouds.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nubrado mais non o está -Non parece estar nubrado hoxe -Non debería estar nubrado diff --git a/locale/gl-es/current.fog.alternative.local.dialog b/locale/gl-es/current.fog.alternative.local.dialog deleted file mode 100644 index fb1c910a..00000000 --- a/locale/gl-es/current.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que unha alternativa ao bo tempo ocorrerá -Non, a previsión require {condition} hoxe -Parece que hoxe teremos {condition} -Si, vai estar {condition} hoxe diff --git a/locale/gl-es/current.fog.alternative.location.dialog b/locale/gl-es/current.fog.alternative.location.dialog deleted file mode 100644 index 3721230c..00000000 --- a/locale/gl-es/current.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Non, a previsión require {condition} en {location} -As opcións son que vai estar {condition} en {location} -# Informando que unha alternativa ao neboeiro ocorrerá nunha localización -Parece que haberá {condition} en {location} diff --git a/locale/gl-es/current.fog.not.expected.local.dialog b/locale/gl-es/current.fog.not.expected.local.dialog deleted file mode 100644 index 195a3741..00000000 --- a/locale/gl-es/current.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nubrado mais ningunha neve ou alternativa é feita como previsión -Parece que a visibilidade será boa hoxe -Non hai previsto neboeiros para hoxe diff --git a/locale/gl-es/current.fog.not.expected.location.dialog b/locale/gl-es/current.fog.not.expected.location.dialog deleted file mode 100644 index d1b60e50..00000000 --- a/locale/gl-es/current.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nubrado mais ningunha neve ou alternativa é feita como previsión -Parece que a visibilidade será boa en {location} -Non está previsto ningún nevoeiro en {location} hoxe diff --git a/locale/gl-es/current.rain.alternative.local.dialog b/locale/gl-es/current.rain.alternative.local.dialog deleted file mode 100644 index b03d7d8a..00000000 --- a/locale/gl-es/current.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando de que unha alternativa para a chuvia vai acontecer (como neve ou neboeiro) -Non, pero hoxe a previsión require {condition} -Non hai previsión de chuvia hoxe mais parece que haberá {condition} diff --git a/locale/gl-es/current.rain.alternative.location.dialog b/locale/gl-es/current.rain.alternative.location.dialog deleted file mode 100644 index 7e663e4f..00000000 --- a/locale/gl-es/current.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando de que unha alternativa para a chuvia vai acontecer (como neve ou neboeiro) -Non, pero a previsión require {condition} en {location} -Non hai previsión de chuvia para hoxe en {location}, mais parece que haberá {condition} diff --git a/locale/gl-es/current.rain.not.expected.local.dialog b/locale/gl-es/current.rain.not.expected.local.dialog deleted file mode 100644 index faa9491d..00000000 --- a/locale/gl-es/current.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Cando o usuario pregunta se está chovendo mais ningunha chuvia ou alternativa está prevista -Non está prevista para hoxe a chuvia -Non debería chover hoxe -Non hai necesidade dun paraugas hoxe diff --git a/locale/gl-es/current.rain.not.expected.location.dialog b/locale/gl-es/current.rain.not.expected.location.dialog deleted file mode 100644 index 6947a572..00000000 --- a/locale/gl-es/current.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Cando o usuario pregunta se está chovendo mais ningunha chuvia ou alternativa está prevista -Non está prevista chuvia en {location} -Non debría estar chovendo en {location} -Non hai necesidade de usar paraugas en {location} diff --git a/locale/gl-es/current.snow.alternative.local.dialog b/locale/gl-es/current.snow.alternative.local.dialog deleted file mode 100644 index 05e53278..00000000 --- a/locale/gl-es/current.snow.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando de que unha alternativa ao bo tempo vai ocorrer -Non, pero hoxe a previsión require {condition} -Non hai previsión de neve para hoxe, mais as oportunidades son de {condition} diff --git a/locale/gl-es/current.snow.alternative.location.dialog b/locale/gl-es/current.snow.alternative.location.dialog deleted file mode 100644 index 5e3eb760..00000000 --- a/locale/gl-es/current.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando de que unha alternativa ao bo tempo vai ocorrer -Non, pero a previsión require {condition} en {location} -Non está previsto que neve hoxe pero as opcións son que haxa {condition} en {location} diff --git a/locale/gl-es/current.snow.not.expected.local.dialog b/locale/gl-es/current.snow.not.expected.local.dialog deleted file mode 100644 index c022bdb9..00000000 --- a/locale/gl-es/current.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nevando mais non hai previsión dela -Esta previsto que neve hoxe -Non debería nevar hoxe diff --git a/locale/gl-es/current.snow.not.expected.location.dialog b/locale/gl-es/current.snow.not.expected.location.dialog deleted file mode 100644 index 2ba435f5..00000000 --- a/locale/gl-es/current.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nevando mais ningunha neve ou alternativa está prevista -Non está prevista a neve en {location} -Non vai nevar en {location} diff --git a/locale/gl-es/current.thunderstorm.alternative.local.dialog b/locale/gl-es/current.thunderstorm.alternative.local.dialog deleted file mode 100644 index 659cbdee..00000000 --- a/locale/gl-es/current.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Non, pero hoxe a previsión require {condition} -# Informando de que unha alternativa para a tempestade vai acontecer (como neve ou nevoeiro) -Non hai previsión de tempestades para hoxe, mais parece que haberá {condition} diff --git a/locale/gl-es/current.thunderstorm.alternative.location.dialog b/locale/gl-es/current.thunderstorm.alternative.location.dialog deleted file mode 100644 index 65613323..00000000 --- a/locale/gl-es/current.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Non, pero a previsión require {condition} en {location} -# Informando de que unha alternativa para a chuvia forte vai acontecer (como neve ou nevoeiro) -Non hai previsión de chuvia para hoxe en {location}, mais parece que haberá {condition} diff --git a/locale/gl-es/current.thunderstorm.not.expected.local.dialog b/locale/gl-es/current.thunderstorm.not.expected.local.dialog deleted file mode 100644 index b56ae2d3..00000000 --- a/locale/gl-es/current.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# Cando o usuario pregunta se está chovendo mais ningunha chuvia ou alternativa está prevista -Non está prevista a neve para hoxe -Non debería facer tormenta hoxe -Non debería haber tormenta hoxe -O máis probable é que hoxe non haxa tormenta -Non está prevista unha tormenta hoxe diff --git a/locale/gl-es/current.thunderstorm.not.expected.location.dialog b/locale/gl-es/current.thunderstorm.not.expected.location.dialog deleted file mode 100644 index dacfe066..00000000 --- a/locale/gl-es/current.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Cando o usuario pregunta se hai tormenta mais non hai previsión dela -Non está prevista ningunha tempestade en {location} -Non debería haber unha tormenta en {location} -Non debería haber unha tormenta en {location} diff --git a/locale/gl-es/daily.clear.alternative.local.dialog b/locale/gl-es/daily.clear.alternative.local.dialog deleted file mode 100644 index ac92fcbd..00000000 --- a/locale/gl-es/daily.clear.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que unha alternativa ao tempo bo vai ocorrer -Non, a previsión para o {day} require {condition} -{day}, parece que haberá {condition} diff --git a/locale/gl-es/daily.clear.alternative.location.dialog b/locale/gl-es/daily.clear.alternative.location.dialog deleted file mode 100644 index 4214cf9c..00000000 --- a/locale/gl-es/daily.clear.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que unha alternativa á chuvia ocorrerá -Non, pero a previsión {day} require {condition} en {location} -No {day}, non hai previsión de chuvia para {location}, mais parece que haberá {condition} diff --git a/locale/gl-es/daily.clear.not.expected.local.dialog b/locale/gl-es/daily.clear.not.expected.local.dialog deleted file mode 100644 index 5ac34af9..00000000 --- a/locale/gl-es/daily.clear.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se o ceo está claro mais unha previsión alternativa é feita -Desculpa, a previsión non prevé condicións de céeo despexado o {day} -{day}, non é probable que o tempo estea bo. diff --git a/locale/gl-es/daily.clear.not.expected.location.dialog b/locale/gl-es/daily.clear.not.expected.location.dialog deleted file mode 100644 index fb8148ce..00000000 --- a/locale/gl-es/daily.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se o ceo está claro mais unha previsión alternativa é feita -Desculpa, a previsión non indica condicións de ceo despexado para {location} o {day} -{day}, é probable que o tempo non estea bo en {location} diff --git a/locale/gl-es/daily.clouds.alternative.local.dialog b/locale/gl-es/daily.clouds.alternative.local.dialog deleted file mode 100644 index ef3be97f..00000000 --- a/locale/gl-es/daily.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que unha alternativa ao tempo bo vai ocorrer -Non, a previsión para o {day} require {condition} -Probablemente non estará nubrado, parece que {day} estará {condition} -Parece que non, as opcións son de que {day} estea {condition} diff --git a/locale/gl-es/daily.clouds.alternative.location.dialog b/locale/gl-es/daily.clouds.alternative.location.dialog deleted file mode 100644 index 4c6c7b41..00000000 --- a/locale/gl-es/daily.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que unha alternativa ao tempo bo vai ocorrer -# Non, a previsión para o {day} require {condition} en {location} -# Probablemente non estará nubrado {day} en {location}, parece que estará {condition} -Parece que non, as opcións son de que en {location} haberá {condition} {day} diff --git a/locale/gl-es/daily.clouds.not.expected.local.dialog b/locale/gl-es/daily.clouds.not.expected.local.dialog deleted file mode 100644 index c37494e4..00000000 --- a/locale/gl-es/daily.clouds.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Cando o usuario pregunta se está nubrado mais non o está -Non parece probable que vai estar nubrado {day} -Está previsto ceo despexado {day} -É esperado un ceo despexado {day} -Non debe estar nubrado {day} diff --git a/locale/gl-es/daily.clouds.not.expected.location.dialog b/locale/gl-es/daily.clouds.not.expected.location.dialog deleted file mode 100644 index b21b8575..00000000 --- a/locale/gl-es/daily.clouds.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Cando o usuario pregunta se está nubrado mais non o está -Non parece probable que vaia estar nubrado en {location} o {day} -O ceo despexado está previsto en {location} o {day} -É esperado o ceo despexado en {location} o {day} -Non vai nevar en {location} o {day} diff --git a/locale/gl-es/daily.fog.alternative.local.dialog b/locale/gl-es/daily.fog.alternative.local.dialog deleted file mode 100644 index 8dc2a4d9..00000000 --- a/locale/gl-es/daily.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que unha alternativa ao bo tempo ocorrerá -Non, a previsión para o {day} require {condition} -Parece que {day} teremos {condition} -Vai estar {condition} {day} diff --git a/locale/gl-es/daily.fog.alternative.location.dialog b/locale/gl-es/daily.fog.alternative.location.dialog deleted file mode 100644 index 96362359..00000000 --- a/locale/gl-es/daily.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que unha alternativa ao bo tempo ocorrerá -Non, a previsión para {location} {day} é de {condition} -Parece que haberá {condition} en {location} {day} -As opcións din que vai ser {condition} en {location} {day} diff --git a/locale/gl-es/daily.fog.not.expected.local.dialog b/locale/gl-es/daily.fog.not.expected.local.dialog deleted file mode 100644 index 8073dc5f..00000000 --- a/locale/gl-es/daily.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nubrado mais ningunha neve ou alternativa é feita como previsión -o {day} a visibilidade debería ser boa -Ningún noboeiroestá previsto para {day} diff --git a/locale/gl-es/daily.fog.not.expected.location.dialog b/locale/gl-es/daily.fog.not.expected.location.dialog deleted file mode 100644 index 8f3c7096..00000000 --- a/locale/gl-es/daily.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nubrado mais ningunha neve ou alternativa é feita como previsión -o {day} a visibilidade debe estar boa en {location} -Ningún neboeiro está previsto para o {day} en {location} diff --git a/locale/gl-es/daily.rain.alternative.local.dialog b/locale/gl-es/daily.rain.alternative.local.dialog deleted file mode 100644 index 2c143c01..00000000 --- a/locale/gl-es/daily.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que unha alternativa á chuvia ocorrerá -Non, a previsión para o {day} require {condition} -o {day}, non hai previsión de chuvia, mais parece que haberá {condition} diff --git a/locale/gl-es/daily.rain.alternative.location.dialog b/locale/gl-es/daily.rain.alternative.location.dialog deleted file mode 100644 index 0b6eb58f..00000000 --- a/locale/gl-es/daily.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que unha alternativa á chuvia ocorrerá -Non, pero a previsión require {condition} en {location} {day} -o {day}, non hai previsión de chuvia en {location} mais parece que haberá {condition} diff --git a/locale/gl-es/daily.rain.not.expected.local.dialog b/locale/gl-es/daily.rain.not.expected.local.dialog deleted file mode 100644 index 8afd19d8..00000000 --- a/locale/gl-es/daily.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Cando o usuario pregunta se está chovendo mais ningunha chuvia ou alternativa está prevista -Ningunha chuvia está prevista {day} -Non debe chover {day} -Non vas precisar dun paraugas {day} diff --git a/locale/gl-es/daily.rain.not.expected.location.dialog b/locale/gl-es/daily.rain.not.expected.location.dialog deleted file mode 100644 index ed17800d..00000000 --- a/locale/gl-es/daily.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Cando o usuario pregunta se está chovendo mais ningunha chuvia ou alternativa está prevista -Non está prevista ninguha chuvia para {location} o {day} -{day}, non vai nevar en {location} -Non hai necesidade dun paraugas en {location} o {day} diff --git a/locale/gl-es/daily.snow.alternative.location.dialog b/locale/gl-es/daily.snow.alternative.location.dialog deleted file mode 100644 index 2c2ef207..00000000 --- a/locale/gl-es/daily.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando de que unha alternativa ao bo tempo vai ocorrer -Non, pero a previsión require {condition} {day} -{day} non hai previsión de neve mais as opcións son que será {condition} diff --git a/locale/gl-es/daily.snow.not.expected.local.dialog b/locale/gl-es/daily.snow.not.expected.local.dialog deleted file mode 100644 index 39631591..00000000 --- a/locale/gl-es/daily.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nevando mais ningunha neve ou alternativa está prevista -Non está prevista a neve {day} -Non vai nevar o {day} diff --git a/locale/gl-es/daily.snow.not.expected.location.dialog b/locale/gl-es/daily.snow.not.expected.location.dialog deleted file mode 100644 index 8e0f7939..00000000 --- a/locale/gl-es/daily.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Cando o usuario pregunta se está nevando mais ningunha neve ou alternativa está prevista -Non está prevista a neve en {location} o {day} -Non debería nevar en {location} o {day} diff --git a/locale/gl-es/daily.thunderstorm.alternative.local.dialog b/locale/gl-es/daily.thunderstorm.alternative.local.dialog deleted file mode 100644 index a0a1ac1d..00000000 --- a/locale/gl-es/daily.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que unha alternativa á chuvia ocorrerá -Non, a previsión para o {day} require {condition} -{day}, non hai previsión de tempestade, mais parece que haberá {condition} diff --git a/locale/gl-es/daily.thunderstorm.alternative.location.dialog b/locale/gl-es/daily.thunderstorm.alternative.location.dialog deleted file mode 100644 index 9eb25558..00000000 --- a/locale/gl-es/daily.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Non, pero a previsión require {condition} en {location} {day} -# Informando de que vai ocorrer unha alternativa ao bo tempo -o {day}, non hai previsión de tormenta en {location}, mais parece que haberá {condition} diff --git a/locale/gl-es/daily.thunderstorm.not.expected.local.dialog b/locale/gl-es/daily.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 6ec7062d..00000000 --- a/locale/gl-es/daily.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Cando o usuario pregunta se está chovendo mais ningunha chuvia ou alternativa está prevista -Non está previsto que neve o {day} -o {day}, non debería haber tempestade -Non debe haber tempestade o {day} diff --git a/locale/gl-es/daily.thunderstorm.not.expected.location.dialog b/locale/gl-es/daily.thunderstorm.not.expected.location.dialog deleted file mode 100644 index cd9f7708..00000000 --- a/locale/gl-es/daily.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Cando o usuario pregunta se está chovendo mais ningunha chuvia ou alternativa está prevista -Non está previsto ningún neboeiro en {location} o {day} -{day}, non debería nevar en {location} -Non debería haber treboadas o {day} en {location} diff --git a/locale/gl-es/do not know.dialog b/locale/gl-es/do not know.dialog deleted file mode 100644 index 44c84bca..00000000 --- a/locale/gl-es/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Temo que eu non saiba isto -Non teño esta información diff --git a/locale/gl-es/from.day.dialog b/locale/gl-es/from.day.dialog deleted file mode 100644 index 971c5767..00000000 --- a/locale/gl-es/from.day.dialog +++ /dev/null @@ -1 +0,0 @@ -Desde o {day} diff --git a/locale/gl-es/heavy.dialog b/locale/gl-es/heavy.dialog deleted file mode 100644 index e524be2f..00000000 --- a/locale/gl-es/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -pesado diff --git a/locale/gl-es/light.dialog b/locale/gl-es/light.dialog deleted file mode 100644 index 86fcb7d6..00000000 --- a/locale/gl-es/light.dialog +++ /dev/null @@ -1 +0,0 @@ -leve diff --git a/locale/gl-es/on.date.dialog b/locale/gl-es/on.date.dialog deleted file mode 100644 index c574d073..00000000 --- a/locale/gl-es/on.date.dialog +++ /dev/null @@ -1 +0,0 @@ -en diff --git a/locale/gl-es/on.dialog b/locale/gl-es/on.dialog deleted file mode 100644 index c574d073..00000000 --- a/locale/gl-es/on.dialog +++ /dev/null @@ -1 +0,0 @@ -en diff --git a/locale/gl-es/simple.temperature.intent b/locale/gl-es/simple.temperature.intent deleted file mode 100644 index 7d8f4cb4..00000000 --- a/locale/gl-es/simple.temperature.intent +++ /dev/null @@ -1 +0,0 @@ -temperatura diff --git a/locale/gl-es/sky is clear.future.dialog b/locale/gl-es/sky is clear.future.dialog deleted file mode 100644 index 969865c8..00000000 --- a/locale/gl-es/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -un ceo despexado diff --git a/locale/gl-es/sunrise.dialog b/locale/gl-es/sunrise.dialog deleted file mode 100644 index ad9b61ff..00000000 --- a/locale/gl-es/sunrise.dialog +++ /dev/null @@ -1,2 +0,0 @@ -o sol naceu ás {time} hoxe -o nacer do sol foi ás {time} hoxe diff --git a/locale/gl-es/sunset.dialog b/locale/gl-es/sunset.dialog deleted file mode 100644 index cebd1363..00000000 --- a/locale/gl-es/sunset.dialog +++ /dev/null @@ -1,3 +0,0 @@ -o sol vai poñerse hoxe ás {time} -o sol vai poñerse ás {time} hoxe -o solpor será ás {time} hoxe diff --git a/locale/gl-es/storm.dialog b/locale/gl-es/thunderstorm.dialog similarity index 100% rename from locale/gl-es/storm.dialog rename to locale/gl-es/thunderstorm.dialog diff --git a/locale/gl-es/tonight.local.weather.dialog b/locale/gl-es/tonight.local.weather.dialog deleted file mode 100644 index b2085f81..00000000 --- a/locale/gl-es/tonight.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Esta noite teremos {condition}, con temperaturas preto de {temp} -Esta noite teremos {condition} e ao redor de {temp} graos -Esta noite teremos {condition} e {temp} graos -Cerca de {temp} graos con {condition} esta noite diff --git a/locale/gl-es/weekly.condition.on.day.dialog b/locale/gl-es/weekly.condition.on.day.dialog deleted file mode 100644 index 5a1d1c07..00000000 --- a/locale/gl-es/weekly.condition.on.day.dialog +++ /dev/null @@ -1 +0,0 @@ -o {day} será {condition}, diff --git a/locale/gl-es/weekly.conditions.mostly.one.dialog b/locale/gl-es/weekly.conditions.mostly.one.dialog deleted file mode 100644 index 5d4c0182..00000000 --- a/locale/gl-es/weekly.conditions.mostly.one.dialog +++ /dev/null @@ -1 +0,0 @@ -será principalmente {condition}. diff --git a/locale/gl-es/weekly.conditions.seq.extra.dialog b/locale/gl-es/weekly.conditions.seq.extra.dialog deleted file mode 100644 index 7fc55f59..00000000 --- a/locale/gl-es/weekly.conditions.seq.extra.dialog +++ /dev/null @@ -1,2 +0,0 @@ -parece que tamén haberá -tamén será diff --git a/locale/gl-es/weekly.conditions.seq.period.dialog b/locale/gl-es/weekly.conditions.seq.period.dialog deleted file mode 100644 index 667d1e84..00000000 --- a/locale/gl-es/weekly.conditions.seq.period.dialog +++ /dev/null @@ -1 +0,0 @@ -de {from} ata {to} diff --git a/locale/gl-es/weekly.conditions.seq.start.dialog b/locale/gl-es/weekly.conditions.seq.start.dialog deleted file mode 100644 index 324e1d91..00000000 --- a/locale/gl-es/weekly.conditions.seq.start.dialog +++ /dev/null @@ -1 +0,0 @@ -será {condition} diff --git a/locale/gl-es/weekly.conditions.some.days.dialog b/locale/gl-es/weekly.conditions.some.days.dialog deleted file mode 100644 index ebf61df2..00000000 --- a/locale/gl-es/weekly.conditions.some.days.dialog +++ /dev/null @@ -1 +0,0 @@ -Será {condition} algúns días. diff --git a/locale/gl-es/weekly.temp.range.dialog b/locale/gl-es/weekly.temperature.dialog similarity index 100% rename from locale/gl-es/weekly.temp.range.dialog rename to locale/gl-es/weekly.temperature.dialog diff --git a/locale/gl-es/what.is.multi.day.forecast.intent b/locale/gl-es/what.is.multi.day.forecast.intent deleted file mode 100644 index 693ccfb9..00000000 --- a/locale/gl-es/what.is.multi.day.forecast.intent +++ /dev/null @@ -1,4 +0,0 @@ -o tempo (nos|para os) próximos {num} días -como será o tempo nos próximos {num} días -como será o tempo nos próximos {num} días -cal é a previsión do tempo (nos|para os) próximos {num} días diff --git a/locale/it-it/ClearAlternatives.voc b/locale/it-it/ClearAlternatives.voc deleted file mode 100644 index 388d88cd..00000000 --- a/locale/it-it/ClearAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternative simili a tempo sereno -(nebbia|foschia|nuvole|nuvolo) diff --git a/locale/it-it/CloudsAlternatives.voc b/locale/it-it/CloudsAlternatives.voc deleted file mode 100644 index c2042ab4..00000000 --- a/locale/it-it/CloudsAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternative simili a tempo nuvoloso -(chiaro|umido|nebbia|pioggia|pioggia leggera) diff --git a/locale/it-it/FogAlternatives.voc b/locale/it-it/FogAlternatives.voc deleted file mode 100644 index 0ec7481e..00000000 --- a/locale/it-it/FogAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives to foggy weather -(sereno|nuvole|nube|parzialmente nuvoloso) diff --git a/locale/it-it/RainAlternatives.voc b/locale/it-it/RainAlternatives.voc deleted file mode 100644 index 059c6f98..00000000 --- a/locale/it-it/RainAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similar a pioggia -(neve|neve leggera|nevischio|nebbia|nebbioso) diff --git a/locale/it-it/SnowAlternatives.voc b/locale/it-it/SnowAlternatives.voc deleted file mode 100644 index e47c6f94..00000000 --- a/locale/it-it/SnowAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Conditions similar to neve -(pioggia|pioggia leggera) diff --git a/locale/it-it/current.clear.alternative.local.dialog b/locale/it-it/current.clear.alternative.local.dialog deleted file mode 100644 index aa71efc2..00000000 --- a/locale/it-it/current.clear.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, la previsione indica {condition} -Sembra che sarà {condition} -Probabilmente sarà {condition} diff --git a/locale/it-it/current.clear.alternative.location.dialog b/locale/it-it/current.clear.alternative.location.dialog deleted file mode 100644 index 708d8ccc..00000000 --- a/locale/it-it/current.clear.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, la previsione indica {condition} a {location} -Sembra che a {location} ci sarà {condition} -Sì, sarà {condition} a {location} diff --git a/locale/it-it/current.clear.not.expected.location.dialog b/locale/it-it/current.clear.not.expected.location.dialog deleted file mode 100644 index 5ee26992..00000000 --- a/locale/it-it/current.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's clear but it's not -Mi dispiace, sembra che sarà {condition} -Molto probabilmente il cielo non sarà sereno diff --git a/locale/it-it/current.clouds.alternative.local.dialog b/locale/it-it/current.clouds.alternative.local.dialog deleted file mode 100644 index d1dca18c..00000000 --- a/locale/it-it/current.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, la previsione indica {condition} -Probabilmente non sarà nuvoloso, sembra che ci sarà {condition} -Non sembra così, è probabile che sarà {condition} diff --git a/locale/it-it/current.clouds.alternative.location.dialog b/locale/it-it/current.clouds.alternative.location.dialog deleted file mode 100644 index d1dca18c..00000000 --- a/locale/it-it/current.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, la previsione indica {condition} -Probabilmente non sarà nuvoloso, sembra che ci sarà {condition} -Non sembra così, è probabile che sarà {condition} diff --git a/locale/it-it/current.clouds.not.expected.location.dialog b/locale/it-it/current.clouds.not.expected.location.dialog deleted file mode 100644 index 19000698..00000000 --- a/locale/it-it/current.clouds.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's cloudy but it's not -Molto probabilmente non pioverà -Oggi non sembra che sia nuvoloso diff --git a/locale/it-it/current.fog.alternative.local.dialog b/locale/it-it/current.fog.alternative.local.dialog deleted file mode 100644 index 6fff95a5..00000000 --- a/locale/it-it/current.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -No, la previsione indica {condition} -# Informing that an alternative to fog will occur -Sembra che sarà {condition} -Probabilmente sarà {condition} diff --git a/locale/it-it/current.fog.alternative.location.dialog b/locale/it-it/current.fog.alternative.location.dialog deleted file mode 100644 index a70a797e..00000000 --- a/locale/it-it/current.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -No, la previsione indica {condition} a {location} -Sembra che a {location} ci sarà {condition} -Sì, sarà {condition} a {location} -# Informing that an alternative to fog will occur at a location diff --git a/locale/it-it/current.fog.not.expected.local.dialog b/locale/it-it/current.fog.not.expected.local.dialog deleted file mode 100644 index 2fc152cc..00000000 --- a/locale/it-it/current.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -Sembra che la visibilità sarà buona -Per oggi non è prevista alcuna nebbia diff --git a/locale/it-it/current.fog.not.expected.location.dialog b/locale/it-it/current.fog.not.expected.location.dialog deleted file mode 100644 index 9d80a6d5..00000000 --- a/locale/it-it/current.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -Sembra che a {location} le condizioni di visibilità saranno buone -Oggi a {location} non si prevede nebbia diff --git a/locale/it-it/current.rain.alternative.local.dialog b/locale/it-it/current.rain.alternative.local.dialog deleted file mode 100644 index d0c6837a..00000000 --- a/locale/it-it/current.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No, ma la previsione indica {condition} -# Informa che si verificherà un'alternativa alla pioggia (come neve o nebbia) -Non è prevista pioggia per oggi ma sembra che sarà {condition} diff --git a/locale/it-it/current.rain.alternative.location.dialog b/locale/it-it/current.rain.alternative.location.dialog deleted file mode 100644 index d85055c1..00000000 --- a/locale/it-it/current.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No, la previsione a {location} indica {condition} -# Informa che si verificherà un'alternativa alla pioggia (come neve o nebbia) -Per oggi a {location} non è prevista pioggia, ma sembra che ci sarà {condition} diff --git a/locale/it-it/current.rain.not.expected.local.dialog b/locale/it-it/current.rain.not.expected.local.dialog deleted file mode 100644 index 6c3d5367..00000000 --- a/locale/it-it/current.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Non c'è previsione di pioggia -Non c'è bisogno dell'ombrello -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -Molto probabilmente non pioverà diff --git a/locale/it-it/current.rain.not.expected.location.dialog b/locale/it-it/current.rain.not.expected.location.dialog deleted file mode 100644 index 47760995..00000000 --- a/locale/it-it/current.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Non c'è bisogno di ombrelli a {location} -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -A {location} non si prevede pioggia -A {location} probabilmente non pioverà diff --git a/locale/it-it/current.snow.alternative.local.dialog b/locale/it-it/current.snow.alternative.local.dialog deleted file mode 100644 index 1ee8df70..00000000 --- a/locale/it-it/current.snow.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No, ma la previsione indica {condition} -# Informing that an alternative to snowing will occur -Non è prevista neve per oggi, ma è probabile che sarà {condition} diff --git a/locale/it-it/current.snow.alternative.location.dialog b/locale/it-it/current.snow.alternative.location.dialog deleted file mode 100644 index 8fea273f..00000000 --- a/locale/it-it/current.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No, la previsione a {location} indica {condition} -# Informing that an alternative to snowing will occur -A {location} per oggi non è prevista neve, ma è probabile che sarà {condition} diff --git a/locale/it-it/current.snow.not.expected.local.dialog b/locale/it-it/current.snow.not.expected.local.dialog deleted file mode 100644 index a62eaceb..00000000 --- a/locale/it-it/current.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se nevica ma non viene proiettata neve o alternativa -Non c'è previsione di neve -Non nevicherà diff --git a/locale/it-it/current.snow.not.expected.location.dialog b/locale/it-it/current.snow.not.expected.location.dialog deleted file mode 100644 index eab8347e..00000000 --- a/locale/it-it/current.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se nevica ma non viene proiettata neve o alternativa -A {location} non pioverà -A {location} non si prevede neve diff --git a/locale/it-it/daily.clear.alternative.local.dialog b/locale/it-it/daily.clear.alternative.local.dialog deleted file mode 100644 index 2bd64a46..00000000 --- a/locale/it-it/daily.clear.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -No, ma la previsione indica {condition} -Per {day} non è prevista pioggia, ma sembra che ci sarà {condition} diff --git a/locale/it-it/daily.clear.alternative.location.dialog b/locale/it-it/daily.clear.alternative.location.dialog deleted file mode 100644 index 4e432239..00000000 --- a/locale/it-it/daily.clear.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -No, la previsione a {location} indica {condition} -Per {day} non è prevista pioggia a {location}, ma sembra che ci sarà {condition} diff --git a/locale/it-it/daily.clear.not.expected.local.dialog b/locale/it-it/daily.clear.not.expected.local.dialog deleted file mode 100644 index 0b7caaef..00000000 --- a/locale/it-it/daily.clear.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -Somo spiacente, la previsione non prevede condizioni serene -{day}, molto probabilmente il cielo non sarà sereno diff --git a/locale/it-it/daily.clear.not.expected.location.dialog b/locale/it-it/daily.clear.not.expected.location.dialog deleted file mode 100644 index b61c7164..00000000 --- a/locale/it-it/daily.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -Sono spiacente, a {location} non si prevede tempo sereno -{day}, a {location} molto probabilmente il cielo non sarà sereno diff --git a/locale/it-it/daily.clouds.alternative.local.dialog b/locale/it-it/daily.clouds.alternative.local.dialog deleted file mode 100644 index d1dca18c..00000000 --- a/locale/it-it/daily.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, la previsione indica {condition} -Probabilmente non sarà nuvoloso, sembra che ci sarà {condition} -Non sembra così, è probabile che sarà {condition} diff --git a/locale/it-it/daily.clouds.alternative.location.dialog b/locale/it-it/daily.clouds.alternative.location.dialog deleted file mode 100644 index 52a3c7d3..00000000 --- a/locale/it-it/daily.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -No, la previsione indica {condition} a {location} -Probabilmente non sarà nuvoloso a {location}, sembra che ci sarà {condition} -Non sembra così, è probabile a {location} avremo {condition} diff --git a/locale/it-it/daily.clouds.not.expected.local.dialog b/locale/it-it/daily.clouds.not.expected.local.dialog deleted file mode 100644 index 0d34307b..00000000 --- a/locale/it-it/daily.clouds.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's cloudy but it's not -Non sembra che sarà nuvoloso -Le previsioni dicono che il cielo sarà sereno -Aspettati un cielo sereno -Molto probabilmente non pioverà diff --git a/locale/it-it/daily.clouds.not.expected.location.dialog b/locale/it-it/daily.clouds.not.expected.location.dialog deleted file mode 100644 index a47d6111..00000000 --- a/locale/it-it/daily.clouds.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's cloudy but it's not -A {location} non sembra che sarà nuvoloso. -A {location} il meteo dice che il cielo sarà sereno -A {location} aspettati un cielo sereno -A {location} probabilmente non sarà nuvoloso diff --git a/locale/it-it/daily.fog.alternative.local.dialog b/locale/it-it/daily.fog.alternative.local.dialog deleted file mode 100644 index 6fff95a5..00000000 --- a/locale/it-it/daily.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -No, la previsione indica {condition} -# Informing that an alternative to fog will occur -Sembra che sarà {condition} -Probabilmente sarà {condition} diff --git a/locale/it-it/daily.fog.alternative.location.dialog b/locale/it-it/daily.fog.alternative.location.dialog deleted file mode 100644 index 887a9ad1..00000000 --- a/locale/it-it/daily.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Sembra che a {location} ci sarà {condition} -Sì, sarà {condition} a {location} -# Informing that an alternative to fog will occur -No, a {location} si prevede {condition} diff --git a/locale/it-it/daily.fog.not.expected.local.dialog b/locale/it-it/daily.fog.not.expected.local.dialog deleted file mode 100644 index 1475bdd4..00000000 --- a/locale/it-it/daily.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -{day} le condizioni di visibilità dovrebbero essere buone -Per {day} non è prevista alcuna nebbia diff --git a/locale/it-it/daily.fog.not.expected.location.dialog b/locale/it-it/daily.fog.not.expected.location.dialog deleted file mode 100644 index d7f0e30e..00000000 --- a/locale/it-it/daily.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -{day} a {location} le condizioni di visibilità dovrebbero essere buone -A {location}, {day} non è prevista nebbia diff --git a/locale/it-it/daily.rain.alternative.local.dialog b/locale/it-it/daily.rain.alternative.local.dialog deleted file mode 100644 index 2bd64a46..00000000 --- a/locale/it-it/daily.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -No, ma la previsione indica {condition} -Per {day} non è prevista pioggia, ma sembra che ci sarà {condition} diff --git a/locale/it-it/daily.rain.alternative.location.dialog b/locale/it-it/daily.rain.alternative.location.dialog deleted file mode 100644 index 4e432239..00000000 --- a/locale/it-it/daily.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -No, la previsione a {location} indica {condition} -Per {day} non è prevista pioggia a {location}, ma sembra che ci sarà {condition} diff --git a/locale/it-it/daily.rain.not.expected.local.dialog b/locale/it-it/daily.rain.not.expected.local.dialog deleted file mode 100644 index 7717cb5b..00000000 --- a/locale/it-it/daily.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -Non c'è previsione di pioggia -{day}, molto probabilmente non pioverà -Non c'è bisogno dell'ombrello diff --git a/locale/it-it/daily.rain.not.expected.location.dialog b/locale/it-it/daily.rain.not.expected.location.dialog deleted file mode 100644 index 07b71321..00000000 --- a/locale/it-it/daily.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando l'utente chiede se piove ma non viene proiettata neve o alternativa -A {location}, {day} non è prevista pioggia -A {location}, molto probabilmente {day} non pioverà -Non c'è bisogno di ombrelli a {location} diff --git a/locale/it-it/daily.snow.alternative.location.dialog b/locale/it-it/daily.snow.alternative.location.dialog deleted file mode 100644 index a5b15b43..00000000 --- a/locale/it-it/daily.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -No, ma la previsione indica {condition} -# Informing that an alternative to snowing will occur -Non è prevista neve per {day}, ma è probabile che sarà {condition} diff --git a/locale/it-it/daily.snow.not.expected.local.dialog b/locale/it-it/daily.snow.not.expected.local.dialog deleted file mode 100644 index a62eaceb..00000000 --- a/locale/it-it/daily.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se nevica ma non viene proiettata neve o alternativa -Non c'è previsione di neve -Non nevicherà diff --git a/locale/it-it/daily.snow.not.expected.location.dialog b/locale/it-it/daily.snow.not.expected.location.dialog deleted file mode 100644 index 457e7606..00000000 --- a/locale/it-it/daily.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando l'utente chiede se nevica ma non viene proiettata neve o alternativa -A {location} per {day} non è prevista neve -A {location} non pioverà diff --git a/locale/it-it/do not know.dialog b/locale/it-it/do not know.dialog deleted file mode 100644 index f07fc380..00000000 --- a/locale/it-it/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Purtroppo non lo so -Non ho questa informazione diff --git a/locale/it-it/heavy.dialog b/locale/it-it/heavy.dialog deleted file mode 100644 index 5c0ee68c..00000000 --- a/locale/it-it/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -pesante diff --git a/locale/it-it/light.dialog b/locale/it-it/light.dialog deleted file mode 100644 index d52ad3d6..00000000 --- a/locale/it-it/light.dialog +++ /dev/null @@ -1 +0,0 @@ -luminoso diff --git a/locale/it-it/simple.temperature.intent b/locale/it-it/simple.temperature.intent deleted file mode 100644 index 7d8f4cb4..00000000 --- a/locale/it-it/simple.temperature.intent +++ /dev/null @@ -1 +0,0 @@ -temperatura diff --git a/locale/it-it/sky is clear.future.dialog b/locale/it-it/sky is clear.future.dialog deleted file mode 100644 index b719f7bd..00000000 --- a/locale/it-it/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -chiaro diff --git a/locale/it-it/what.is.multi.day.forecast.intent b/locale/it-it/what.is.multi.day.forecast.intent deleted file mode 100644 index 32f21341..00000000 --- a/locale/it-it/what.is.multi.day.forecast.intent +++ /dev/null @@ -1,2 +0,0 @@ -come sarà il tempo (per i|nei) prossimi {num} giorni? -previsioni (per i|nei) prossimi {num} giorni? diff --git a/locale/nl-nl/do not know.dialog b/locale/nl-nl/do not know.dialog deleted file mode 100644 index 0b4a6501..00000000 --- a/locale/nl-nl/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Ik ben bang dat ik dat niet weet -Die informatie heb ik niet diff --git a/locale/nl-nl/heavy.dialog b/locale/nl-nl/heavy.dialog deleted file mode 100644 index 2522541d..00000000 --- a/locale/nl-nl/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -zware diff --git a/locale/nl-nl/light.dialog b/locale/nl-nl/light.dialog deleted file mode 100644 index 554fef73..00000000 --- a/locale/nl-nl/light.dialog +++ /dev/null @@ -1 +0,0 @@ -lichte diff --git a/locale/nl-nl/sky is clear.future.dialog b/locale/nl-nl/sky is clear.future.dialog deleted file mode 100644 index baf7e603..00000000 --- a/locale/nl-nl/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -helder diff --git a/locale/pt-br/ClearAlternatives.voc b/locale/pt-br/ClearAlternatives.voc deleted file mode 100644 index b104b96c..00000000 --- a/locale/pt-br/ClearAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas similares a tempo firme -(nebuloso|nevoeiro|névoa|nuvens|nuvem) diff --git a/locale/pt-br/CloudsAlternatives.voc b/locale/pt-br/CloudsAlternatives.voc deleted file mode 100644 index 365e01e7..00000000 --- a/locale/pt-br/CloudsAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas semelhantes ao tempo nublado -(claro|neblina|nevoeiro|chuva|chuva fraca) diff --git a/locale/pt-br/FogAlternatives.voc b/locale/pt-br/FogAlternatives.voc deleted file mode 100644 index a05fa844..00000000 --- a/locale/pt-br/FogAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas para o tempo nublado -(limpo|nuvens|nublado|parcialmente nublado) diff --git a/locale/pt-br/RainAlternatives.voc b/locale/pt-br/RainAlternatives.voc deleted file mode 100644 index c459c30e..00000000 --- a/locale/pt-br/RainAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas similares à chuva -(neve|neve leve|granizo|névoa|neblina) diff --git a/locale/pt-br/SnowAlternatives.voc b/locale/pt-br/SnowAlternatives.voc deleted file mode 100644 index 04d320f5..00000000 --- a/locale/pt-br/SnowAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Condições similares à neve -(chuva|chuva leve) diff --git a/locale/pt-br/ThunderstormAlternatives.voc b/locale/pt-br/ThunderstormAlternatives.voc deleted file mode 100644 index d796b6cb..00000000 --- a/locale/pt-br/ThunderstormAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativas semelhantes ao tempo tempestuoso -(chuvisco|chuva|chuva fraca|neve|neve fraca|granizo|nevoeiro|névoa|névoa|nuvens|nuvem|parcialmente nublado) diff --git a/locale/pt-br/and.dialog b/locale/pt-br/and.dialog new file mode 100644 index 00000000..b18c97b5 --- /dev/null +++ b/locale/pt-br/and.dialog @@ -0,0 +1 @@ +, e diff --git a/locale/pt-br/clear.future.dialog b/locale/pt-br/clear.future.dialog deleted file mode 100644 index b657c448..00000000 --- a/locale/pt-br/clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -um céu limpo diff --git a/locale/pt-br/condition.category.value b/locale/pt-br/condition.category.value deleted file mode 100644 index 3db11587..00000000 --- a/locale/pt-br/condition.category.value +++ /dev/null @@ -1,15 +0,0 @@ -nuvens,nublado -limpo,um céu limpo -Tempestades com trovões, tempestades -Chuviscos, chuviscando -chuva|chovendo -neve|nevando -Névoa, enevoado -Fumaça, fumacento -neblina,nublado -Poeira, empoeirado -Nevoeiro, nevoento -Areia, poeirento -Cinza, nublado com possível cinza vulcânica -Borrasca, tempestuoso -Tornado, tempestuoso com possibilidade de tornado diff --git a/locale/pt-br/current.clear.alternative.local.dialog b/locale/pt-br/current.clear.alternative.local.dialog deleted file mode 100644 index e1a226d0..00000000 --- a/locale/pt-br/current.clear.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que uma alternativa para limpar o tempo vai ocorrer -Não, a previsão indica {condition} hoje -Parece que haverá {condition} hoje -As chances são que fará {condition} hoje diff --git a/locale/pt-br/current.clear.alternative.location.dialog b/locale/pt-br/current.clear.alternative.location.dialog deleted file mode 100644 index 6b61e56c..00000000 --- a/locale/pt-br/current.clear.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que uma alternativa para limpar o tempo vai ocorrer -Não, a previsão indica {condition} em {location} -Parece que haverá {condition} em {location} -As chances são que vai estar {condition} em {location} diff --git a/locale/pt-br/current.clear.not.expected.location.dialog b/locale/pt-br/current.clear.not.expected.location.dialog deleted file mode 100644 index 3a450cbc..00000000 --- a/locale/pt-br/current.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta o tempo está claro, mas não está -Desculpe, parece que vai ocorrer {condition} -Não é provável que faça tempo bom diff --git a/locale/pt-br/current.clouds.alternative.local.dialog b/locale/pt-br/current.clouds.alternative.local.dialog deleted file mode 100644 index d6ed0986..00000000 --- a/locale/pt-br/current.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Não, a previsão indica {condition} hoje -# Informando que uma alternativa para tempo nublado vai ocorrer -Provavelmente não será nublado, parece que será {condition} hoje -Não parece assim, as chances são de que esteja {condition} hoje diff --git a/locale/pt-br/current.clouds.alternative.location.dialog b/locale/pt-br/current.clouds.alternative.location.dialog deleted file mode 100644 index 9031cc47..00000000 --- a/locale/pt-br/current.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que uma alternativa para limpar o tempo vai ocorrer -Não, a previsão indica {condition} -Provavelmente não estará nublado, parece que estará {condition} -Parece que não, as chances são de que esteja {condition} diff --git a/locale/pt-br/current.clouds.not.expected.local.dialog b/locale/pt-br/current.clouds.not.expected.local.dialog deleted file mode 100644 index a4f139a0..00000000 --- a/locale/pt-br/current.clouds.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está chovendo mas não há previsão de nuvens ou alternativa -Não há previsão de nuvens para hoje -Não deve estar nublado hoje diff --git a/locale/pt-br/current.clouds.not.expected.location.dialog b/locale/pt-br/current.clouds.not.expected.location.dialog deleted file mode 100644 index c6561514..00000000 --- a/locale/pt-br/current.clouds.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nublado mas não está -Não parece estar nublado hoje -Não deve estar nublado diff --git a/locale/pt-br/current.fog.alternative.local.dialog b/locale/pt-br/current.fog.alternative.local.dialog deleted file mode 100644 index 620d0c19..00000000 --- a/locale/pt-br/current.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que uma alternativa ao nevoeiro vai ocorrer -Não, a previsão indica {condition} hoje -Parece que haverá {condition} hoje -As chances são que fará {condition} hoje diff --git a/locale/pt-br/current.fog.alternative.location.dialog b/locale/pt-br/current.fog.alternative.location.dialog deleted file mode 100644 index b6078143..00000000 --- a/locale/pt-br/current.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Não, a previsão indica {condition} em {location} -As chances são que vai estar {condition} em {location} -# Informando que uma alternativa ao nevoeiro ocorrerá em um local -Parece que haverá {condition} em {location} diff --git a/locale/pt-br/current.fog.not.expected.local.dialog b/locale/pt-br/current.fog.not.expected.local.dialog deleted file mode 100644 index aceb1200..00000000 --- a/locale/pt-br/current.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nublado mas nenhuma neve ou alternativa é feita como previsão -Parece que a visibilidade será boa hoje -Não há previsão de nevoeiro para hoje diff --git a/locale/pt-br/current.fog.not.expected.location.dialog b/locale/pt-br/current.fog.not.expected.location.dialog deleted file mode 100644 index be956b4f..00000000 --- a/locale/pt-br/current.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nublado mas nenhuma neve ou alternativa é feita como previsão -Parece que a visibilidade será boa em {location} -Nenhum nevoeiro está previsto para {location} hoje diff --git a/locale/pt-br/current.rain.alternative.local.dialog b/locale/pt-br/current.rain.alternative.local.dialog deleted file mode 100644 index bf20e061..00000000 --- a/locale/pt-br/current.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa para chuva vai acontecer (como neve ou nevoeiro) -Não, mas a previsão indica {condition} hoje -Não há previsão de chuva para hoje, mas parece que haverá {condition} diff --git a/locale/pt-br/current.rain.alternative.location.dialog b/locale/pt-br/current.rain.alternative.location.dialog deleted file mode 100644 index f1c54f8f..00000000 --- a/locale/pt-br/current.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa para chuva vai acontecer (como neve ou nevoeiro) -Não, mas a previsão indica {condition} em {location} -Não há previsão de chuva para hoje em {location}, mas parece que haverá {condition} diff --git a/locale/pt-br/current.rain.not.expected.local.dialog b/locale/pt-br/current.rain.not.expected.local.dialog deleted file mode 100644 index 5c6175d6..00000000 --- a/locale/pt-br/current.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando o usuário pergunta se está chovendo mas nenhuma chuva ou alternativa é prevista -Nenhuma chuva está prevista para hoje -Não deve chover hoje -Não há necessidade de um guarda-chuva para hoje diff --git a/locale/pt-br/current.rain.not.expected.location.dialog b/locale/pt-br/current.rain.not.expected.location.dialog deleted file mode 100644 index 6d49f704..00000000 --- a/locale/pt-br/current.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando o usuário pergunta se está chovendo mas nenhuma chuva ou alternativa é prevista -Nenhuma chuva está prevista para {location} -Não deve estar chovendo em {location} -Não há necessidade para guarda-chuva em {location} diff --git a/locale/pt-br/current.snow.alternative.local.dialog b/locale/pt-br/current.snow.alternative.local.dialog deleted file mode 100644 index eb7f78ee..00000000 --- a/locale/pt-br/current.snow.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa para neve vai ocorrer -Não, mas a previsão indica {condition} hoje -Não há previsão de neve para hoje, mas as chances são de {condition} diff --git a/locale/pt-br/current.snow.alternative.location.dialog b/locale/pt-br/current.snow.alternative.location.dialog deleted file mode 100644 index ee03d763..00000000 --- a/locale/pt-br/current.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa para neve vai ocorrer -Não, mas a previsão indica {condition} em {location} -Não há previsão de neve para hoje, mas as chances são de que haja {condition} em {location} diff --git a/locale/pt-br/current.snow.not.expected.local.dialog b/locale/pt-br/current.snow.not.expected.local.dialog deleted file mode 100644 index d7733ed1..00000000 --- a/locale/pt-br/current.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nevando mas nenhuma neve ou alternativa é prevista -Nenhuma neve é prevista para hoje -Não deve nevar hoje diff --git a/locale/pt-br/current.snow.not.expected.location.dialog b/locale/pt-br/current.snow.not.expected.location.dialog deleted file mode 100644 index e8d651b8..00000000 --- a/locale/pt-br/current.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nevando mas nenhuma neve ou alternativa é prevista -Nenhuma neve está prevista para {location} -Não vai nevar em {location} diff --git a/locale/pt-br/current.thunderstorm.alternative.local.dialog b/locale/pt-br/current.thunderstorm.alternative.local.dialog deleted file mode 100644 index b4f3015b..00000000 --- a/locale/pt-br/current.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Não, mas a previsão indica {condition} hoje -# Informando que uma alternativa para tempestade vai acontecer (como neve ou nevoeiro) -Não há previsão de tempestades para hoje, mas parece que haverá {condition} diff --git a/locale/pt-br/current.thunderstorm.alternative.location.dialog b/locale/pt-br/current.thunderstorm.alternative.location.dialog deleted file mode 100644 index 92e1ed4a..00000000 --- a/locale/pt-br/current.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Não, mas a previsão indica {condition} em {location} -# Informando que uma alternativa para chuva forte vai acontecer (como neve ou nevoeiro) -Não há previsão de chuva forte para hoje em {location}, mas parece que haverá {condition} diff --git a/locale/pt-br/current.thunderstorm.not.expected.local.dialog b/locale/pt-br/current.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 51920acc..00000000 --- a/locale/pt-br/current.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# Quando o usuário pergunta se está chovendo mas nenhuma chuva ou alternativa é prevista -Nenhuma neve é prevista para hoje -Não deve haver tempestade hoje -Não deve haver nenhuma tempestade hoje -Hoje não é provável que haja trovoadas -Tempestades não são prováveis para hoje diff --git a/locale/pt-br/current.thunderstorm.not.expected.location.dialog b/locale/pt-br/current.thunderstorm.not.expected.location.dialog deleted file mode 100644 index de22a04a..00000000 --- a/locale/pt-br/current.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando o usuário pergunta se está chovendo forte mas nenhuma chuva forte ou alternativa é prevista -Nenhuma tempestade está prevista para {location} -Não vai haver tempestades em {location} -Não vai haver tempestades em {location} diff --git a/locale/pt-br/daily.clear.alternative.local.dialog b/locale/pt-br/daily.clear.alternative.local.dialog deleted file mode 100644 index 75e3067d..00000000 --- a/locale/pt-br/daily.clear.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa para limpar o tempo vai ocorrer -Não, a previsão para {day} indica {condition} -{day}, parece que haverá {condition} diff --git a/locale/pt-br/daily.clear.alternative.location.dialog b/locale/pt-br/daily.clear.alternative.location.dialog deleted file mode 100644 index b6d463aa..00000000 --- a/locale/pt-br/daily.clear.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa à chuva ocorrerá -Não, mas a previsão indica {condition} em {location} {day} -No {day}, não há previsão de chuva para {location}, mas parece que haverá {condition} diff --git a/locale/pt-br/daily.clear.not.expected.local.dialog b/locale/pt-br/daily.clear.not.expected.local.dialog deleted file mode 100644 index 750c6ab5..00000000 --- a/locale/pt-br/daily.clear.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se o céu está claro mas uma previsão alternativa é feita -Desculpe, a previsão não prevê condições de céu claro {day} -{day}, não é provável que o tempo esteja bom. diff --git a/locale/pt-br/daily.clear.not.expected.location.dialog b/locale/pt-br/daily.clear.not.expected.location.dialog deleted file mode 100644 index a1cd6478..00000000 --- a/locale/pt-br/daily.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se o céu está claro mas uma previsão alternativa é feita -Desculpe, a previsão não indica condições de céu claro para {location}{day} -{day}, é provável que o tempo não esteja bom em {location} diff --git a/locale/pt-br/daily.clouds.alternative.local.dialog b/locale/pt-br/daily.clouds.alternative.local.dialog deleted file mode 100644 index 99641ed7..00000000 --- a/locale/pt-br/daily.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que uma alternativa para limpar o tempo vai ocorrer -Não, a previsão para {day} indica {condition} -Provavelmente não estará nublado, parece que {day} estará {condition} -Parece que não, as chances são de que {day} esteja {condition} diff --git a/locale/pt-br/daily.clouds.alternative.location.dialog b/locale/pt-br/daily.clouds.alternative.location.dialog deleted file mode 100644 index 501c0696..00000000 --- a/locale/pt-br/daily.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que uma alternativa para limpar o tempo vai ocorrer -# Não, a previsão indica {condition} em {location} {day} -# Provavelmente não estará nublado {day} em {location}, parece que estará {condition} -Parece que não, as chances são de que em {location} haverá {condition} {day} diff --git a/locale/pt-br/daily.clouds.not.expected.local.dialog b/locale/pt-br/daily.clouds.not.expected.local.dialog deleted file mode 100644 index dfb3ef1c..00000000 --- a/locale/pt-br/daily.clouds.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Quando o usuário pergunta se está nublado mas não está -Não parece provável que vá estar nublado {day} -Está previsto céu claro {day} -É esperado céu claro {day} -Não deve estar nublado {day} diff --git a/locale/pt-br/daily.clouds.not.expected.location.dialog b/locale/pt-br/daily.clouds.not.expected.location.dialog deleted file mode 100644 index 5e289e8b..00000000 --- a/locale/pt-br/daily.clouds.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# Quando o usuário pergunta se está nublado mas não está -Não parece provável que vá estar nublado em {location}{day} -Céu claro está previsto em {location} {day} -É esperado céu claro em {location} {day} -Não vai nevar em {location} {day} diff --git a/locale/pt-br/daily.fog.alternative.local.dialog b/locale/pt-br/daily.fog.alternative.local.dialog deleted file mode 100644 index 0bb4abe6..00000000 --- a/locale/pt-br/daily.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que uma alternativa ao nevoeiro vai ocorrer -Não, a previsão para {day} indica {condition} -Parece que {day} teremos {condition} -Chances são de que fará {condition} {day} diff --git a/locale/pt-br/daily.fog.alternative.location.dialog b/locale/pt-br/daily.fog.alternative.location.dialog deleted file mode 100644 index ffc2cd26..00000000 --- a/locale/pt-br/daily.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informando que uma alternativa ao nevoeiro vai ocorrer -Não, a previsão para {location} {day} é de {condition} -Parece que haverá {condition} em {location} {day} -Chances são de que vai estar {condition} em {location} {day} diff --git a/locale/pt-br/daily.fog.not.expected.local.dialog b/locale/pt-br/daily.fog.not.expected.local.dialog deleted file mode 100644 index 9d6163f1..00000000 --- a/locale/pt-br/daily.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nublado mas nenhuma neve ou alternativa é feita como previsão -{day} a visibilidade deve estar boa -Nenhum nevoeiro está previsto para {day} diff --git a/locale/pt-br/daily.fog.not.expected.location.dialog b/locale/pt-br/daily.fog.not.expected.location.dialog deleted file mode 100644 index 52508cf0..00000000 --- a/locale/pt-br/daily.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nublado mas nenhuma neve ou alternativa é feita como previsão -{day} a visibilidade deve estar boa em {location} -Nenhum nevoeiro está previsto para {day} em {location} diff --git a/locale/pt-br/daily.rain.alternative.local.dialog b/locale/pt-br/daily.rain.alternative.local.dialog deleted file mode 100644 index 6ff6a55c..00000000 --- a/locale/pt-br/daily.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa à chuva ocorrerá -Não, mas a previsão indica {condition} {day} -{day}, não há previsão de chuva, mas parece que haverá {condition} diff --git a/locale/pt-br/daily.rain.alternative.location.dialog b/locale/pt-br/daily.rain.alternative.location.dialog deleted file mode 100644 index b2ce3400..00000000 --- a/locale/pt-br/daily.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa à chuva ocorrerá -Não, mas a previsão indica {condition} em {location} {day} -{day}, não há previsão de chuva para {location}, mas parece que haverá {condition} diff --git a/locale/pt-br/daily.rain.not.expected.local.dialog b/locale/pt-br/daily.rain.not.expected.local.dialog deleted file mode 100644 index 22b17dca..00000000 --- a/locale/pt-br/daily.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando o usuário pergunta se está chovendo mas nenhuma chuva ou alternativa é prevista -Nenhuma chuva está prevista {day} -Não deve chover {day} -Você não vai precisar de um guarda-chuva {day} diff --git a/locale/pt-br/daily.rain.not.expected.location.dialog b/locale/pt-br/daily.rain.not.expected.location.dialog deleted file mode 100644 index 8b6db478..00000000 --- a/locale/pt-br/daily.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando o usuário pergunta se está chovendo mas nenhuma chuva ou alternativa é prevista -Nenhuma chuva está prevista para {location} {day} -{day}, não vai nevar em {location} -Não há necessidade para guarda-chuva em {location} {day} diff --git a/locale/pt-br/daily.snow.alternative.location.dialog b/locale/pt-br/daily.snow.alternative.location.dialog deleted file mode 100644 index 0de48735..00000000 --- a/locale/pt-br/daily.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa para neve vai ocorrer -Não, mas a previsão indica {condition} {day} -{day} não há previsão de neve mas as chances são que irá {condition} diff --git a/locale/pt-br/daily.snow.not.expected.local.dialog b/locale/pt-br/daily.snow.not.expected.local.dialog deleted file mode 100644 index f54836af..00000000 --- a/locale/pt-br/daily.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nevando mas nenhuma neve ou alternativa é prevista -Nenhuma neve é prevista {day} -Não vai nevar {day} diff --git a/locale/pt-br/daily.snow.not.expected.location.dialog b/locale/pt-br/daily.snow.not.expected.location.dialog deleted file mode 100644 index c65e5198..00000000 --- a/locale/pt-br/daily.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Quando o usuário pergunta se está nevando mas nenhuma neve ou alternativa é prevista -Nenhuma neve está prevista em {location} para {day} -Não deve nevar em {location} {day} diff --git a/locale/pt-br/daily.thunderstorm.alternative.local.dialog b/locale/pt-br/daily.thunderstorm.alternative.local.dialog deleted file mode 100644 index 61c90260..00000000 --- a/locale/pt-br/daily.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informando que uma alternativa à chuva ocorrerá -Não, mas a previsão indica {condition} {day} -{day}, não há previsão de tempestade, mas parece que haverá {condition} diff --git a/locale/pt-br/daily.thunderstorm.alternative.location.dialog b/locale/pt-br/daily.thunderstorm.alternative.location.dialog deleted file mode 100644 index 54285ec9..00000000 --- a/locale/pt-br/daily.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Não, mas a previsão indica {condition} em {location} {day} -# Informando que uma alternativa a tempestade vai ocorrer -{day}, não há previsão de chuva para {location}, mas parece que haverá {condition} diff --git a/locale/pt-br/daily.thunderstorm.not.expected.local.dialog b/locale/pt-br/daily.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 35206051..00000000 --- a/locale/pt-br/daily.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando o usuário pergunta se está chovendo mas nenhuma chuva ou alternativa é prevista -Nenhuma neve é prevista {day} -{day}, não deve ter tempestade -Não deve ter tempestade {day} diff --git a/locale/pt-br/daily.thunderstorm.not.expected.location.dialog b/locale/pt-br/daily.thunderstorm.not.expected.location.dialog deleted file mode 100644 index 43dd8421..00000000 --- a/locale/pt-br/daily.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Quando o usuário pergunta se está chovendo mas nenhuma chuva ou alternativa é prevista -Nenhum nevoeiro está previsto para {location} {day} -{day}, Não deve nevar em {location} -Não deve ter trovoadas {day} em {location} diff --git a/locale/pt-br/do not know.dialog b/locale/pt-br/do not know.dialog deleted file mode 100644 index 29401b1a..00000000 --- a/locale/pt-br/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Eu receio que eu não saiba isso -Eu não tenho essa informação diff --git a/locale/pt-br/from.day.dialog b/locale/pt-br/from.day.dialog deleted file mode 100644 index ac74c195..00000000 --- a/locale/pt-br/from.day.dialog +++ /dev/null @@ -1 +0,0 @@ -desde {day} diff --git a/locale/pt-br/heavy.dialog b/locale/pt-br/heavy.dialog deleted file mode 100644 index e524be2f..00000000 --- a/locale/pt-br/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -pesado diff --git a/locale/pt-br/light.dialog b/locale/pt-br/light.dialog deleted file mode 100644 index 86fcb7d6..00000000 --- a/locale/pt-br/light.dialog +++ /dev/null @@ -1 +0,0 @@ -leve diff --git a/locale/pt-br/on.date.dialog b/locale/pt-br/on.date.dialog deleted file mode 100644 index 6fc4557f..00000000 --- a/locale/pt-br/on.date.dialog +++ /dev/null @@ -1 +0,0 @@ -em diff --git a/locale/pt-br/on.dialog b/locale/pt-br/on.dialog deleted file mode 100644 index 6fc4557f..00000000 --- a/locale/pt-br/on.dialog +++ /dev/null @@ -1 +0,0 @@ -em diff --git a/locale/pt-br/simple.temperature.intent b/locale/pt-br/simple.temperature.intent deleted file mode 100644 index 7d8f4cb4..00000000 --- a/locale/pt-br/simple.temperature.intent +++ /dev/null @@ -1 +0,0 @@ -temperatura diff --git a/locale/pt-br/sky is clear.future.dialog b/locale/pt-br/sky is clear.future.dialog deleted file mode 100644 index b657c448..00000000 --- a/locale/pt-br/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -um céu limpo diff --git a/locale/pt-br/sunrise.dialog b/locale/pt-br/sunrise.dialog deleted file mode 100644 index 2e1f57a3..00000000 --- a/locale/pt-br/sunrise.dialog +++ /dev/null @@ -1,2 +0,0 @@ -o sol nasceu às {time} hoje -o nascer do sol foi às {time} hoje diff --git a/locale/pt-br/sunset.dialog b/locale/pt-br/sunset.dialog deleted file mode 100644 index 74759a30..00000000 --- a/locale/pt-br/sunset.dialog +++ /dev/null @@ -1,3 +0,0 @@ -o sol vai se pôr hoje às {time} -o sol vai se pôr às {time} hoje -o pôr do sol será às {time} hoje diff --git a/locale/pt-br/storm.dialog b/locale/pt-br/thunderstorm.dialog similarity index 100% rename from locale/pt-br/storm.dialog rename to locale/pt-br/thunderstorm.dialog diff --git a/locale/pt-br/weekly.condition.on.day.dialog b/locale/pt-br/weekly.condition.on.day.dialog deleted file mode 100644 index 8e2f79c7..00000000 --- a/locale/pt-br/weekly.condition.on.day.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} será {condition}, diff --git a/locale/pt-br/weekly.conditions.mostly.one.dialog b/locale/pt-br/weekly.conditions.mostly.one.dialog deleted file mode 100644 index 5d4c0182..00000000 --- a/locale/pt-br/weekly.conditions.mostly.one.dialog +++ /dev/null @@ -1 +0,0 @@ -será principalmente {condition}. diff --git a/locale/pt-br/weekly.conditions.seq.extra.dialog b/locale/pt-br/weekly.conditions.seq.extra.dialog deleted file mode 100644 index be418116..00000000 --- a/locale/pt-br/weekly.conditions.seq.extra.dialog +++ /dev/null @@ -1,2 +0,0 @@ -parece que também haverá -também será diff --git a/locale/pt-br/weekly.conditions.seq.period.dialog b/locale/pt-br/weekly.conditions.seq.period.dialog deleted file mode 100644 index ea20c7e1..00000000 --- a/locale/pt-br/weekly.conditions.seq.period.dialog +++ /dev/null @@ -1 +0,0 @@ -de {from} até {to} diff --git a/locale/pt-br/weekly.conditions.seq.start.dialog b/locale/pt-br/weekly.conditions.seq.start.dialog deleted file mode 100644 index ab7de457..00000000 --- a/locale/pt-br/weekly.conditions.seq.start.dialog +++ /dev/null @@ -1 +0,0 @@ -irá {condition} diff --git a/locale/pt-br/weekly.conditions.some.days.dialog b/locale/pt-br/weekly.conditions.some.days.dialog deleted file mode 100644 index f5140076..00000000 --- a/locale/pt-br/weekly.conditions.some.days.dialog +++ /dev/null @@ -1 +0,0 @@ -Será {condition} alguns dias. diff --git a/locale/pt-br/weekly.temp.range.dialog b/locale/pt-br/weekly.temperature.dialog similarity index 100% rename from locale/pt-br/weekly.temp.range.dialog rename to locale/pt-br/weekly.temperature.dialog diff --git a/locale/pt-br/what.is.multi.day.forecast.intent b/locale/pt-br/what.is.multi.day.forecast.intent deleted file mode 100644 index f6634d4b..00000000 --- a/locale/pt-br/what.is.multi.day.forecast.intent +++ /dev/null @@ -1,4 +0,0 @@ -tempo (nos|para os) próximos {num} dias -como será o tempo nos próximos {num} dias -como será o tempo nos próximos {num} dias -qual é a previsão do tempo (nos|para os) próximos {num} dias diff --git a/locale/ru-ru/do not know.dialog b/locale/ru-ru/do not know.dialog deleted file mode 100644 index df072712..00000000 --- a/locale/ru-ru/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Боюсь, я не знаю этого -У меня нет этой информации diff --git a/locale/ru-ru/heavy.dialog b/locale/ru-ru/heavy.dialog deleted file mode 100644 index 00d7ab62..00000000 --- a/locale/ru-ru/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -сильный diff --git a/locale/ru-ru/light.dialog b/locale/ru-ru/light.dialog deleted file mode 100644 index ac92829f..00000000 --- a/locale/ru-ru/light.dialog +++ /dev/null @@ -1 +0,0 @@ -легкий diff --git a/locale/ru-ru/sky is clear.future.dialog b/locale/ru-ru/sky is clear.future.dialog deleted file mode 100644 index 1fab83e8..00000000 --- a/locale/ru-ru/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -чистое diff --git a/locale/sv-se/ClearAlternatives.voc b/locale/sv-se/ClearAlternatives.voc deleted file mode 100644 index 9b47e62c..00000000 --- a/locale/sv-se/ClearAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similar to clear weather -(dimma|dimmigt|moln|molnigt) diff --git a/locale/sv-se/CloudsAlternatives.voc b/locale/sv-se/CloudsAlternatives.voc deleted file mode 100644 index 6a67e263..00000000 --- a/locale/sv-se/CloudsAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similar to clody weather -(klart|dimma|regn|lätt regn) diff --git a/locale/sv-se/FogAlternatives.voc b/locale/sv-se/FogAlternatives.voc deleted file mode 100644 index 3d357758..00000000 --- a/locale/sv-se/FogAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives to foggy weather -(klart|moln|spridda moln|molnigt) diff --git a/locale/sv-se/RainAlternatives.voc b/locale/sv-se/RainAlternatives.voc deleted file mode 100644 index bac31e9c..00000000 --- a/locale/sv-se/RainAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives similar to rain -(snö|snöa|lätt snö|snöfall|dimma) diff --git a/locale/sv-se/SnowAlternatives.voc b/locale/sv-se/SnowAlternatives.voc deleted file mode 100644 index e58f3f7e..00000000 --- a/locale/sv-se/SnowAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Conditions similar to snow -(regn|lätt regn|duggregn) diff --git a/locale/sv-se/ThunderstormAlternatives.voc b/locale/sv-se/ThunderstormAlternatives.voc deleted file mode 100644 index 18f366b8..00000000 --- a/locale/sv-se/ThunderstormAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternativ som liknar molnigt väder -(duggregn|regn|lätt regn|snö|lätt snö|snöslask|dimma|molnigt|moln|delvis molnigt) diff --git a/locale/sv-se/and.dialog b/locale/sv-se/and.dialog new file mode 100644 index 00000000..c32e3925 --- /dev/null +++ b/locale/sv-se/and.dialog @@ -0,0 +1 @@ +, och diff --git a/locale/sv-se/clear.future.dialog b/locale/sv-se/clear.future.dialog deleted file mode 100644 index 7e17430f..00000000 --- a/locale/sv-se/clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -en klar himmel diff --git a/locale/sv-se/condition.category.value b/locale/sv-se/condition.category.value deleted file mode 100644 index 24f74a19..00000000 --- a/locale/sv-se/condition.category.value +++ /dev/null @@ -1,15 +0,0 @@ -Molnigt,moln -Klart,klar himmel -Åska,oväder -Duggregn, lätt regn -Regn,regnar -Snö,snöar -Dimma,dimmigt -Rök, rökigt -Dis,disigt -Dam,dammigt -Dimma, dimmigt -Sand,sandigt -Aska,molnigt med möjlig vulkanisk aska -Stormby,blåsigt -Tornado,stormar med en eventuell tornado diff --git a/locale/sv-se/current.clear.alternative.local.dialog b/locale/sv-se/current.clear.alternative.local.dialog deleted file mode 100644 index 8dc55021..00000000 --- a/locale/sv-se/current.clear.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -Nej, idag hävdar prognosen för {condition} -Det verkar som det kommer vara {condition} idag -Chansen är stor att det kommer att bli{condition} idag diff --git a/locale/sv-se/current.clear.alternative.location.dialog b/locale/sv-se/current.clear.alternative.location.dialog deleted file mode 100644 index 89bde9f6..00000000 --- a/locale/sv-se/current.clear.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -Nej, men det verkar bli {condition} i {location} -Det verkar bli {condition} i {location} -Det ser ut att bli {condition} i {location} diff --git a/locale/sv-se/current.clear.not.expected.locatioin.dialog b/locale/sv-se/current.clear.not.expected.locatioin.dialog deleted file mode 100644 index 2161810c..00000000 --- a/locale/sv-se/current.clear.not.expected.locatioin.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's clear but it's not -Jag är ledsen men det verkar bli {condition} -Det blir troligtvis inte en klar himmel diff --git a/locale/sv-se/current.clouds.alternative.local.dialog b/locale/sv-se/current.clouds.alternative.local.dialog deleted file mode 100644 index ab3d6ebb..00000000 --- a/locale/sv-se/current.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Nej, idag hävdar prognosen för {condition} -# Informera att ett alternativ till molnigt kommer att inträffa -Det bör inte bli molnigt, det ser ut som det blir {condition} idag -Verkar inte så, chansen är stor att det kommer att bli {condition} idag diff --git a/locale/sv-se/current.clouds.alternative.location.dialog b/locale/sv-se/current.clouds.alternative.location.dialog deleted file mode 100644 index 007c3cfc..00000000 --- a/locale/sv-se/current.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -Nej, prognosen hävdar {condition} -Det bör inte vara mulet, det ser ut som det blir {condition} -Det verkar inte som det, troligt vis kommer det vara {condition} diff --git a/locale/sv-se/current.clouds.not.expected.local.dialog b/locale/sv-se/current.clouds.not.expected.local.dialog deleted file mode 100644 index e0713cab..00000000 --- a/locale/sv-se/current.clouds.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# När användaren frågar om det regnar men inget moln eller alternativ förutspås -Inga moln idag enligt prognosen -Det borde inte vara molnigt idag diff --git a/locale/sv-se/current.clouds.not.expected.location.dialog b/locale/sv-se/current.clouds.not.expected.location.dialog deleted file mode 100644 index b419654d..00000000 --- a/locale/sv-se/current.clouds.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's cloudy but it's not -Det verkar inte bli molnigt idag -Det bör inte bli molnigt diff --git a/locale/sv-se/current.fog.alternative.local.dialog b/locale/sv-se/current.fog.alternative.local.dialog deleted file mode 100644 index 82f4602c..00000000 --- a/locale/sv-se/current.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to fog will occur -Nej, idag hävdar prognosen för {condition} -Det verkar som det kommer vara {condition} idag -Chansen är stor att det kommer att bli{condition} idag diff --git a/locale/sv-se/current.fog.alternative.location.dialog b/locale/sv-se/current.fog.alternative.location.dialog deleted file mode 100644 index 0e71873e..00000000 --- a/locale/sv-se/current.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Nej, men det verkar bli {condition} i {location} -Det ser ut att bli {condition} i {location} -# Informing that an alternative to fog will occur -Det verkar bli {condition} i {location} diff --git a/locale/sv-se/current.fog.not.expected.local.dialog b/locale/sv-se/current.fog.not.expected.local.dialog deleted file mode 100644 index 894b8892..00000000 --- a/locale/sv-se/current.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -Sikten verkar bli god idag -Ingen dimma idag enligt prognosen diff --git a/locale/sv-se/current.fog.not.expected.location.dialog b/locale/sv-se/current.fog.not.expected.location.dialog deleted file mode 100644 index 30fbe9d3..00000000 --- a/locale/sv-se/current.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -Det verkar vara god sikt i {location} -Ingen dimma förutspås för {location} idag diff --git a/locale/sv-se/current.rain.alternative.local.dialog b/locale/sv-se/current.rain.alternative.local.dialog deleted file mode 100644 index d21210f6..00000000 --- a/locale/sv-se/current.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur (like snow or fog) -Nej, men det verkar bli {condition} -Inget regn förväntas idag men det ser ut att bli {condition} diff --git a/locale/sv-se/current.rain.alternative.location.dialog b/locale/sv-se/current.rain.alternative.location.dialog deleted file mode 100644 index a9af8b7f..00000000 --- a/locale/sv-se/current.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur (like snow or fog) -Nej, men det verkar bli {condition} i {location} -Inget regn förväntas idag i {location}, men det ser ut att bli {condition} diff --git a/locale/sv-se/current.rain.not.expected.local.dialog b/locale/sv-se/current.rain.not.expected.local.dialog deleted file mode 100644 index 45939754..00000000 --- a/locale/sv-se/current.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -Det blir inget regn enligt prognosen idag -Det borde inte regna idag -Du kommer inte behöva något paraply idag diff --git a/locale/sv-se/current.rain.not.expected.location.dialog b/locale/sv-se/current.rain.not.expected.location.dialog deleted file mode 100644 index 982fb4e1..00000000 --- a/locale/sv-se/current.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -Inget regn förutspås för {location} -Det kommer inte regna i {location} -I {location} behövs inget paraply diff --git a/locale/sv-se/current.snow.alternative.local.dialog b/locale/sv-se/current.snow.alternative.local.dialog deleted file mode 100644 index 760d5320..00000000 --- a/locale/sv-se/current.snow.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to snowing will occur -Nej, men det verkar bli {condition} -Ingen snö förväntas idag men risken är att det kommer bli {condition} diff --git a/locale/sv-se/current.snow.alternative.location.dialog b/locale/sv-se/current.snow.alternative.location.dialog deleted file mode 100644 index c694db3e..00000000 --- a/locale/sv-se/current.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to snowing will occur -Nej, men det verkar bli {condition} i {location} -Ingen snö förväntas i {location} idag men risken är att det kommer bli {condition} diff --git a/locale/sv-se/current.snow.not.expected.local.dialog b/locale/sv-se/current.snow.not.expected.local.dialog deleted file mode 100644 index 830c09dc..00000000 --- a/locale/sv-se/current.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# När användaren frågar om det snöar men ingen snö eller alternativ förutspås -Det kommer inte bli någon snö idag -Det borde inte snöa idag diff --git a/locale/sv-se/current.snow.not.expected.location.dialog b/locale/sv-se/current.snow.not.expected.location.dialog deleted file mode 100644 index 7fddc037..00000000 --- a/locale/sv-se/current.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -Ingen snö förutspås i {location} -Det kommer inte snöa i {location} diff --git a/locale/sv-se/current.thunderstorm.alternative.local.dialog b/locale/sv-se/current.thunderstorm.alternative.local.dialog deleted file mode 100644 index 912ce642..00000000 --- a/locale/sv-se/current.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Nej, men det verkar bli {condition} -# Informera att ett alternativ till en storm kommer att ske (som snö eller dimma) -Det finns ingen storm förutspås för idag, men det ser ut som det kommer att bli {condition} diff --git a/locale/sv-se/current.thunderstorm.alternative.location.dialog b/locale/sv-se/current.thunderstorm.alternative.location.dialog deleted file mode 100644 index 16873b80..00000000 --- a/locale/sv-se/current.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Nej, men det verkar bli {condition} i {location} -# Informera att ett alternativ till storm kommer att ske (som snö eller dimma) -Det förutspås ingen storm för idag i {location}, men det ser ut att bli {condition} diff --git a/locale/sv-se/current.thunderstorm.not.expected.local.dialog b/locale/sv-se/current.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 9965f787..00000000 --- a/locale/sv-se/current.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,6 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -Ingen storm förutspås idag -Det borde inte storma idag -Det borde inte bli storm i dag -Idag är det osannolikt att blir storm -En storm är inte troligt idag diff --git a/locale/sv-se/current.thunderstorm.not.expected.location.dialog b/locale/sv-se/current.thunderstorm.not.expected.location.dialog deleted file mode 100644 index e2e9c845..00000000 --- a/locale/sv-se/current.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# När användaren frågar om det stormar men ingen storm eller alternativ förutspås -Ingen storm förutspås för {location} -Det bör inte bli storm i {location} -Det borde inte bli storm i {location} diff --git a/locale/sv-se/daily.clear.alternative.local.dialog b/locale/sv-se/daily.clear.alternative.local.dialog deleted file mode 100644 index 74c01d0d..00000000 --- a/locale/sv-se/daily.clear.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to clear skies will occur -Nej, prognosen på {day} hävdar {condition} -{day}, verkar som det kommer vara {condition} diff --git a/locale/sv-se/daily.clear.alternative.location.dialog b/locale/sv-se/daily.clear.alternative.location.dialog deleted file mode 100644 index 67d8fad0..00000000 --- a/locale/sv-se/daily.clear.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -Nej, prognosen på {day} visar på {condition} i {location} -{day}, förväntas inget regn i {location} men det kan bli {condition} diff --git a/locale/sv-se/daily.clear.not.expected.local.dialog b/locale/sv-se/daily.clear.not.expected.local.dialog deleted file mode 100644 index 917cea0e..00000000 --- a/locale/sv-se/daily.clear.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's clear but an alternative is forcasted -Jag är ledsen, men {day} så verkar det inte bli klart väder -{day}, kommer det mest troligt inte bli klart diff --git a/locale/sv-se/daily.clear.not.expected.location.dialog b/locale/sv-se/daily.clear.not.expected.location.dialog deleted file mode 100644 index c546b552..00000000 --- a/locale/sv-se/daily.clear.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's clear but an alternative is forcasted -Jag är ledsen, men det verkar inte bli klart väder i {location} på {day} -{day}, kommer det mest troligt inte bli klart väder i {location} diff --git a/locale/sv-se/daily.clouds.alternative.local.dialog b/locale/sv-se/daily.clouds.alternative.local.dialog deleted file mode 100644 index 9997e033..00000000 --- a/locale/sv-se/daily.clouds.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -Nej, prognosen på {day} hävdar {condition} -Det borde inte bli molnigt, det ser ut som det blir {condition} för {day} -Det verkar inte som det, troligtvis kommer det vara {condition} på {day} diff --git a/locale/sv-se/daily.clouds.alternative.location.dialog b/locale/sv-se/daily.clouds.alternative.location.dialog deleted file mode 100644 index 7e768362..00000000 --- a/locale/sv-se/daily.clouds.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to clear skies will occur -# Nej, prognosen för {day} visar på {condition} i {location} -# Det kommer inte vara mulet i {location} för {day}, utan det ser ut att bli {condition} -Det verkar inte så, {location} ser ut att få {condition} på {day} diff --git a/locale/sv-se/daily.clouds.not.expected.local.dialog b/locale/sv-se/daily.clouds.not.expected.local.dialog deleted file mode 100644 index 60bf1fee..00000000 --- a/locale/sv-se/daily.clouds.not.expected.local.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's cloudy but it's not -{day} verkar det inte bli molnigt -För {day} visar rapporten på klart väder -Räkna med klar himmel {day} -Det bör inte vara molnigt {day} diff --git a/locale/sv-se/daily.clouds.not.expected.location.dialog b/locale/sv-se/daily.clouds.not.expected.location.dialog deleted file mode 100644 index c47a33ae..00000000 --- a/locale/sv-se/daily.clouds.not.expected.location.dialog +++ /dev/null @@ -1,5 +0,0 @@ -# When user asks if it's cloudy but it's not -Det verkar inte bli molnigt i {location} på {day} -Klar himmel förutspås för {location} på {day} -Förvänta dig molnfri himmel i {location} på {day} -Det kommer inte snöa i {location} på {day} diff --git a/locale/sv-se/daily.fog.alternative.local.dialog b/locale/sv-se/daily.fog.alternative.local.dialog deleted file mode 100644 index 38b3e0a1..00000000 --- a/locale/sv-se/daily.fog.alternative.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to fog will occur -Nej, prognosen på {day} hävdar {condition} -Det verkar som det kommer vara {condition} på {day} -Chansen är stor att det kommer att bli {condition} {day} diff --git a/locale/sv-se/daily.fog.alternative.location.dialog b/locale/sv-se/daily.fog.alternative.location.dialog deleted file mode 100644 index dcc992f0..00000000 --- a/locale/sv-se/daily.fog.alternative.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# Informing that an alternative to fog will occur -Nej, prognosen på {day} för {location} säger att det blir {condition} -Det verkar bli {condition} i {location} på {day} -Det ser ut att bli {condition} i {location} på {day} diff --git a/locale/sv-se/daily.fog.not.expected.local.dialog b/locale/sv-se/daily.fog.not.expected.local.dialog deleted file mode 100644 index f33487be..00000000 --- a/locale/sv-se/daily.fog.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -{day} verkar det bli god sikt -Ingen dimma förutspås för {day} diff --git a/locale/sv-se/daily.fog.not.expected.location.dialog b/locale/sv-se/daily.fog.not.expected.location.dialog deleted file mode 100644 index e32d04d0..00000000 --- a/locale/sv-se/daily.fog.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's foggy but no snow or alternative is forcasted -{day} borde sikten vara god i {location} -Prognosen för {day} innehåller ingen dimma i {location} diff --git a/locale/sv-se/daily.rain.alternative.local.dialog b/locale/sv-se/daily.rain.alternative.local.dialog deleted file mode 100644 index 24ac58ab..00000000 --- a/locale/sv-se/daily.rain.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -Nej, men det verkar bli {condition} på {day} -{day}, förväntas inget regn men det kan bli {condition} diff --git a/locale/sv-se/daily.rain.alternative.location.dialog b/locale/sv-se/daily.rain.alternative.location.dialog deleted file mode 100644 index 943bc3ce..00000000 --- a/locale/sv-se/daily.rain.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -Nej, men det verkar bli {condition} i {location} på {day} -för {day}, förväntas inget regn i {location} men det kan bli {condition} diff --git a/locale/sv-se/daily.rain.not.expected.local.dialog b/locale/sv-se/daily.rain.not.expected.local.dialog deleted file mode 100644 index 6f629d02..00000000 --- a/locale/sv-se/daily.rain.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -Det blir inget regn enligt prognosen på {day} -Det bör inte regna {day} -Du behöver inget paraply {day} diff --git a/locale/sv-se/daily.rain.not.expected.location.dialog b/locale/sv-se/daily.rain.not.expected.location.dialog deleted file mode 100644 index 43a8e5b3..00000000 --- a/locale/sv-se/daily.rain.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -Inget regn förutspås för {location} för {day} -för {day}, kommer det inte att regna i {location} -I {location} behövs inget paraply på {day} diff --git a/locale/sv-se/daily.snow.alternative.location.dialog b/locale/sv-se/daily.snow.alternative.location.dialog deleted file mode 100644 index cf91d0ce..00000000 --- a/locale/sv-se/daily.snow.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to snowing will occur -Nej, men det verkar bli {condition} på {day} -för {day} förutspås ingen snö men risken är att det blir {condition} diff --git a/locale/sv-se/daily.snow.not.expected.local.dialog b/locale/sv-se/daily.snow.not.expected.local.dialog deleted file mode 100644 index a24983c0..00000000 --- a/locale/sv-se/daily.snow.not.expected.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -Det kommer inte bli någon snö på {day} -Det kommer inta att snöa på{day} diff --git a/locale/sv-se/daily.snow.not.expected.location.dialog b/locale/sv-se/daily.snow.not.expected.location.dialog deleted file mode 100644 index 3ce2b665..00000000 --- a/locale/sv-se/daily.snow.not.expected.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# When user asks if it's snowing but no snow or alternative is forcasted -Ingen snö förutspås i {location} för {day} -Det kommer inte snöa i {location} på {day} diff --git a/locale/sv-se/daily.thunderstorm.alternative.local.dialog b/locale/sv-se/daily.thunderstorm.alternative.local.dialog deleted file mode 100644 index 24ac58ab..00000000 --- a/locale/sv-se/daily.thunderstorm.alternative.local.dialog +++ /dev/null @@ -1,3 +0,0 @@ -# Informing that an alternative to rain will occur -Nej, men det verkar bli {condition} på {day} -{day}, förväntas inget regn men det kan bli {condition} diff --git a/locale/sv-se/daily.thunderstorm.alternative.location.dialog b/locale/sv-se/daily.thunderstorm.alternative.location.dialog deleted file mode 100644 index 25b02049..00000000 --- a/locale/sv-se/daily.thunderstorm.alternative.location.dialog +++ /dev/null @@ -1,3 +0,0 @@ -Nej, men det verkar bli {condition} i {location} på {day} -# Informera att ett alternativ till storm kommer att inträffa -för {day}, förväntas ingen storm i {location} men det kan bli {condition} diff --git a/locale/sv-se/daily.thunderstorm.not.expected.local.dialog b/locale/sv-se/daily.thunderstorm.not.expected.local.dialog deleted file mode 100644 index 3f720c75..00000000 --- a/locale/sv-se/daily.thunderstorm.not.expected.local.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -Det kommer inte bli någon storm på {day} -{day}, det bör inte bli storm -Det borde inte storma {day} diff --git a/locale/sv-se/daily.thunderstorm.not.expected.location.dialog b/locale/sv-se/daily.thunderstorm.not.expected.location.dialog deleted file mode 100644 index dad97ebb..00000000 --- a/locale/sv-se/daily.thunderstorm.not.expected.location.dialog +++ /dev/null @@ -1,4 +0,0 @@ -# When user asks if it's raining but no rain or alternative is forcasted -Ingen dimma förutspås för {location} på {day} -för {day}, kommer det inte storma i {location} -Det kommer troligtvis inte storma {day} i {location} diff --git a/locale/sv-se/do not know.dialog b/locale/sv-se/do not know.dialog deleted file mode 100644 index 2580530b..00000000 --- a/locale/sv-se/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Jag är rädd att jag inte vet det -Jag har inte den informationen diff --git a/locale/sv-se/from.day.dialog b/locale/sv-se/from.day.dialog deleted file mode 100644 index b727df72..00000000 --- a/locale/sv-se/from.day.dialog +++ /dev/null @@ -1 +0,0 @@ -Från {day} diff --git a/locale/sv-se/heavy.dialog b/locale/sv-se/heavy.dialog deleted file mode 100644 index b34313cd..00000000 --- a/locale/sv-se/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -tung diff --git a/locale/sv-se/light.dialog b/locale/sv-se/light.dialog deleted file mode 100644 index af0c693c..00000000 --- a/locale/sv-se/light.dialog +++ /dev/null @@ -1 +0,0 @@ -lätt diff --git a/locale/sv-se/on.date.dialog b/locale/sv-se/on.date.dialog deleted file mode 100644 index 29a710bf..00000000 --- a/locale/sv-se/on.date.dialog +++ /dev/null @@ -1 +0,0 @@ -på diff --git a/locale/sv-se/on.dialog b/locale/sv-se/on.dialog deleted file mode 100644 index 2fcbf0d9..00000000 --- a/locale/sv-se/on.dialog +++ /dev/null @@ -1 +0,0 @@ -på diff --git a/locale/sv-se/simple.temperature.intent b/locale/sv-se/simple.temperature.intent deleted file mode 100644 index e8a58ef5..00000000 --- a/locale/sv-se/simple.temperature.intent +++ /dev/null @@ -1 +0,0 @@ -temperatur diff --git a/locale/sv-se/sky is clear.future.dialog b/locale/sv-se/sky is clear.future.dialog deleted file mode 100644 index 7e17430f..00000000 --- a/locale/sv-se/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -en klar himmel diff --git a/locale/sv-se/storm.dialog b/locale/sv-se/storm.dialog deleted file mode 100644 index db4cfc7b..00000000 --- a/locale/sv-se/storm.dialog +++ /dev/null @@ -1 +0,0 @@ -storm diff --git a/locale/en-us/storm.dialog b/locale/sv-se/thunderstorm.dialog similarity index 100% rename from locale/en-us/storm.dialog rename to locale/sv-se/thunderstorm.dialog diff --git a/locale/sv-se/weekly.condition.on.day.dialog b/locale/sv-se/weekly.condition.on.day.dialog deleted file mode 100644 index 19bf507d..00000000 --- a/locale/sv-se/weekly.condition.on.day.dialog +++ /dev/null @@ -1 +0,0 @@ -{day} kommer att vara {condition}, diff --git a/locale/sv-se/weekly.conditions.mostly.one.dialog b/locale/sv-se/weekly.conditions.mostly.one.dialog deleted file mode 100644 index bf3e933c..00000000 --- a/locale/sv-se/weekly.conditions.mostly.one.dialog +++ /dev/null @@ -1 +0,0 @@ -det blir mest {condition}. diff --git a/locale/sv-se/weekly.conditions.seq.extra.dialog b/locale/sv-se/weekly.conditions.seq.extra.dialog deleted file mode 100644 index e6bf6b66..00000000 --- a/locale/sv-se/weekly.conditions.seq.extra.dialog +++ /dev/null @@ -1,2 +0,0 @@ -det ser ut som det också kommer att bli -det blir också diff --git a/locale/sv-se/weekly.conditions.seq.period.dialog b/locale/sv-se/weekly.conditions.seq.period.dialog deleted file mode 100644 index e5867e05..00000000 --- a/locale/sv-se/weekly.conditions.seq.period.dialog +++ /dev/null @@ -1 +0,0 @@ -från {from} till {to} diff --git a/locale/sv-se/weekly.conditions.seq.start.dialog b/locale/sv-se/weekly.conditions.seq.start.dialog deleted file mode 100644 index 83115c55..00000000 --- a/locale/sv-se/weekly.conditions.seq.start.dialog +++ /dev/null @@ -1 +0,0 @@ -det blir {condition} diff --git a/locale/sv-se/weekly.conditions.some.days.dialog b/locale/sv-se/weekly.conditions.some.days.dialog deleted file mode 100644 index de6a9af9..00000000 --- a/locale/sv-se/weekly.conditions.some.days.dialog +++ /dev/null @@ -1 +0,0 @@ -det kommer att vara {condition} några dagar. diff --git a/locale/sv-se/weekly.temp.range.dialog b/locale/sv-se/weekly.temperature.dialog similarity index 100% rename from locale/sv-se/weekly.temp.range.dialog rename to locale/sv-se/weekly.temperature.dialog diff --git a/locale/sv-se/what.is.multi.day.forecast.intent b/locale/sv-se/what.is.multi.day.forecast.intent deleted file mode 100644 index a270cbdb..00000000 --- a/locale/sv-se/what.is.multi.day.forecast.intent +++ /dev/null @@ -1,4 +0,0 @@ -väder (i|över de|för de) kommande {num} dagarna -vad är vädret (som|) (i|över|för de) kommande {num} dagarna -vad blir vädret (som|) (i|över de| för de) kommande {num} dagarna -hur (kommer vädret |kommer det |)vara (i|över de|för de) kommande {num} dagarna diff --git a/source/__init__.py b/source/__init__.py index 9a6757e9..1440667f 100644 --- a/source/__init__.py +++ b/source/__init__.py @@ -13,7 +13,14 @@ # limitations under the License. from .api import OpenWeatherMapApi from .config import WeatherConfig -from .dialog import WeatherDialog +from .dialog import ( + CurrentDialog, + DailyDialog, + HourlyDialog, + WeatherDialog, + WeeklyDialog, + get_dialog_for_timeframe, +) from .intent import WeatherIntent -from .weather import DailyWeather, WeatherReport +from .weather import CURRENT, DAILY, DailyWeather, HOURLY, WeatherReport from .util import LocationNotFoundError diff --git a/source/dialog.py b/source/dialog.py index 6dcce746..67ced909 100644 --- a/source/dialog.py +++ b/source/dialog.py @@ -12,15 +12,24 @@ # See the License for the specific language governing permissions and # limitations under the License. """Abstraction of dialog building for the weather skill.""" +from typing import List, Tuple + from mycroft.util.format import nice_number, nice_time from mycroft.util.time import now_local -from .util import get_time_period -from .weather import is_current_weather, is_hourly_forecast, is_daily_forecast - -CURRENT = "current" -DAILY = "daily" -HOURLY = "hourly" - +from .config import WeatherConfig +from .intent import WeatherIntent +from .util import get_speakable_day_of_week, get_time_period +from .weather import ( + CURRENT, + CurrentWeather, + DAILY, + DailyWeather, + HOURLY, + HourlyWeather, + is_current_weather, + is_hourly_forecast, + is_daily_forecast, +) # TODO: MISSING DIALOGS # - current.clear.alternative.local @@ -28,82 +37,130 @@ # - daily.snow.alternative.local # - all hourly..alternative.local/location # - all hourly..not.expected.local/location -class WeatherDialog: +class Dialog: + """Abstract base class for the weather dialog builders.""" + + def __init__(self, intent_data: WeatherIntent, config: WeatherConfig): + self.intent_data = intent_data + self.config = config + self.name = None + self.data = None + + def _add_location(self): + """Add location information to the dialog.""" + if self.intent_data.location is None: + self.name += ".local" + else: + self.name += ".location" + if self.config.country == self.intent_data.geolocation["country"]: + spoken_location = ", ".join( + [ + self.intent_data.geolocation["city"], + self.intent_data.geolocation["region"], + ] + ) + else: + spoken_location = ", ".join( + [ + self.intent_data.geolocation["city"], + self.intent_data.geolocation["country"], + ] + ) + self.data.update(location=spoken_location) + + +class WeatherDialog(Dialog): """Use intent and weather data to determine which dialog will be spoken.""" def __init__(self, weather, config, intent_data): + super().__init__(intent_data, config) self.weather = weather self.config = config self.intent_data = intent_data self.current_weather = is_current_weather(weather) self.daily_forecast = is_daily_forecast(weather) self.hourly_forecast = is_hourly_forecast(weather) - self.name = None - self.data = None - def build_current_weather_dialog(self): - """Build the components necessary to speak current weather.""" - self.name = "current.weather" + def build_wind_dialog(self): + """Build the components necessary to speak the wind conditions.""" + wind_strength = self.weather.determine_wind_strength(self.config.speed_unit) self.data = dict( - condition=self.weather.current.condition.description, - temperature=self.weather.current.temperature, - temperature_unit=self.config.temperature_unit, + speed=nice_number(self.weather.wind_speed), + speed_unit=self.config.speed_unit, + direction=self.weather.wind_direction, ) + self.name = self.intent_data.timeframe + if self.intent_data.timeframe == DAILY: + self.data.update(day=self.weather.date_time.strftime("%A")) + elif self.hourly_forecast: + self.data.update(time=nice_time(self.weather.date_time)) + self.name += ".wind." + wind_strength self._add_location() - def build_high_low_temperature_dialog(self): - """Build the components necessary to speak high and low temperature.""" - self.name = "current.temperature.high.low" - self.data = dict( - high_temperature=self.weather.current.high_temperature, - low_temperature=self.weather.current.low_temperature, - ) + def build_humidity_dialog(self): + """Build the components necessary to speak the percentage humidity.""" + self.data = dict(percent=self.weather.humidity) + if self.intent_data.timeframe == DAILY: + self.name = "daily.humidity" + self.data.update(day=self.weather.date_time.strftime("%A")) + else: + self.name = "current.humidity" + self._add_location() + + def build_next_precipitation_dialog(self): + """Build the components necessary to speak the next chance of rain.""" + if self.weather is None: + self.name = "daily.precipitation.next.none" + self.data = dict() + else: + if self.intent_data.timeframe == DAILY: + self.name = "daily.precipitation.next" + self.data = dict(day=self.weather.date_time.strftime("%A")) + else: + self.name = "hourly.precipitation.next" + self.data = dict(time=get_time_period(self.weather.date_time)) + self.data = dict( + percent=self.weather.chance_of_precipitation, + precipitation="rain", + day=self.weather.date_time.strftime("%A"), + ) + self._add_location() + + +class CurrentDialog(Dialog): + """Weather dialog builder for current weather.""" + + def __init__( + self, intent_data: WeatherIntent, config: WeatherConfig, weather: CurrentWeather + ): + super().__init__(intent_data, config) + self.weather = weather + self.name = CURRENT - def build_hourly_weather_dialog(self): + def build_weather_dialog(self): """Build the components necessary to speak current weather.""" - self.name = "hourly.weather" + self.name += ".weather" self.data = dict( condition=self.weather.condition.description, - time=self.weather.date_time.strftime("%H:00"), temperature=self.weather.temperature, + temperature_unit=self.config.temperature_unit, ) self._add_location() - def build_daily_weather_dialog(self): - """Build the components necessary to speak the forecast for a day.""" - self.name = "daily.weather" + def build_high_low_temperature_dialog(self): + """Build the components necessary to speak high and low temperature.""" + self.name += ".temperature.high.low" self.data = dict( - condition=self.weather.condition.description, - day=self.weather.date_time.strftime("%A"), - high_temperature=self.weather.temperature.high, - low_temperature=self.weather.temperature.low, + high_temperature=self.weather.high_temperature, + low_temperature=self.weather.low_temperature, ) - if self.weather.date_time.date() == self.intent_data.location_datetime.date(): - self.data.update(day="Today") - self._add_location() def build_temperature_dialog(self, temperature_type: str): - """Build the components necessary to speak the temperature. - - :param temperature_type: indicates if temperature is current, high or low - """ - if self.daily_forecast: - self._build_daily_temperature_dialog(temperature_type) - elif self.hourly_forecast: - self._build_hourly_temperature_dialog() - else: - self._build_current_temperature_dialog(temperature_type) - self.data.update( - temperature_unit=self.intent_data.unit or self.config.temperature_unit - ) - self._add_location() - - def _build_current_temperature_dialog(self, temperature_type): """Build the components necessary to speak the current temperature. :param temperature_type: indicates if temperature is current, high or low """ - self.name = "current.temperature" + self.name += ".temperature" if temperature_type == "high": self.name += ".high" self.data = dict(temperature=self.weather.high_temperature) @@ -112,155 +169,226 @@ def _build_current_temperature_dialog(self, temperature_type): self.data = dict(temperature=self.weather.low_temperature) else: self.data = dict(temperature=self.weather.temperature) + self._add_location() - def _build_daily_temperature_dialog(self, temperature_type): - """Build the components necessary to speak the daily temperature. + def build_condition_dialog(self, intent_match: bool): + """Select the relevant dialog file for condition based reports. - :param temperature_type: indicates if temperature is day, high or low + A condition can for example be "snow" or "rain". + + :param intent_match: true if intent matches a vocabulary for the condition """ - self.name = "daily.temperature" - if temperature_type == "high": - self.name += ".high" - self.data = dict(temperature=self.weather.temperature.high) - elif temperature_type == "low": - self.name += ".low" - self.data = dict(temperature=self.weather.temperature.low) + self.data = dict(condition=self.weather.condition.description.lower()) + if intent_match: + self.name += ".condition.expected" else: - self.data = dict(temperature=self.weather.temperature.day) - self.data.update(day=self.weather.date_time.strftime("%A")) + self.name += ".condition.not.expected".format( + self.weather.condition.category.lower() + ) + self._add_location() + + def build_sunrise_dialog(self): + """Build the components necessary to speak the sunrise time.""" + if self.intent_data.location is None: + now = now_local() + else: + now = now_local(tz=self.intent_data.geolocation["timezone"]) + if now < self.weather.sunrise: + self.name += ".sunrise.future" + else: + self.name += ".sunrise.past" + self.data = dict(time=nice_time(self.weather.sunrise)) + self._add_location() + + def build_sunset_dialog(self): + """Build the components necessary to speak the sunset time.""" + if self.intent_data.location is None: + now = now_local() + else: + now = now_local(tz=self.intent_data.geolocation["timezone"]) + if now < self.weather.sunset: + self.name += ".sunset.future" + else: + self.name = ".sunset.past" + self.data = dict(time=nice_time(self.weather.sunset)) + self._add_location() + - def _build_hourly_temperature_dialog(self): +class HourlyDialog(Dialog): + """Weather dialog builder for hourly weather.""" + + def __init__( + self, intent_data: WeatherIntent, config: WeatherConfig, weather: HourlyWeather + ): + super().__init__(intent_data, config) + self.weather = weather + self.name = HOURLY + + def build_weather_dialog(self): + """Build the components necessary to speak the forecast for a hour.""" + self.name = ".weather" + self.data = dict( + condition=self.weather.condition.description, + time=self.weather.date_time.strftime("%H:00"), + temperature=self.weather.temperature, + ) + self._add_location() + + def build_temperature_dialog(self, _): """Build the components necessary to speak the hourly temperature.""" - self.name = "hourly.temperature" + self.name += ".temperature" self.data = dict( temperature=self.weather.temperature, time=get_time_period(self.weather.date_time), ) + self._add_location() - def build_wind_dialog(self): - """Build the components necessary to speak the wind conditions.""" - wind_strength = self.weather.determine_wind_strength(self.config.speed_unit) + def build_condition_dialog(self, intent_match: bool): + """Select the relevant dialog file for condition based reports. + + A condition can for example be "snow" or "rain". + + :param intent_match: true if intent matches a vocabulary for the condition + """ self.data = dict( - speed=nice_number(self.weather.wind_speed), - speed_unit=self.config.speed_unit, - direction=self.weather.wind_direction, + condition=self.weather.condition.description.lower(), + time=nice_time(self.weather.date_time), ) - self.name = self.intent_data.timeframe - if self.intent_data.timeframe == DAILY: - self.data.update(day=self.weather.date_time.strftime("%A")) - elif self.hourly_forecast: - self.data.update(time=nice_time(self.weather.date_time)) - self.name += ".wind." + wind_strength + if intent_match: + self.name += ".condition.expected" + else: + self.name += ".condition.not.expected".format( + self.weather.condition.category.lower() + ) self._add_location() - def build_humidity_dialog(self): - """Build the components necessary to speak the percentage humidity.""" - self.data = dict(percent=self.weather.humidity) - if self.intent_data.timeframe == DAILY: - self.name = "daily.humidity" - self.data.update(day=self.weather.date_time.strftime("%A")) + +class DailyDialog(Dialog): + """Weather dialog builder for daily weather.""" + + def __init__( + self, intent_data: WeatherIntent, config: WeatherConfig, weather: DailyWeather + ): + super().__init__(intent_data, config) + self.weather = weather + self.name = DAILY + + def build_weather_dialog(self): + """Build the components necessary to speak the forecast for a day.""" + self.name += ".weather" + self.data = dict( + condition=self.weather.condition.description, + day=get_speakable_day_of_week(self.weather.date_time), + high_temperature=self.weather.temperature.high, + low_temperature=self.weather.temperature.low, + ) + if self.weather.date_time.date() == self.intent_data.location_datetime.date(): + self.data.update(day="Today") + self._add_location() + + def build_temperature_dialog(self, temperature_type: str): + """Build the components necessary to speak the daily temperature. + + :param temperature_type: indicates if temperature is day, high or low + """ + self.name += ".temperature" + if temperature_type == "high": + self.name += ".high" + self.data = dict(temperature=self.weather.temperature.high) + elif temperature_type == "low": + self.name += ".low" + self.data = dict(temperature=self.weather.temperature.low) else: - self.name = "current.humidity" + self.data = dict(temperature=self.weather.temperature.day) + self.data.update(day=get_speakable_day_of_week(self.weather.date_time)) self._add_location() - def build_condition_dialog( - self, condition: str, intent_match: bool, alternative: bool - ): + def build_condition_dialog(self, intent_match: bool): """Select the relevant dialog file for condition based reports. A condition can for example be "snow" or "rain". - :param condition: name of condition eg snow :param intent_match: true if intent matches a vocabulary for the condition - :param alternative: true if intent matches a vocabulary for an alternative - condition """ - self.data = dict(condition=condition.lower()) - if self.daily_forecast: - self.name = "daily" - self.data.update(day=self.weather.date_time.strftime("%A")) - elif self.hourly_forecast: - self.name = "hourly" - self.data.update(time=nice_time(self.weather.date_time)) - else: - self.name = "current" + self.data = dict( + condition=self.weather.condition.description.lower(), + day=get_speakable_day_of_week(self.weather.date_time), + ) if intent_match: self.name += ".condition.expected" - elif alternative: - self.name += ".{}.alternative".format(condition.lower()) - else: - self.name += ".{}.not.expected".format(condition.lower()) - self._add_location() - - def build_next_precipitation_dialog(self): - """Build the components necessary to speak the next chance of rain.""" - if self.weather is None: - self.name = "daily.precipitation.next.none" - self.data = dict() else: - if self.intent_data.timeframe == DAILY: - self.name = "daily.precipitation.next" - self.data = dict(day=self.weather.date_time.strftime("%A")) - else: - self.name = "hourly.precipitation.next" - self.data = dict(time=get_time_period(self.weather.date_time)) - self.data = dict( - percent=self.weather.chance_of_precipitation, - precipitation="rain", - day=self.weather.date_time.strftime("%A"), + self.name += ".condition.not.expected".format( + self.weather.condition.category.lower() ) self._add_location() def build_sunrise_dialog(self): """Build the components necessary to speak the sunrise time.""" - if self.daily_forecast: - self.name = "daily.sunrise" - else: - if self.intent_data.location is None: - now = now_local() - else: - now = now_local(tz=self.intent_data.geolocation["timezone"]) - if now < self.weather.sunrise: - self.name = "current.sunrise.future" - else: - self.name = "current.sunrise.past" + self.name += ".sunrise" + self.data = dict(time=nice_time(self.weather.sunrise)) + self.data.update(day=get_speakable_day_of_week(self.weather.date_time)) self._add_location() - self.data = dict(time=nice_time(self.weather.sunrise.strftime("%H:%M"))) def build_sunset_dialog(self): """Build the components necessary to speak the sunset time.""" - if self.daily_forecast: - self.name = "daily.sunset" - else: - if self.intent_data.location is None: - now = now_local() - else: - now = now_local(tz=self.intent_data.geolocation["timezone"]) - if now < self.weather.sunset: - self.name = "current.sunset.future" - else: - self.name = "current.sunset.past" + self.name += ".sunset" + self.data = dict(time=nice_time(self.weather.sunset)) + self.data.update(day=get_speakable_day_of_week(self.weather.date_time)) self._add_location() - self.data = dict(time=nice_time(self.weather.sunset.strftime("%H:%M"))) - def _add_location(self): - """Add location information to the dialog.""" - if self.intent_data.location is None: - self.name += ".local" - else: - self.name += ".location" - if self.config.country == self.intent_data.geolocation["country"]: - spoken_location = ", ".join( - [ - self.intent_data.geolocation["city"], - self.intent_data.geolocation["region"], - ] - ) - else: - spoken_location = ", ".join( - [ - self.intent_data.geolocation["city"], - self.intent_data.geolocation["country"], - ] - ) - self.data.update(location=spoken_location) + +class WeeklyDialog(Dialog): + """Weather dialog builder for weekly weather.""" + + def __init__( + self, + intent_data: WeatherIntent, + config: WeatherConfig, + forecast: List[DailyWeather], + ): + super().__init__(intent_data, config) + self.forecast = forecast + self.name = "weekly" + + def build_temperature_dialog(self): + """Build the components necessary to temperature ranges for a week.""" + low_temperatures = [daily.temperature.low for daily in self.forecast] + high_temperatures = [daily.temperature.low for daily in self.forecast] + self.name += ".temperature" + self.data = dict( + low_min=min(low_temperatures), + low_max=max(low_temperatures), + high_min=min(high_temperatures), + high_max=max(high_temperatures), + ) + + def build_condition_dialog(self, condition: str): + """Build the components necessary to speak the days of week for a condition.""" + self.name += ".condition" + self.data = dict(condition=condition) + days_with_condition = [] + for daily in self.forecast: + if daily.condition.category == condition: + day = get_speakable_day_of_week(daily.date_time) + days_with_condition.append(day) + if len(days_with_condition) > 1: + last_day = days_with_condition.pop(-1) + days_with_condition.append("and " + last_day) + self.data.update(days=", ".join(days_with_condition)) + + +def get_dialog_for_timeframe(timeframe: str, dialog_ags: Tuple): + """Use the intent data to determine which dialog builder to use. + + :param timeframe: current, hourly, daily + :param dialog_ags: Arguments to pass to the dialog builder + :return: The correct dialog builder for the timeframe + """ + if timeframe == DAILY: + dialog = DailyDialog(*dialog_ags) + elif timeframe == HOURLY: + dialog = HourlyDialog(*dialog_ags) + else: + dialog = CurrentDialog(*dialog_ags) + + return dialog diff --git a/source/intent.py b/source/intent.py index 273dfe6a..5e74c243 100644 --- a/source/intent.py +++ b/source/intent.py @@ -21,6 +21,7 @@ get_tz_info, LocationNotFoundError, ) +from .weather import CURRENT class WeatherIntent: @@ -38,7 +39,7 @@ def __init__(self, message, language): self.location = message.data.get("Location") self.language = language self.unit = message.data.get("Unit") - self.timeframe = "current" + self.timeframe = CURRENT @property def geolocation(self): diff --git a/source/util.py b/source/util.py index c2c02535..e5168044 100644 --- a/source/util.py +++ b/source/util.py @@ -12,13 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. """Utility functions for the weather skill.""" -from datetime import datetime, tzinfo +from datetime import datetime, timedelta, tzinfo from time import time import pytz from mycroft.api import GeolocationApi +from mycroft.util.format import nice_date from mycroft.util.parse import extract_datetime +from mycroft.util.time import now_local class LocationNotFoundError(ValueError): @@ -106,3 +108,24 @@ def get_time_period(intent_datetime: datetime) -> str: period = "overnight" return period + + +def get_speakable_day_of_week(date_to_speak: datetime): + """Convert the time of the a daily weather forecast to a speakable day of week. + + :param date_to_speak: The date/time for the forecast being reported. + :return: The day of the week in the device's configured language + """ + now = now_local() + tomorrow = now.date() + timedelta(days=1) + + # A little hack to prevent nice_date() from returning "tomorrow" + if date_to_speak.date() == tomorrow: + now_arg = now - timedelta(days=1) + else: + now_arg = now + + speakable_date = nice_date(date_to_speak, now=now_arg) + day_of_week = speakable_date.split(",")[0] + + return day_of_week diff --git a/source/weather.py b/source/weather.py index 17a5c31f..1140855f 100644 --- a/source/weather.py +++ b/source/weather.py @@ -12,12 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. """Representations and conversions of the data returned by the weather API.""" -from datetime import time, timedelta +from datetime import timedelta -from mycroft.util.time import now_local from .config import MILES_PER_HOUR from .util import convert_to_local_datetime +CURRENT = "current" +DAILY = "daily" +HOURLY = "hourly" THIRTY_PERCENT = 30 SATURDAY = 5 SUNDAY = 6 @@ -78,12 +80,11 @@ def _determine_wind_direction(degree_direction: int): :param degree_direction: Degrees on a compass indicating wind direction. """ - wind_direction = None for min_degree, compass_direction in WIND_DIRECTION_CONVERSION: if degree_direction < min_degree: wind_direction = compass_direction break - if wind_direction is None: + else: wind_direction = "north" return wind_direction From 4c62179768a5ff3ffb43a691e6055bb652d6bea5 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 28 Apr 2021 21:07:46 -0500 Subject: [PATCH 26/42] Bug fixes --- __init__.py | 7 ++++++- locale/en-us/Temperature.voc | 5 ----- source/dialog.py | 11 +++++++++-- test/behave/hourly-weather-local.feature | 2 +- test/behave/hourly-weather-location.feature | 2 +- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/__init__.py b/__init__.py index b86004b5..eaae9fb4 100644 --- a/__init__.py +++ b/__init__.py @@ -283,6 +283,8 @@ def handle_hourly_temperature(self, message: Message): .optionally("Location") .optionally("Unit") .optionally("RelativeDay") + .optionally('Now') + .optionally("Today") ) def handle_high_temperature(self, message: Message): """Handle a request for the high temperature. @@ -303,6 +305,8 @@ def handle_high_temperature(self, message: Message): .optionally("Location") .optionally("Unit") .optionally("RelativeDay") + .optionally("Now") + .optionally("Today") ) def handle_low_temperature(self, message: Message): """Handle a request for the high temperature. @@ -331,11 +335,12 @@ def handle_is_it_hot(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("How") + .optionally("Query") .one_of("Hot", "Cold") .require("ConfirmQuery") .optionally("Location") .optionally("RelativeDay") + .optionally("Today") ) def handle_how_hot_or_cold(self, message): """Handler for temperature requests such as: how cold will it be today? diff --git a/locale/en-us/Temperature.voc b/locale/en-us/Temperature.voc index 857fb5b2..e703b3f9 100644 --- a/locale/en-us/Temperature.voc +++ b/locale/en-us/Temperature.voc @@ -1,7 +1,2 @@ temperature temp -cold -chilly -cool -warm -hot diff --git a/source/dialog.py b/source/dialog.py index 67ced909..84fe138f 100644 --- a/source/dialog.py +++ b/source/dialog.py @@ -169,6 +169,9 @@ def build_temperature_dialog(self, temperature_type: str): self.data = dict(temperature=self.weather.low_temperature) else: self.data = dict(temperature=self.weather.temperature) + self.data.update( + temperature_unit=self.intent_data.unit or self.config.temperature_unit + ) self._add_location() def build_condition_dialog(self, intent_match: bool): @@ -226,7 +229,7 @@ def __init__( def build_weather_dialog(self): """Build the components necessary to speak the forecast for a hour.""" - self.name = ".weather" + self.name += ".weather" self.data = dict( condition=self.weather.condition.description, time=self.weather.date_time.strftime("%H:00"), @@ -240,6 +243,7 @@ def build_temperature_dialog(self, _): self.data = dict( temperature=self.weather.temperature, time=get_time_period(self.weather.date_time), + temperature_unit=self.intent_data.unit or self.config.temperature_unit ) self._add_location() @@ -300,7 +304,10 @@ def build_temperature_dialog(self, temperature_type: str): self.data = dict(temperature=self.weather.temperature.low) else: self.data = dict(temperature=self.weather.temperature.day) - self.data.update(day=get_speakable_day_of_week(self.weather.date_time)) + self.data.update( + day=get_speakable_day_of_week(self.weather.date_time), + temperature_unit = self.intent_data.unit or self.config.temperature_unit + ) self._add_location() def build_condition_dialog(self, intent_match: bool): diff --git a/test/behave/hourly-weather-local.feature b/test/behave/hourly-weather-local.feature index 7e0ac3cb..2f2ac52a 100644 --- a/test/behave/hourly-weather-local.feature +++ b/test/behave/hourly-weather-local.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill local hourly forecasts Scenario Outline: what is the weather later Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" + Then "mycroft-weather" should reply with dialog from "hourly.weather.local.dialog" Examples: What is the weather later | what is the weather later | diff --git a/test/behave/hourly-weather-location.feature b/test/behave/hourly-weather-location.feature index b625c3c5..364dcbbc 100644 --- a/test/behave/hourly-weather-location.feature +++ b/test/behave/hourly-weather-location.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill hourly forecasts at a specified location Scenario Outline: User asks what the weather is later at a location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.weather.location.dialog" + Then "mycroft-weather" should reply with dialog from "hourly.weather.location.dialog" Examples: What is the weather later | what is the weather later | From 42924cae9a9b7150f5864b951c30e6134e509178 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Sat, 1 May 2021 12:16:43 -0500 Subject: [PATCH 27/42] Add a new GUI screen for a single day of weather. --- __init__.py | 73 ++++++++++++----- ui/single_day_mark_ii.qml | 165 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 217 insertions(+), 21 deletions(-) create mode 100644 ui/single_day_mark_ii.qml diff --git a/__init__.py b/__init__.py index eaae9fb4..f39529f4 100644 --- a/__init__.py +++ b/__init__.py @@ -547,6 +547,19 @@ def handle_sunset(self, message: Message): dialog.build_sunset_dialog() self._speak_weather(dialog) + def _display_sunrise_sunset_mark_ii( + self, forecast: DailyWeather, intent_data: WeatherIntent + ): + """Display the sunrise and sunset. + + :param forecast: daily forecasts to display + """ + self.gui.clear() + self.gui["sunrise"] = forecast.sunrise + self.gui["sunset"] = forecast.sunset + self.gui["ampm"] = True + self.gui.show_page("sunrise_sunset_mark_ii.qml") + def _report_current_weather(self, message: Message): """Handles all requests for current weather conditions. @@ -561,6 +574,7 @@ def _report_current_weather(self, message: Message): self._speak_weather(dialog) if self.gui.connected and self.platform != MARK_II: self._display_more_current_conditions(weather) + dialog = CurrentDialog(intent_data, self.weather_config, weather.current) dialog.build_high_low_temperature_dialog() self._speak_weather(dialog) if self.gui.connected: @@ -570,7 +584,7 @@ def _report_current_weather(self, message: Message): self._display_hourly_forecast(weather) else: four_day_forecast = weather.daily[1:5] - self._display_forecast(four_day_forecast) + self._display_multi_day_forecast(four_day_forecast) def _display_current_conditions( self, weather: WeatherReport, intent_data: WeatherIntent @@ -690,35 +704,52 @@ def _display_hourly_forecast(self, weather: WeatherReport): self.gui["hourlyForecast"] = dict(hours=hourly_forecast) self.gui.show_page("hourly_mark_ii.qml") - def _report_multi_day_forecast(self, message: Message, days: int): - """Handles all requests for multiple day forecasts. + def _report_one_day_forecast(self, message: Message): + """Handles all requests for a single day forecast. :param message: Message Bus event information from the intent parser """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: - try: - forecast = weather.get_forecast_for_multiple_days(days) - except IndexError: - self.speak_dialog("seven.days.available") - forecast = weather.get_forecast_for_multiple_days(7) - dialogs = self._build_forecast_dialogs(forecast, intent_data) - self._display_forecast(forecast) + forecast = weather.get_forecast_for_date(intent_data) + dialogs = self._build_forecast_dialogs([forecast], intent_data) + if self.platform == MARK_II: + self._display_one_day_mark_ii(forecast, intent_data) for dialog in dialogs: self._speak_weather(dialog) - def _report_one_day_forecast(self, message: Message): - """Handles all requests for a single day forecast. + def _display_one_day_mark_ii( + self, forecast: DailyWeather, intent_data: WeatherIntent + ): + """Display the forecast for a single day on a Mark II. + + :param forecast: daily forecasts to display + """ + self.gui.clear() + self.gui["weatherLocation"] = self._build_display_location(intent_data) + self.gui["weatherCode"] = self.image_codes[forecast.condition.icon] + self.gui["weatherDate"] = forecast.date_time.strftime("%A %x") + self.gui["highTemperature"] = forecast.temperature.high + self.gui["lowTemperature"] = forecast.temperature.low + self.gui["chanceOfPrecipitation"] = str(forecast.chance_of_precipitation) + self.gui.show_page("single_day_mark_ii.qml") + + def _report_multi_day_forecast(self, message: Message, days: int): + """Handles all requests for multiple day forecasts. :param message: Message Bus event information from the intent parser """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) if weather is not None: - forecast = [weather.get_forecast_for_date(intent_data)] + try: + forecast = weather.get_forecast_for_multiple_days(days) + except IndexError: + self.speak_dialog("seven.days.available") + forecast = weather.get_forecast_for_multiple_days(7) dialogs = self._build_forecast_dialogs(forecast, intent_data) - self._display_forecast(forecast) + self._display_multi_day_forecast(forecast) for dialog in dialogs: self._speak_weather(dialog) @@ -732,7 +763,7 @@ def _report_weekend_forecast(self, message: Message): if weather is not None: forecast = weather.get_weekend_forecast() dialogs = self._build_forecast_dialogs(forecast, intent_data) - self._display_forecast(forecast) + self._display_multi_day_forecast(forecast) for dialog in dialogs: self._speak_weather(dialog) @@ -768,7 +799,7 @@ def _report_week_summary(self, message: Message): forecast = weather.get_forecast_for_multiple_days(7) dialogs = self._build_weekly_condition_dialogs(forecast, intent_data) dialogs.append(self._build_weekly_temperature_dialog(forecast, intent_data)) - self._display_forecast(forecast) + self._display_multi_day_forecast(forecast) for dialog in dialogs: self._speak_weather(dialog) @@ -808,17 +839,17 @@ def _build_weekly_temperature_dialog( return dialog - def _display_forecast(self, forecast: List[DailyWeather]): + def _display_multi_day_forecast(self, forecast: List[DailyWeather]): """Display daily forecast data on devices that support the GUI. :param forecast: daily forecasts to display """ if self.platform == MARK_II: - self._display_forecast_mark_ii(forecast) + self._display_multi_day_mark_ii(forecast) else: - self._display_forecast_scalable(forecast) + self._display_multi_day_scalable(forecast) - def _display_forecast_mark_ii(self, forecast: List[DailyWeather]): + def _display_multi_day_mark_ii(self, forecast: List[DailyWeather]): """Display daily forecast data on a Mark II. The Mark II supports displaying four days of a forecast at a time. @@ -845,7 +876,7 @@ def _display_forecast_mark_ii(self, forecast: List[DailyWeather]): self.gui["dailyForecast"] = dict(days=daily_forecast[4:]) self.gui.show_page(page_name) - def _display_forecast_scalable(self, forecast: List[DailyWeather]): + def _display_multi_day_scalable(self, forecast: List[DailyWeather]): """Display daily forecast data on GUI devices other than the Mark II. The generic layout supports displaying two days of a forecast at a time. diff --git a/ui/single_day_mark_ii.qml b/ui/single_day_mark_ii.qml new file mode 100644 index 00000000..9fbbb18e --- /dev/null +++ b/ui/single_day_mark_ii.qml @@ -0,0 +1,165 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +One of many screns that show when the user asks for the current weather. + +Shows an image representing current conditions, the current temperature, and +the high/low temperature for today. + +This code is specific to the Mark II device. It uses a grid of 32x32 pixel +squares for alignment of items. +*/ +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 + +WeatherDelegateMarkII { + id: root + + Item { + // Bounding box for the content of the screen. + id: card + height: parent.height + width: parent.width + + WeatherLabel { + // The date of the weather forecast being displayed + id: weatherDate + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherDate + } + + WeatherLabel { + // City/state if in same country as device. City/country if in a different country + id: weatherLocation + anchors.top: weatherDate.bottom + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherLocation + } + + GridLayout { + id: weather + anchors.left: parent.left + anchors.leftMargin: gridUnit * 2 + anchors.top: weatherLocation.bottom + anchors.topMargin: gridUnit * 2 + columns: 2 + columnSpacing: gridUnit * 2 + width: gridUnit * 20 + + Item { + // First column in grid + id: weatherConditions + height: gridUnit * 14 + width: parent.width + + WeatherImage { + id: forecastCondition + heightUnits: 6 + imageSource: Qt.resolvedUrl(getWeatherImagery(sessionData.weatherCode)) + } + + WeatherLabel { + id: precipitation + anchors.top: forecastCondition.bottom + anchors.topMargin: gridUnit * 2 + heightUnits: 6 + fontSize: 118 + fontStyle: "Regular" + text: sessionData.chanceOfPrecipitation + "%" + } + + Label { + // Chance of precipitation for the day. + id: currentTemperature + anchors.baseline: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.family: "Noto Sans Display" + font.pixelSize: 118 + font.styleName: "Light" + text: sessionData.chanceOfPrecipitation + "%" + } + } + + Column { + // Second column in grid + id: highLowTemperature + height: gridUnit * 14 + spacing: gridUnit * 2 + width: parent.width + + Item { + // High temperature for today + id: highTemperature + height: gridUnit * 6 + width: parent.width + + Image { + id: highTemperatureIcon + anchors.bottom: parent.bottom + anchors.left: highTemperature.left + anchors.leftMargin: gridUnit * 2 + fillMode: Image.PreserveAspectFit + height: gridUnit * 4 + source: Qt.resolvedUrl("images/high_temperature.svg") + } + + Label { + id: highTemperatureValue + anchors.baseline: parent.bottom + anchors.left: highTemperatureIcon.right + anchors.leftMargin: gridUnit * 2 + font.family: "Noto Sans Display" + font.pixelSize: 118 + font.styleName: "SemiBold" + text: sessionData.highTemperature + "°" + } + } + + Item { + // Low temperature for today + id: lowTemperature + height: gridUnit * 6 + width: parent.width + + Image { + id: lowTemperatureIcon + anchors.bottom: parent.bottom + anchors.left: lowTemperature.left + anchors.leftMargin: gridUnit * 2 + fillMode: Image.PreserveAspectFit + height: gridUnit * 4 + source: Qt.resolvedUrl("images/low_temperature.svg") + } + + Label { + id: lowTemperatureValue + anchors.baseline: parent.bottom + anchors.left: lowTemperatureIcon.right + anchors.leftMargin: gridUnit * 2 + font.family: "Noto Sans Display" + font.pixelSize: 118 + font.styleName: "Light" + text: sessionData.lowTemperature + "°" + } + } + } + } + } +} From a6b73e3b6968d3032b074a9bdb67c1b54f21c5fb Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 3 May 2021 00:30:21 -0500 Subject: [PATCH 28/42] Add a new GUI screen for sunrise and sunset. --- __init__.py | 34 ++++++++--- ui/images/sunrise.svg | 3 + ui/images/sunset.svg | 3 + ui/sunrise_sunset_mark_ii.qml | 105 ++++++++++++++++++++++++++++++++++ 4 files changed, 138 insertions(+), 7 deletions(-) create mode 100644 ui/images/sunrise.svg create mode 100644 ui/images/sunset.svg create mode 100644 ui/sunrise_sunset_mark_ii.qml diff --git a/__init__.py b/__init__.py index f39529f4..b2b3d5ab 100644 --- a/__init__.py +++ b/__init__.py @@ -19,6 +19,7 @@ Selene. The Selene API is also used to get geographical information about the city name provided in the request. """ +from datetime import datetime from multi_key_dict import multi_key_dict from time import sleep from typing import List, Tuple @@ -523,6 +524,8 @@ def handle_sunrise(self, message: Message): dialog_args = intent_data, self.weather_config, intent_weather dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_sunrise_dialog() + if self.platform == MARK_II: + self._display_sunrise_sunset_mark_ii(intent_weather) self._speak_weather(dialog) @intent_handler( @@ -545,21 +548,39 @@ def handle_sunset(self, message: Message): dialog_args = intent_data, self.weather_config, intent_weather dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_sunset_dialog() + if self.platform == MARK_II: + self._display_sunrise_sunset_mark_ii(intent_weather) self._speak_weather(dialog) - def _display_sunrise_sunset_mark_ii( - self, forecast: DailyWeather, intent_data: WeatherIntent - ): + def _display_sunrise_sunset_mark_ii(self, forecast: DailyWeather): """Display the sunrise and sunset. :param forecast: daily forecasts to display """ self.gui.clear() - self.gui["sunrise"] = forecast.sunrise - self.gui["sunset"] = forecast.sunset - self.gui["ampm"] = True + self.gui["sunrise"] = self._format_sunrise_sunset_time(forecast.sunrise) + self.gui["sunset"] = self._format_sunrise_sunset_time(forecast.sunset) + self.gui["ampm"] = self.config_core["time_format"] == TWELVE_HOUR self.gui.show_page("sunrise_sunset_mark_ii.qml") + def _format_sunrise_sunset_time(self, date_time: datetime) -> str: + """Format a the sunrise or sunset datetime into a string for GUI display. + + The datetime builtin returns hour in two character format. Convert + to a integer and back again to remove the leading zero when present. + + :param date_time: the sunrise or sunset + :return: the value to display on the screen. + """ + if self.config_core["time_format"] == TWELVE_HOUR: + display_time = date_time.strftime("%I:%M") + if display_time.startswith("0"): + display_time = display_time[1:] + else: + display_time = date_time.strftime("%H:%M") + + return display_time + def _report_current_weather(self, message: Message): """Handles all requests for current weather conditions. @@ -683,7 +704,6 @@ def _display_hourly_forecast(self, weather: WeatherReport): continue if hour_count > 4: break - # TODO: make the timeframe aware of language/location settings if self.config_core["time_format"] == TWELVE_HOUR: # The datetime builtin returns hour in two character format. Convert # to a integer and back again to remove the leading zero when present. diff --git a/ui/images/sunrise.svg b/ui/images/sunrise.svg new file mode 100644 index 00000000..b0f3b912 --- /dev/null +++ b/ui/images/sunrise.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/sunset.svg b/ui/images/sunset.svg new file mode 100644 index 00000000..98a94b91 --- /dev/null +++ b/ui/images/sunset.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/sunrise_sunset_mark_ii.qml b/ui/sunrise_sunset_mark_ii.qml new file mode 100644 index 00000000..549e6da9 --- /dev/null +++ b/ui/sunrise_sunset_mark_ii.qml @@ -0,0 +1,105 @@ +// Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Screen for showing the sunrise and snset. + +This code is specific to the Mark II device. It uses a grid of 16x16 pixel +squares for alignment of items. +*/ +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 + +WeatherDelegateMarkII { + id: root + + Item { + // Bounding box for the content of the screen. + id: card + height: parent.height + width: parent.width + + GridLayout { + id: sunriseSunset + anchors.left: parent.left + anchors.leftMargin: gridUnit * 2 + anchors.top: parent.top + anchors.topMargin: gridUnit * 2 + columns: 2 + columnSpacing: gridUnit * 2 + width: gridUnit * 20 + + Column { + // First column in grid + id: sunrise + height: gridUnit * 22 + spacing: gridUnit * 2 + width: parent.width + + WeatherImage { + id: sunriseImage + heightUnits: 8 + imageSource: "images/sunrise.svg" + } + + WeatherLabel { + id: sunriseTime + heightUnits: 6 + fontSize: 118 + fontStyle: "Bold" + text: sessionData.sunrise + } + + WeatherLabel { + id: sunriseAm + heightUnits: 4 + fontSize: 60 + fontStyle: "Regular" + text: sessionData.ampm ? "AM" : "" + } + } + + Column { + // Second column in grid + id: sunset + height: gridUnit * 22 + spacing: gridUnit * 2 + width: parent.width + + WeatherImage { + id: sunsetImage + heightUnits: 8 + imageSource: "images/sunset.svg" + } + + WeatherLabel { + id: sunsetTime + heightUnits: 6 + fontSize: 118 + fontStyle: "Bold" + text: sessionData.sunset + } + + WeatherLabel { + id: sunsetPm + heightUnits: 4 + fontSize: 60 + fontStyle: "Regular" + text: sessionData.ampm ? "PM" : "" + } + } + } + } +} From aad8a27df3f2e573d650d2d9eb25fd5d92bea3e2 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Tue, 4 May 2021 12:45:54 -0500 Subject: [PATCH 29/42] Refactored logic that selected an image or animation to use in the GUI --- __init__.py | 38 ++++------ source/weather.py | 75 ++++++++++++++++++- ui/DailyColumn.qml | 2 +- ui/DailyDelegateScalable.qml | 3 +- ui/HourlyColumn.qml | 2 +- ui/WeatherDelegateMarkII.qml | 30 +------- ui/animations/{cloudy.json => clouds.json} | 0 ...{partlycloudy.json => partial_clouds.json} | 0 ui/animations/{sunny.json => sun.json} | 0 ui/current_1_mark_ii.qml | 6 +- ui/current_2_mark_ii.qml | 4 +- ui/images/{cloudy.svg => clouds.svg} | 0 ui/images/fog.svg | 3 + ui/images/moon.svg | 3 + .../{partly_cloudy.svg => partial_clouds.svg} | 0 ui/images/{sunny.svg => sun.svg} | 0 ui/single_day_mark_ii.qml | 2 +- 17 files changed, 104 insertions(+), 64 deletions(-) rename ui/animations/{cloudy.json => clouds.json} (100%) rename ui/animations/{partlycloudy.json => partial_clouds.json} (100%) rename ui/animations/{sunny.json => sun.json} (100%) rename ui/images/{cloudy.svg => clouds.svg} (100%) create mode 100644 ui/images/fog.svg create mode 100644 ui/images/moon.svg rename ui/images/{partly_cloudy.svg => partial_clouds.svg} (100%) rename ui/images/{sunny.svg => sun.svg} (100%) diff --git a/__init__.py b/__init__.py index b2b3d5ab..d9a629c5 100644 --- a/__init__.py +++ b/__init__.py @@ -76,19 +76,6 @@ def __init__(self): self.weather_config = WeatherConfig(self.config_core, self.settings) self.platform = self.config_core["enclosure"].get("platform", "unknown") - # Build a dictionary to translate OWM weather-conditions - # codes into the Mycroft weather icon codes - # (see https://openweathermap.org/weather-conditions) - self.image_codes = multi_key_dict() - self.image_codes["01d", "01n"] = CLEAR - self.image_codes["02d", "02n", "03d", "03n"] = PARTLY_CLOUDY - self.image_codes["04d", "04n"] = CLOUDY - self.image_codes["09d", "09n"] = LIGHT_RAIN - self.image_codes["10d", "10n"] = RAIN - self.image_codes["11d", "11n"] = THUNDERSTORM - self.image_codes["13d", "13n"] = SNOW - self.image_codes["50d", "50n"] = WINDY - # Use Mycroft proxy if no private key provided self.settings["api_key"] = None self.settings["use_proxy"] = True @@ -284,7 +271,7 @@ def handle_hourly_temperature(self, message: Message): .optionally("Location") .optionally("Unit") .optionally("RelativeDay") - .optionally('Now') + .optionally("Now") .optionally("Today") ) def handle_high_temperature(self, message: Message): @@ -566,8 +553,8 @@ def _display_sunrise_sunset_mark_ii(self, forecast: DailyWeather): def _format_sunrise_sunset_time(self, date_time: datetime) -> str: """Format a the sunrise or sunset datetime into a string for GUI display. - The datetime builtin returns hour in two character format. Convert - to a integer and back again to remove the leading zero when present. + The datetime builtin returns hour in two character format. Remove the + leading zero when present. :param date_time: the sunrise or sunset :return: the value to display on the screen. @@ -616,21 +603,24 @@ def _display_current_conditions( :param weather: current weather conditions from Open Weather Maps """ - image_code = self.image_codes[weather.current.condition.icon] if self.gui.connected: page_name = "current_1_scalable.qml" self.gui.clear() self.gui["currentTemperature"] = weather.current.temperature - self.gui["weatherCode"] = image_code if self.platform == MARK_II: + self.gui["weatherCondition"] = weather.current.condition.image self.gui["weatherLocation"] = self._build_display_location(intent_data) self.gui["highTemperature"] = weather.current.high_temperature self.gui["lowTemperature"] = weather.current.low_temperature page_name = page_name.replace("scalable", "mark_ii") + else: + self.gui["weatherCode"] = weather.current.condition.code self.gui.show_page(page_name) else: self.enclosure.deactivate_mouth_events() - self.enclosure.weather_display(image_code, weather.current.temperature) + self.enclosure.weather_display( + weather.current.condition.code, weather.current.temperature + ) def _build_display_location(self, intent_data: WeatherIntent) -> str: """Build a string representing the location of the weather for display on GUI @@ -717,7 +707,7 @@ def _display_hourly_forecast(self, weather: WeatherReport): time=hourly.date_time.strftime(formatted_time), precipitation=hourly.chance_of_precipitation, temperature=hourly.temperature, - weatherCode=self.image_codes.get(hourly.condition.icon), + weatherCondition=hourly.condition.image, ) ) self.gui.clear() @@ -740,7 +730,7 @@ def _report_one_day_forecast(self, message: Message): self._speak_weather(dialog) def _display_one_day_mark_ii( - self, forecast: DailyWeather, intent_data: WeatherIntent + self, forecast: DailyWeather, intent_data: WeatherIntent ): """Display the forecast for a single day on a Mark II. @@ -748,7 +738,7 @@ def _display_one_day_mark_ii( """ self.gui.clear() self.gui["weatherLocation"] = self._build_display_location(intent_data) - self.gui["weatherCode"] = self.image_codes[forecast.condition.icon] + self.gui["weatherCondition"] = forecast.condition.image self.gui["weatherDate"] = forecast.date_time.strftime("%A %x") self.gui["highTemperature"] = forecast.temperature.high self.gui["lowTemperature"] = forecast.temperature.low @@ -881,7 +871,7 @@ def _display_multi_day_mark_ii(self, forecast: List[DailyWeather]): for day in forecast: daily_forecast.append( dict( - weatherCode=self.image_codes[day.condition.icon], + weatherCondition=day.condition.image, day=day.date_time.strftime("%a"), highTemperature=day.temperature.high, lowTemperature=day.temperature.low, @@ -911,7 +901,7 @@ def _display_multi_day_scalable(self, forecast: List[DailyWeather]): break display_data.append( dict( - weatherCode=self.image_codes[day.condition.icon], + weatherCondition=day.condition.animation, highTemperature=day.temperature.high, lowTemperature=day.temperature.low, date=day.date_time.strftime("%a"), diff --git a/source/weather.py b/source/weather.py index 1140855f..0e6f112c 100644 --- a/source/weather.py +++ b/source/weather.py @@ -13,16 +13,59 @@ # limitations under the License. """Representations and conversions of the data returned by the weather API.""" from datetime import timedelta +from pathlib import Path from .config import MILES_PER_HOUR from .util import convert_to_local_datetime +# Forecast timeframes CURRENT = "current" DAILY = "daily" HOURLY = "hourly" -THIRTY_PERCENT = 30 + +# Days of week SATURDAY = 5 SUNDAY = 6 + +# Condition Icons (see https://openweathermap.org/weather-conditions) +# Map each of the possible weather condition icon codes from OpenWeatherMap to an +# image/animation file used by the GUI. The icon codes contain a number and a letter. +# A "n" after the number indicates night and a "d" indicates day. +# +# The icon/image map is used by the Mark II, which does not use animations for +# performance reasons. The icon/animation map is used by the scalable QML. The +# icon/code map is for the Mark I, which accepts a code to determine what +# is displayed. +ICON_IMAGE_MAP = ( + (("01d",), "sun.svg"), + (("01n",), "moon.svg"), + (("04d", "04n"), "clouds.svg"), + (("50d",), "fog.svg"), + (("02d", "03d", "02n", "03n"), "partial_clouds.svg"), + (("09d", "10d"), "rain.svg"), + (("13d",), "snow.svg"), + (("11d",), "storm.svg"), +) +ICON_ANIMATION_MAP = ( + (("01d", "01n"), "sun.json"), + (("04d", "04n"), "clouds.json"), + (("50d",), "fog.json"), + (("02d", "03d", "02n", "03n"), "partial_clouds.json"), + (("09d", "10d"), "rain.json"), + (("13d",), "snow.json"), + (("11d",), "storm.json"), +) +ICON_CODE_MAP = ( + (("01d", "01n"), 0), + (("04d", "04n"), 2), + (("50d",), 7), + (("02d", "03d", "02n", "03n"), 1), + (("09d", "10d"), 3), + (("13d",), 6), + (("11d",), 5), +) + +THIRTY_PERCENT = 30 WIND_DIRECTION_CONVERSION = ( (22.5, "north"), (67.5, "northeast"), @@ -59,6 +102,36 @@ def __init__(self, conditions: dict): self.description = conditions["description"] self.icon = conditions["icon"] + @property + def image(self) -> str: + """Use the icon to image mapping to determine which image to display.""" + image_path = Path("images") + for icons, image_file_name in ICON_IMAGE_MAP: + if self.icon in icons: + image_path = image_path.joinpath(image_file_name) + + return str(image_path) + + @property + def animation(self) -> str: + """Use the icon to animation mapping to determine which animation to display.""" + image_path = Path("animations") + for icons, animation_file_name in ICON_ANIMATION_MAP: + if self.icon in icons: + image_path = image_path.joinpath(animation_file_name) + + return str(image_path) + + @property + def code(self) -> str: + """Use the icon to animation mapping to determine which animation to display.""" + condition_code = None + for icons, code in ICON_CODE_MAP: + if self.icon in icons: + condition_code = code + + return condition_code + class Weather: """Abstract data representation of commonalities in forecast types.""" diff --git a/ui/DailyColumn.qml b/ui/DailyColumn.qml index 6f22245b..1506be5b 100644 --- a/ui/DailyColumn.qml +++ b/ui/DailyColumn.qml @@ -35,7 +35,7 @@ Column { WeatherImage { id: forecastCondition heightUnits: 4 - imageSource: Qt.resolvedUrl(getWeatherImagery(forecast.weatherCode)) + imageSource: forecast.weatherCondition } WeatherLabel { diff --git a/ui/DailyDelegateScalable.qml b/ui/DailyDelegateScalable.qml index 97195f96..30b0deb2 100644 --- a/ui/DailyDelegateScalable.qml +++ b/ui/DailyDelegateScalable.qml @@ -45,10 +45,9 @@ WeatherDelegateScalable { Layout.preferredHeight: proportionalGridUnit * 20 Layout.preferredWidth: Layout.preferredHeight - source: Qt.resolvedUrl(getWeatherImagery(modelData.weatherCode)) + source: Qt.resolvedUrl(modelData.weatherCondition) loops: Animation.Infinite fillMode: Image.PreserveAspectFit - running: true } Mycroft.AutoFitLabel { font.weight: Font.Bold diff --git a/ui/HourlyColumn.qml b/ui/HourlyColumn.qml index baf88036..e629f5b1 100644 --- a/ui/HourlyColumn.qml +++ b/ui/HourlyColumn.qml @@ -35,7 +35,7 @@ Column { WeatherImage { id: forecastCondition heightUnits: 4 - imageSource: Qt.resolvedUrl(getWeatherImagery(forecast.weatherCode)) + imageSource: forecast.weatherCondition } WeatherLabel { diff --git a/ui/WeatherDelegateMarkII.qml b/ui/WeatherDelegateMarkII.qml index c979e626..e1ff4f12 100644 --- a/ui/WeatherDelegateMarkII.qml +++ b/ui/WeatherDelegateMarkII.qml @@ -24,6 +24,7 @@ import QtQuick.Controls 2.0 import Mycroft 1.0 as Mycroft +// TODO: Change to use CardDelegate Mycroft.Delegate { id: root @@ -34,33 +35,4 @@ Mycroft.Delegate { rightPadding: 32 topPadding: 32 - function getWeatherImagery(weathercode) { - switch(weathercode) { - case 0: - return "images/sunny.svg"; - break - case 1: - return "images/partly_cloudy.svg"; - break - case 2: - return "images/cloudy.svg"; - break - case 3: - return "images/rain.svg"; - break - case 4: - return "images/rain.svg"; - break - case 5: - return "images/storm.svg"; - break - case 6: - return "images/snow.svg"; - break - case 7: - return "images/cloudy.svg"; - break - } - } - } diff --git a/ui/animations/cloudy.json b/ui/animations/clouds.json similarity index 100% rename from ui/animations/cloudy.json rename to ui/animations/clouds.json diff --git a/ui/animations/partlycloudy.json b/ui/animations/partial_clouds.json similarity index 100% rename from ui/animations/partlycloudy.json rename to ui/animations/partial_clouds.json diff --git a/ui/animations/sunny.json b/ui/animations/sun.json similarity index 100% rename from ui/animations/sunny.json rename to ui/animations/sun.json diff --git a/ui/current_1_mark_ii.qml b/ui/current_1_mark_ii.qml index ac8f4391..a0c1694f 100644 --- a/ui/current_1_mark_ii.qml +++ b/ui/current_1_mark_ii.qml @@ -66,7 +66,7 @@ WeatherDelegateMarkII { anchors.horizontalCenterOffset: gridUnit * -2 fillMode: Image.PreserveAspectFit height: gridUnit * 7 - source: Qt.resolvedUrl(getWeatherImagery(sessionData.weatherCode)) + source: sessionData.weatherCondition } Label { @@ -103,7 +103,7 @@ WeatherDelegateMarkII { anchors.leftMargin: gridUnit * 2 fillMode: Image.PreserveAspectFit height: gridUnit * 4 - source: Qt.resolvedUrl("images/high_temperature.svg") + source: "images/high_temperature.svg" } Label { @@ -133,7 +133,7 @@ WeatherDelegateMarkII { anchors.leftMargin: gridUnit * 2 fillMode: Image.PreserveAspectFit height: gridUnit * 4 - source: Qt.resolvedUrl("images/low_temperature.svg") + source: "images/low_temperature.svg" } Label { diff --git a/ui/current_2_mark_ii.qml b/ui/current_2_mark_ii.qml index 4a794ac3..52763f56 100644 --- a/ui/current_2_mark_ii.qml +++ b/ui/current_2_mark_ii.qml @@ -54,7 +54,7 @@ WeatherDelegateMarkII { WeatherImage { id: windIcon heightUnits: 8 - imageSource: Qt.resolvedUrl("images/wind.svg") + imageSource: "images/wind.svg" } WeatherLabel { @@ -76,7 +76,7 @@ WeatherDelegateMarkII { WeatherImage { id: humidityIcon heightUnits: 8 - imageSource: Qt.resolvedUrl("images/humidity.svg") + imageSource: "images/humidity.svg" } WeatherLabel { diff --git a/ui/images/cloudy.svg b/ui/images/clouds.svg similarity index 100% rename from ui/images/cloudy.svg rename to ui/images/clouds.svg diff --git a/ui/images/fog.svg b/ui/images/fog.svg new file mode 100644 index 00000000..995e02d1 --- /dev/null +++ b/ui/images/fog.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/moon.svg b/ui/images/moon.svg new file mode 100644 index 00000000..6d6a7084 --- /dev/null +++ b/ui/images/moon.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/images/partly_cloudy.svg b/ui/images/partial_clouds.svg similarity index 100% rename from ui/images/partly_cloudy.svg rename to ui/images/partial_clouds.svg diff --git a/ui/images/sunny.svg b/ui/images/sun.svg similarity index 100% rename from ui/images/sunny.svg rename to ui/images/sun.svg diff --git a/ui/single_day_mark_ii.qml b/ui/single_day_mark_ii.qml index 9fbbb18e..0eb39c56 100644 --- a/ui/single_day_mark_ii.qml +++ b/ui/single_day_mark_ii.qml @@ -72,7 +72,7 @@ WeatherDelegateMarkII { WeatherImage { id: forecastCondition heightUnits: 6 - imageSource: Qt.resolvedUrl(getWeatherImagery(sessionData.weatherCode)) + imageSource: sessionData.weatherCondition } WeatherLabel { From 730e0c538e1a354f06598c0454e484723d72da80 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Tue, 4 May 2021 14:16:07 -0500 Subject: [PATCH 30/42] Added location to the top of weather screens that didn't have it. --- __init__.py | 27 +++++++++++++++++---------- ui/DailyColumn.qml | 6 +++--- ui/HourlyColumn.qml | 10 +++++----- ui/current_2_mark_ii.qml | 15 ++++++++++++--- ui/daily_mark_ii.qml | 16 ++++++++++++---- ui/hourly_mark_ii.qml | 11 ++++++++++- ui/sunrise_sunset_mark_ii.qml | 19 ++++++++++++++----- 7 files changed, 73 insertions(+), 31 deletions(-) diff --git a/__init__.py b/__init__.py index d9a629c5..2bccd3b3 100644 --- a/__init__.py +++ b/__init__.py @@ -536,15 +536,17 @@ def handle_sunset(self, message: Message): dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_sunset_dialog() if self.platform == MARK_II: - self._display_sunrise_sunset_mark_ii(intent_weather) + weather_location = self._build_display_location(intent_data) + self._display_sunrise_sunset_mark_ii(intent_weather, weather_location) self._speak_weather(dialog) - def _display_sunrise_sunset_mark_ii(self, forecast: DailyWeather): + def _display_sunrise_sunset_mark_ii(self, forecast: DailyWeather, weather_location: str): """Display the sunrise and sunset. :param forecast: daily forecasts to display """ self.gui.clear() + self.gui["weatherLocation"] = weather_location self.gui["sunrise"] = self._format_sunrise_sunset_time(forecast.sunrise) self.gui["sunset"] = self._format_sunrise_sunset_time(forecast.sunset) self.gui["ampm"] = self.config_core["time_format"] == TWELVE_HOUR @@ -576,26 +578,27 @@ def _report_current_weather(self, message: Message): intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: - self._display_current_conditions(weather, intent_data) + weather_location = self._build_display_location(intent_data) + self._display_current_conditions(weather, weather_location) dialog = CurrentDialog(intent_data, self.weather_config, weather.current) dialog.build_weather_dialog() self._speak_weather(dialog) if self.gui.connected and self.platform != MARK_II: - self._display_more_current_conditions(weather) + self._display_more_current_conditions(weather, weather_location) dialog = CurrentDialog(intent_data, self.weather_config, weather.current) dialog.build_high_low_temperature_dialog() self._speak_weather(dialog) if self.gui.connected: if self.platform == MARK_II: - self._display_more_current_conditions(weather) + self._display_more_current_conditions(weather, weather_location) sleep(5) - self._display_hourly_forecast(weather) + self._display_hourly_forecast(weather, weather_location) else: four_day_forecast = weather.daily[1:5] self._display_multi_day_forecast(four_day_forecast) def _display_current_conditions( - self, weather: WeatherReport, intent_data: WeatherIntent + self, weather: WeatherReport, weather_location: str ): """Display current weather conditions on a screen. @@ -609,7 +612,7 @@ def _display_current_conditions( self.gui["currentTemperature"] = weather.current.temperature if self.platform == MARK_II: self.gui["weatherCondition"] = weather.current.condition.image - self.gui["weatherLocation"] = self._build_display_location(intent_data) + self.gui["weatherLocation"] = weather_location self.gui["highTemperature"] = weather.current.high_temperature self.gui["lowTemperature"] = weather.current.low_temperature page_name = page_name.replace("scalable", "mark_ii") @@ -645,7 +648,9 @@ def _build_display_location(self, intent_data: WeatherIntent) -> str: return ", ".join(location) - def _display_more_current_conditions(self, weather: WeatherReport): + def _display_more_current_conditions( + self, weather: WeatherReport, weather_location: str + ): """Display current weather conditions on a device that supports a GUI. This is the second screen that shows for current weather. @@ -655,6 +660,7 @@ def _display_more_current_conditions(self, weather: WeatherReport): page_name = "current_2_scalable.qml" self.gui.clear() if self.platform == MARK_II: + self.gui["weatherLocation"] = weather_location self.gui["windSpeed"] = weather.current.wind_speed self.gui["humidity"] = weather.current.humidity page_name = page_name.replace("scalable", "mark_ii") @@ -680,7 +686,7 @@ def _report_one_hour_weather(self, message: Message): dialog.build_weather_dialog() self._speak_weather(dialog) - def _display_hourly_forecast(self, weather: WeatherReport): + def _display_hourly_forecast(self, weather: WeatherReport, weather_location: str): """Display hourly forecast on a device that supports the GUI. On the Mark II this screen is the final for current weather. It can @@ -711,6 +717,7 @@ def _display_hourly_forecast(self, weather: WeatherReport): ) ) self.gui.clear() + self.gui["weatherLocation"] = weather_location self.gui["hourlyForecast"] = dict(hours=hourly_forecast) self.gui.show_page("hourly_mark_ii.qml") diff --git a/ui/DailyColumn.qml b/ui/DailyColumn.qml index 1506be5b..e0f2db65 100644 --- a/ui/DailyColumn.qml +++ b/ui/DailyColumn.qml @@ -27,7 +27,7 @@ import QtQuick.Controls 2.3 Column { id: dailyColumn - spacing: 0 + spacing: 1 width: gridUnit * 9 property var forecast @@ -48,7 +48,7 @@ Column { WeatherLabel { id: forecastHighTemperature - heightUnits: 6 + heightUnits: 5 fontSize: 72 fontStyle: "Bold" text: forecast.highTemperature + "°" @@ -56,7 +56,7 @@ Column { WeatherLabel { id: forecastLowTemperature - heightUnits: 6 + heightUnits: 5 fontSize: 72 fontStyle: "Light" text: forecast.lowTemperature + "°" diff --git a/ui/HourlyColumn.qml b/ui/HourlyColumn.qml index e629f5b1..89ff80d2 100644 --- a/ui/HourlyColumn.qml +++ b/ui/HourlyColumn.qml @@ -27,20 +27,20 @@ import QtQuick.Controls 2.3 Column { id: hourlyColumn - spacing: 0 + spacing: gridUnit width: gridUnit * 9 property var forecast WeatherImage { id: forecastCondition - heightUnits: 4 + heightUnits: 3 imageSource: forecast.weatherCondition } WeatherLabel { id: forecastTime - heightUnits: 4 + heightUnits: 3 fontSize: 47 fontStyle: "Regular" text: forecast.time @@ -48,7 +48,7 @@ Column { WeatherLabel { id: forecastTemperature - heightUnits: 6 + heightUnits: 5 fontSize: 72 fontStyle: "Bold" text: forecast.temperature + "°" @@ -56,7 +56,7 @@ Column { WeatherLabel { id: forecastPrecipitation - heightUnits: 6 + heightUnits: 5 fontSize: 72 fontStyle: "Light" text: forecast.precipitation + "%" diff --git a/ui/current_2_mark_ii.qml b/ui/current_2_mark_ii.qml index 52763f56..2209f334 100644 --- a/ui/current_2_mark_ii.qml +++ b/ui/current_2_mark_ii.qml @@ -33,12 +33,21 @@ WeatherDelegateMarkII { height: parent.height width: parent.width + WeatherLabel { + // City/state if in same country as device. City/country if in a different country + id: weatherLocation + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherLocation + } + GridLayout { // Two column grid containg wind and humidity data id: weather anchors.left: parent.left anchors.leftMargin: gridUnit * 2 - anchors.top: parent.top + anchors.top: weatherLocation.bottom anchors.topMargin: gridUnit * 2 columns: 2 columnSpacing: gridUnit * 2 @@ -49,7 +58,7 @@ WeatherDelegateMarkII { id: wind height: gridUnit * 22 width: gridUnit * 20 - spacing: gridUnit * 4 + spacing: gridUnit * 2 WeatherImage { id: windIcon @@ -71,7 +80,7 @@ WeatherDelegateMarkII { id: humidity height: gridUnit * 22 width: gridUnit * 20 - spacing: gridUnit * 4 + spacing: gridUnit * 2 WeatherImage { id: humidityIcon diff --git a/ui/daily_mark_ii.qml b/ui/daily_mark_ii.qml index 9d224c71..b82d8797 100644 --- a/ui/daily_mark_ii.qml +++ b/ui/daily_mark_ii.qml @@ -31,13 +31,21 @@ WeatherDelegateMarkII { height: parent.height width: parent.width + WeatherLabel { + // City/state if in same country as device. City/country if in a different country + id: weatherLocation + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherLocation + } + RowLayout { - // Four column grid, one for each day of the forecast. Can be less than - // four days depending on the user's request. - id: dailyWeather + // Four rows, one for each hour of the forecast. + id: hourlyWeather anchors.left: parent.left anchors.leftMargin: gridUnit * 2 - anchors.top: parent.top + anchors.top: weatherLocation.bottom anchors.topMargin: gridUnit * 2 spacing: gridUnit * 2 diff --git a/ui/hourly_mark_ii.qml b/ui/hourly_mark_ii.qml index 06671fa6..72eb8a2a 100644 --- a/ui/hourly_mark_ii.qml +++ b/ui/hourly_mark_ii.qml @@ -35,12 +35,21 @@ WeatherDelegateMarkII { height: parent.height width: parent.width + WeatherLabel { + // City/state if in same country as device. City/country if in a different country + id: weatherLocation + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherLocation + } + RowLayout { // Four rows, one for each hour of the forecast. id: hourlyWeather anchors.left: parent.left anchors.leftMargin: gridUnit * 2 - anchors.top: parent.top + anchors.top: weatherLocation.bottom anchors.topMargin: gridUnit * 2 spacing: gridUnit * 2 diff --git a/ui/sunrise_sunset_mark_ii.qml b/ui/sunrise_sunset_mark_ii.qml index 549e6da9..66cf3004 100644 --- a/ui/sunrise_sunset_mark_ii.qml +++ b/ui/sunrise_sunset_mark_ii.qml @@ -31,11 +31,20 @@ WeatherDelegateMarkII { height: parent.height width: parent.width + WeatherLabel { + // City/state if in same country as device. City/country if in a different country + id: weatherLocation + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherLocation + } + GridLayout { id: sunriseSunset anchors.left: parent.left anchors.leftMargin: gridUnit * 2 - anchors.top: parent.top + anchors.top: weatherLocation.bottom anchors.topMargin: gridUnit * 2 columns: 2 columnSpacing: gridUnit * 2 @@ -45,12 +54,12 @@ WeatherDelegateMarkII { // First column in grid id: sunrise height: gridUnit * 22 - spacing: gridUnit * 2 + spacing: gridUnit width: parent.width WeatherImage { id: sunriseImage - heightUnits: 8 + heightUnits: 6 imageSource: "images/sunrise.svg" } @@ -75,12 +84,12 @@ WeatherDelegateMarkII { // Second column in grid id: sunset height: gridUnit * 22 - spacing: gridUnit * 2 + spacing: gridUnit width: parent.width WeatherImage { id: sunsetImage - heightUnits: 8 + heightUnits: 6 imageSource: "images/sunset.svg" } From b39098c32456b535ad4c211884f6c31352852a49 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 5 May 2021 13:26:03 -0500 Subject: [PATCH 31/42] renamed "source" directory to "skill" --- __init__.py | 3 +-- {source => skill}/__init__.py | 0 {source => skill}/api.py | 0 {source => skill}/config.py | 0 {source => skill}/dialog.py | 0 {source => skill}/intent.py | 0 {source => skill}/util.py | 0 {source => skill}/weather.py | 0 8 files changed, 1 insertion(+), 2 deletions(-) rename {source => skill}/__init__.py (100%) rename {source => skill}/api.py (100%) rename {source => skill}/config.py (100%) rename {source => skill}/dialog.py (100%) rename {source => skill}/intent.py (100%) rename {source => skill}/util.py (100%) rename {source => skill}/weather.py (100%) diff --git a/__init__.py b/__init__.py index 2bccd3b3..c7b59f37 100644 --- a/__init__.py +++ b/__init__.py @@ -20,7 +20,6 @@ city name provided in the request. """ from datetime import datetime -from multi_key_dict import multi_key_dict from time import sleep from typing import List, Tuple @@ -30,7 +29,7 @@ from mycroft import MycroftSkill, intent_handler from mycroft.messagebus.message import Message from mycroft.util.parse import extract_number -from .source import ( +from .skill import ( CurrentDialog, DAILY, DailyDialog, diff --git a/source/__init__.py b/skill/__init__.py similarity index 100% rename from source/__init__.py rename to skill/__init__.py diff --git a/source/api.py b/skill/api.py similarity index 100% rename from source/api.py rename to skill/api.py diff --git a/source/config.py b/skill/config.py similarity index 100% rename from source/config.py rename to skill/config.py diff --git a/source/dialog.py b/skill/dialog.py similarity index 100% rename from source/dialog.py rename to skill/dialog.py diff --git a/source/intent.py b/skill/intent.py similarity index 100% rename from source/intent.py rename to skill/intent.py diff --git a/source/util.py b/skill/util.py similarity index 100% rename from source/util.py rename to skill/util.py diff --git a/source/weather.py b/skill/weather.py similarity index 100% rename from source/weather.py rename to skill/weather.py From a8197b5d9bf2d1f35188254f3d1959c81a2562fa Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 5 May 2021 15:32:15 -0500 Subject: [PATCH 32/42] tweaks to GUI screens based on design changes --- __init__.py | 3 +- skill/weather.py | 3 +- ui/DailyColumn.qml | 8 ++-- ui/HourlyColumn.qml | 10 ++--- ui/WeatherDate.qml | 40 ++++++++++++++++++ ui/WeatherLocation.qml | 41 +++++++++++++++++++ ui/current_1_mark_ii.qml | 7 +--- ui/current_2_mark_ii.qml | 7 +--- ui/daily_mark_ii.qml | 7 +--- ui/hourly_mark_ii.qml | 7 +--- ...tial_clouds.svg => partial_clouds_day.svg} | 0 ui/images/partial_clouds_night.svg | 3 ++ ui/single_day_mark_ii.qml | 14 +------ ui/sunrise_sunset_mark_ii.qml | 32 +++++++-------- 14 files changed, 119 insertions(+), 63 deletions(-) create mode 100644 ui/WeatherDate.qml create mode 100644 ui/WeatherLocation.qml rename ui/images/{partial_clouds.svg => partial_clouds_day.svg} (100%) create mode 100644 ui/images/partial_clouds_night.svg diff --git a/__init__.py b/__init__.py index c7b59f37..7541630a 100644 --- a/__init__.py +++ b/__init__.py @@ -545,6 +545,7 @@ def _display_sunrise_sunset_mark_ii(self, forecast: DailyWeather, weather_locati :param forecast: daily forecasts to display """ self.gui.clear() + self.gui["weatherDate"] = forecast.date_time.strftime("%A %b %d") self.gui["weatherLocation"] = weather_location self.gui["sunrise"] = self._format_sunrise_sunset_time(forecast.sunrise) self.gui["sunset"] = self._format_sunrise_sunset_time(forecast.sunset) @@ -745,7 +746,7 @@ def _display_one_day_mark_ii( self.gui.clear() self.gui["weatherLocation"] = self._build_display_location(intent_data) self.gui["weatherCondition"] = forecast.condition.image - self.gui["weatherDate"] = forecast.date_time.strftime("%A %x") + self.gui["weatherDate"] = forecast.date_time.strftime("%A %b %d") self.gui["highTemperature"] = forecast.temperature.high self.gui["lowTemperature"] = forecast.temperature.low self.gui["chanceOfPrecipitation"] = str(forecast.chance_of_precipitation) diff --git a/skill/weather.py b/skill/weather.py index 0e6f112c..edf4cf08 100644 --- a/skill/weather.py +++ b/skill/weather.py @@ -41,7 +41,8 @@ (("01n",), "moon.svg"), (("04d", "04n"), "clouds.svg"), (("50d",), "fog.svg"), - (("02d", "03d", "02n", "03n"), "partial_clouds.svg"), + (("02d", "03d"), "partial_clouds_day.svg"), + (("02n", "03n"), "partial_clouds_night.svg"), (("09d", "10d"), "rain.svg"), (("13d",), "snow.svg"), (("11d",), "storm.svg"), diff --git a/ui/DailyColumn.qml b/ui/DailyColumn.qml index e0f2db65..b453b12e 100644 --- a/ui/DailyColumn.qml +++ b/ui/DailyColumn.qml @@ -27,7 +27,7 @@ import QtQuick.Controls 2.3 Column { id: dailyColumn - spacing: 1 + spacing: gridUnit * 2 width: gridUnit * 9 property var forecast @@ -40,7 +40,7 @@ Column { WeatherLabel { id: forecastDay - heightUnits: 4 + heightUnits: 2 fontSize: 47 fontStyle: "Regular" text: forecast.day @@ -48,7 +48,7 @@ Column { WeatherLabel { id: forecastHighTemperature - heightUnits: 5 + heightUnits: 3 fontSize: 72 fontStyle: "Bold" text: forecast.highTemperature + "°" @@ -56,7 +56,7 @@ Column { WeatherLabel { id: forecastLowTemperature - heightUnits: 5 + heightUnits: 3 fontSize: 72 fontStyle: "Light" text: forecast.lowTemperature + "°" diff --git a/ui/HourlyColumn.qml b/ui/HourlyColumn.qml index 89ff80d2..ab1c460f 100644 --- a/ui/HourlyColumn.qml +++ b/ui/HourlyColumn.qml @@ -27,20 +27,20 @@ import QtQuick.Controls 2.3 Column { id: hourlyColumn - spacing: gridUnit + spacing: gridUnit * 2 width: gridUnit * 9 property var forecast WeatherImage { id: forecastCondition - heightUnits: 3 + heightUnits: 4 imageSource: forecast.weatherCondition } WeatherLabel { id: forecastTime - heightUnits: 3 + heightUnits: 2 fontSize: 47 fontStyle: "Regular" text: forecast.time @@ -48,7 +48,7 @@ Column { WeatherLabel { id: forecastTemperature - heightUnits: 5 + heightUnits: 3 fontSize: 72 fontStyle: "Bold" text: forecast.temperature + "°" @@ -56,7 +56,7 @@ Column { WeatherLabel { id: forecastPrecipitation - heightUnits: 5 + heightUnits: 3 fontSize: 72 fontStyle: "Light" text: forecast.precipitation + "%" diff --git a/ui/WeatherDate.qml b/ui/WeatherDate.qml new file mode 100644 index 00000000..bdfe3b33 --- /dev/null +++ b/ui/WeatherDate.qml @@ -0,0 +1,40 @@ + // Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Abstract component for alphanunumeric values. + +The Mark II card design requires the ability to have a text field's baseline sit on one +of the 16 pixel grid lines. The benefit of this approach is consistent alignment of +text fields that disregards the extra space that can be included around the text for +ascenders and descenders. + +To implement this idea, a bounding box is defined around a label for alignment purposes. +The baseline of the text sits on the bottom of the bounding box and the value is +centered within the box. + +This code is specific to the Mark II device. It uses a grid of 16x16 pixel +squares for alignment of items. +*/ +import QtQuick 2.4 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.3 + +WeatherLabel { + // The date of the weather forecast being displayed + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherDate +} diff --git a/ui/WeatherLocation.qml b/ui/WeatherLocation.qml new file mode 100644 index 00000000..f6438638 --- /dev/null +++ b/ui/WeatherLocation.qml @@ -0,0 +1,41 @@ + // Copyright 2021, Mycroft AI Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Abstract component for alphanunumeric values. + +The Mark II card design requires the ability to have a text field's baseline sit on one +of the 16 pixel grid lines. The benefit of this approach is consistent alignment of +text fields that disregards the extra space that can be included around the text for +ascenders and descenders. + +To implement this idea, a bounding box is defined around a label for alignment purposes. +The baseline of the text sits on the bottom of the bounding box and the value is +centered within the box. + +This code is specific to the Mark II device. It uses a grid of 16x16 pixel +squares for alignment of items. +*/ +import QtQuick 2.4 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.3 + +WeatherLabel { + // City/state if in same country as device. City/country if in a different country + heightUnits: 4 + fontSize: 48 + fontStyle: "Medium" + text: sessionData.weatherLocation +} + diff --git a/ui/current_1_mark_ii.qml b/ui/current_1_mark_ii.qml index a0c1694f..94f63bad 100644 --- a/ui/current_1_mark_ii.qml +++ b/ui/current_1_mark_ii.qml @@ -34,13 +34,8 @@ WeatherDelegateMarkII { height: parent.height width: parent.width - WeatherLabel { - // City/state if in same country as device. City/country if in a different country + WeatherLocation { id: weatherLocation - heightUnits: 4 - fontSize: 48 - fontStyle: "Medium" - text: sessionData.weatherLocation } GridLayout { diff --git a/ui/current_2_mark_ii.qml b/ui/current_2_mark_ii.qml index 2209f334..42d2efc8 100644 --- a/ui/current_2_mark_ii.qml +++ b/ui/current_2_mark_ii.qml @@ -33,13 +33,8 @@ WeatherDelegateMarkII { height: parent.height width: parent.width - WeatherLabel { - // City/state if in same country as device. City/country if in a different country + WeatherLocation { id: weatherLocation - heightUnits: 4 - fontSize: 48 - fontStyle: "Medium" - text: sessionData.weatherLocation } GridLayout { diff --git a/ui/daily_mark_ii.qml b/ui/daily_mark_ii.qml index b82d8797..3e1e3a76 100644 --- a/ui/daily_mark_ii.qml +++ b/ui/daily_mark_ii.qml @@ -31,13 +31,8 @@ WeatherDelegateMarkII { height: parent.height width: parent.width - WeatherLabel { - // City/state if in same country as device. City/country if in a different country + WeatherLocation { id: weatherLocation - heightUnits: 4 - fontSize: 48 - fontStyle: "Medium" - text: sessionData.weatherLocation } RowLayout { diff --git a/ui/hourly_mark_ii.qml b/ui/hourly_mark_ii.qml index 72eb8a2a..87f03d28 100644 --- a/ui/hourly_mark_ii.qml +++ b/ui/hourly_mark_ii.qml @@ -35,13 +35,8 @@ WeatherDelegateMarkII { height: parent.height width: parent.width - WeatherLabel { - // City/state if in same country as device. City/country if in a different country + WeatherLocation { id: weatherLocation - heightUnits: 4 - fontSize: 48 - fontStyle: "Medium" - text: sessionData.weatherLocation } RowLayout { diff --git a/ui/images/partial_clouds.svg b/ui/images/partial_clouds_day.svg similarity index 100% rename from ui/images/partial_clouds.svg rename to ui/images/partial_clouds_day.svg diff --git a/ui/images/partial_clouds_night.svg b/ui/images/partial_clouds_night.svg new file mode 100644 index 00000000..3bf749f5 --- /dev/null +++ b/ui/images/partial_clouds_night.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/single_day_mark_ii.qml b/ui/single_day_mark_ii.qml index 0eb39c56..a7138d96 100644 --- a/ui/single_day_mark_ii.qml +++ b/ui/single_day_mark_ii.qml @@ -34,23 +34,13 @@ WeatherDelegateMarkII { height: parent.height width: parent.width - WeatherLabel { - // The date of the weather forecast being displayed + WeatherDate { id: weatherDate - heightUnits: 4 - fontSize: 48 - fontStyle: "Medium" - text: sessionData.weatherDate } - WeatherLabel { - // City/state if in same country as device. City/country if in a different country + WeatherLocation { id: weatherLocation anchors.top: weatherDate.bottom - heightUnits: 4 - fontSize: 48 - fontStyle: "Medium" - text: sessionData.weatherLocation } GridLayout { diff --git a/ui/sunrise_sunset_mark_ii.qml b/ui/sunrise_sunset_mark_ii.qml index 66cf3004..f34b61ca 100644 --- a/ui/sunrise_sunset_mark_ii.qml +++ b/ui/sunrise_sunset_mark_ii.qml @@ -31,13 +31,13 @@ WeatherDelegateMarkII { height: parent.height width: parent.width - WeatherLabel { - // City/state if in same country as device. City/country if in a different country + WeatherDate { + id: weatherDate + } + + WeatherLocation { id: weatherLocation - heightUnits: 4 - fontSize: 48 - fontStyle: "Medium" - text: sessionData.weatherLocation + anchors.top: weatherDate.bottom } GridLayout { @@ -54,26 +54,26 @@ WeatherDelegateMarkII { // First column in grid id: sunrise height: gridUnit * 22 - spacing: gridUnit + spacing: gridUnit * 2 width: parent.width WeatherImage { id: sunriseImage - heightUnits: 6 + heightUnits: 5 imageSource: "images/sunrise.svg" } WeatherLabel { id: sunriseTime - heightUnits: 6 - fontSize: 118 + heightUnits: 4 + fontSize: 82 fontStyle: "Bold" text: sessionData.sunrise } WeatherLabel { id: sunriseAm - heightUnits: 4 + heightUnits: 2 fontSize: 60 fontStyle: "Regular" text: sessionData.ampm ? "AM" : "" @@ -84,26 +84,26 @@ WeatherDelegateMarkII { // Second column in grid id: sunset height: gridUnit * 22 - spacing: gridUnit + spacing: gridUnit * 2 width: parent.width WeatherImage { id: sunsetImage - heightUnits: 6 + heightUnits: 5 imageSource: "images/sunset.svg" } WeatherLabel { id: sunsetTime - heightUnits: 6 - fontSize: 118 + heightUnits: 4 + fontSize: 82 fontStyle: "Bold" text: sessionData.sunset } WeatherLabel { id: sunsetPm - heightUnits: 4 + heightUnits: 2 fontSize: 60 fontStyle: "Regular" text: sessionData.ampm ? "PM" : "" From cdac17969c85c098a4e21b761cf11cc53bd24d2d Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 5 May 2021 20:34:34 -0500 Subject: [PATCH 33/42] small bug fix --- __init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index 7541630a..646ef146 100644 --- a/__init__.py +++ b/__init__.py @@ -511,7 +511,8 @@ def handle_sunrise(self, message: Message): dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_sunrise_dialog() if self.platform == MARK_II: - self._display_sunrise_sunset_mark_ii(intent_weather) + weather_location = self._build_display_location(intent_data) + self._display_sunrise_sunset_mark_ii(intent_weather, weather_location) self._speak_weather(dialog) @intent_handler( From 05134fbd4d5fa574db754b251e3b44dd879b526f Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Thu, 6 May 2021 14:04:13 -0500 Subject: [PATCH 34/42] added location data to the forecast screen --- __init__.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/__init__.py b/__init__.py index 646ef146..a2b4fc19 100644 --- a/__init__.py +++ b/__init__.py @@ -540,7 +540,9 @@ def handle_sunset(self, message: Message): self._display_sunrise_sunset_mark_ii(intent_weather, weather_location) self._speak_weather(dialog) - def _display_sunrise_sunset_mark_ii(self, forecast: DailyWeather, weather_location: str): + def _display_sunrise_sunset_mark_ii( + self, forecast: DailyWeather, weather_location: str + ): """Display the sunrise and sunset. :param forecast: daily forecasts to display @@ -596,7 +598,7 @@ def _report_current_weather(self, message: Message): self._display_hourly_forecast(weather, weather_location) else: four_day_forecast = weather.daily[1:5] - self._display_multi_day_forecast(four_day_forecast) + self._display_multi_day_forecast(four_day_forecast, intent_data) def _display_current_conditions( self, weather: WeatherReport, weather_location: str @@ -650,7 +652,7 @@ def _build_display_location(self, intent_data: WeatherIntent) -> str: return ", ".join(location) def _display_more_current_conditions( - self, weather: WeatherReport, weather_location: str + self, weather: WeatherReport, weather_location: str ): """Display current weather conditions on a device that supports a GUI. @@ -767,7 +769,7 @@ def _report_multi_day_forecast(self, message: Message, days: int): self.speak_dialog("seven.days.available") forecast = weather.get_forecast_for_multiple_days(7) dialogs = self._build_forecast_dialogs(forecast, intent_data) - self._display_multi_day_forecast(forecast) + self._display_multi_day_forecast(forecast, intent_data) for dialog in dialogs: self._speak_weather(dialog) @@ -781,7 +783,7 @@ def _report_weekend_forecast(self, message: Message): if weather is not None: forecast = weather.get_weekend_forecast() dialogs = self._build_forecast_dialogs(forecast, intent_data) - self._display_multi_day_forecast(forecast) + self._display_multi_day_forecast(forecast, intent_data) for dialog in dialogs: self._speak_weather(dialog) @@ -817,7 +819,7 @@ def _report_week_summary(self, message: Message): forecast = weather.get_forecast_for_multiple_days(7) dialogs = self._build_weekly_condition_dialogs(forecast, intent_data) dialogs.append(self._build_weekly_temperature_dialog(forecast, intent_data)) - self._display_multi_day_forecast(forecast) + self._display_multi_day_forecast(forecast, intent_data) for dialog in dialogs: self._speak_weather(dialog) @@ -857,17 +859,21 @@ def _build_weekly_temperature_dialog( return dialog - def _display_multi_day_forecast(self, forecast: List[DailyWeather]): + def _display_multi_day_forecast( + self, forecast: List[DailyWeather], intent_data: WeatherIntent + ): """Display daily forecast data on devices that support the GUI. :param forecast: daily forecasts to display """ if self.platform == MARK_II: - self._display_multi_day_mark_ii(forecast) + self._display_multi_day_mark_ii(forecast, intent_data) else: self._display_multi_day_scalable(forecast) - def _display_multi_day_mark_ii(self, forecast: List[DailyWeather]): + def _display_multi_day_mark_ii( + self, forecast: List[DailyWeather], intent_data: WeatherIntent + ): """Display daily forecast data on a Mark II. The Mark II supports displaying four days of a forecast at a time. @@ -887,6 +893,7 @@ def _display_multi_day_mark_ii(self, forecast: List[DailyWeather]): ) self.gui.clear() self.gui["dailyForecast"] = dict(days=daily_forecast[:4]) + self.gui["weatherLocation"] = self._build_display_location(intent_data) self.gui.show_page(page_name) if len(forecast) > 4: sleep(15) From 872cf61b3a109494f8c87678e465dd9d5028f4f5 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 10 May 2021 12:29:33 -0500 Subject: [PATCH 35/42] renamed dialog and vocab files to be lower case and dash delimited. --- __init__.py | 212 +++++++++--------- locale/ca-es/FogAlternatives.voc | 2 - locale/ca-es/ThreeDay.voc | 3 - locale/ca-es/WeatherType.voc | 7 - locale/ca-es/{ => dialog}/and.dialog | 0 .../{ => dialog/condition}/clear sky.dialog | 0 .../ca-es/{ => dialog/condition}/clear.dialog | 0 .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../ca-es/{ => dialog/condition}/rain.dialog | 0 .../ca-es/{ => dialog/condition}/snow.dialog | 0 .../condition}/thunderstorm.dialog | 0 .../current-condition-expected-local.dialog} | 0 ...urrent-condition-expected-location.dialog} | 0 .../current/current-humidity-location.dialog} | 0 .../current-temperature-high-local.dialog} | 0 .../current-temperature-high-location.dialog} | 0 .../current-temperature-high-low.dialog} | 0 .../current/current-temperature-local.dialog} | 0 .../current-temperature-location.dialog} | 0 .../current-temperature-low-local.dialog} | 0 .../current-temperature-low-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../current/current-wind-light-local.dialog} | 0 .../current-wind-light-location.dialog} | 0 .../current-wind-moderate-local.dialog} | 0 .../current-wind-moderate-location.dialog} | 0 .../current/current-wind-strong-local.dialog} | 0 .../current-wind-strong-location.dialog} | 0 .../daily-condition-expected-local.dialog} | 0 .../daily-condition-expected-location.dialog} | 0 .../daily-temperature-high-local.dialog} | 0 .../daily-temperature-high-location.dialog} | 0 .../daily/daily-temperature-local.dialog} | 0 .../daily/daily-temperature-location.dialog} | 0 .../daily/daily-temperature-low-local.dialog} | 0 .../daily-temperature-low-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../daily/daily-wind-light-loaction.dialog} | 0 .../daily/daily-wind-light-local.dialog} | 0 .../daily/daily-wind-moderate-local.dialog} | 0 .../daily-wind-moderate-location.dialog} | 0 .../daily/daily-wind-strong-local.dialog} | 0 .../daily/daily-wind-strong-location.dialog} | 0 .../ca-es/{ => dialog/direction}/east.dialog | 0 .../ca-es/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../ca-es/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../ca-es/{ => dialog/direction}/west.dialog | 0 .../error/cant-get-forecast.dialog} | 0 .../error/location-not-found.dialog} | 0 .../error/no-forecast.dialog} | 0 ...hourly-condition-alternative-local.dialog} | 0 ...rly-condition-alternative-location.dialog} | 0 .../hourly-condition-expected-local.dialog} | 0 ...hourly-condition-expected-location.dialog} | 0 ...ourly-condition-not-expected-local.dialog} | 0 ...ly-condition-not-expected-location.dialog} | 0 .../hourly/hourly-temperature-local.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 .../percentage-number.dialog} | 0 locale/ca-es/{ => dialog/unit}/celsius.dialog | 0 .../ca-es/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 .../weekly/weekly-temperature.dialog} | 0 locale/ca-es/from.day.dialog | 1 - locale/ca-es/heavy.dialog | 1 - locale/ca-es/{ => regex}/location.rx | 0 locale/ca-es/report.wind.dialog | 1 - locale/ca-es/simple.temperature.intent | 1 - locale/ca-es/sky is clear.future.dialog | 1 - locale/ca-es/sunrise.dialog | 2 - locale/ca-es/sunset.dialog | 3 - locale/ca-es/tonight.local.weather.dialog | 4 - .../condition/clear.voc} | 0 .../condition/clouds.voc} | 0 .../condition}/do.i.need.an.umbrella.intent | 0 .../{Fog.voc => vocabulary/condition/fog.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/rain.voc} | 0 .../condition/snow.voc} | 0 .../condition/thunderstorm.voc} | 0 .../condition/windy.voc} | 0 .../{Couple.voc => vocabulary/couple.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Now.voc => vocabulary/date-time/now.voc} | 0 .../date-time/relative-day.voc} | 0 .../date-time/relative-time.voc} | 0 .../date-time/today.voc} | 0 .../date-time/week.voc} | 0 .../date-time/weekend.voc} | 0 .../{Forecast.voc => vocabulary/forecast.voc} | 0 .../{Location.voc => vocabulary/location.voc} | 0 .../query/confirm-query-current.voc} | 0 .../query/confirm-query-future.voc} | 0 .../query/confirm-query.voc} | 0 .../{How.voc => vocabulary/query/how.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 .../{When.voc => vocabulary/query/when.voc} | 0 .../{Sunrise.voc => vocabulary/sunrise.voc} | 0 .../{Sunset.voc => vocabulary/sunset.voc} | 0 .../temperature/cold.voc} | 0 .../temperature/high.voc} | 0 .../temperature/hot.voc} | 0 .../temperature/low.voc} | 0 .../temperature/temperature.voc} | 0 .../unit/fahrenheit.voc} | 0 .../unit/unit.entity} | 0 .../{Unit.voc => vocabulary/unit/unit.voc} | 0 .../{Weather.voc => vocabulary/weather.voc} | 0 locale/da-dk/ThreeDay.voc | 6 - locale/da-dk/ThunderstormAlternatives.voc | 3 - locale/da-dk/WeatherType.voc | 16 -- locale/da-dk/{ => dialog}/and.dialog | 0 .../{ => dialog/condition}/clear sky.dialog | 0 .../da-dk/{ => dialog/condition}/clear.dialog | 0 .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../da-dk/{ => dialog/condition}/rain.dialog | 0 .../da-dk/{ => dialog/condition}/snow.dialog | 0 .../condition}/thunderstorm.dialog | 0 .../current-condition-expected-local.dialog} | 0 ...urrent-condition-expected-location.dialog} | 0 .../current/current-humidity-location.dialog} | 0 .../current-temperature-high-local.dialog} | 0 .../current-temperature-high-location.dialog} | 0 .../current-temperature-high-low.dialog} | 0 .../current/current-temperature-local.dialog} | 0 .../current-temperature-location.dialog} | 0 .../current-temperature-low-local.dialog} | 0 .../current-temperature-low-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../current/current-wind-light-local.dialog} | 0 .../current-wind-light-location.dialog} | 0 .../current-wind-moderate-local.dialog} | 0 .../current-wind-moderate-location.dialog} | 0 .../current/current-wind-strong-local.dialog} | 0 .../current-wind-strong-location.dialog} | 0 .../daily-condition-expected-local.dialog} | 0 .../daily-condition-expected-location.dialog} | 0 .../daily-temperature-high-local.dialog} | 0 .../daily-temperature-high-location.dialog} | 0 .../daily/daily-temperature-local.dialog} | 0 .../daily/daily-temperature-location.dialog} | 0 .../daily/daily-temperature-low-local.dialog} | 0 .../daily-temperature-low-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../daily/daily-wind-light-local.dialog} | 0 .../daily/daily-wind-light-location.dialog} | 0 .../daily/daily-wind-moderate-local.dialog} | 0 .../daily-wind-moderate-location.dialog} | 0 .../daily/daily-wind-strong-local.dialog} | 0 .../daily/daily-wind-strong-location.dialog} | 0 .../da-dk/{ => dialog/direction}/east.dialog | 0 .../da-dk/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../da-dk/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../da-dk/{ => dialog/direction}/west.dialog | 0 .../error/cant-get-forecast.dialog} | 0 .../error/location-not-found.dialog} | 0 .../error/no-forecast.dialog} | 0 ...hourly-condition-alternative-local.dialog} | 0 ...rly-condition-alternative-location.dialog} | 0 .../hourly-condition-expected-local.dialog} | 0 ...hourly-condition-expected-location.dialog} | 0 ...ourly-condition-not-expected-local.dialog} | 0 ...ly-condition-not-expected-location.dialog} | 0 .../hourly/hourly-temperature-local.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 .../percentage-number.dialog} | 0 locale/da-dk/{ => dialog/unit}/celsius.dialog | 0 .../da-dk/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 .../weekly/weekly-temperature.dialog} | 0 locale/da-dk/{Forecast.voc => forecast.voc} | 0 locale/da-dk/{Location.voc => location.voc} | 0 locale/da-dk/{ => regex}/location.rx | 0 locale/da-dk/{Sunrise.voc => sunrise.voc} | 0 locale/da-dk/{Sunset.voc => sunset.voc} | 0 locale/da-dk/this.week.dialog | 0 .../condition/clear.voc} | 0 .../condition/clouds.voc} | 0 .../condition/do-i-need-an-umbrella-intent} | 0 .../{Fog.voc => vocabulary/condition/fog.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/rain.voc} | 0 .../condition/snow.voc} | 0 .../condition/thunderstorm.voc} | 0 .../condition/windy.voc} | 0 .../date-time/couple.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Now.voc => vocabulary/date-time/now.voc} | 0 .../date-time/relative-day.voc} | 0 .../date-time/relative-time.voc} | 0 .../date-time/today.voc} | 0 .../date-time/week.voc} | 0 .../date-time/weekend.voc} | 0 .../query/confirm-query-current.voc} | 0 .../query/confirm-query-future.voc} | 0 .../query/confirm-query.voc} | 0 .../{How.voc => vocabulary/query/how.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 .../{When.voc => vocabulary/query/when.voc} | 0 .../temperature/cold.voc} | 0 .../temperature/high.voc} | 0 .../temperature/hot.voc} | 0 .../temperature/low.voc} | 0 .../temperature/temperature.voc} | 0 .../unit/fahrenheit.voc} | 0 .../unit/unit.entity} | 0 .../{Unit.voc => vocabulary/unit/unit.voc} | 0 locale/da-dk/{Weather.voc => weather.voc} | 0 locale/de-de/ThreeDay.voc | 3 - locale/de-de/WeatherType.voc | 7 - locale/de-de/{ => dialog}/and.dialog | 0 .../{ => dialog/condition}/clear sky.dialog | 0 .../de-de/{ => dialog/condition}/clear.dialog | 0 .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../de-de/{ => dialog/condition}/rain.dialog | 0 .../de-de/{ => dialog/condition}/snow.dialog | 0 .../condition}/thunderstorm.dialog | 0 .../current-condition-expected-local.dialog} | 0 ...urrent-condition-expected-location.dialog} | 0 .../current/current-humidity-location.dialog} | 0 .../current-temperature-high-local.dialog} | 0 .../current-temperature-high-location.dialog} | 0 .../current-temperature-high-low.dialog} | 0 .../current/current-temperature-local.dialog} | 0 .../current-temperature-location.dialog} | 0 .../current-temperature-low-local.dialog} | 0 .../current-temperature-low-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../current/current-wind-light-local.dialog} | 0 .../current-wind-light-location.dialog} | 0 .../current-wind-moderate-local.dialog} | 0 .../current-wind-moderate-location.dialog} | 0 .../current/current-wind-strong-local.dialog} | 0 .../current-wind-strong-location.dialog} | 0 .../daily-condition-expected-local.dialog} | 0 .../daily-condition-expected-location.dialog} | 0 .../daily-temperature-high-local.dialog} | 0 .../daily-temperature-high-location.dialog} | 0 .../daily/daily-temperature-local.dialog} | 0 .../daily/daily-temperature-location.dialog} | 0 .../daily/daily-temperature-low-local.dialog} | 0 .../daily-temperature-low-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../daily/daily-wind-light-local.dialog} | 0 .../daily/daily-wind-light-location.dialog} | 0 .../daily/daily-wind-moderate-local.dialog} | 0 .../daily-wind-moderate-location.dialog} | 0 .../daily/daily-wind-strong-local.dialog} | 0 .../daily/daily-wind-strong-location.dialog} | 0 .../de-de/{ => dialog/direction}/east.dialog | 0 .../de-de/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../de-de/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../de-de/{ => dialog/direction}/west.dialog | 0 .../error/cant-get-forecast.dialog} | 0 .../error/location-not-found.dialog} | 0 .../error/no-forecast.dialog} | 0 ...hourly-condition-alternative-local.dialog} | 0 ...rly-condition-alternative-location.dialog} | 0 .../hourly-condition-expected-local.dialog} | 0 ...hourly-condition-expected-location.dialog} | 0 ...ourly-condition-not-expected-local.dialog} | 0 ...ly-condition-not-expected-location.dialog} | 0 .../hourly/hourly-temperature-local.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 .../percentage-number.dialog} | 0 locale/de-de/{ => dialog/unit}/celsius.dialog | 0 .../de-de/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 .../weekly/weekly-temperature.dialog} | 0 locale/de-de/do not know.dialog | 2 - locale/de-de/{Forecast.voc => forecast.voc} | 0 locale/de-de/{Location.voc => location.voc} | 0 locale/de-de/{ => regex}/location.rx | 0 locale/de-de/sunrise.dialog | 2 - locale/de-de/{Sunrise.voc => sunrise.voc} | 0 locale/de-de/sunset.dialog | 3 - locale/de-de/{Sunset.voc => sunset.voc} | 0 .../condition/clear.voc} | 0 .../condition/clouds.voc} | 0 .../{Fog.voc => vocabulary/condition/fog.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/rain.voc} | 0 .../condition/snow.voc} | 0 .../condition/thunderstorm.voc} | 0 .../condition/windy.voc} | 0 .../date-time/couple.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Now.voc => vocabulary/date-time/now.voc} | 0 .../date-time/relative-day.voc} | 0 .../date-time/relative-time.voc} | 0 .../date-time/today.voc} | 0 .../date-time/week.voc} | 0 .../date-time/weekend.voc} | 0 .../query/confirm-query-current.voc} | 0 .../query/confirm-query-future.voc} | 0 .../query/confirm-query.voc} | 0 .../{How.voc => vocabulary/query/how.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 .../{When.voc => vocabulary/query/when.voc} | 0 .../temperature/cold.voc} | 0 .../temperature/high.voc} | 0 .../temperature/hot.voc} | 0 .../temperature/low.voc} | 0 .../temperature/temperature.voc} | 0 .../unit/fahrenheit.voc} | 0 .../unit/unit.entity} | 0 .../{Unit.voc => vocabulary/unit/unit.voc} | 0 locale/de-de/{Weather.voc => weather.voc} | 0 locale/en-us/{ => dialog}/and.dialog | 0 .../condition/clear-sky.dialog} | 0 .../en-us/{ => dialog/condition}/clear.dialog | 0 .../{ => dialog/condition}/clouds.dialog | 0 .../{ => dialog/condition}/humidity.dialog | 0 .../en-us/{ => dialog/condition}/rain.dialog | 0 .../en-us/{ => dialog/condition}/snow.dialog | 0 .../condition}/thunderstorm.dialog | 0 .../current-condition-expected-local.dialog} | 0 ...urrent-condition-expected-location.dialog} | 0 ...rrent-condition-not-expected-local.dialog} | 0 ...nt-condition-not-expected-location.dialog} | 0 .../current/current-humidity-local.dialog} | 0 .../current/current-humidity-location.dialog} | 0 .../current-sunrise-future-local.dialog} | 0 .../current-sunrise-future-location.dialog} | 0 .../current-sunrise-past-local.dialog} | 0 .../current-sunrise-past-location.dialog} | 0 .../current-sunset-future-local.dialog} | 0 .../current-sunset-future-location.dialog} | 0 .../current/current-sunset-past-local.dialog} | 0 .../current-sunset-past-location.dialog} | 0 .../current-temperature-high-local.dialog} | 0 .../current-temperature-high-location.dialog} | 0 .../current-temperature-high-low.dialog} | 0 .../current/current-temperature-local.dialog} | 0 .../current-temperature-location.dialog} | 0 .../current-temperature-low-local.dialog} | 0 .../current-temperature-low-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../current/current-wind-light-local.dialog} | 0 .../current-wind-light-location.dialog} | 0 .../current-wind-moderate-local.dialog} | 0 .../current-wind-moderate-location.dialog} | 0 .../current/current-wind-strong-local.dialog} | 0 .../current-wind-strong-location.dialog} | 0 .../currrent-clouds-alternative-local.dialog} | 0 .../daily-condition-expected-local.dialog} | 0 .../daily-condition-expected-location.dialog} | 0 ...daily-condition-not-expected-local.dialog} | 0 ...ly-condition-not-expected-location.dialog} | 0 .../daily/daily-humidity-local.dialog} | 0 .../daily/daily-humidity-location.dialog} | 0 .../daily-precipitation-next-local.dialog} | 0 .../daily-precipitation-next-location.dialog} | 0 ...aily-precipitation-next-none-local.dialog} | 0 ...y-precipitation-next-none-location.dialog} | 0 .../daily/daily-sunrise-local.dialog} | 0 .../daily/daily-sunrise-location.dialog} | 0 .../daily/daily-sunset-local.dialog} | 0 .../daily/daily-sunset-location.dialog} | 0 .../daily-temperature-high-local.dialog} | 0 .../daily-temperature-high-location.dialog} | 0 .../daily/daily-temperature-local.dialog} | 0 .../daily/daily-temperature-location.dialog} | 0 .../daily/daily-temperature-low-local.dialog} | 0 .../daily-temperature-low-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../daily/daily-wind-light-local.dialog} | 0 .../daily/daily-wind-light-location.dialog} | 0 .../daily/daily-wind-moderate-local.dialog} | 0 .../daily-wind-moderate-location.dialog} | 0 .../daily/daily-wind-strong-local.dialog} | 0 .../daily/daily-wind-strong-location.dialog} | 0 .../en-us/{ => dialog/direction}/east.dialog | 0 .../en-us/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../en-us/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../en-us/{ => dialog/direction}/west.dialog | 0 .../error/cant-get-forecast.dialog} | 0 .../error/forty-eight-hours-available.dialog} | 0 .../error/location-not-found.dialog} | 0 .../error/no-forecast.dialog} | 0 .../error/seven-days-available.dialog} | 0 .../hourly-condition-expected-local.dialog} | 0 ...hourly-condition-expected-location.dialog} | 0 .../hourly-precipitation-next-local.dialog} | 0 ...hourly-precipitation-next-location.dialog} | 0 .../hourly/hourly-temperature-local.dialog} | 0 .../hourly-temperature-location.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 .../percentage-number.dialog} | 0 locale/en-us/{ => dialog/unit}/celsius.dialog | 0 .../en-us/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 .../weekly/weekly-condition.dialog} | 0 .../weekly/weekly-temperature.dialog} | 0 locale/en-us/{ => regex}/location.rx | 0 .../condition/clear.voc} | 0 .../condition/clouds.voc} | 0 .../condition/do-i-need-an-umbrella.intent} | 0 .../{Fog.voc => vocabulary/condition/fog.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/rain.voc} | 0 .../condition/snow.voc} | 0 .../condition/thunderstorm.voc} | 0 .../condition/windy.voc} | 0 .../date-time/couple.voc} | 0 .../{Few.voc => vocabulary/date-time/few.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Now.voc => vocabulary/date-time/now.voc} | 0 .../date-time/number-days.voc} | 0 .../date-time/relative-day.voc} | 0 .../date-time/relative-time.voc} | 0 .../date-time/today.voc} | 0 .../date-time/week.voc} | 0 .../date-time/weekend.voc} | 0 .../{Forecast.voc => vocabulary/forecast.voc} | 0 .../en-us/{Like.voc => vocabulary/like.voc} | 0 .../{Location.voc => vocabulary/location.voc} | 0 .../{Outside.voc => vocabulary/outside.voc} | 0 .../query/confirm-query-current.voc} | 0 .../query/confirm-query-future.voc} | 0 .../query/confirm-query.voc} | 0 .../{How.voc => vocabulary/query/how.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 .../{When.voc => vocabulary/query/when.voc} | 0 .../{Sunrise.voc => vocabulary/sunrise.voc} | 0 .../{Sunset.voc => vocabulary/sunset.voc} | 0 .../temperature/cold.voc} | 0 .../temperature/high.voc} | 0 .../temperature/hot.voc} | 0 .../temperature/low.voc} | 0 .../temperature/temperature.voc} | 0 .../unit/fahrenheit.voc} | 0 .../unit/unit.entity} | 0 .../{Unit.voc => vocabulary/unit/unit.voc} | 0 .../{Weather.voc => vocabulary/weather.voc} | 0 locale/es-es/WeatherType.voc | 7 - .../{ => dialog/condition}/humidity.dialog | 0 .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../es-es/{ => dialog/condition}/rain.dialog | 0 .../es-es/{ => dialog/condition}/snow.dialog | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../es-es/{ => dialog/direction}/east.dialog | 0 .../es-es/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../es-es/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../es-es/{ => dialog/direction}/west.dialog | 0 .../error/location-not-found.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 locale/es-es/{ => dialog/unit}/celsius.dialog | 0 .../es-es/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 locale/es-es/do not know.dialog | 2 - locale/es-es/{Forecast.voc => forecast.voc} | 0 locale/es-es/{Location.voc => location.voc} | 0 locale/es-es/no forecast.dialog | 2 - locale/es-es/{ => regex}/location.rx | 0 locale/es-es/{Sunrise.voc => sunrise.voc} | 0 locale/es-es/{Sunset.voc => sunset.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/windy.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 locale/es-es/{Weather.voc => weather.voc} | 0 locale/fr-fr/WeatherType.voc | 7 - .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../fr-fr/{ => dialog/condition}/rain.dialog | 0 .../fr-fr/{ => dialog/condition}/snow.dialog | 0 .../current/current-humidity-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../fr-fr/{ => dialog/direction}/east.dialog | 0 .../fr-fr/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../fr-fr/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../fr-fr/{ => dialog/direction}/west.dialog | 0 .../error/location-not-found.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 locale/fr-fr/{ => dialog/unit}/celsius.dialog | 0 .../fr-fr/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 locale/fr-fr/{Forecast.voc => forecast.voc} | 0 locale/fr-fr/{Location.voc => location.voc} | 0 locale/fr-fr/{Next.voc => next.voc} | 0 locale/fr-fr/no forecast.dialog | 2 - locale/fr-fr/{ => regex}/location.rx | 0 locale/fr-fr/{Sunrise.voc => sunrise.voc} | 0 locale/fr-fr/{Sunset.voc => sunset.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/windy.voc} | 0 .../date-time/later.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 locale/fr-fr/{Weather.voc => weather.voc} | 0 locale/gl-es/ThreeDay.voc | 3 - locale/gl-es/WeatherType.voc | 7 - locale/gl-es/{ => dialog}/and.dialog | 0 .../{ => dialog/condition}/clear sky.dialog | 0 .../gl-es/{ => dialog/condition}/clear.dialog | 0 .../no precipitation expected.dialog | 0 .../condition/percentage-number.dialog} | 0 .../condition}/precipitation expected.dialog | 0 .../gl-es/{ => dialog/condition}/rain.dialog | 0 .../gl-es/{ => dialog/condition}/snow.dialog | 0 .../condition}/thunderstorm.dialog | 0 .../current-condition-expected-local.dialog} | 0 ...urrent-condition-expected-location.dialog} | 0 .../current/current-humidity-location.dialog} | 0 .../current-temperature-high-local.dialog} | 0 .../current-temperature-high-location.dialog} | 0 .../current-temperature-high-low.dialog} | 0 .../current/current-temperature-local.dialog} | 0 .../current-temperature-location.dialog} | 0 .../current-temperature-low-local.dialog} | 0 .../current-temperature-low-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../current/current-wind-light-local.dialog} | 0 .../current-wind-light-location.dialog} | 0 .../current-wind-moderate-local.dialog} | 0 .../current-wind-moderate-location.dialog} | 0 .../current/current-wind-strong-local.dialog} | 0 .../current-wind-strong-location.dialog} | 0 .../daily-condition-expected-local.dialog} | 0 .../daily-condition-expected-location.dialog} | 0 .../daily-temperature-high-local.dialog} | 0 .../daily-temperature-high-location.dialog} | 0 .../daily/daily-temperature-local.dialog} | 0 .../daily/daily-temperature-location.dialog} | 0 .../daily/daily-temperature-low-local.dialog} | 0 .../daily-temperature-low-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../daily/daily-wind-light-local.dialog} | 0 .../daily/daily-wind-light-location.dialog} | 0 .../daily/daily-wind-moderate-local.dialog} | 0 .../daily-wind-moderate-location.dialog} | 0 .../daily/daily-wind-strong-local.dialog} | 0 .../daily/daily-wind-strong-location.dialog} | 0 .../gl-es/{ => dialog/direction}/east.dialog | 0 .../gl-es/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../gl-es/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../gl-es/{ => dialog/direction}/west.dialog | 0 .../error/cant-get-forecast.dialog} | 0 .../error/location-not-found.dialog} | 0 .../error/no-forecast.dialog} | 0 ...hourly-condition-alternative-local.dialog} | 0 ...rly-condition-alternative-location.dialog} | 0 .../hourly-condition-expected-local.dialog} | 0 .../hourly/hourly-condition-expected.dialog} | 0 ...ourly-condition-not-expected-local.dialog} | 0 ...ly-condition-not-expected-location.dialog} | 0 .../hourly/hourly-temperature-local.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 locale/gl-es/{ => dialog/unit}/celsius.dialog | 0 .../gl-es/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 .../weekly/weekly-temperature.dialog} | 0 locale/gl-es/{Forecast.voc => forecast.voc} | 0 locale/gl-es/{Location.voc => location.voc} | 0 locale/gl-es/{ => regex}/location.rx | 0 locale/gl-es/{Sunrise.voc => sunrise.voc} | 0 locale/gl-es/{Sunset.voc => sunset.voc} | 0 .../condition/clear.voc} | 0 .../condition/clouds.voc} | 0 .../condition}/do.i.need.an.umbrella.intent | 0 .../{Fog.voc => vocabulary/condition/fog.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/rain.voc} | 0 .../condition/snow.voc} | 0 .../condition/thunderstorm.voc} | 0 .../condition/windy.voc} | 0 .../date-time/couple.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Now.voc => vocabulary/date-time/now.voc} | 0 .../date-time/relative-day.voc} | 0 .../date-time/relative-time.voc} | 0 .../date-time/today.voc} | 0 .../date-time/week.voc} | 0 .../date-time/weekend.voc} | 0 .../query/confirm-query-current.voc} | 0 .../query/confirm-query-future.voc} | 0 .../query/confirm-query.voc} | 0 .../{How.voc => vocabulary/query/how.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 .../{When.voc => vocabulary/query/when.voc} | 0 .../temperature/cold.voc} | 0 .../temperature/high.voc} | 0 .../temperature/hot.voc} | 0 .../temperature/low.voc} | 0 .../temperature/temperature.voc} | 0 .../unit/fahrenheit.voc} | 0 .../unit/unit.entity} | 0 .../{Unit.voc => vocabulary/unit/unit.voc} | 0 locale/gl-es/{Weather.voc => weather.voc} | 0 locale/it-it/WeatherType.voc | 7 - .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../it-it/{ => dialog/condition}/rain.dialog | 0 .../it-it/{ => dialog/condition}/snow.dialog | 0 .../current-condition-expected-local.dialog} | 0 ...urrent-condition-expected-location.dialog} | 0 .../current/current-humidity-location.dialog} | 0 .../current-temperature-high-local.dialog} | 0 .../current-temperature-high-location.dialog} | 0 .../current-temperature-high-low.dialog} | 0 .../current/current-temperature-local.dialog} | 0 .../current-temperature-location.dialog} | 0 .../current-temperature-low-local.dialog} | 0 .../current-temperature-low-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../current/current-wind-light-local.dialog} | 0 .../current-wind-light-location.dialog} | 0 .../current-wind-moderate-local.dialog} | 0 .../current-wind-moderate-location.dialog} | 0 .../current/current-wind-strong-local.dialog} | 0 .../current-wind-strong-location.dialog} | 0 .../daily-condition-expected-local.dialog} | 0 .../daily-condition-expected-location.dialog} | 0 .../daily-temperature-high-local.dialog} | 0 .../daily-temperature-high-location.dialog} | 0 .../daily/daily-temperature-local.dialog} | 0 .../daily/daily-temperature-location.dialog} | 0 .../daily/daily-temperature-low-local.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../daily/daily-wind-light-local.dialog} | 0 .../daily/daily-wind-light-location.dialog} | 0 .../daily/daily-wind-moderate-local.dialog} | 0 .../daily-wind-moderate-location.dialog} | 0 .../daily/daily-wind-strong-local.dialog} | 0 .../daily/daily-wind-strong-location.dialog} | 0 .../it-it/{ => dialog/direction}/east.dialog | 0 .../it-it/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../it-it/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../it-it/{ => dialog/direction}/west.dialog | 0 .../error/location-not-found.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 locale/it-it/{ => dialog/unit}/celsius.dialog | 0 .../it-it/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 locale/it-it/{Forecast.voc => forecast.voc} | 0 locale/it-it/{Location.voc => location.voc} | 0 locale/it-it/no forecast.dialog | 2 - locale/it-it/{ => regex}/location.rx | 0 locale/it-it/{Sunrise.voc => sunrise.voc} | 0 locale/it-it/{Sunset.voc => sunset.voc} | 0 .../condition/clear.voc} | 0 .../condition/clouds.voc} | 0 .../condition}/do.i.need.an.umbrella.intent | 0 .../{Fog.voc => vocabulary/condition/fog.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/rain.voc} | 0 .../condition/snow.voc} | 0 .../condition/windy.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../date-time/weekend.voc} | 0 .../query/confirm-query.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 .../temperature/cold.voc} | 0 .../temperature/high.voc} | 0 .../temperature/hot.voc} | 0 .../temperature/low.voc} | 0 .../temperature/temperature.voc} | 0 .../unit/fahrenheit.voc} | 0 .../unit/unit.entity} | 0 .../{Unit.voc => vocabulary/unit/unit.voc} | 0 locale/it-it/{Weather.voc => weather.voc} | 0 locale/nl-nl/WeatherType.voc | 7 - .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../nl-nl/{ => dialog/condition}/rain.dialog | 0 .../nl-nl/{ => dialog/condition}/snow.dialog | 0 .../current/current-humidity-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../nl-nl/{ => dialog/direction}/east.dialog | 0 .../nl-nl/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../nl-nl/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../error/location-not-found.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 locale/nl-nl/{ => dialog/unit}/celsius.dialog | 0 .../nl-nl/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 locale/nl-nl/{Forecast.voc => forecast.voc} | 0 locale/nl-nl/{Location.voc => location.voc} | 0 locale/nl-nl/no forecast.dialog | 2 - locale/nl-nl/{ => regex}/location.rx | 0 locale/nl-nl/{Sunrise.voc => sunrise.voc} | 0 locale/nl-nl/{Sunset.voc => sunset.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/windy.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 locale/nl-nl/{Weather.voc => weather.voc} | 0 locale/pt-br/ThreeDay.voc | 3 - locale/pt-br/WeatherType.voc | 7 - locale/pt-br/{ => dialog}/and.dialog | 0 .../{ => dialog/condition}/clear sky.dialog | 0 .../pt-br/{ => dialog/condition}/clear.dialog | 0 .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../pt-br/{ => dialog/condition}/rain.dialog | 0 .../pt-br/{ => dialog/condition}/snow.dialog | 0 .../condition}/thunderstorm.dialog | 0 .../current-condition-expected-local.dialog} | 0 ...urrent-condition-expected-location.dialog} | 0 .../current/current-humidity-location.dialog} | 0 .../current-temperature-high-local.dialog} | 0 .../current-temperature-high-location.dialog} | 0 .../current-temperature-high-low.dialog} | 0 .../current/current-temperature-local.dialog} | 0 .../current-temperature-location.dialog} | 0 .../current-temperature-low-local.dialog} | 0 .../current-temperature-low-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../current/current-wind-light-local.dialog} | 0 .../current-wind-light-location.dialog} | 0 .../current-wind-moderate-local.dialog} | 0 .../current-wind-moderate-location.dialog} | 0 .../current/current-wind-strong-local.dialog} | 0 .../current-wind-strong-location.dialog} | 0 .../daily-condition-expected-local.dialog} | 0 .../daily-condition-expected-location.dialog} | 0 .../daily-temperature-high-local.dialog} | 0 .../daily/daily-temperature-high.dialog} | 0 .../daily/daily-temperature-local.dialog} | 0 .../daily/daily-temperature-location.dialog} | 0 .../daily/daily-temperature-low-local.dialog} | 0 .../daily-temperature-low-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../daily/daily-wind-light-local.dialog} | 0 .../daily/daily-wind-light-location.dialog} | 0 .../daily/daily-wind-moderate-local.dialog} | 0 .../daily-wind-moderate-location.dialog} | 0 .../daily/daily-wind-strong-local.dialog} | 0 .../daily/daily-wind-strong-location.dialog} | 0 .../pt-br/{ => dialog/direction}/east.dialog | 0 .../pt-br/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../pt-br/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../pt-br/{ => dialog/direction}/west.dialog | 0 .../error/cant-get-forecast.dialog} | 0 .../error/location-not-found.dialog} | 0 ...hourly-condition-alternative-local.dialog} | 0 ...rly-condition-alternative-location.dialog} | 0 .../hourly-condition-expected-local.dialog} | 0 ...hourly-condition-expected-location.dialog} | 0 ...ourly-condition-not-expected-local.dialog} | 0 ...ly-condition-not-expected-location.dialog} | 0 .../hourly/hourly-temperature-local.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 .../percentage-number.dialog} | 0 locale/pt-br/{ => dialog/unit}/celsius.dialog | 0 .../pt-br/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 .../weekly/weekly-temperature.dialog} | 0 locale/pt-br/{Forecast.voc => forecast.voc} | 0 locale/pt-br/{Location.voc => location.voc} | 0 locale/pt-br/no.forecast.dialog | 2 - locale/pt-br/{ => regex}/location.rx | 0 locale/pt-br/{Sunrise.voc => sunrise.voc} | 0 locale/pt-br/{Sunset.voc => sunset.voc} | 0 .../condition/clear.voc} | 0 .../condition/clouds.voc} | 0 .../condition}/do.i.need.an.umbrella.intent | 0 .../{Fog.voc => vocabulary/condition/fog.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/rain.voc} | 0 .../condition/snow.voc} | 0 .../condition/thunderstorm.voc} | 0 .../condition/windy.voc} | 0 .../date-time/couple.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Now.voc => vocabulary/date-time/now.voc} | 0 .../date-time/relative-day.voc} | 0 .../date-time/relative-time.voc} | 0 .../date-time/today.voc} | 0 .../date-time/week.voc} | 0 .../date-time/weekend.voc} | 0 .../query/confirm-query-current.voc} | 0 .../query/confirm-query-future.voc} | 0 .../query/confirm-query.voc} | 0 .../{How.voc => vocabulary/query/how.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 .../{When.voc => vocabulary/query/when.voc} | 0 .../temperature/cold.voc} | 0 .../temperature/high.voc} | 0 .../temperature/hot.voc} | 0 .../temperature/low.voc} | 0 .../temperature/temperature.voc} | 0 .../unit/fahrenheit.voc} | 0 .../unit/unit.entity} | 0 .../{Unit.voc => vocabulary/unit/unit.voc} | 0 locale/pt-br/{Weather.voc => weather.voc} | 0 locale/ru-ru/WeatherType.voc | 7 - .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../ru-ru/{ => dialog/condition}/rain.dialog | 0 .../ru-ru/{ => dialog/condition}/snow.dialog | 0 .../current/current-humidity-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../daily/daily-weather-loation.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../ru-ru/{ => dialog/direction}/east.dialog | 0 .../ru-ru/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../ru-ru/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../ru-ru/{ => dialog/direction}/west.dialog | 0 .../error/location-not-found.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 locale/ru-ru/{ => dialog/unit}/celsius.dialog | 0 .../ru-ru/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 locale/ru-ru/{Forecast.voc => forecast.voc} | 0 locale/ru-ru/{Location.voc => location.voc} | 0 locale/ru-ru/no forecast.dialog | 2 - locale/ru-ru/{ => regex}/location.rx | 0 locale/ru-ru/{Sunrise.voc => sunrise.voc} | 0 locale/ru-ru/{Sunset.voc => sunset.voc} | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/windy.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 locale/ru-ru/{Weather.voc => weather.voc} | 0 locale/sv-se/ThreeDay.voc | 3 - locale/sv-se/WeatherType.voc | 7 - locale/sv-se/{ => dialog}/and.dialog | 0 .../{ => dialog/condition}/clear sky.dialog | 0 .../sv-se/{ => dialog/condition}/clear.dialog | 0 .../no precipitation expected.dialog | 0 .../condition}/precipitation expected.dialog | 0 .../sv-se/{ => dialog/condition}/rain.dialog | 0 .../sv-se/{ => dialog/condition}/snow.dialog | 0 .../condition}/thunderstorm.dialog | 0 .../current-condition-expected-local.dialog} | 0 ...urrent-condition-expected-location.dialog} | 0 .../current/current-humidity-location.dialog} | 0 .../current-temperature-high-local.dialog} | 0 .../current-temperature-high-location.dialog} | 0 .../current-temperature-high-low.dialog} | 0 .../current/current-temperature-local.dialog} | 0 .../current-temperature-location.dialog} | 0 .../current-temperature-low-local.dialog} | 0 .../current-temperature-low-location.dialog} | 0 .../current/current-weather-local.dialog} | 0 .../current/current-weather-location.dialog} | 0 .../current/current-wind-light-local.dialog} | 0 .../current-wind-light-location.dialog} | 0 .../current-wind-moderate-local.dialog} | 0 .../current-wind-moderate-location.dialog} | 0 .../current/current-wind-strong-local.dialog} | 0 .../current-wind-strong-location.dialog} | 0 .../daily-condition-expected-local.dialog} | 0 .../daily-condition-expected-location.dialog} | 0 .../daily-temperature-high-local.dialog} | 0 .../daily-temperature-high-location.dialog} | 0 .../daily/daily-temperature-local.dialog} | 0 .../daily/daily-temperature-location.dialog} | 0 .../daily/daily-temperature-low-local.dialog} | 0 .../daily-temperature-low-location.dialog} | 0 .../daily/daily-weather-local.dialog} | 0 .../daily/daily-weather-location.dialog} | 0 .../daily/daily-wind-light-local.dialog} | 0 .../daily/daily-wind-light-location.dialog} | 0 .../daily/daily-wind-moderate-local.dialog} | 0 .../daily-wind-moderate-location.dialog} | 0 .../daily/daily-wind-strong-local.dialog} | 0 .../daily/daily-wind-strong-location.dialog} | 0 .../sv-se/{ => dialog/direction}/east.dialog | 0 .../sv-se/{ => dialog/direction}/north.dialog | 0 .../{ => dialog/direction}/northeast.dialog | 0 .../{ => dialog/direction}/northwest.dialog | 0 .../sv-se/{ => dialog/direction}/south.dialog | 0 .../{ => dialog/direction}/southeast.dialog | 0 .../{ => dialog/direction}/southwest.dialog | 0 .../sv-se/{ => dialog/direction}/west.dialog | 0 .../error/cant-get-forecast.dialog} | 0 .../error/location-not-found.dialog} | 0 .../error/no-forecast.dialog} | 0 ...hourly-condition-alternative-local.dialog} | 0 ...rly-condition-alternative-location.dialog} | 0 .../hourly-condition-expected-local.dialog} | 0 ...hourly-condition-expected-location.dialog} | 0 ...ourly-condition-not-expected-local.dialog} | 0 ...ly-condition-not-expected-location.dialog} | 0 .../hourly/hourly-temperature-local.dialog} | 0 .../hourly/hourly-weather-local.dialog} | 0 .../hourly/hourly-weather-location.dialog} | 0 .../percentage-number.dialog} | 0 locale/sv-se/{ => dialog/unit}/celsius.dialog | 0 .../sv-se/{ => dialog/unit}/fahrenheit.dialog | 0 .../unit}/meters per second.dialog | 0 .../{ => dialog/unit}/miles per hour.dialog | 0 .../weekly/weekly-temperature.dialog} | 0 locale/sv-se/{Forecast.voc => forecast.voc} | 0 locale/sv-se/{Location.voc => location.voc} | 0 locale/sv-se/{ => regex}/location.rx | 0 locale/sv-se/sunrise.dialog | 2 - locale/sv-se/{Sunrise.voc => sunrise.voc} | 0 locale/sv-se/sunset.dialog | 3 - locale/sv-se/{Sunset.voc => sunset.voc} | 0 .../condition/clear.voc} | 0 .../condition/clouds.voc} | 0 .../condition}/do.i.need.an.umbrella.intent | 0 .../condition/humidity.voc} | 0 .../condition/precipitation.voc} | 0 .../condition/rain.voc} | 0 .../condition/snow.voc} | 0 .../condition/thunderstorm.voc} | 0 .../condition/windy.voc} | 0 .../date-time/couple.voc} | 0 .../date-time/later.voc} | 0 .../date-time/next.voc} | 0 .../{Now.voc => vocabulary/date-time/now.voc} | 0 .../date-time/relative-day.voc} | 0 .../date-time/relative-time.voc} | 0 .../date-time/today.voc} | 0 .../date-time/week.voc} | 0 .../date-time/weekend.voc} | 0 .../query/confirm-query-current.voc} | 0 .../query/confirm-query-future.voc} | 0 .../query/confirm-query.voc} | 0 .../{How.voc => vocabulary/query/how.voc} | 0 .../{Query.voc => vocabulary/query/query.voc} | 0 .../{When.voc => vocabulary/query/when.voc} | 0 .../temperature/cold.voc} | 0 .../temperature/fog.voc} | 0 .../temperature/high.voc} | 0 .../temperature/hot.voc} | 0 .../temperature/low.voc} | 0 .../temperature/temperature.voc} | 0 .../unit/fahrenheit.voc} | 0 .../unit/unit.entity} | 0 .../{Unit.voc => vocabulary/unit/unit.voc} | 0 locale/sv-se/{Weather.voc => weather.voc} | 0 skill/dialog.py | 62 ++--- skill/intent.py | 4 +- 1043 files changed, 139 insertions(+), 291 deletions(-) delete mode 100644 locale/ca-es/FogAlternatives.voc delete mode 100644 locale/ca-es/ThreeDay.voc delete mode 100644 locale/ca-es/WeatherType.voc rename locale/ca-es/{ => dialog}/and.dialog (100%) rename locale/ca-es/{ => dialog/condition}/clear sky.dialog (100%) rename locale/ca-es/{ => dialog/condition}/clear.dialog (100%) rename locale/ca-es/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/ca-es/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/ca-es/{ => dialog/condition}/rain.dialog (100%) rename locale/ca-es/{ => dialog/condition}/snow.dialog (100%) rename locale/ca-es/{ => dialog/condition}/thunderstorm.dialog (100%) rename locale/ca-es/{current.condition.expected.local.dialog => dialog/current/current-condition-expected-local.dialog} (100%) rename locale/ca-es/{current.condition.expected.location.dialog => dialog/current/current-condition-expected-location.dialog} (100%) rename locale/ca-es/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/ca-es/{current.temperature.high.local.dialog => dialog/current/current-temperature-high-local.dialog} (100%) rename locale/ca-es/{current.temperature.high.location.dialog => dialog/current/current-temperature-high-location.dialog} (100%) rename locale/ca-es/{current.temperature.high.low.dialog => dialog/current/current-temperature-high-low.dialog} (100%) rename locale/ca-es/{current.temperature.local.dialog => dialog/current/current-temperature-local.dialog} (100%) rename locale/ca-es/{current.temperature.location.dialog => dialog/current/current-temperature-location.dialog} (100%) rename locale/ca-es/{current.temperature.low.local.dialog => dialog/current/current-temperature-low-local.dialog} (100%) rename locale/ca-es/{current.temperature.low.location.dialog => dialog/current/current-temperature-low-location.dialog} (100%) rename locale/ca-es/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/ca-es/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/ca-es/{current.wind.light.local.dialog => dialog/current/current-wind-light-local.dialog} (100%) rename locale/ca-es/{current.wind.light.location.dialog => dialog/current/current-wind-light-location.dialog} (100%) rename locale/ca-es/{current.wind.moderate.local.dialog => dialog/current/current-wind-moderate-local.dialog} (100%) rename locale/ca-es/{current.wind.moderate.location.dialog => dialog/current/current-wind-moderate-location.dialog} (100%) rename locale/ca-es/{current.wind.strong.local.dialog => dialog/current/current-wind-strong-local.dialog} (100%) rename locale/ca-es/{current.wind.strong.location.dialog => dialog/current/current-wind-strong-location.dialog} (100%) rename locale/ca-es/{daily.condition.expected.local.dialog => dialog/daily/daily-condition-expected-local.dialog} (100%) rename locale/ca-es/{daily.condition.expected.location.dialog => dialog/daily/daily-condition-expected-location.dialog} (100%) rename locale/ca-es/{daily.temperature.high.local.dialog => dialog/daily/daily-temperature-high-local.dialog} (100%) rename locale/ca-es/{daily.temperature.high.location.dialog => dialog/daily/daily-temperature-high-location.dialog} (100%) rename locale/ca-es/{daily.temperature.local.dialog => dialog/daily/daily-temperature-local.dialog} (100%) rename locale/ca-es/{daily.temperature.location.dialog => dialog/daily/daily-temperature-location.dialog} (100%) rename locale/ca-es/{daily.temperature.low.local.dialog => dialog/daily/daily-temperature-low-local.dialog} (100%) rename locale/ca-es/{daily.temperature.low.location.dialog => dialog/daily/daily-temperature-low-location.dialog} (100%) rename locale/ca-es/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/ca-es/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/ca-es/{daily.wind.light.loaction.dialog => dialog/daily/daily-wind-light-loaction.dialog} (100%) rename locale/ca-es/{daily.wind.light.local.dialog => dialog/daily/daily-wind-light-local.dialog} (100%) rename locale/ca-es/{daily.wind.moderate.local.dialog => dialog/daily/daily-wind-moderate-local.dialog} (100%) rename locale/ca-es/{daily.wind.moderate.location.dialog => dialog/daily/daily-wind-moderate-location.dialog} (100%) rename locale/ca-es/{daily.wind.strong.local.dialog => dialog/daily/daily-wind-strong-local.dialog} (100%) rename locale/ca-es/{daily.wind.strong.location.dialog => dialog/daily/daily-wind-strong-location.dialog} (100%) rename locale/ca-es/{ => dialog/direction}/east.dialog (100%) rename locale/ca-es/{ => dialog/direction}/north.dialog (100%) rename locale/ca-es/{ => dialog/direction}/northeast.dialog (100%) rename locale/ca-es/{ => dialog/direction}/northwest.dialog (100%) rename locale/ca-es/{ => dialog/direction}/south.dialog (100%) rename locale/ca-es/{ => dialog/direction}/southeast.dialog (100%) rename locale/ca-es/{ => dialog/direction}/southwest.dialog (100%) rename locale/ca-es/{ => dialog/direction}/west.dialog (100%) rename locale/ca-es/{cant.get.forecast.dialog => dialog/error/cant-get-forecast.dialog} (100%) rename locale/ca-es/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/ca-es/{no.forecast.dialog => dialog/error/no-forecast.dialog} (100%) rename locale/ca-es/{hourly.condition.alternative.local.dialog => dialog/hourly/hourly-condition-alternative-local.dialog} (100%) rename locale/ca-es/{hourly.condition.alternative.location.dialog => dialog/hourly/hourly-condition-alternative-location.dialog} (100%) rename locale/ca-es/{hourly.condition.expected.local.dialog => dialog/hourly/hourly-condition-expected-local.dialog} (100%) rename locale/ca-es/{hourly.condition.expected.location.dialog => dialog/hourly/hourly-condition-expected-location.dialog} (100%) rename locale/ca-es/{hourly.condition.not.expected.local.dialog => dialog/hourly/hourly-condition-not-expected-local.dialog} (100%) rename locale/ca-es/{hourly.condition.not.expected.location.dialog => dialog/hourly/hourly-condition-not-expected-location.dialog} (100%) rename locale/ca-es/{hourly.temperature.local.dialog => dialog/hourly/hourly-temperature-local.dialog} (100%) rename locale/ca-es/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/ca-es/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/ca-es/{percentage.number.dialog => dialog/percentage-number.dialog} (100%) rename locale/ca-es/{ => dialog/unit}/celsius.dialog (100%) rename locale/ca-es/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/ca-es/{ => dialog/unit}/meters per second.dialog (100%) rename locale/ca-es/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/ca-es/{weekly.temperature.dialog => dialog/weekly/weekly-temperature.dialog} (100%) delete mode 100644 locale/ca-es/from.day.dialog delete mode 100644 locale/ca-es/heavy.dialog rename locale/ca-es/{ => regex}/location.rx (100%) delete mode 100644 locale/ca-es/report.wind.dialog delete mode 100644 locale/ca-es/simple.temperature.intent delete mode 100644 locale/ca-es/sky is clear.future.dialog delete mode 100644 locale/ca-es/sunrise.dialog delete mode 100644 locale/ca-es/sunset.dialog delete mode 100644 locale/ca-es/tonight.local.weather.dialog rename locale/ca-es/{Clear.voc => vocabulary/condition/clear.voc} (100%) rename locale/ca-es/{Clouds.voc => vocabulary/condition/clouds.voc} (100%) rename locale/ca-es/{ => vocabulary/condition}/do.i.need.an.umbrella.intent (100%) rename locale/ca-es/{Fog.voc => vocabulary/condition/fog.voc} (100%) rename locale/ca-es/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/ca-es/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/ca-es/{Rain.voc => vocabulary/condition/rain.voc} (100%) rename locale/ca-es/{Snow.voc => vocabulary/condition/snow.voc} (100%) rename locale/ca-es/{Thunderstorm.voc => vocabulary/condition/thunderstorm.voc} (100%) rename locale/ca-es/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/ca-es/{Couple.voc => vocabulary/couple.voc} (100%) rename locale/ca-es/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/ca-es/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/ca-es/{Now.voc => vocabulary/date-time/now.voc} (100%) rename locale/ca-es/{RelativeDay.voc => vocabulary/date-time/relative-day.voc} (100%) rename locale/ca-es/{RelativeTime.voc => vocabulary/date-time/relative-time.voc} (100%) rename locale/ca-es/{Today.voc => vocabulary/date-time/today.voc} (100%) rename locale/ca-es/{Week.voc => vocabulary/date-time/week.voc} (100%) rename locale/ca-es/{Weekend.voc => vocabulary/date-time/weekend.voc} (100%) rename locale/ca-es/{Forecast.voc => vocabulary/forecast.voc} (100%) rename locale/ca-es/{Location.voc => vocabulary/location.voc} (100%) rename locale/ca-es/{ConfirmQueryCurrent.voc => vocabulary/query/confirm-query-current.voc} (100%) rename locale/ca-es/{ConfirmQueryFuture.voc => vocabulary/query/confirm-query-future.voc} (100%) rename locale/ca-es/{ConfirmQuery.voc => vocabulary/query/confirm-query.voc} (100%) rename locale/ca-es/{How.voc => vocabulary/query/how.voc} (100%) rename locale/ca-es/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/ca-es/{When.voc => vocabulary/query/when.voc} (100%) rename locale/ca-es/{Sunrise.voc => vocabulary/sunrise.voc} (100%) rename locale/ca-es/{Sunset.voc => vocabulary/sunset.voc} (100%) rename locale/ca-es/{Cold.voc => vocabulary/temperature/cold.voc} (100%) rename locale/ca-es/{High.voc => vocabulary/temperature/high.voc} (100%) rename locale/ca-es/{Hot.voc => vocabulary/temperature/hot.voc} (100%) rename locale/ca-es/{Low.voc => vocabulary/temperature/low.voc} (100%) rename locale/ca-es/{Temperature.voc => vocabulary/temperature/temperature.voc} (100%) rename locale/ca-es/{Fahrenheit.voc => vocabulary/unit/fahrenheit.voc} (100%) rename locale/ca-es/{Unit.entity => vocabulary/unit/unit.entity} (100%) rename locale/ca-es/{Unit.voc => vocabulary/unit/unit.voc} (100%) rename locale/ca-es/{Weather.voc => vocabulary/weather.voc} (100%) delete mode 100644 locale/da-dk/ThreeDay.voc delete mode 100644 locale/da-dk/ThunderstormAlternatives.voc delete mode 100644 locale/da-dk/WeatherType.voc rename locale/da-dk/{ => dialog}/and.dialog (100%) rename locale/da-dk/{ => dialog/condition}/clear sky.dialog (100%) rename locale/da-dk/{ => dialog/condition}/clear.dialog (100%) rename locale/da-dk/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/da-dk/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/da-dk/{ => dialog/condition}/rain.dialog (100%) rename locale/da-dk/{ => dialog/condition}/snow.dialog (100%) rename locale/da-dk/{ => dialog/condition}/thunderstorm.dialog (100%) rename locale/da-dk/{current.condition.expected.local.dialog => dialog/current/current-condition-expected-local.dialog} (100%) rename locale/da-dk/{current.condition.expected.location.dialog => dialog/current/current-condition-expected-location.dialog} (100%) rename locale/da-dk/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/da-dk/{current.temperature.high.local.dialog => dialog/current/current-temperature-high-local.dialog} (100%) rename locale/da-dk/{current.temperature.high.location.dialog => dialog/current/current-temperature-high-location.dialog} (100%) rename locale/da-dk/{current.temperature.high.low.dialog => dialog/current/current-temperature-high-low.dialog} (100%) rename locale/da-dk/{current.temperature.local.dialog => dialog/current/current-temperature-local.dialog} (100%) rename locale/da-dk/{current.temperature.location.dialog => dialog/current/current-temperature-location.dialog} (100%) rename locale/da-dk/{current.temperature.low.local.dialog => dialog/current/current-temperature-low-local.dialog} (100%) rename locale/da-dk/{current.temperature.low.location.dialog => dialog/current/current-temperature-low-location.dialog} (100%) rename locale/da-dk/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/da-dk/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/da-dk/{current.wind.light.local.dialog => dialog/current/current-wind-light-local.dialog} (100%) rename locale/da-dk/{current.wind.light.location.dialog => dialog/current/current-wind-light-location.dialog} (100%) rename locale/da-dk/{current.wind.moderate.local.dialog => dialog/current/current-wind-moderate-local.dialog} (100%) rename locale/da-dk/{current.wind.moderate.location.dialog => dialog/current/current-wind-moderate-location.dialog} (100%) rename locale/da-dk/{current.wind.strong.local.dialog => dialog/current/current-wind-strong-local.dialog} (100%) rename locale/da-dk/{current.wind.strong.location.dialog => dialog/current/current-wind-strong-location.dialog} (100%) rename locale/da-dk/{daily.condition.expected.local.dialog => dialog/daily/daily-condition-expected-local.dialog} (100%) rename locale/da-dk/{daily.condition.expected.location.dialog => dialog/daily/daily-condition-expected-location.dialog} (100%) rename locale/da-dk/{daily.temperature.high.local.dialog => dialog/daily/daily-temperature-high-local.dialog} (100%) rename locale/da-dk/{daily.temperature.high.location.dialog => dialog/daily/daily-temperature-high-location.dialog} (100%) rename locale/da-dk/{daily.temperature.local.dialog => dialog/daily/daily-temperature-local.dialog} (100%) rename locale/da-dk/{daily.temperature.location.dialog => dialog/daily/daily-temperature-location.dialog} (100%) rename locale/da-dk/{daily.temperature.low.local.dialog => dialog/daily/daily-temperature-low-local.dialog} (100%) rename locale/da-dk/{daily.temperature.low.location.dialog => dialog/daily/daily-temperature-low-location.dialog} (100%) rename locale/da-dk/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/da-dk/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/da-dk/{daily.wind.light.local.dialog => dialog/daily/daily-wind-light-local.dialog} (100%) rename locale/da-dk/{daily.wind.light.location.dialog => dialog/daily/daily-wind-light-location.dialog} (100%) rename locale/da-dk/{daily.wind.moderate.local.dialog => dialog/daily/daily-wind-moderate-local.dialog} (100%) rename locale/da-dk/{daily.wind.moderate.location.dialog => dialog/daily/daily-wind-moderate-location.dialog} (100%) rename locale/da-dk/{daily.wind.strong.local.dialog => dialog/daily/daily-wind-strong-local.dialog} (100%) rename locale/da-dk/{daily.wind.strong.location.dialog => dialog/daily/daily-wind-strong-location.dialog} (100%) rename locale/da-dk/{ => dialog/direction}/east.dialog (100%) rename locale/da-dk/{ => dialog/direction}/north.dialog (100%) rename locale/da-dk/{ => dialog/direction}/northeast.dialog (100%) rename locale/da-dk/{ => dialog/direction}/northwest.dialog (100%) rename locale/da-dk/{ => dialog/direction}/south.dialog (100%) rename locale/da-dk/{ => dialog/direction}/southeast.dialog (100%) rename locale/da-dk/{ => dialog/direction}/southwest.dialog (100%) rename locale/da-dk/{ => dialog/direction}/west.dialog (100%) rename locale/da-dk/{cant.get.forecast.dialog => dialog/error/cant-get-forecast.dialog} (100%) rename locale/da-dk/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/da-dk/{no.forecast.dialog => dialog/error/no-forecast.dialog} (100%) rename locale/da-dk/{hourly.condition.alternative.local.dialog => dialog/hourly/hourly-condition-alternative-local.dialog} (100%) rename locale/da-dk/{hourly.condition.alternative.location.dialog => dialog/hourly/hourly-condition-alternative-location.dialog} (100%) rename locale/da-dk/{hourly.condition.expected.local.dialog => dialog/hourly/hourly-condition-expected-local.dialog} (100%) rename locale/da-dk/{hourly.condition.expected.location.dialog => dialog/hourly/hourly-condition-expected-location.dialog} (100%) rename locale/da-dk/{hourly.condition.not.expected.local.dialog => dialog/hourly/hourly-condition-not-expected-local.dialog} (100%) rename locale/da-dk/{hourly.condition.not.expected.location.dialog => dialog/hourly/hourly-condition-not-expected-location.dialog} (100%) rename locale/da-dk/{hourly.temperature.local.dialog => dialog/hourly/hourly-temperature-local.dialog} (100%) rename locale/da-dk/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/da-dk/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/da-dk/{percentage.number.dialog => dialog/percentage-number.dialog} (100%) rename locale/da-dk/{ => dialog/unit}/celsius.dialog (100%) rename locale/da-dk/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/da-dk/{ => dialog/unit}/meters per second.dialog (100%) rename locale/da-dk/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/da-dk/{weekly.temperature.dialog => dialog/weekly/weekly-temperature.dialog} (100%) rename locale/da-dk/{Forecast.voc => forecast.voc} (100%) rename locale/da-dk/{Location.voc => location.voc} (100%) rename locale/da-dk/{ => regex}/location.rx (100%) rename locale/da-dk/{Sunrise.voc => sunrise.voc} (100%) rename locale/da-dk/{Sunset.voc => sunset.voc} (100%) delete mode 100644 locale/da-dk/this.week.dialog rename locale/da-dk/{Clear.voc => vocabulary/condition/clear.voc} (100%) rename locale/da-dk/{Clouds.voc => vocabulary/condition/clouds.voc} (100%) rename locale/da-dk/{do.i.need.an.umbrella.intent => vocabulary/condition/do-i-need-an-umbrella-intent} (100%) rename locale/da-dk/{Fog.voc => vocabulary/condition/fog.voc} (100%) rename locale/da-dk/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/da-dk/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/da-dk/{Rain.voc => vocabulary/condition/rain.voc} (100%) rename locale/da-dk/{Snow.voc => vocabulary/condition/snow.voc} (100%) rename locale/da-dk/{Thunderstorm.voc => vocabulary/condition/thunderstorm.voc} (100%) rename locale/da-dk/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/da-dk/{Couple.voc => vocabulary/date-time/couple.voc} (100%) rename locale/da-dk/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/da-dk/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/da-dk/{Now.voc => vocabulary/date-time/now.voc} (100%) rename locale/da-dk/{RelativeDay.voc => vocabulary/date-time/relative-day.voc} (100%) rename locale/da-dk/{RelativeTime.voc => vocabulary/date-time/relative-time.voc} (100%) rename locale/da-dk/{Today.voc => vocabulary/date-time/today.voc} (100%) rename locale/da-dk/{Week.voc => vocabulary/date-time/week.voc} (100%) rename locale/da-dk/{Weekend.voc => vocabulary/date-time/weekend.voc} (100%) rename locale/da-dk/{ConfirmQueryCurrent.voc => vocabulary/query/confirm-query-current.voc} (100%) rename locale/da-dk/{ConfirmQueryFuture.voc => vocabulary/query/confirm-query-future.voc} (100%) rename locale/da-dk/{ConfirmQuery.voc => vocabulary/query/confirm-query.voc} (100%) rename locale/da-dk/{How.voc => vocabulary/query/how.voc} (100%) rename locale/da-dk/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/da-dk/{When.voc => vocabulary/query/when.voc} (100%) rename locale/da-dk/{Cold.voc => vocabulary/temperature/cold.voc} (100%) rename locale/da-dk/{High.voc => vocabulary/temperature/high.voc} (100%) rename locale/da-dk/{Hot.voc => vocabulary/temperature/hot.voc} (100%) rename locale/da-dk/{Low.voc => vocabulary/temperature/low.voc} (100%) rename locale/da-dk/{Temperature.voc => vocabulary/temperature/temperature.voc} (100%) rename locale/da-dk/{Fahrenheit.voc => vocabulary/unit/fahrenheit.voc} (100%) rename locale/da-dk/{Unit.entity => vocabulary/unit/unit.entity} (100%) rename locale/da-dk/{Unit.voc => vocabulary/unit/unit.voc} (100%) rename locale/da-dk/{Weather.voc => weather.voc} (100%) delete mode 100644 locale/de-de/ThreeDay.voc delete mode 100644 locale/de-de/WeatherType.voc rename locale/de-de/{ => dialog}/and.dialog (100%) rename locale/de-de/{ => dialog/condition}/clear sky.dialog (100%) rename locale/de-de/{ => dialog/condition}/clear.dialog (100%) rename locale/de-de/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/de-de/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/de-de/{ => dialog/condition}/rain.dialog (100%) rename locale/de-de/{ => dialog/condition}/snow.dialog (100%) rename locale/de-de/{ => dialog/condition}/thunderstorm.dialog (100%) rename locale/de-de/{current.condition.expected.local.dialog => dialog/current/current-condition-expected-local.dialog} (100%) rename locale/de-de/{current.condition.expected.location.dialog => dialog/current/current-condition-expected-location.dialog} (100%) rename locale/de-de/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/de-de/{current.temperature.high.local.dialog => dialog/current/current-temperature-high-local.dialog} (100%) rename locale/de-de/{current.temperature.high.location.dialog => dialog/current/current-temperature-high-location.dialog} (100%) rename locale/de-de/{current.temperature.high.low.dialog => dialog/current/current-temperature-high-low.dialog} (100%) rename locale/de-de/{current.temperature.local.dialog => dialog/current/current-temperature-local.dialog} (100%) rename locale/de-de/{current.temperature.location.dialog => dialog/current/current-temperature-location.dialog} (100%) rename locale/de-de/{current.temperature.low.local.dialog => dialog/current/current-temperature-low-local.dialog} (100%) rename locale/de-de/{current.temperature.low.location.dialog => dialog/current/current-temperature-low-location.dialog} (100%) rename locale/de-de/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/de-de/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/de-de/{current.wind.light.local.dialog => dialog/current/current-wind-light-local.dialog} (100%) rename locale/de-de/{current.wind.light.location.dialog => dialog/current/current-wind-light-location.dialog} (100%) rename locale/de-de/{current.wind.moderate.local.dialog => dialog/current/current-wind-moderate-local.dialog} (100%) rename locale/de-de/{current.wind.moderate.location.dialog => dialog/current/current-wind-moderate-location.dialog} (100%) rename locale/de-de/{current.wind.strong.local.dialog => dialog/current/current-wind-strong-local.dialog} (100%) rename locale/de-de/{current.wind.strong.location.dialog => dialog/current/current-wind-strong-location.dialog} (100%) rename locale/de-de/{daily.condition.expected.local.dialog => dialog/daily/daily-condition-expected-local.dialog} (100%) rename locale/de-de/{daily.condition.expected.location.dialog => dialog/daily/daily-condition-expected-location.dialog} (100%) rename locale/de-de/{daily.temperature.high.local.dialog => dialog/daily/daily-temperature-high-local.dialog} (100%) rename locale/de-de/{daily.temperature.high.location.dialog => dialog/daily/daily-temperature-high-location.dialog} (100%) rename locale/de-de/{daily.temperature.local.dialog => dialog/daily/daily-temperature-local.dialog} (100%) rename locale/de-de/{daily.temperature.location.dialog => dialog/daily/daily-temperature-location.dialog} (100%) rename locale/de-de/{daily.temperature.low.local.dialog => dialog/daily/daily-temperature-low-local.dialog} (100%) rename locale/de-de/{daily.temperature.low.location.dialog => dialog/daily/daily-temperature-low-location.dialog} (100%) rename locale/de-de/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/de-de/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/de-de/{daily.wind.light.local.dialog => dialog/daily/daily-wind-light-local.dialog} (100%) rename locale/de-de/{daily.wind.light.location.dialog => dialog/daily/daily-wind-light-location.dialog} (100%) rename locale/de-de/{daily.wind.moderate.local.dialog => dialog/daily/daily-wind-moderate-local.dialog} (100%) rename locale/de-de/{daily.wind.moderate.location.dialog => dialog/daily/daily-wind-moderate-location.dialog} (100%) rename locale/de-de/{daily.wind.strong.local.dialog => dialog/daily/daily-wind-strong-local.dialog} (100%) rename locale/de-de/{daily.wind.strong.location.dialog => dialog/daily/daily-wind-strong-location.dialog} (100%) rename locale/de-de/{ => dialog/direction}/east.dialog (100%) rename locale/de-de/{ => dialog/direction}/north.dialog (100%) rename locale/de-de/{ => dialog/direction}/northeast.dialog (100%) rename locale/de-de/{ => dialog/direction}/northwest.dialog (100%) rename locale/de-de/{ => dialog/direction}/south.dialog (100%) rename locale/de-de/{ => dialog/direction}/southeast.dialog (100%) rename locale/de-de/{ => dialog/direction}/southwest.dialog (100%) rename locale/de-de/{ => dialog/direction}/west.dialog (100%) rename locale/de-de/{cant.get.forecast.dialog => dialog/error/cant-get-forecast.dialog} (100%) rename locale/de-de/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/de-de/{no.forecast.dialog => dialog/error/no-forecast.dialog} (100%) rename locale/de-de/{hourly.condition.alternative.local.dialog => dialog/hourly/hourly-condition-alternative-local.dialog} (100%) rename locale/de-de/{hourly.condition.alternative.location.dialog => dialog/hourly/hourly-condition-alternative-location.dialog} (100%) rename locale/de-de/{hourly.condition.expected.local.dialog => dialog/hourly/hourly-condition-expected-local.dialog} (100%) rename locale/de-de/{hourly.condition.expected.location.dialog => dialog/hourly/hourly-condition-expected-location.dialog} (100%) rename locale/de-de/{hourly.condition.not.expected.local.dialog => dialog/hourly/hourly-condition-not-expected-local.dialog} (100%) rename locale/de-de/{hourly.condition.not.expected.location.dialog => dialog/hourly/hourly-condition-not-expected-location.dialog} (100%) rename locale/de-de/{hourly.temperature.local.dialog => dialog/hourly/hourly-temperature-local.dialog} (100%) rename locale/de-de/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/de-de/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/de-de/{percentage.number.dialog => dialog/percentage-number.dialog} (100%) rename locale/de-de/{ => dialog/unit}/celsius.dialog (100%) rename locale/de-de/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/de-de/{ => dialog/unit}/meters per second.dialog (100%) rename locale/de-de/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/de-de/{weekly.temperature.dialog => dialog/weekly/weekly-temperature.dialog} (100%) delete mode 100644 locale/de-de/do not know.dialog rename locale/de-de/{Forecast.voc => forecast.voc} (100%) rename locale/de-de/{Location.voc => location.voc} (100%) rename locale/de-de/{ => regex}/location.rx (100%) delete mode 100644 locale/de-de/sunrise.dialog rename locale/de-de/{Sunrise.voc => sunrise.voc} (100%) delete mode 100644 locale/de-de/sunset.dialog rename locale/de-de/{Sunset.voc => sunset.voc} (100%) rename locale/de-de/{Clear.voc => vocabulary/condition/clear.voc} (100%) rename locale/de-de/{Clouds.voc => vocabulary/condition/clouds.voc} (100%) rename locale/de-de/{Fog.voc => vocabulary/condition/fog.voc} (100%) rename locale/de-de/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/de-de/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/de-de/{Rain.voc => vocabulary/condition/rain.voc} (100%) rename locale/de-de/{Snow.voc => vocabulary/condition/snow.voc} (100%) rename locale/de-de/{Thunderstorm.voc => vocabulary/condition/thunderstorm.voc} (100%) rename locale/de-de/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/de-de/{Couple.voc => vocabulary/date-time/couple.voc} (100%) rename locale/de-de/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/de-de/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/de-de/{Now.voc => vocabulary/date-time/now.voc} (100%) rename locale/de-de/{RelativeDay.voc => vocabulary/date-time/relative-day.voc} (100%) rename locale/de-de/{RelativeTime.voc => vocabulary/date-time/relative-time.voc} (100%) rename locale/de-de/{Today.voc => vocabulary/date-time/today.voc} (100%) rename locale/de-de/{Week.voc => vocabulary/date-time/week.voc} (100%) rename locale/de-de/{Weekend.voc => vocabulary/date-time/weekend.voc} (100%) rename locale/de-de/{ConfirmQueryCurrent.voc => vocabulary/query/confirm-query-current.voc} (100%) rename locale/de-de/{ConfirmQueryFuture.voc => vocabulary/query/confirm-query-future.voc} (100%) rename locale/de-de/{ConfirmQuery.voc => vocabulary/query/confirm-query.voc} (100%) rename locale/de-de/{How.voc => vocabulary/query/how.voc} (100%) rename locale/de-de/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/de-de/{When.voc => vocabulary/query/when.voc} (100%) rename locale/de-de/{Cold.voc => vocabulary/temperature/cold.voc} (100%) rename locale/de-de/{High.voc => vocabulary/temperature/high.voc} (100%) rename locale/de-de/{Hot.voc => vocabulary/temperature/hot.voc} (100%) rename locale/de-de/{Low.voc => vocabulary/temperature/low.voc} (100%) rename locale/de-de/{Temperature.voc => vocabulary/temperature/temperature.voc} (100%) rename locale/de-de/{Fahrenheit.voc => vocabulary/unit/fahrenheit.voc} (100%) rename locale/de-de/{Unit.entity => vocabulary/unit/unit.entity} (100%) rename locale/de-de/{Unit.voc => vocabulary/unit/unit.voc} (100%) rename locale/de-de/{Weather.voc => weather.voc} (100%) rename locale/en-us/{ => dialog}/and.dialog (100%) rename locale/en-us/{clear sky.dialog => dialog/condition/clear-sky.dialog} (100%) rename locale/en-us/{ => dialog/condition}/clear.dialog (100%) rename locale/en-us/{ => dialog/condition}/clouds.dialog (100%) rename locale/en-us/{ => dialog/condition}/humidity.dialog (100%) rename locale/en-us/{ => dialog/condition}/rain.dialog (100%) rename locale/en-us/{ => dialog/condition}/snow.dialog (100%) rename locale/en-us/{ => dialog/condition}/thunderstorm.dialog (100%) rename locale/en-us/{current.condition.expected.local.dialog => dialog/current/current-condition-expected-local.dialog} (100%) rename locale/en-us/{current.condition.expected.location.dialog => dialog/current/current-condition-expected-location.dialog} (100%) rename locale/en-us/{current.condition.not.expected.local.dialog => dialog/current/current-condition-not-expected-local.dialog} (100%) rename locale/en-us/{current.condition.not.expected.location.dialog => dialog/current/current-condition-not-expected-location.dialog} (100%) rename locale/en-us/{current.humidity.local.dialog => dialog/current/current-humidity-local.dialog} (100%) rename locale/en-us/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/en-us/{current.sunrise.future.local.dialog => dialog/current/current-sunrise-future-local.dialog} (100%) rename locale/en-us/{current.sunrise.future.location.dialog => dialog/current/current-sunrise-future-location.dialog} (100%) rename locale/en-us/{current.sunrise.past.local.dialog => dialog/current/current-sunrise-past-local.dialog} (100%) rename locale/en-us/{current.sunrise.past.location.dialog => dialog/current/current-sunrise-past-location.dialog} (100%) rename locale/en-us/{current.sunset.future.local.dialog => dialog/current/current-sunset-future-local.dialog} (100%) rename locale/en-us/{current.sunset.future.location.dialog => dialog/current/current-sunset-future-location.dialog} (100%) rename locale/en-us/{current.sunset.past.local.dialog => dialog/current/current-sunset-past-local.dialog} (100%) rename locale/en-us/{current.sunset.past.location.dialog => dialog/current/current-sunset-past-location.dialog} (100%) rename locale/en-us/{current.temperature.high.local.dialog => dialog/current/current-temperature-high-local.dialog} (100%) rename locale/en-us/{current.temperature.high.location.dialog => dialog/current/current-temperature-high-location.dialog} (100%) rename locale/en-us/{current.temperature.high.low.dialog => dialog/current/current-temperature-high-low.dialog} (100%) rename locale/en-us/{current.temperature.local.dialog => dialog/current/current-temperature-local.dialog} (100%) rename locale/en-us/{current.temperature.location.dialog => dialog/current/current-temperature-location.dialog} (100%) rename locale/en-us/{current.temperature.low.local.dialog => dialog/current/current-temperature-low-local.dialog} (100%) rename locale/en-us/{current.temperature.low.location.dialog => dialog/current/current-temperature-low-location.dialog} (100%) rename locale/en-us/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/en-us/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/en-us/{current.wind.light.local.dialog => dialog/current/current-wind-light-local.dialog} (100%) rename locale/en-us/{current.wind.light.location.dialog => dialog/current/current-wind-light-location.dialog} (100%) rename locale/en-us/{current.wind.moderate.local.dialog => dialog/current/current-wind-moderate-local.dialog} (100%) rename locale/en-us/{current.wind.moderate.location.dialog => dialog/current/current-wind-moderate-location.dialog} (100%) rename locale/en-us/{current.wind.strong.local.dialog => dialog/current/current-wind-strong-local.dialog} (100%) rename locale/en-us/{current.wind.strong.location.dialog => dialog/current/current-wind-strong-location.dialog} (100%) rename locale/en-us/{currrent.clouds.alternative.local.dialog => dialog/current/currrent-clouds-alternative-local.dialog} (100%) rename locale/en-us/{daily.condition.expected.local.dialog => dialog/daily/daily-condition-expected-local.dialog} (100%) rename locale/en-us/{daily.condition.expected.location.dialog => dialog/daily/daily-condition-expected-location.dialog} (100%) rename locale/en-us/{daily.condition.not.expected.local.dialog => dialog/daily/daily-condition-not-expected-local.dialog} (100%) rename locale/en-us/{daily.condition.not.expected.location.dialog => dialog/daily/daily-condition-not-expected-location.dialog} (100%) rename locale/en-us/{daily.humidity.local.dialog => dialog/daily/daily-humidity-local.dialog} (100%) rename locale/en-us/{daily.humidity.location.dialog => dialog/daily/daily-humidity-location.dialog} (100%) rename locale/en-us/{daily.precipitation.next.local.dialog => dialog/daily/daily-precipitation-next-local.dialog} (100%) rename locale/en-us/{daily.precipitation.next.location.dialog => dialog/daily/daily-precipitation-next-location.dialog} (100%) rename locale/en-us/{daily.precipitation.next.none.local.dialog => dialog/daily/daily-precipitation-next-none-local.dialog} (100%) rename locale/en-us/{daily.precipitation.next.none.location.dialog => dialog/daily/daily-precipitation-next-none-location.dialog} (100%) rename locale/en-us/{daily.sunrise.local.dialog => dialog/daily/daily-sunrise-local.dialog} (100%) rename locale/en-us/{daily.sunrise.location.dialog => dialog/daily/daily-sunrise-location.dialog} (100%) rename locale/en-us/{daily.sunset.local.dialog => dialog/daily/daily-sunset-local.dialog} (100%) rename locale/en-us/{daily.sunset.location.dialog => dialog/daily/daily-sunset-location.dialog} (100%) rename locale/en-us/{daily.temperature.high.local.dialog => dialog/daily/daily-temperature-high-local.dialog} (100%) rename locale/en-us/{daily.temperature.high.location.dialog => dialog/daily/daily-temperature-high-location.dialog} (100%) rename locale/en-us/{daily.temperature.local.dialog => dialog/daily/daily-temperature-local.dialog} (100%) rename locale/en-us/{daily.temperature.location.dialog => dialog/daily/daily-temperature-location.dialog} (100%) rename locale/en-us/{daily.temperature.low.local.dialog => dialog/daily/daily-temperature-low-local.dialog} (100%) rename locale/en-us/{daily.temperature.low.location.dialog => dialog/daily/daily-temperature-low-location.dialog} (100%) rename locale/en-us/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/en-us/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/en-us/{daily.wind.light.local.dialog => dialog/daily/daily-wind-light-local.dialog} (100%) rename locale/en-us/{daily.wind.light.location.dialog => dialog/daily/daily-wind-light-location.dialog} (100%) rename locale/en-us/{daily.wind.moderate.local.dialog => dialog/daily/daily-wind-moderate-local.dialog} (100%) rename locale/en-us/{daily.wind.moderate.location.dialog => dialog/daily/daily-wind-moderate-location.dialog} (100%) rename locale/en-us/{daily.wind.strong.local.dialog => dialog/daily/daily-wind-strong-local.dialog} (100%) rename locale/en-us/{daily.wind.strong.location.dialog => dialog/daily/daily-wind-strong-location.dialog} (100%) rename locale/en-us/{ => dialog/direction}/east.dialog (100%) rename locale/en-us/{ => dialog/direction}/north.dialog (100%) rename locale/en-us/{ => dialog/direction}/northeast.dialog (100%) rename locale/en-us/{ => dialog/direction}/northwest.dialog (100%) rename locale/en-us/{ => dialog/direction}/south.dialog (100%) rename locale/en-us/{ => dialog/direction}/southeast.dialog (100%) rename locale/en-us/{ => dialog/direction}/southwest.dialog (100%) rename locale/en-us/{ => dialog/direction}/west.dialog (100%) rename locale/en-us/{cant.get.forecast.dialog => dialog/error/cant-get-forecast.dialog} (100%) rename locale/en-us/{forty-eight.hours.available.dialog => dialog/error/forty-eight-hours-available.dialog} (100%) rename locale/en-us/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/en-us/{no.forecast.dialog => dialog/error/no-forecast.dialog} (100%) rename locale/en-us/{seven.days.available.dialog => dialog/error/seven-days-available.dialog} (100%) rename locale/en-us/{hourly.condition.expected.local.dialog => dialog/hourly/hourly-condition-expected-local.dialog} (100%) rename locale/en-us/{hourly.condition.expected.location.dialog => dialog/hourly/hourly-condition-expected-location.dialog} (100%) rename locale/en-us/{hourly.precipitation.next.local.dialog => dialog/hourly/hourly-precipitation-next-local.dialog} (100%) rename locale/en-us/{hourly.precipitation.next.location.dialog => dialog/hourly/hourly-precipitation-next-location.dialog} (100%) rename locale/en-us/{hourly.temperature.local.dialog => dialog/hourly/hourly-temperature-local.dialog} (100%) rename locale/en-us/{hourly.temperature.location.dialog => dialog/hourly/hourly-temperature-location.dialog} (100%) rename locale/en-us/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/en-us/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/en-us/{percentage.number.dialog => dialog/percentage-number.dialog} (100%) rename locale/en-us/{ => dialog/unit}/celsius.dialog (100%) rename locale/en-us/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/en-us/{ => dialog/unit}/meters per second.dialog (100%) rename locale/en-us/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/en-us/{weekly.condition.dialog => dialog/weekly/weekly-condition.dialog} (100%) rename locale/en-us/{weekly.temperature.dialog => dialog/weekly/weekly-temperature.dialog} (100%) rename locale/en-us/{ => regex}/location.rx (100%) rename locale/en-us/{Clear.voc => vocabulary/condition/clear.voc} (100%) rename locale/en-us/{Clouds.voc => vocabulary/condition/clouds.voc} (100%) rename locale/en-us/{do.i.need.an.umbrella.intent => vocabulary/condition/do-i-need-an-umbrella.intent} (100%) rename locale/en-us/{Fog.voc => vocabulary/condition/fog.voc} (100%) rename locale/en-us/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/en-us/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/en-us/{Rain.voc => vocabulary/condition/rain.voc} (100%) rename locale/en-us/{Snow.voc => vocabulary/condition/snow.voc} (100%) rename locale/en-us/{Thunderstorm.voc => vocabulary/condition/thunderstorm.voc} (100%) rename locale/en-us/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/en-us/{Couple.voc => vocabulary/date-time/couple.voc} (100%) rename locale/en-us/{Few.voc => vocabulary/date-time/few.voc} (100%) rename locale/en-us/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/en-us/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/en-us/{Now.voc => vocabulary/date-time/now.voc} (100%) rename locale/en-us/{NumberDays.voc => vocabulary/date-time/number-days.voc} (100%) rename locale/en-us/{RelativeDay.voc => vocabulary/date-time/relative-day.voc} (100%) rename locale/en-us/{RelativeTime.voc => vocabulary/date-time/relative-time.voc} (100%) rename locale/en-us/{Today.voc => vocabulary/date-time/today.voc} (100%) rename locale/en-us/{Week.voc => vocabulary/date-time/week.voc} (100%) rename locale/en-us/{Weekend.voc => vocabulary/date-time/weekend.voc} (100%) rename locale/en-us/{Forecast.voc => vocabulary/forecast.voc} (100%) rename locale/en-us/{Like.voc => vocabulary/like.voc} (100%) rename locale/en-us/{Location.voc => vocabulary/location.voc} (100%) rename locale/en-us/{Outside.voc => vocabulary/outside.voc} (100%) rename locale/en-us/{ConfirmQueryCurrent.voc => vocabulary/query/confirm-query-current.voc} (100%) rename locale/en-us/{ConfirmQueryFuture.voc => vocabulary/query/confirm-query-future.voc} (100%) rename locale/en-us/{ConfirmQuery.voc => vocabulary/query/confirm-query.voc} (100%) rename locale/en-us/{How.voc => vocabulary/query/how.voc} (100%) rename locale/en-us/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/en-us/{When.voc => vocabulary/query/when.voc} (100%) rename locale/en-us/{Sunrise.voc => vocabulary/sunrise.voc} (100%) rename locale/en-us/{Sunset.voc => vocabulary/sunset.voc} (100%) rename locale/en-us/{Cold.voc => vocabulary/temperature/cold.voc} (100%) rename locale/en-us/{High.voc => vocabulary/temperature/high.voc} (100%) rename locale/en-us/{Hot.voc => vocabulary/temperature/hot.voc} (100%) rename locale/en-us/{Low.voc => vocabulary/temperature/low.voc} (100%) rename locale/en-us/{Temperature.voc => vocabulary/temperature/temperature.voc} (100%) rename locale/en-us/{Fahrenheit.voc => vocabulary/unit/fahrenheit.voc} (100%) rename locale/en-us/{Unit.entity => vocabulary/unit/unit.entity} (100%) rename locale/en-us/{Unit.voc => vocabulary/unit/unit.voc} (100%) rename locale/en-us/{Weather.voc => vocabulary/weather.voc} (100%) delete mode 100644 locale/es-es/WeatherType.voc rename locale/es-es/{ => dialog/condition}/humidity.dialog (100%) rename locale/es-es/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/es-es/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/es-es/{ => dialog/condition}/rain.dialog (100%) rename locale/es-es/{ => dialog/condition}/snow.dialog (100%) rename locale/es-es/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/es-es/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/es-es/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/es-es/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/es-es/{ => dialog/direction}/east.dialog (100%) rename locale/es-es/{ => dialog/direction}/north.dialog (100%) rename locale/es-es/{ => dialog/direction}/northeast.dialog (100%) rename locale/es-es/{ => dialog/direction}/northwest.dialog (100%) rename locale/es-es/{ => dialog/direction}/south.dialog (100%) rename locale/es-es/{ => dialog/direction}/southeast.dialog (100%) rename locale/es-es/{ => dialog/direction}/southwest.dialog (100%) rename locale/es-es/{ => dialog/direction}/west.dialog (100%) rename locale/es-es/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/es-es/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/es-es/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/es-es/{ => dialog/unit}/celsius.dialog (100%) rename locale/es-es/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/es-es/{ => dialog/unit}/meters per second.dialog (100%) rename locale/es-es/{ => dialog/unit}/miles per hour.dialog (100%) delete mode 100644 locale/es-es/do not know.dialog rename locale/es-es/{Forecast.voc => forecast.voc} (100%) rename locale/es-es/{Location.voc => location.voc} (100%) delete mode 100644 locale/es-es/no forecast.dialog rename locale/es-es/{ => regex}/location.rx (100%) rename locale/es-es/{Sunrise.voc => sunrise.voc} (100%) rename locale/es-es/{Sunset.voc => sunset.voc} (100%) rename locale/es-es/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/es-es/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/es-es/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/es-es/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/es-es/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/es-es/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/es-es/{Weather.voc => weather.voc} (100%) delete mode 100644 locale/fr-fr/WeatherType.voc rename locale/fr-fr/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/fr-fr/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/fr-fr/{ => dialog/condition}/rain.dialog (100%) rename locale/fr-fr/{ => dialog/condition}/snow.dialog (100%) rename locale/fr-fr/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/fr-fr/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/fr-fr/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/fr-fr/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/fr-fr/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/fr-fr/{ => dialog/direction}/east.dialog (100%) rename locale/fr-fr/{ => dialog/direction}/north.dialog (100%) rename locale/fr-fr/{ => dialog/direction}/northeast.dialog (100%) rename locale/fr-fr/{ => dialog/direction}/northwest.dialog (100%) rename locale/fr-fr/{ => dialog/direction}/south.dialog (100%) rename locale/fr-fr/{ => dialog/direction}/southeast.dialog (100%) rename locale/fr-fr/{ => dialog/direction}/southwest.dialog (100%) rename locale/fr-fr/{ => dialog/direction}/west.dialog (100%) rename locale/fr-fr/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/fr-fr/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/fr-fr/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/fr-fr/{ => dialog/unit}/celsius.dialog (100%) rename locale/fr-fr/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/fr-fr/{ => dialog/unit}/meters per second.dialog (100%) rename locale/fr-fr/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/fr-fr/{Forecast.voc => forecast.voc} (100%) rename locale/fr-fr/{Location.voc => location.voc} (100%) rename locale/fr-fr/{Next.voc => next.voc} (100%) delete mode 100644 locale/fr-fr/no forecast.dialog rename locale/fr-fr/{ => regex}/location.rx (100%) rename locale/fr-fr/{Sunrise.voc => sunrise.voc} (100%) rename locale/fr-fr/{Sunset.voc => sunset.voc} (100%) rename locale/fr-fr/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/fr-fr/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/fr-fr/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/fr-fr/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/fr-fr/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/fr-fr/{Weather.voc => weather.voc} (100%) delete mode 100644 locale/gl-es/ThreeDay.voc delete mode 100644 locale/gl-es/WeatherType.voc rename locale/gl-es/{ => dialog}/and.dialog (100%) rename locale/gl-es/{ => dialog/condition}/clear sky.dialog (100%) rename locale/gl-es/{ => dialog/condition}/clear.dialog (100%) rename locale/gl-es/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/gl-es/{percentage.number.dialog => dialog/condition/percentage-number.dialog} (100%) rename locale/gl-es/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/gl-es/{ => dialog/condition}/rain.dialog (100%) rename locale/gl-es/{ => dialog/condition}/snow.dialog (100%) rename locale/gl-es/{ => dialog/condition}/thunderstorm.dialog (100%) rename locale/gl-es/{current.condition.expected.local.dialog => dialog/current/current-condition-expected-local.dialog} (100%) rename locale/gl-es/{current.condition.expected.location.dialog => dialog/current/current-condition-expected-location.dialog} (100%) rename locale/gl-es/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/gl-es/{current.temperature.high.local.dialog => dialog/current/current-temperature-high-local.dialog} (100%) rename locale/gl-es/{current.temperature.high.location.dialog => dialog/current/current-temperature-high-location.dialog} (100%) rename locale/gl-es/{current.temperature.high.low.dialog => dialog/current/current-temperature-high-low.dialog} (100%) rename locale/gl-es/{current.temperature.local.dialog => dialog/current/current-temperature-local.dialog} (100%) rename locale/gl-es/{current.temperature.location.dialog => dialog/current/current-temperature-location.dialog} (100%) rename locale/gl-es/{current.temperature.low.local.dialog => dialog/current/current-temperature-low-local.dialog} (100%) rename locale/gl-es/{current.temperature.low.location.dialog => dialog/current/current-temperature-low-location.dialog} (100%) rename locale/gl-es/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/gl-es/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/gl-es/{current.wind.light.local.dialog => dialog/current/current-wind-light-local.dialog} (100%) rename locale/gl-es/{current.wind.light.location.dialog => dialog/current/current-wind-light-location.dialog} (100%) rename locale/gl-es/{current.wind.moderate.local.dialog => dialog/current/current-wind-moderate-local.dialog} (100%) rename locale/gl-es/{current.wind.moderate.location.dialog => dialog/current/current-wind-moderate-location.dialog} (100%) rename locale/gl-es/{current.wind.strong.local.dialog => dialog/current/current-wind-strong-local.dialog} (100%) rename locale/gl-es/{current.wind.strong.location.dialog => dialog/current/current-wind-strong-location.dialog} (100%) rename locale/gl-es/{daily.condition.expected.local.dialog => dialog/daily/daily-condition-expected-local.dialog} (100%) rename locale/gl-es/{daily.condition.expected.location.dialog => dialog/daily/daily-condition-expected-location.dialog} (100%) rename locale/gl-es/{daily.temperature.high.local.dialog => dialog/daily/daily-temperature-high-local.dialog} (100%) rename locale/gl-es/{daily.temperature.high.location.dialog => dialog/daily/daily-temperature-high-location.dialog} (100%) rename locale/gl-es/{daily.temperature.local.dialog => dialog/daily/daily-temperature-local.dialog} (100%) rename locale/gl-es/{daily.temperature.location.dialog => dialog/daily/daily-temperature-location.dialog} (100%) rename locale/gl-es/{daily.temperature.low.local.dialog => dialog/daily/daily-temperature-low-local.dialog} (100%) rename locale/gl-es/{daily.temperature.low.location.dialog => dialog/daily/daily-temperature-low-location.dialog} (100%) rename locale/gl-es/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/gl-es/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/gl-es/{daily.wind.light.local.dialog => dialog/daily/daily-wind-light-local.dialog} (100%) rename locale/gl-es/{daily.wind.light.location.dialog => dialog/daily/daily-wind-light-location.dialog} (100%) rename locale/gl-es/{daily.wind.moderate.local.dialog => dialog/daily/daily-wind-moderate-local.dialog} (100%) rename locale/gl-es/{daily.wind.moderate.location.dialog => dialog/daily/daily-wind-moderate-location.dialog} (100%) rename locale/gl-es/{daily.wind.strong.local.dialog => dialog/daily/daily-wind-strong-local.dialog} (100%) rename locale/gl-es/{daily.wind.strong.location.dialog => dialog/daily/daily-wind-strong-location.dialog} (100%) rename locale/gl-es/{ => dialog/direction}/east.dialog (100%) rename locale/gl-es/{ => dialog/direction}/north.dialog (100%) rename locale/gl-es/{ => dialog/direction}/northeast.dialog (100%) rename locale/gl-es/{ => dialog/direction}/northwest.dialog (100%) rename locale/gl-es/{ => dialog/direction}/south.dialog (100%) rename locale/gl-es/{ => dialog/direction}/southeast.dialog (100%) rename locale/gl-es/{ => dialog/direction}/southwest.dialog (100%) rename locale/gl-es/{ => dialog/direction}/west.dialog (100%) rename locale/gl-es/{cant.get.forecast.dialog => dialog/error/cant-get-forecast.dialog} (100%) rename locale/gl-es/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/gl-es/{no.forecast.dialog => dialog/error/no-forecast.dialog} (100%) rename locale/gl-es/{hourly.condition.alternative.local.dialog => dialog/hourly/hourly-condition-alternative-local.dialog} (100%) rename locale/gl-es/{hourly.condition.alternative.location.dialog => dialog/hourly/hourly-condition-alternative-location.dialog} (100%) rename locale/gl-es/{hourly.condition.expected.local.dialog => dialog/hourly/hourly-condition-expected-local.dialog} (100%) rename locale/gl-es/{hourly.condition.expected.dialog => dialog/hourly/hourly-condition-expected.dialog} (100%) rename locale/gl-es/{hourly.condition.not.expected.local.dialog => dialog/hourly/hourly-condition-not-expected-local.dialog} (100%) rename locale/gl-es/{hourly.condition.not.expected.location.dialog => dialog/hourly/hourly-condition-not-expected-location.dialog} (100%) rename locale/gl-es/{hourly.temperature.local.dialog => dialog/hourly/hourly-temperature-local.dialog} (100%) rename locale/gl-es/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/gl-es/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/gl-es/{ => dialog/unit}/celsius.dialog (100%) rename locale/gl-es/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/gl-es/{ => dialog/unit}/meters per second.dialog (100%) rename locale/gl-es/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/gl-es/{weekly.temperature.dialog => dialog/weekly/weekly-temperature.dialog} (100%) rename locale/gl-es/{Forecast.voc => forecast.voc} (100%) rename locale/gl-es/{Location.voc => location.voc} (100%) rename locale/gl-es/{ => regex}/location.rx (100%) rename locale/gl-es/{Sunrise.voc => sunrise.voc} (100%) rename locale/gl-es/{Sunset.voc => sunset.voc} (100%) rename locale/gl-es/{Clear.voc => vocabulary/condition/clear.voc} (100%) rename locale/gl-es/{Clouds.voc => vocabulary/condition/clouds.voc} (100%) rename locale/gl-es/{ => vocabulary/condition}/do.i.need.an.umbrella.intent (100%) rename locale/gl-es/{Fog.voc => vocabulary/condition/fog.voc} (100%) rename locale/gl-es/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/gl-es/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/gl-es/{Rain.voc => vocabulary/condition/rain.voc} (100%) rename locale/gl-es/{Snow.voc => vocabulary/condition/snow.voc} (100%) rename locale/gl-es/{Thunderstorm.voc => vocabulary/condition/thunderstorm.voc} (100%) rename locale/gl-es/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/gl-es/{Couple.voc => vocabulary/date-time/couple.voc} (100%) rename locale/gl-es/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/gl-es/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/gl-es/{Now.voc => vocabulary/date-time/now.voc} (100%) rename locale/gl-es/{RelativeDay.voc => vocabulary/date-time/relative-day.voc} (100%) rename locale/gl-es/{RelativeTime.voc => vocabulary/date-time/relative-time.voc} (100%) rename locale/gl-es/{Today.voc => vocabulary/date-time/today.voc} (100%) rename locale/gl-es/{Week.voc => vocabulary/date-time/week.voc} (100%) rename locale/gl-es/{Weekend.voc => vocabulary/date-time/weekend.voc} (100%) rename locale/gl-es/{ConfirmQueryCurrent.voc => vocabulary/query/confirm-query-current.voc} (100%) rename locale/gl-es/{ConfirmQueryFuture.voc => vocabulary/query/confirm-query-future.voc} (100%) rename locale/gl-es/{ConfirmQuery.voc => vocabulary/query/confirm-query.voc} (100%) rename locale/gl-es/{How.voc => vocabulary/query/how.voc} (100%) rename locale/gl-es/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/gl-es/{When.voc => vocabulary/query/when.voc} (100%) rename locale/gl-es/{Cold.voc => vocabulary/temperature/cold.voc} (100%) rename locale/gl-es/{High.voc => vocabulary/temperature/high.voc} (100%) rename locale/gl-es/{Hot.voc => vocabulary/temperature/hot.voc} (100%) rename locale/gl-es/{Low.voc => vocabulary/temperature/low.voc} (100%) rename locale/gl-es/{Temperature.voc => vocabulary/temperature/temperature.voc} (100%) rename locale/gl-es/{Fahrenheit.voc => vocabulary/unit/fahrenheit.voc} (100%) rename locale/gl-es/{Unit.entity => vocabulary/unit/unit.entity} (100%) rename locale/gl-es/{Unit.voc => vocabulary/unit/unit.voc} (100%) rename locale/gl-es/{Weather.voc => weather.voc} (100%) delete mode 100644 locale/it-it/WeatherType.voc rename locale/it-it/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/it-it/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/it-it/{ => dialog/condition}/rain.dialog (100%) rename locale/it-it/{ => dialog/condition}/snow.dialog (100%) rename locale/it-it/{current.condition.expected.local.dialog => dialog/current/current-condition-expected-local.dialog} (100%) rename locale/it-it/{current.condition.expected.location.dialog => dialog/current/current-condition-expected-location.dialog} (100%) rename locale/it-it/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/it-it/{current.temperature.high.local.dialog => dialog/current/current-temperature-high-local.dialog} (100%) rename locale/it-it/{current.temperature.high.location.dialog => dialog/current/current-temperature-high-location.dialog} (100%) rename locale/it-it/{current.temperature.high.low.dialog => dialog/current/current-temperature-high-low.dialog} (100%) rename locale/it-it/{current.temperature.local.dialog => dialog/current/current-temperature-local.dialog} (100%) rename locale/it-it/{current.temperature.location.dialog => dialog/current/current-temperature-location.dialog} (100%) rename locale/it-it/{current.temperature.low.local.dialog => dialog/current/current-temperature-low-local.dialog} (100%) rename locale/it-it/{current.temperature.low.location.dialog => dialog/current/current-temperature-low-location.dialog} (100%) rename locale/it-it/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/it-it/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/it-it/{current.wind.light.local.dialog => dialog/current/current-wind-light-local.dialog} (100%) rename locale/it-it/{current.wind.light.location.dialog => dialog/current/current-wind-light-location.dialog} (100%) rename locale/it-it/{current.wind.moderate.local.dialog => dialog/current/current-wind-moderate-local.dialog} (100%) rename locale/it-it/{current.wind.moderate.location.dialog => dialog/current/current-wind-moderate-location.dialog} (100%) rename locale/it-it/{current.wind.strong.local.dialog => dialog/current/current-wind-strong-local.dialog} (100%) rename locale/it-it/{current.wind.strong.location.dialog => dialog/current/current-wind-strong-location.dialog} (100%) rename locale/it-it/{daily.condition.expected.local.dialog => dialog/daily/daily-condition-expected-local.dialog} (100%) rename locale/it-it/{daily.condition.expected.location.dialog => dialog/daily/daily-condition-expected-location.dialog} (100%) rename locale/it-it/{daily.temperature.high.local.dialog => dialog/daily/daily-temperature-high-local.dialog} (100%) rename locale/it-it/{daily.temperature.high.location.dialog => dialog/daily/daily-temperature-high-location.dialog} (100%) rename locale/it-it/{daily.temperature.local.dialog => dialog/daily/daily-temperature-local.dialog} (100%) rename locale/it-it/{daily.temperature.location.dialog => dialog/daily/daily-temperature-location.dialog} (100%) rename locale/it-it/{daily.temperature.low.local.dialog => dialog/daily/daily-temperature-low-local.dialog} (100%) rename locale/it-it/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/it-it/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/it-it/{daily.wind.light.local.dialog => dialog/daily/daily-wind-light-local.dialog} (100%) rename locale/it-it/{daily.wind.light.location.dialog => dialog/daily/daily-wind-light-location.dialog} (100%) rename locale/it-it/{daily.wind.moderate.local.dialog => dialog/daily/daily-wind-moderate-local.dialog} (100%) rename locale/it-it/{daily.wind.moderate.location.dialog => dialog/daily/daily-wind-moderate-location.dialog} (100%) rename locale/it-it/{daily.wind.strong.local.dialog => dialog/daily/daily-wind-strong-local.dialog} (100%) rename locale/it-it/{daily.wind.strong.location.dialog => dialog/daily/daily-wind-strong-location.dialog} (100%) rename locale/it-it/{ => dialog/direction}/east.dialog (100%) rename locale/it-it/{ => dialog/direction}/north.dialog (100%) rename locale/it-it/{ => dialog/direction}/northeast.dialog (100%) rename locale/it-it/{ => dialog/direction}/northwest.dialog (100%) rename locale/it-it/{ => dialog/direction}/south.dialog (100%) rename locale/it-it/{ => dialog/direction}/southeast.dialog (100%) rename locale/it-it/{ => dialog/direction}/southwest.dialog (100%) rename locale/it-it/{ => dialog/direction}/west.dialog (100%) rename locale/it-it/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/it-it/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/it-it/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/it-it/{ => dialog/unit}/celsius.dialog (100%) rename locale/it-it/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/it-it/{ => dialog/unit}/meters per second.dialog (100%) rename locale/it-it/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/it-it/{Forecast.voc => forecast.voc} (100%) rename locale/it-it/{Location.voc => location.voc} (100%) delete mode 100644 locale/it-it/no forecast.dialog rename locale/it-it/{ => regex}/location.rx (100%) rename locale/it-it/{Sunrise.voc => sunrise.voc} (100%) rename locale/it-it/{Sunset.voc => sunset.voc} (100%) rename locale/it-it/{Clear.voc => vocabulary/condition/clear.voc} (100%) rename locale/it-it/{Clouds.voc => vocabulary/condition/clouds.voc} (100%) rename locale/it-it/{ => vocabulary/condition}/do.i.need.an.umbrella.intent (100%) rename locale/it-it/{Fog.voc => vocabulary/condition/fog.voc} (100%) rename locale/it-it/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/it-it/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/it-it/{Rain.voc => vocabulary/condition/rain.voc} (100%) rename locale/it-it/{Snow.voc => vocabulary/condition/snow.voc} (100%) rename locale/it-it/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/it-it/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/it-it/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/it-it/{Weekend.voc => vocabulary/date-time/weekend.voc} (100%) rename locale/it-it/{ConfirmQuery.voc => vocabulary/query/confirm-query.voc} (100%) rename locale/it-it/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/it-it/{Cold.voc => vocabulary/temperature/cold.voc} (100%) rename locale/it-it/{High.voc => vocabulary/temperature/high.voc} (100%) rename locale/it-it/{Hot.voc => vocabulary/temperature/hot.voc} (100%) rename locale/it-it/{Low.voc => vocabulary/temperature/low.voc} (100%) rename locale/it-it/{Temperature.voc => vocabulary/temperature/temperature.voc} (100%) rename locale/it-it/{Fahrenheit.voc => vocabulary/unit/fahrenheit.voc} (100%) rename locale/it-it/{Unit.entity => vocabulary/unit/unit.entity} (100%) rename locale/it-it/{Unit.voc => vocabulary/unit/unit.voc} (100%) rename locale/it-it/{Weather.voc => weather.voc} (100%) delete mode 100644 locale/nl-nl/WeatherType.voc rename locale/nl-nl/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/nl-nl/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/nl-nl/{ => dialog/condition}/rain.dialog (100%) rename locale/nl-nl/{ => dialog/condition}/snow.dialog (100%) rename locale/nl-nl/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/nl-nl/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/nl-nl/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/nl-nl/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/nl-nl/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/nl-nl/{ => dialog/direction}/east.dialog (100%) rename locale/nl-nl/{ => dialog/direction}/north.dialog (100%) rename locale/nl-nl/{ => dialog/direction}/northeast.dialog (100%) rename locale/nl-nl/{ => dialog/direction}/northwest.dialog (100%) rename locale/nl-nl/{ => dialog/direction}/south.dialog (100%) rename locale/nl-nl/{ => dialog/direction}/southeast.dialog (100%) rename locale/nl-nl/{ => dialog/direction}/southwest.dialog (100%) rename locale/nl-nl/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/nl-nl/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/nl-nl/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/nl-nl/{ => dialog/unit}/celsius.dialog (100%) rename locale/nl-nl/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/nl-nl/{ => dialog/unit}/meters per second.dialog (100%) rename locale/nl-nl/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/nl-nl/{Forecast.voc => forecast.voc} (100%) rename locale/nl-nl/{Location.voc => location.voc} (100%) delete mode 100644 locale/nl-nl/no forecast.dialog rename locale/nl-nl/{ => regex}/location.rx (100%) rename locale/nl-nl/{Sunrise.voc => sunrise.voc} (100%) rename locale/nl-nl/{Sunset.voc => sunset.voc} (100%) rename locale/nl-nl/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/nl-nl/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/nl-nl/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/nl-nl/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/nl-nl/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/nl-nl/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/nl-nl/{Weather.voc => weather.voc} (100%) delete mode 100644 locale/pt-br/ThreeDay.voc delete mode 100644 locale/pt-br/WeatherType.voc rename locale/pt-br/{ => dialog}/and.dialog (100%) rename locale/pt-br/{ => dialog/condition}/clear sky.dialog (100%) rename locale/pt-br/{ => dialog/condition}/clear.dialog (100%) rename locale/pt-br/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/pt-br/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/pt-br/{ => dialog/condition}/rain.dialog (100%) rename locale/pt-br/{ => dialog/condition}/snow.dialog (100%) rename locale/pt-br/{ => dialog/condition}/thunderstorm.dialog (100%) rename locale/pt-br/{current.condition.expected.local.dialog => dialog/current/current-condition-expected-local.dialog} (100%) rename locale/pt-br/{current.condition.expected.location.dialog => dialog/current/current-condition-expected-location.dialog} (100%) rename locale/pt-br/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/pt-br/{current.temperature.high.local.dialog => dialog/current/current-temperature-high-local.dialog} (100%) rename locale/pt-br/{current.temperature.high.location.dialog => dialog/current/current-temperature-high-location.dialog} (100%) rename locale/pt-br/{current.temperature.high.low.dialog => dialog/current/current-temperature-high-low.dialog} (100%) rename locale/pt-br/{current.temperature.local.dialog => dialog/current/current-temperature-local.dialog} (100%) rename locale/pt-br/{current.temperature.location.dialog => dialog/current/current-temperature-location.dialog} (100%) rename locale/pt-br/{current.temperature.low.local.dialog => dialog/current/current-temperature-low-local.dialog} (100%) rename locale/pt-br/{current.temperature.low.location.dialog => dialog/current/current-temperature-low-location.dialog} (100%) rename locale/pt-br/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/pt-br/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/pt-br/{current.wind.light.local.dialog => dialog/current/current-wind-light-local.dialog} (100%) rename locale/pt-br/{current.wind.light.location.dialog => dialog/current/current-wind-light-location.dialog} (100%) rename locale/pt-br/{current.wind.moderate.local.dialog => dialog/current/current-wind-moderate-local.dialog} (100%) rename locale/pt-br/{current.wind.moderate.location.dialog => dialog/current/current-wind-moderate-location.dialog} (100%) rename locale/pt-br/{current.wind.strong.local.dialog => dialog/current/current-wind-strong-local.dialog} (100%) rename locale/pt-br/{current.wind.strong.location.dialog => dialog/current/current-wind-strong-location.dialog} (100%) rename locale/pt-br/{daily.condition.expected.local.dialog => dialog/daily/daily-condition-expected-local.dialog} (100%) rename locale/pt-br/{daily.condition.expected.location.dialog => dialog/daily/daily-condition-expected-location.dialog} (100%) rename locale/pt-br/{daily.temperature.high.local.dialog => dialog/daily/daily-temperature-high-local.dialog} (100%) rename locale/pt-br/{daily.temperature.high.dialog => dialog/daily/daily-temperature-high.dialog} (100%) rename locale/pt-br/{daily.temperature.local.dialog => dialog/daily/daily-temperature-local.dialog} (100%) rename locale/pt-br/{daily.temperature.location.dialog => dialog/daily/daily-temperature-location.dialog} (100%) rename locale/pt-br/{daily.temperature.low.local.dialog => dialog/daily/daily-temperature-low-local.dialog} (100%) rename locale/pt-br/{daily.temperature.low.location.dialog => dialog/daily/daily-temperature-low-location.dialog} (100%) rename locale/pt-br/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/pt-br/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/pt-br/{daily.wind.light.local.dialog => dialog/daily/daily-wind-light-local.dialog} (100%) rename locale/pt-br/{daily.wind.light.location.dialog => dialog/daily/daily-wind-light-location.dialog} (100%) rename locale/pt-br/{daily.wind.moderate.local.dialog => dialog/daily/daily-wind-moderate-local.dialog} (100%) rename locale/pt-br/{daily.wind.moderate.location.dialog => dialog/daily/daily-wind-moderate-location.dialog} (100%) rename locale/pt-br/{daily.wind.strong.local.dialog => dialog/daily/daily-wind-strong-local.dialog} (100%) rename locale/pt-br/{daily.wind.strong.location.dialog => dialog/daily/daily-wind-strong-location.dialog} (100%) rename locale/pt-br/{ => dialog/direction}/east.dialog (100%) rename locale/pt-br/{ => dialog/direction}/north.dialog (100%) rename locale/pt-br/{ => dialog/direction}/northeast.dialog (100%) rename locale/pt-br/{ => dialog/direction}/northwest.dialog (100%) rename locale/pt-br/{ => dialog/direction}/south.dialog (100%) rename locale/pt-br/{ => dialog/direction}/southeast.dialog (100%) rename locale/pt-br/{ => dialog/direction}/southwest.dialog (100%) rename locale/pt-br/{ => dialog/direction}/west.dialog (100%) rename locale/pt-br/{cant.get.forecast.dialog => dialog/error/cant-get-forecast.dialog} (100%) rename locale/pt-br/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/pt-br/{hourly.condition.alternative.local.dialog => dialog/hourly/hourly-condition-alternative-local.dialog} (100%) rename locale/pt-br/{hourly.condition.alternative.location.dialog => dialog/hourly/hourly-condition-alternative-location.dialog} (100%) rename locale/pt-br/{hourly.condition.expected.local.dialog => dialog/hourly/hourly-condition-expected-local.dialog} (100%) rename locale/pt-br/{hourly.condition.expected.location.dialog => dialog/hourly/hourly-condition-expected-location.dialog} (100%) rename locale/pt-br/{hourly.condition.not.expected.local.dialog => dialog/hourly/hourly-condition-not-expected-local.dialog} (100%) rename locale/pt-br/{hourly.condition.not.expected.location.dialog => dialog/hourly/hourly-condition-not-expected-location.dialog} (100%) rename locale/pt-br/{hourly.temperature.local.dialog => dialog/hourly/hourly-temperature-local.dialog} (100%) rename locale/pt-br/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/pt-br/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/pt-br/{percentage.number.dialog => dialog/percentage-number.dialog} (100%) rename locale/pt-br/{ => dialog/unit}/celsius.dialog (100%) rename locale/pt-br/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/pt-br/{ => dialog/unit}/meters per second.dialog (100%) rename locale/pt-br/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/pt-br/{weekly.temperature.dialog => dialog/weekly/weekly-temperature.dialog} (100%) rename locale/pt-br/{Forecast.voc => forecast.voc} (100%) rename locale/pt-br/{Location.voc => location.voc} (100%) delete mode 100644 locale/pt-br/no.forecast.dialog rename locale/pt-br/{ => regex}/location.rx (100%) rename locale/pt-br/{Sunrise.voc => sunrise.voc} (100%) rename locale/pt-br/{Sunset.voc => sunset.voc} (100%) rename locale/pt-br/{Clear.voc => vocabulary/condition/clear.voc} (100%) rename locale/pt-br/{Clouds.voc => vocabulary/condition/clouds.voc} (100%) rename locale/pt-br/{ => vocabulary/condition}/do.i.need.an.umbrella.intent (100%) rename locale/pt-br/{Fog.voc => vocabulary/condition/fog.voc} (100%) rename locale/pt-br/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/pt-br/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/pt-br/{Rain.voc => vocabulary/condition/rain.voc} (100%) rename locale/pt-br/{Snow.voc => vocabulary/condition/snow.voc} (100%) rename locale/pt-br/{Thunderstorm.voc => vocabulary/condition/thunderstorm.voc} (100%) rename locale/pt-br/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/pt-br/{Couple.voc => vocabulary/date-time/couple.voc} (100%) rename locale/pt-br/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/pt-br/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/pt-br/{Now.voc => vocabulary/date-time/now.voc} (100%) rename locale/pt-br/{RelativeDay.voc => vocabulary/date-time/relative-day.voc} (100%) rename locale/pt-br/{RelativeTime.voc => vocabulary/date-time/relative-time.voc} (100%) rename locale/pt-br/{Today.voc => vocabulary/date-time/today.voc} (100%) rename locale/pt-br/{Week.voc => vocabulary/date-time/week.voc} (100%) rename locale/pt-br/{Weekend.voc => vocabulary/date-time/weekend.voc} (100%) rename locale/pt-br/{ConfirmQueryCurrent.voc => vocabulary/query/confirm-query-current.voc} (100%) rename locale/pt-br/{ConfirmQueryFuture.voc => vocabulary/query/confirm-query-future.voc} (100%) rename locale/pt-br/{ConfirmQuery.voc => vocabulary/query/confirm-query.voc} (100%) rename locale/pt-br/{How.voc => vocabulary/query/how.voc} (100%) rename locale/pt-br/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/pt-br/{When.voc => vocabulary/query/when.voc} (100%) rename locale/pt-br/{Cold.voc => vocabulary/temperature/cold.voc} (100%) rename locale/pt-br/{High.voc => vocabulary/temperature/high.voc} (100%) rename locale/pt-br/{Hot.voc => vocabulary/temperature/hot.voc} (100%) rename locale/pt-br/{Low.voc => vocabulary/temperature/low.voc} (100%) rename locale/pt-br/{Temperature.voc => vocabulary/temperature/temperature.voc} (100%) rename locale/pt-br/{Fahrenheit.voc => vocabulary/unit/fahrenheit.voc} (100%) rename locale/pt-br/{Unit.entity => vocabulary/unit/unit.entity} (100%) rename locale/pt-br/{Unit.voc => vocabulary/unit/unit.voc} (100%) rename locale/pt-br/{Weather.voc => weather.voc} (100%) delete mode 100644 locale/ru-ru/WeatherType.voc rename locale/ru-ru/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/ru-ru/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/ru-ru/{ => dialog/condition}/rain.dialog (100%) rename locale/ru-ru/{ => dialog/condition}/snow.dialog (100%) rename locale/ru-ru/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/ru-ru/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/ru-ru/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/ru-ru/{daily.weather.loation.dialog => dialog/daily/daily-weather-loation.dialog} (100%) rename locale/ru-ru/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/ru-ru/{ => dialog/direction}/east.dialog (100%) rename locale/ru-ru/{ => dialog/direction}/north.dialog (100%) rename locale/ru-ru/{ => dialog/direction}/northeast.dialog (100%) rename locale/ru-ru/{ => dialog/direction}/northwest.dialog (100%) rename locale/ru-ru/{ => dialog/direction}/south.dialog (100%) rename locale/ru-ru/{ => dialog/direction}/southeast.dialog (100%) rename locale/ru-ru/{ => dialog/direction}/southwest.dialog (100%) rename locale/ru-ru/{ => dialog/direction}/west.dialog (100%) rename locale/ru-ru/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/ru-ru/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/ru-ru/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/ru-ru/{ => dialog/unit}/celsius.dialog (100%) rename locale/ru-ru/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/ru-ru/{ => dialog/unit}/meters per second.dialog (100%) rename locale/ru-ru/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/ru-ru/{Forecast.voc => forecast.voc} (100%) rename locale/ru-ru/{Location.voc => location.voc} (100%) delete mode 100644 locale/ru-ru/no forecast.dialog rename locale/ru-ru/{ => regex}/location.rx (100%) rename locale/ru-ru/{Sunrise.voc => sunrise.voc} (100%) rename locale/ru-ru/{Sunset.voc => sunset.voc} (100%) rename locale/ru-ru/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/ru-ru/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/ru-ru/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/ru-ru/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/ru-ru/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/ru-ru/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/ru-ru/{Weather.voc => weather.voc} (100%) delete mode 100644 locale/sv-se/ThreeDay.voc delete mode 100644 locale/sv-se/WeatherType.voc rename locale/sv-se/{ => dialog}/and.dialog (100%) rename locale/sv-se/{ => dialog/condition}/clear sky.dialog (100%) rename locale/sv-se/{ => dialog/condition}/clear.dialog (100%) rename locale/sv-se/{ => dialog/condition}/no precipitation expected.dialog (100%) rename locale/sv-se/{ => dialog/condition}/precipitation expected.dialog (100%) rename locale/sv-se/{ => dialog/condition}/rain.dialog (100%) rename locale/sv-se/{ => dialog/condition}/snow.dialog (100%) rename locale/sv-se/{ => dialog/condition}/thunderstorm.dialog (100%) rename locale/sv-se/{current.condition.expected.local.dialog => dialog/current/current-condition-expected-local.dialog} (100%) rename locale/sv-se/{current.condition.expected.location.dialog => dialog/current/current-condition-expected-location.dialog} (100%) rename locale/sv-se/{current.humidity.location.dialog => dialog/current/current-humidity-location.dialog} (100%) rename locale/sv-se/{current.temperature.high.local.dialog => dialog/current/current-temperature-high-local.dialog} (100%) rename locale/sv-se/{current.temperature.high.location.dialog => dialog/current/current-temperature-high-location.dialog} (100%) rename locale/sv-se/{current.temperature.high.low.dialog => dialog/current/current-temperature-high-low.dialog} (100%) rename locale/sv-se/{current.temperature.local.dialog => dialog/current/current-temperature-local.dialog} (100%) rename locale/sv-se/{current.temperature.location.dialog => dialog/current/current-temperature-location.dialog} (100%) rename locale/sv-se/{current.temperature.low.local.dialog => dialog/current/current-temperature-low-local.dialog} (100%) rename locale/sv-se/{current.temperature.low.location.dialog => dialog/current/current-temperature-low-location.dialog} (100%) rename locale/sv-se/{current.weather.local.dialog => dialog/current/current-weather-local.dialog} (100%) rename locale/sv-se/{current.weather.location.dialog => dialog/current/current-weather-location.dialog} (100%) rename locale/sv-se/{current.wind.light.local.dialog => dialog/current/current-wind-light-local.dialog} (100%) rename locale/sv-se/{current.wind.light.location.dialog => dialog/current/current-wind-light-location.dialog} (100%) rename locale/sv-se/{current.wind.moderate.local.dialog => dialog/current/current-wind-moderate-local.dialog} (100%) rename locale/sv-se/{current.wind.moderate.location.dialog => dialog/current/current-wind-moderate-location.dialog} (100%) rename locale/sv-se/{current.wind.strong.local.dialog => dialog/current/current-wind-strong-local.dialog} (100%) rename locale/sv-se/{current.wind.strong.location.dialog => dialog/current/current-wind-strong-location.dialog} (100%) rename locale/sv-se/{daily.condition.expected.local.dialog => dialog/daily/daily-condition-expected-local.dialog} (100%) rename locale/sv-se/{daily.condition.expected.location.dialog => dialog/daily/daily-condition-expected-location.dialog} (100%) rename locale/sv-se/{daily.temperature.high.local.dialog => dialog/daily/daily-temperature-high-local.dialog} (100%) rename locale/sv-se/{daily.temperature.high.location.dialog => dialog/daily/daily-temperature-high-location.dialog} (100%) rename locale/sv-se/{daily.temperature.local.dialog => dialog/daily/daily-temperature-local.dialog} (100%) rename locale/sv-se/{daily.temperature.location.dialog => dialog/daily/daily-temperature-location.dialog} (100%) rename locale/sv-se/{daily.temperature.low.local.dialog => dialog/daily/daily-temperature-low-local.dialog} (100%) rename locale/sv-se/{daily.temperature.low.location.dialog => dialog/daily/daily-temperature-low-location.dialog} (100%) rename locale/sv-se/{daily.weather.local.dialog => dialog/daily/daily-weather-local.dialog} (100%) rename locale/sv-se/{daily.weather.location.dialog => dialog/daily/daily-weather-location.dialog} (100%) rename locale/sv-se/{daily.wind.light.local.dialog => dialog/daily/daily-wind-light-local.dialog} (100%) rename locale/sv-se/{daily.wind.light.location.dialog => dialog/daily/daily-wind-light-location.dialog} (100%) rename locale/sv-se/{daily.wind.moderate.local.dialog => dialog/daily/daily-wind-moderate-local.dialog} (100%) rename locale/sv-se/{daily.wind.moderate.location.dialog => dialog/daily/daily-wind-moderate-location.dialog} (100%) rename locale/sv-se/{daily.wind.strong.local.dialog => dialog/daily/daily-wind-strong-local.dialog} (100%) rename locale/sv-se/{daily.wind.strong.location.dialog => dialog/daily/daily-wind-strong-location.dialog} (100%) rename locale/sv-se/{ => dialog/direction}/east.dialog (100%) rename locale/sv-se/{ => dialog/direction}/north.dialog (100%) rename locale/sv-se/{ => dialog/direction}/northeast.dialog (100%) rename locale/sv-se/{ => dialog/direction}/northwest.dialog (100%) rename locale/sv-se/{ => dialog/direction}/south.dialog (100%) rename locale/sv-se/{ => dialog/direction}/southeast.dialog (100%) rename locale/sv-se/{ => dialog/direction}/southwest.dialog (100%) rename locale/sv-se/{ => dialog/direction}/west.dialog (100%) rename locale/sv-se/{cant.get.forecast.dialog => dialog/error/cant-get-forecast.dialog} (100%) rename locale/sv-se/{location.not.found.dialog => dialog/error/location-not-found.dialog} (100%) rename locale/sv-se/{no.forecast.dialog => dialog/error/no-forecast.dialog} (100%) rename locale/sv-se/{hourly.condition.alternative.local.dialog => dialog/hourly/hourly-condition-alternative-local.dialog} (100%) rename locale/sv-se/{hourly.condition.alternative.location.dialog => dialog/hourly/hourly-condition-alternative-location.dialog} (100%) rename locale/sv-se/{hourly.condition.expected.local.dialog => dialog/hourly/hourly-condition-expected-local.dialog} (100%) rename locale/sv-se/{hourly.condition.expected.location.dialog => dialog/hourly/hourly-condition-expected-location.dialog} (100%) rename locale/sv-se/{hourly.condition.not.expected.local.dialog => dialog/hourly/hourly-condition-not-expected-local.dialog} (100%) rename locale/sv-se/{hourly.condition.not.expected.location.dialog => dialog/hourly/hourly-condition-not-expected-location.dialog} (100%) rename locale/sv-se/{hourly.temperature.local.dialog => dialog/hourly/hourly-temperature-local.dialog} (100%) rename locale/sv-se/{hourly.weather.local.dialog => dialog/hourly/hourly-weather-local.dialog} (100%) rename locale/sv-se/{hourly.weather.location.dialog => dialog/hourly/hourly-weather-location.dialog} (100%) rename locale/sv-se/{percentage.number.dialog => dialog/percentage-number.dialog} (100%) rename locale/sv-se/{ => dialog/unit}/celsius.dialog (100%) rename locale/sv-se/{ => dialog/unit}/fahrenheit.dialog (100%) rename locale/sv-se/{ => dialog/unit}/meters per second.dialog (100%) rename locale/sv-se/{ => dialog/unit}/miles per hour.dialog (100%) rename locale/sv-se/{weekly.temperature.dialog => dialog/weekly/weekly-temperature.dialog} (100%) rename locale/sv-se/{Forecast.voc => forecast.voc} (100%) rename locale/sv-se/{Location.voc => location.voc} (100%) rename locale/sv-se/{ => regex}/location.rx (100%) delete mode 100644 locale/sv-se/sunrise.dialog rename locale/sv-se/{Sunrise.voc => sunrise.voc} (100%) delete mode 100644 locale/sv-se/sunset.dialog rename locale/sv-se/{Sunset.voc => sunset.voc} (100%) rename locale/sv-se/{Clear.voc => vocabulary/condition/clear.voc} (100%) rename locale/sv-se/{Clouds.voc => vocabulary/condition/clouds.voc} (100%) rename locale/sv-se/{ => vocabulary/condition}/do.i.need.an.umbrella.intent (100%) rename locale/sv-se/{Humidity.voc => vocabulary/condition/humidity.voc} (100%) rename locale/sv-se/{Precipitation.voc => vocabulary/condition/precipitation.voc} (100%) rename locale/sv-se/{Rain.voc => vocabulary/condition/rain.voc} (100%) rename locale/sv-se/{Snow.voc => vocabulary/condition/snow.voc} (100%) rename locale/sv-se/{Thunderstorm.voc => vocabulary/condition/thunderstorm.voc} (100%) rename locale/sv-se/{Windy.voc => vocabulary/condition/windy.voc} (100%) rename locale/sv-se/{Couple.voc => vocabulary/date-time/couple.voc} (100%) rename locale/sv-se/{Later.voc => vocabulary/date-time/later.voc} (100%) rename locale/sv-se/{Next.voc => vocabulary/date-time/next.voc} (100%) rename locale/sv-se/{Now.voc => vocabulary/date-time/now.voc} (100%) rename locale/sv-se/{RelativeDay.voc => vocabulary/date-time/relative-day.voc} (100%) rename locale/sv-se/{RelativeTime.voc => vocabulary/date-time/relative-time.voc} (100%) rename locale/sv-se/{Today.voc => vocabulary/date-time/today.voc} (100%) rename locale/sv-se/{Week.voc => vocabulary/date-time/week.voc} (100%) rename locale/sv-se/{Weekend.voc => vocabulary/date-time/weekend.voc} (100%) rename locale/sv-se/{ConfirmQueryCurrent.voc => vocabulary/query/confirm-query-current.voc} (100%) rename locale/sv-se/{ConfirmQueryFuture.voc => vocabulary/query/confirm-query-future.voc} (100%) rename locale/sv-se/{ConfirmQuery.voc => vocabulary/query/confirm-query.voc} (100%) rename locale/sv-se/{How.voc => vocabulary/query/how.voc} (100%) rename locale/sv-se/{Query.voc => vocabulary/query/query.voc} (100%) rename locale/sv-se/{When.voc => vocabulary/query/when.voc} (100%) rename locale/sv-se/{Cold.voc => vocabulary/temperature/cold.voc} (100%) rename locale/sv-se/{Fog.voc => vocabulary/temperature/fog.voc} (100%) rename locale/sv-se/{High.voc => vocabulary/temperature/high.voc} (100%) rename locale/sv-se/{Hot.voc => vocabulary/temperature/hot.voc} (100%) rename locale/sv-se/{Low.voc => vocabulary/temperature/low.voc} (100%) rename locale/sv-se/{Temperature.voc => vocabulary/temperature/temperature.voc} (100%) rename locale/sv-se/{Fahrenheit.voc => vocabulary/unit/fahrenheit.voc} (100%) rename locale/sv-se/{Unit.entity => vocabulary/unit/unit.entity} (100%) rename locale/sv-se/{Unit.voc => vocabulary/unit/unit.voc} (100%) rename locale/sv-se/{Weather.voc => weather.voc} (100%) diff --git a/__init__.py b/__init__.py index a2b4fc19..801c86f1 100644 --- a/__init__.py +++ b/__init__.py @@ -81,10 +81,10 @@ def __init__(self): @intent_handler( IntentBuilder("") - .optionally("Query") - .one_of("Weather", "Forecast") - .optionally("Location") - .optionally("Today") + .optionally("query") + .one_of("weather", "forecast") + .optionally("location") + .optionally("today") ) def handle_current_weather(self, message: Message): """Handle current weather requests such as: what is the weather like? @@ -95,10 +95,10 @@ def handle_current_weather(self, message: Message): @intent_handler( IntentBuilder("") - .require("Query") - .require("Like") - .require("Outside") - .optionally("Location") + .require("query") + .require("like") + .require("outside") + .optionally("location") ) def handle_like_outside(self, message: Message): """Handle current weather requests such as: what's it like outside? @@ -109,10 +109,10 @@ def handle_like_outside(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .one_of("Weather", "Forecast") - .require("NumberDays") - .optionally("Location") + .optionally("query") + .one_of("weather", "forecast") + .require("number-days") + .optionally("location") ) def handle_number_days_forecast(self, message: Message): """Handle multiple day forecast without specified location. @@ -123,9 +123,9 @@ def handle_number_days_forecast(self, message: Message): :param message: Message Bus event information from the intent parser """ - if self.voc_match(message.data["utterance"], "Couple"): + if self.voc_match(message.data["utterance"], "couple"): days = 2 - elif self.voc_match(message.data["utterance"], "Few"): + elif self.voc_match(message.data["utterance"], "few"): days = 3 else: days = int(extract_number(message.data["utterance"])) @@ -133,10 +133,10 @@ def handle_number_days_forecast(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .one_of("Weather", "Forecast") - .require("RelativeDay") - .optionally("Location") + .optionally("query") + .one_of("weather", "forecast") + .require("relative-day") + .optionally("location") ) def handle_one_day_forecast(self, message): """Handle forecast for a single day. @@ -151,10 +151,10 @@ def handle_one_day_forecast(self, message): @intent_handler( IntentBuilder("") - .require("Query") - .require("Weather") - .require("Later") - .optionally("Location") + .require("query") + .require("weather") + .require("later") + .optionally("location") ) def handle_weather_later(self, message: Message): """Handle future weather requests such as: what's the weather later? @@ -165,11 +165,11 @@ def handle_weather_later(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .one_of("Weather", "Forecast") - .require("RelativeTime") - .optionally("RelativeDay") - .optionally("Location") + .optionally("query") + .one_of("weather", "forecast") + .require("relative-time") + .optionally("relative-day") + .optionally("location") ) def handle_weather_at_time(self, message: Message): """Handle future weather requests such as: what's the weather tonight? @@ -180,10 +180,10 @@ def handle_weather_at_time(self, message: Message): @intent_handler( IntentBuilder("") - .require("Query") - .one_of("Weather", "Forecast") - .require("Weekend") - .optionally("Location") + .require("query") + .one_of("weather", "forecast") + .require("weekend") + .optionally("location") ) def handle_weekend_forecast(self, message: Message): """Handle requests for the weekend forecast. @@ -194,10 +194,10 @@ def handle_weekend_forecast(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .one_of("Weather", "Forecast") - .require("Week") - .optionally("Location") + .optionally("query") + .one_of("weather", "forecast") + .require("week") + .optionally("location") ) def handle_week_weather(self, message: Message): """Handle weather for week (i.e. seven days). @@ -208,12 +208,12 @@ def handle_week_weather(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .require("Temperature") - .optionally("Location") - .optionally("Unit") - .optionally("Today") - .optionally("Now") + .optionally("query") + .require("temperature") + .optionally("location") + .optionally("unit") + .optionally("today") + .optionally("now") ) def handle_current_temperature(self, message: Message): """Handle requests for current temperature. @@ -228,11 +228,11 @@ def handle_current_temperature(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .require("Temperature") - .require("RelativeDay") - .optionally("Location") - .optionally("Unit") + .optionally("query") + .require("temperature") + .require("relative-day") + .optionally("location") + .optionally("unit") ) def handle_daily_temperature(self, message: Message): """Handle simple requests for current temperature. @@ -245,11 +245,11 @@ def handle_daily_temperature(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .require("Temperature") - .require("RelativeTime") - .optionally("RelativeDay") - .optionally("Location") + .optionally("query") + .require("temperature") + .require("relative-time") + .optionally("relative-day") + .optionally("location") ) def handle_hourly_temperature(self, message: Message): """Handle requests for current temperature at a relative time. @@ -264,14 +264,14 @@ def handle_hourly_temperature(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .require("High") - .optionally("Temperature") - .optionally("Location") - .optionally("Unit") - .optionally("RelativeDay") - .optionally("Now") - .optionally("Today") + .optionally("query") + .require("high") + .optionally("temperature") + .optionally("location") + .optionally("unit") + .optionally("relative-day") + .optionally("now") + .optionally("today") ) def handle_high_temperature(self, message: Message): """Handle a request for the high temperature. @@ -286,14 +286,14 @@ def handle_high_temperature(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .require("Low") - .optionally("Temperature") - .optionally("Location") - .optionally("Unit") - .optionally("RelativeDay") - .optionally("Now") - .optionally("Today") + .optionally("query") + .require("low") + .optionally("temperature") + .optionally("location") + .optionally("unit") + .optionally("relative-day") + .optionally("now") + .optionally("today") ) def handle_low_temperature(self, message: Message): """Handle a request for the high temperature. @@ -308,10 +308,10 @@ def handle_low_temperature(self, message: Message): @intent_handler( IntentBuilder("") - .require("ConfirmQueryCurrent") - .one_of("Hot", "Cold") - .optionally("Location") - .optionally("Today") + .require("confirm-query-current") + .one_of("hot", "cold") + .optionally("location") + .optionally("today") ) def handle_is_it_hot(self, message: Message): """Handler for temperature requests such as: is it going to be hot today? @@ -322,12 +322,12 @@ def handle_is_it_hot(self, message: Message): @intent_handler( IntentBuilder("") - .optionally("Query") - .one_of("Hot", "Cold") - .require("ConfirmQuery") - .optionally("Location") - .optionally("RelativeDay") - .optionally("Today") + .optionally("query") + .one_of("hot", "cold") + .require("confirm-query") + .optionally("location") + .optionally("relative-day") + .optionally("today") ) def handle_how_hot_or_cold(self, message): """Handler for temperature requests such as: how cold will it be today? @@ -339,10 +339,10 @@ def handle_how_hot_or_cold(self, message): @intent_handler( IntentBuilder("") - .require("ConfirmQuery") - .require("Windy") - .optionally("Location") - .optionally("RelativeDay") + .require("confirm-query") + .require("windy") + .optionally("location") + .optionally("relative-day") ) def handle_is_it_windy(self, message: Message): """Handler for weather requests such as: is it windy today? @@ -353,11 +353,11 @@ def handle_is_it_windy(self, message: Message): @intent_handler( IntentBuilder("") - .require("How") - .require("Windy") - .optionally("ConfirmQuery") - .optionally("RelativeDay") - .optionally("Location") + .require("how") + .require("windy") + .optionally("confirm-query") + .optionally("relative-day") + .optionally("location") ) def handle_windy(self, message): """Handler for weather requests such as: how windy is it? @@ -367,41 +367,41 @@ def handle_windy(self, message): self._report_wind(message) @intent_handler( - IntentBuilder("").require("ConfirmQuery").require("Snow").optionally("Location") + IntentBuilder("").require("confirm-query").require("snow").optionally("location") ) def handle_is_it_snowing(self, message: Message): """Handler for weather requests such as: is it snowing today? :param message: Message Bus event information from the intent parser """ - self._report_weather_condition(message, "Snow") + self._report_weather_condition(message, "snow") @intent_handler( IntentBuilder("") - .require("ConfirmQuery") - .require("Clear") - .optionally("Location") + .require("confirm-query") + .require("clear") + .optionally("location") ) def handle_is_it_clear(self, message: Message): """Handler for weather requests such as: is the sky clear today? :param message: Message Bus event information from the intent parser """ - self._report_weather_condition(message, condition="Clear") + self._report_weather_condition(message, condition="clear") @intent_handler( IntentBuilder("") - .require("ConfirmQuery") - .require("Clouds") - .optionally("Location") - .optionally("RelativeTime") + .require("confirm-query") + .require("clouds") + .optionally("location") + .optionally("relative-time") ) def handle_is_it_cloudy(self, message: Message): """Handler for weather requests such as: is it cloudy today? :param message: Message Bus event information from the intent parser """ - self._report_weather_condition(message, "Clouds") + self._report_weather_condition(message, "clouds") @intent_handler( IntentBuilder("").require("ConfirmQuery").require("Fog").optionally("Location") @@ -411,7 +411,7 @@ def handle_is_it_foggy(self, message: Message): :param message: Message Bus event information from the intent parser """ - self._report_weather_condition(message, "Fog") + self._report_weather_condition(message, "fog") @intent_handler( IntentBuilder("").require("ConfirmQuery").require("Rain").optionally("Location") @@ -421,15 +421,15 @@ def handle_is_it_raining(self, message: Message): :param message: Message Bus event information from the intent parser """ - self._report_weather_condition(message, "Rain") + self._report_weather_condition(message, "rain") - @intent_handler("do.i.need.an.umbrella.intent") + @intent_handler("do-i-need-an-umbrella.intent") def handle_need_umbrella(self, message: Message): """Handler for weather requests such as: will I need an umbrella today? :param message: Message Bus event information from the intent parser """ - self._report_weather_condition(message, "Rain") + self._report_weather_condition(message, "rain") @intent_handler( IntentBuilder("") @@ -442,7 +442,7 @@ def handle_is_it_storming(self, message: Message): :param message: Message Bus event information from the intent parser """ - self._report_weather_condition(message, "Thunderstorm") + self._report_weather_condition(message, "thunderstorm") @intent_handler( IntentBuilder("") @@ -1002,12 +1002,12 @@ def _get_intent_data(self, message: Message) -> WeatherIntent: except ValueError: self.speak_dialog("cant.get.forecast") else: - if self.voc_match(intent_data.utterance, "RelativeTime"): + if self.voc_match(intent_data.utterance, "relative-time"): intent_data.timeframe = HOURLY - elif self.voc_match(intent_data.utterance, "Later"): + elif self.voc_match(intent_data.utterance, "later"): intent_data.timeframe = HOURLY - elif self.voc_match(intent_data.utterance, "RelativeDay"): - if not self.voc_match(intent_data.utterance, "Today"): + elif self.voc_match(intent_data.utterance, "relative-day"): + if not self.voc_match(intent_data.utterance, "today"): intent_data.timeframe = DAILY return intent_data diff --git a/locale/ca-es/FogAlternatives.voc b/locale/ca-es/FogAlternatives.voc deleted file mode 100644 index aa5a234f..00000000 --- a/locale/ca-es/FogAlternatives.voc +++ /dev/null @@ -1,2 +0,0 @@ -# Alternatives per al temps de boira -(clar|ennuvolat|núvols|parcialment ennuvolat) diff --git a/locale/ca-es/ThreeDay.voc b/locale/ca-es/ThreeDay.voc deleted file mode 100644 index 03b292f3..00000000 --- a/locale/ca-es/ThreeDay.voc +++ /dev/null @@ -1,3 +0,0 @@ -3 dies -tres dies -pocs dies diff --git a/locale/ca-es/WeatherType.voc b/locale/ca-es/WeatherType.voc deleted file mode 100644 index fdcb1d9c..00000000 --- a/locale/ca-es/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -pluja|plovent -neu|nevada|nevant -aiguaneu -calamarsa|pedra|pedregant -solejat|assolellat -calent|càlid -fred|gelat|fres diff --git a/locale/ca-es/and.dialog b/locale/ca-es/dialog/and.dialog similarity index 100% rename from locale/ca-es/and.dialog rename to locale/ca-es/dialog/and.dialog diff --git a/locale/ca-es/clear sky.dialog b/locale/ca-es/dialog/condition/clear sky.dialog similarity index 100% rename from locale/ca-es/clear sky.dialog rename to locale/ca-es/dialog/condition/clear sky.dialog diff --git a/locale/ca-es/clear.dialog b/locale/ca-es/dialog/condition/clear.dialog similarity index 100% rename from locale/ca-es/clear.dialog rename to locale/ca-es/dialog/condition/clear.dialog diff --git a/locale/ca-es/no precipitation expected.dialog b/locale/ca-es/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/ca-es/no precipitation expected.dialog rename to locale/ca-es/dialog/condition/no precipitation expected.dialog diff --git a/locale/ca-es/precipitation expected.dialog b/locale/ca-es/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/ca-es/precipitation expected.dialog rename to locale/ca-es/dialog/condition/precipitation expected.dialog diff --git a/locale/ca-es/rain.dialog b/locale/ca-es/dialog/condition/rain.dialog similarity index 100% rename from locale/ca-es/rain.dialog rename to locale/ca-es/dialog/condition/rain.dialog diff --git a/locale/ca-es/snow.dialog b/locale/ca-es/dialog/condition/snow.dialog similarity index 100% rename from locale/ca-es/snow.dialog rename to locale/ca-es/dialog/condition/snow.dialog diff --git a/locale/ca-es/thunderstorm.dialog b/locale/ca-es/dialog/condition/thunderstorm.dialog similarity index 100% rename from locale/ca-es/thunderstorm.dialog rename to locale/ca-es/dialog/condition/thunderstorm.dialog diff --git a/locale/ca-es/current.condition.expected.local.dialog b/locale/ca-es/dialog/current/current-condition-expected-local.dialog similarity index 100% rename from locale/ca-es/current.condition.expected.local.dialog rename to locale/ca-es/dialog/current/current-condition-expected-local.dialog diff --git a/locale/ca-es/current.condition.expected.location.dialog b/locale/ca-es/dialog/current/current-condition-expected-location.dialog similarity index 100% rename from locale/ca-es/current.condition.expected.location.dialog rename to locale/ca-es/dialog/current/current-condition-expected-location.dialog diff --git a/locale/ca-es/current.humidity.location.dialog b/locale/ca-es/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/ca-es/current.humidity.location.dialog rename to locale/ca-es/dialog/current/current-humidity-location.dialog diff --git a/locale/ca-es/current.temperature.high.local.dialog b/locale/ca-es/dialog/current/current-temperature-high-local.dialog similarity index 100% rename from locale/ca-es/current.temperature.high.local.dialog rename to locale/ca-es/dialog/current/current-temperature-high-local.dialog diff --git a/locale/ca-es/current.temperature.high.location.dialog b/locale/ca-es/dialog/current/current-temperature-high-location.dialog similarity index 100% rename from locale/ca-es/current.temperature.high.location.dialog rename to locale/ca-es/dialog/current/current-temperature-high-location.dialog diff --git a/locale/ca-es/current.temperature.high.low.dialog b/locale/ca-es/dialog/current/current-temperature-high-low.dialog similarity index 100% rename from locale/ca-es/current.temperature.high.low.dialog rename to locale/ca-es/dialog/current/current-temperature-high-low.dialog diff --git a/locale/ca-es/current.temperature.local.dialog b/locale/ca-es/dialog/current/current-temperature-local.dialog similarity index 100% rename from locale/ca-es/current.temperature.local.dialog rename to locale/ca-es/dialog/current/current-temperature-local.dialog diff --git a/locale/ca-es/current.temperature.location.dialog b/locale/ca-es/dialog/current/current-temperature-location.dialog similarity index 100% rename from locale/ca-es/current.temperature.location.dialog rename to locale/ca-es/dialog/current/current-temperature-location.dialog diff --git a/locale/ca-es/current.temperature.low.local.dialog b/locale/ca-es/dialog/current/current-temperature-low-local.dialog similarity index 100% rename from locale/ca-es/current.temperature.low.local.dialog rename to locale/ca-es/dialog/current/current-temperature-low-local.dialog diff --git a/locale/ca-es/current.temperature.low.location.dialog b/locale/ca-es/dialog/current/current-temperature-low-location.dialog similarity index 100% rename from locale/ca-es/current.temperature.low.location.dialog rename to locale/ca-es/dialog/current/current-temperature-low-location.dialog diff --git a/locale/ca-es/current.weather.local.dialog b/locale/ca-es/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/ca-es/current.weather.local.dialog rename to locale/ca-es/dialog/current/current-weather-local.dialog diff --git a/locale/ca-es/current.weather.location.dialog b/locale/ca-es/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/ca-es/current.weather.location.dialog rename to locale/ca-es/dialog/current/current-weather-location.dialog diff --git a/locale/ca-es/current.wind.light.local.dialog b/locale/ca-es/dialog/current/current-wind-light-local.dialog similarity index 100% rename from locale/ca-es/current.wind.light.local.dialog rename to locale/ca-es/dialog/current/current-wind-light-local.dialog diff --git a/locale/ca-es/current.wind.light.location.dialog b/locale/ca-es/dialog/current/current-wind-light-location.dialog similarity index 100% rename from locale/ca-es/current.wind.light.location.dialog rename to locale/ca-es/dialog/current/current-wind-light-location.dialog diff --git a/locale/ca-es/current.wind.moderate.local.dialog b/locale/ca-es/dialog/current/current-wind-moderate-local.dialog similarity index 100% rename from locale/ca-es/current.wind.moderate.local.dialog rename to locale/ca-es/dialog/current/current-wind-moderate-local.dialog diff --git a/locale/ca-es/current.wind.moderate.location.dialog b/locale/ca-es/dialog/current/current-wind-moderate-location.dialog similarity index 100% rename from locale/ca-es/current.wind.moderate.location.dialog rename to locale/ca-es/dialog/current/current-wind-moderate-location.dialog diff --git a/locale/ca-es/current.wind.strong.local.dialog b/locale/ca-es/dialog/current/current-wind-strong-local.dialog similarity index 100% rename from locale/ca-es/current.wind.strong.local.dialog rename to locale/ca-es/dialog/current/current-wind-strong-local.dialog diff --git a/locale/ca-es/current.wind.strong.location.dialog b/locale/ca-es/dialog/current/current-wind-strong-location.dialog similarity index 100% rename from locale/ca-es/current.wind.strong.location.dialog rename to locale/ca-es/dialog/current/current-wind-strong-location.dialog diff --git a/locale/ca-es/daily.condition.expected.local.dialog b/locale/ca-es/dialog/daily/daily-condition-expected-local.dialog similarity index 100% rename from locale/ca-es/daily.condition.expected.local.dialog rename to locale/ca-es/dialog/daily/daily-condition-expected-local.dialog diff --git a/locale/ca-es/daily.condition.expected.location.dialog b/locale/ca-es/dialog/daily/daily-condition-expected-location.dialog similarity index 100% rename from locale/ca-es/daily.condition.expected.location.dialog rename to locale/ca-es/dialog/daily/daily-condition-expected-location.dialog diff --git a/locale/ca-es/daily.temperature.high.local.dialog b/locale/ca-es/dialog/daily/daily-temperature-high-local.dialog similarity index 100% rename from locale/ca-es/daily.temperature.high.local.dialog rename to locale/ca-es/dialog/daily/daily-temperature-high-local.dialog diff --git a/locale/ca-es/daily.temperature.high.location.dialog b/locale/ca-es/dialog/daily/daily-temperature-high-location.dialog similarity index 100% rename from locale/ca-es/daily.temperature.high.location.dialog rename to locale/ca-es/dialog/daily/daily-temperature-high-location.dialog diff --git a/locale/ca-es/daily.temperature.local.dialog b/locale/ca-es/dialog/daily/daily-temperature-local.dialog similarity index 100% rename from locale/ca-es/daily.temperature.local.dialog rename to locale/ca-es/dialog/daily/daily-temperature-local.dialog diff --git a/locale/ca-es/daily.temperature.location.dialog b/locale/ca-es/dialog/daily/daily-temperature-location.dialog similarity index 100% rename from locale/ca-es/daily.temperature.location.dialog rename to locale/ca-es/dialog/daily/daily-temperature-location.dialog diff --git a/locale/ca-es/daily.temperature.low.local.dialog b/locale/ca-es/dialog/daily/daily-temperature-low-local.dialog similarity index 100% rename from locale/ca-es/daily.temperature.low.local.dialog rename to locale/ca-es/dialog/daily/daily-temperature-low-local.dialog diff --git a/locale/ca-es/daily.temperature.low.location.dialog b/locale/ca-es/dialog/daily/daily-temperature-low-location.dialog similarity index 100% rename from locale/ca-es/daily.temperature.low.location.dialog rename to locale/ca-es/dialog/daily/daily-temperature-low-location.dialog diff --git a/locale/ca-es/daily.weather.local.dialog b/locale/ca-es/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/ca-es/daily.weather.local.dialog rename to locale/ca-es/dialog/daily/daily-weather-local.dialog diff --git a/locale/ca-es/daily.weather.location.dialog b/locale/ca-es/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/ca-es/daily.weather.location.dialog rename to locale/ca-es/dialog/daily/daily-weather-location.dialog diff --git a/locale/ca-es/daily.wind.light.loaction.dialog b/locale/ca-es/dialog/daily/daily-wind-light-loaction.dialog similarity index 100% rename from locale/ca-es/daily.wind.light.loaction.dialog rename to locale/ca-es/dialog/daily/daily-wind-light-loaction.dialog diff --git a/locale/ca-es/daily.wind.light.local.dialog b/locale/ca-es/dialog/daily/daily-wind-light-local.dialog similarity index 100% rename from locale/ca-es/daily.wind.light.local.dialog rename to locale/ca-es/dialog/daily/daily-wind-light-local.dialog diff --git a/locale/ca-es/daily.wind.moderate.local.dialog b/locale/ca-es/dialog/daily/daily-wind-moderate-local.dialog similarity index 100% rename from locale/ca-es/daily.wind.moderate.local.dialog rename to locale/ca-es/dialog/daily/daily-wind-moderate-local.dialog diff --git a/locale/ca-es/daily.wind.moderate.location.dialog b/locale/ca-es/dialog/daily/daily-wind-moderate-location.dialog similarity index 100% rename from locale/ca-es/daily.wind.moderate.location.dialog rename to locale/ca-es/dialog/daily/daily-wind-moderate-location.dialog diff --git a/locale/ca-es/daily.wind.strong.local.dialog b/locale/ca-es/dialog/daily/daily-wind-strong-local.dialog similarity index 100% rename from locale/ca-es/daily.wind.strong.local.dialog rename to locale/ca-es/dialog/daily/daily-wind-strong-local.dialog diff --git a/locale/ca-es/daily.wind.strong.location.dialog b/locale/ca-es/dialog/daily/daily-wind-strong-location.dialog similarity index 100% rename from locale/ca-es/daily.wind.strong.location.dialog rename to locale/ca-es/dialog/daily/daily-wind-strong-location.dialog diff --git a/locale/ca-es/east.dialog b/locale/ca-es/dialog/direction/east.dialog similarity index 100% rename from locale/ca-es/east.dialog rename to locale/ca-es/dialog/direction/east.dialog diff --git a/locale/ca-es/north.dialog b/locale/ca-es/dialog/direction/north.dialog similarity index 100% rename from locale/ca-es/north.dialog rename to locale/ca-es/dialog/direction/north.dialog diff --git a/locale/ca-es/northeast.dialog b/locale/ca-es/dialog/direction/northeast.dialog similarity index 100% rename from locale/ca-es/northeast.dialog rename to locale/ca-es/dialog/direction/northeast.dialog diff --git a/locale/ca-es/northwest.dialog b/locale/ca-es/dialog/direction/northwest.dialog similarity index 100% rename from locale/ca-es/northwest.dialog rename to locale/ca-es/dialog/direction/northwest.dialog diff --git a/locale/ca-es/south.dialog b/locale/ca-es/dialog/direction/south.dialog similarity index 100% rename from locale/ca-es/south.dialog rename to locale/ca-es/dialog/direction/south.dialog diff --git a/locale/ca-es/southeast.dialog b/locale/ca-es/dialog/direction/southeast.dialog similarity index 100% rename from locale/ca-es/southeast.dialog rename to locale/ca-es/dialog/direction/southeast.dialog diff --git a/locale/ca-es/southwest.dialog b/locale/ca-es/dialog/direction/southwest.dialog similarity index 100% rename from locale/ca-es/southwest.dialog rename to locale/ca-es/dialog/direction/southwest.dialog diff --git a/locale/ca-es/west.dialog b/locale/ca-es/dialog/direction/west.dialog similarity index 100% rename from locale/ca-es/west.dialog rename to locale/ca-es/dialog/direction/west.dialog diff --git a/locale/ca-es/cant.get.forecast.dialog b/locale/ca-es/dialog/error/cant-get-forecast.dialog similarity index 100% rename from locale/ca-es/cant.get.forecast.dialog rename to locale/ca-es/dialog/error/cant-get-forecast.dialog diff --git a/locale/ca-es/location.not.found.dialog b/locale/ca-es/dialog/error/location-not-found.dialog similarity index 100% rename from locale/ca-es/location.not.found.dialog rename to locale/ca-es/dialog/error/location-not-found.dialog diff --git a/locale/ca-es/no.forecast.dialog b/locale/ca-es/dialog/error/no-forecast.dialog similarity index 100% rename from locale/ca-es/no.forecast.dialog rename to locale/ca-es/dialog/error/no-forecast.dialog diff --git a/locale/ca-es/hourly.condition.alternative.local.dialog b/locale/ca-es/dialog/hourly/hourly-condition-alternative-local.dialog similarity index 100% rename from locale/ca-es/hourly.condition.alternative.local.dialog rename to locale/ca-es/dialog/hourly/hourly-condition-alternative-local.dialog diff --git a/locale/ca-es/hourly.condition.alternative.location.dialog b/locale/ca-es/dialog/hourly/hourly-condition-alternative-location.dialog similarity index 100% rename from locale/ca-es/hourly.condition.alternative.location.dialog rename to locale/ca-es/dialog/hourly/hourly-condition-alternative-location.dialog diff --git a/locale/ca-es/hourly.condition.expected.local.dialog b/locale/ca-es/dialog/hourly/hourly-condition-expected-local.dialog similarity index 100% rename from locale/ca-es/hourly.condition.expected.local.dialog rename to locale/ca-es/dialog/hourly/hourly-condition-expected-local.dialog diff --git a/locale/ca-es/hourly.condition.expected.location.dialog b/locale/ca-es/dialog/hourly/hourly-condition-expected-location.dialog similarity index 100% rename from locale/ca-es/hourly.condition.expected.location.dialog rename to locale/ca-es/dialog/hourly/hourly-condition-expected-location.dialog diff --git a/locale/ca-es/hourly.condition.not.expected.local.dialog b/locale/ca-es/dialog/hourly/hourly-condition-not-expected-local.dialog similarity index 100% rename from locale/ca-es/hourly.condition.not.expected.local.dialog rename to locale/ca-es/dialog/hourly/hourly-condition-not-expected-local.dialog diff --git a/locale/ca-es/hourly.condition.not.expected.location.dialog b/locale/ca-es/dialog/hourly/hourly-condition-not-expected-location.dialog similarity index 100% rename from locale/ca-es/hourly.condition.not.expected.location.dialog rename to locale/ca-es/dialog/hourly/hourly-condition-not-expected-location.dialog diff --git a/locale/ca-es/hourly.temperature.local.dialog b/locale/ca-es/dialog/hourly/hourly-temperature-local.dialog similarity index 100% rename from locale/ca-es/hourly.temperature.local.dialog rename to locale/ca-es/dialog/hourly/hourly-temperature-local.dialog diff --git a/locale/ca-es/hourly.weather.local.dialog b/locale/ca-es/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/ca-es/hourly.weather.local.dialog rename to locale/ca-es/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/ca-es/hourly.weather.location.dialog b/locale/ca-es/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/ca-es/hourly.weather.location.dialog rename to locale/ca-es/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/ca-es/percentage.number.dialog b/locale/ca-es/dialog/percentage-number.dialog similarity index 100% rename from locale/ca-es/percentage.number.dialog rename to locale/ca-es/dialog/percentage-number.dialog diff --git a/locale/ca-es/celsius.dialog b/locale/ca-es/dialog/unit/celsius.dialog similarity index 100% rename from locale/ca-es/celsius.dialog rename to locale/ca-es/dialog/unit/celsius.dialog diff --git a/locale/ca-es/fahrenheit.dialog b/locale/ca-es/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/ca-es/fahrenheit.dialog rename to locale/ca-es/dialog/unit/fahrenheit.dialog diff --git a/locale/ca-es/meters per second.dialog b/locale/ca-es/dialog/unit/meters per second.dialog similarity index 100% rename from locale/ca-es/meters per second.dialog rename to locale/ca-es/dialog/unit/meters per second.dialog diff --git a/locale/ca-es/miles per hour.dialog b/locale/ca-es/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/ca-es/miles per hour.dialog rename to locale/ca-es/dialog/unit/miles per hour.dialog diff --git a/locale/ca-es/weekly.temperature.dialog b/locale/ca-es/dialog/weekly/weekly-temperature.dialog similarity index 100% rename from locale/ca-es/weekly.temperature.dialog rename to locale/ca-es/dialog/weekly/weekly-temperature.dialog diff --git a/locale/ca-es/from.day.dialog b/locale/ca-es/from.day.dialog deleted file mode 100644 index df03b352..00000000 --- a/locale/ca-es/from.day.dialog +++ /dev/null @@ -1 +0,0 @@ -Des del {day} diff --git a/locale/ca-es/heavy.dialog b/locale/ca-es/heavy.dialog deleted file mode 100644 index c1ed0455..00000000 --- a/locale/ca-es/heavy.dialog +++ /dev/null @@ -1 +0,0 @@ -intens diff --git a/locale/ca-es/location.rx b/locale/ca-es/regex/location.rx similarity index 100% rename from locale/ca-es/location.rx rename to locale/ca-es/regex/location.rx diff --git a/locale/ca-es/report.wind.dialog b/locale/ca-es/report.wind.dialog deleted file mode 100644 index af9a2758..00000000 --- a/locale/ca-es/report.wind.dialog +++ /dev/null @@ -1 +0,0 @@ -{condition} és {value} diff --git a/locale/ca-es/simple.temperature.intent b/locale/ca-es/simple.temperature.intent deleted file mode 100644 index 7d8f4cb4..00000000 --- a/locale/ca-es/simple.temperature.intent +++ /dev/null @@ -1 +0,0 @@ -temperatura diff --git a/locale/ca-es/sky is clear.future.dialog b/locale/ca-es/sky is clear.future.dialog deleted file mode 100644 index 2789b6da..00000000 --- a/locale/ca-es/sky is clear.future.dialog +++ /dev/null @@ -1 +0,0 @@ -un cel clar diff --git a/locale/ca-es/sunrise.dialog b/locale/ca-es/sunrise.dialog deleted file mode 100644 index 026ad9d7..00000000 --- a/locale/ca-es/sunrise.dialog +++ /dev/null @@ -1,2 +0,0 @@ -el sol s'ha aixecat a {time} avui -l'alba va ser a les {time} avui diff --git a/locale/ca-es/sunset.dialog b/locale/ca-es/sunset.dialog deleted file mode 100644 index 6d5fa2b0..00000000 --- a/locale/ca-es/sunset.dialog +++ /dev/null @@ -1,3 +0,0 @@ -el sol s'establirà a les {time} avui -el sol baixarà avui a les {time} -la posta de sol serà a {time} avui diff --git a/locale/ca-es/tonight.local.weather.dialog b/locale/ca-es/tonight.local.weather.dialog deleted file mode 100644 index a843f587..00000000 --- a/locale/ca-es/tonight.local.weather.dialog +++ /dev/null @@ -1,4 +0,0 @@ -Aquesta nit farà {condition}, amb temperatures properes a {temp} -Aquesta nit farà {condition} i entorn de {temp} graus -Aquesta nit farà {condition} i {temp} graus -Al voltant de {temp} graus amb {condition} aquesta nit diff --git a/locale/ca-es/Clear.voc b/locale/ca-es/vocabulary/condition/clear.voc similarity index 100% rename from locale/ca-es/Clear.voc rename to locale/ca-es/vocabulary/condition/clear.voc diff --git a/locale/ca-es/Clouds.voc b/locale/ca-es/vocabulary/condition/clouds.voc similarity index 100% rename from locale/ca-es/Clouds.voc rename to locale/ca-es/vocabulary/condition/clouds.voc diff --git a/locale/ca-es/do.i.need.an.umbrella.intent b/locale/ca-es/vocabulary/condition/do.i.need.an.umbrella.intent similarity index 100% rename from locale/ca-es/do.i.need.an.umbrella.intent rename to locale/ca-es/vocabulary/condition/do.i.need.an.umbrella.intent diff --git a/locale/ca-es/Fog.voc b/locale/ca-es/vocabulary/condition/fog.voc similarity index 100% rename from locale/ca-es/Fog.voc rename to locale/ca-es/vocabulary/condition/fog.voc diff --git a/locale/ca-es/Humidity.voc b/locale/ca-es/vocabulary/condition/humidity.voc similarity index 100% rename from locale/ca-es/Humidity.voc rename to locale/ca-es/vocabulary/condition/humidity.voc diff --git a/locale/ca-es/Precipitation.voc b/locale/ca-es/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/ca-es/Precipitation.voc rename to locale/ca-es/vocabulary/condition/precipitation.voc diff --git a/locale/ca-es/Rain.voc b/locale/ca-es/vocabulary/condition/rain.voc similarity index 100% rename from locale/ca-es/Rain.voc rename to locale/ca-es/vocabulary/condition/rain.voc diff --git a/locale/ca-es/Snow.voc b/locale/ca-es/vocabulary/condition/snow.voc similarity index 100% rename from locale/ca-es/Snow.voc rename to locale/ca-es/vocabulary/condition/snow.voc diff --git a/locale/ca-es/Thunderstorm.voc b/locale/ca-es/vocabulary/condition/thunderstorm.voc similarity index 100% rename from locale/ca-es/Thunderstorm.voc rename to locale/ca-es/vocabulary/condition/thunderstorm.voc diff --git a/locale/ca-es/Windy.voc b/locale/ca-es/vocabulary/condition/windy.voc similarity index 100% rename from locale/ca-es/Windy.voc rename to locale/ca-es/vocabulary/condition/windy.voc diff --git a/locale/ca-es/Couple.voc b/locale/ca-es/vocabulary/couple.voc similarity index 100% rename from locale/ca-es/Couple.voc rename to locale/ca-es/vocabulary/couple.voc diff --git a/locale/ca-es/Later.voc b/locale/ca-es/vocabulary/date-time/later.voc similarity index 100% rename from locale/ca-es/Later.voc rename to locale/ca-es/vocabulary/date-time/later.voc diff --git a/locale/ca-es/Next.voc b/locale/ca-es/vocabulary/date-time/next.voc similarity index 100% rename from locale/ca-es/Next.voc rename to locale/ca-es/vocabulary/date-time/next.voc diff --git a/locale/ca-es/Now.voc b/locale/ca-es/vocabulary/date-time/now.voc similarity index 100% rename from locale/ca-es/Now.voc rename to locale/ca-es/vocabulary/date-time/now.voc diff --git a/locale/ca-es/RelativeDay.voc b/locale/ca-es/vocabulary/date-time/relative-day.voc similarity index 100% rename from locale/ca-es/RelativeDay.voc rename to locale/ca-es/vocabulary/date-time/relative-day.voc diff --git a/locale/ca-es/RelativeTime.voc b/locale/ca-es/vocabulary/date-time/relative-time.voc similarity index 100% rename from locale/ca-es/RelativeTime.voc rename to locale/ca-es/vocabulary/date-time/relative-time.voc diff --git a/locale/ca-es/Today.voc b/locale/ca-es/vocabulary/date-time/today.voc similarity index 100% rename from locale/ca-es/Today.voc rename to locale/ca-es/vocabulary/date-time/today.voc diff --git a/locale/ca-es/Week.voc b/locale/ca-es/vocabulary/date-time/week.voc similarity index 100% rename from locale/ca-es/Week.voc rename to locale/ca-es/vocabulary/date-time/week.voc diff --git a/locale/ca-es/Weekend.voc b/locale/ca-es/vocabulary/date-time/weekend.voc similarity index 100% rename from locale/ca-es/Weekend.voc rename to locale/ca-es/vocabulary/date-time/weekend.voc diff --git a/locale/ca-es/Forecast.voc b/locale/ca-es/vocabulary/forecast.voc similarity index 100% rename from locale/ca-es/Forecast.voc rename to locale/ca-es/vocabulary/forecast.voc diff --git a/locale/ca-es/Location.voc b/locale/ca-es/vocabulary/location.voc similarity index 100% rename from locale/ca-es/Location.voc rename to locale/ca-es/vocabulary/location.voc diff --git a/locale/ca-es/ConfirmQueryCurrent.voc b/locale/ca-es/vocabulary/query/confirm-query-current.voc similarity index 100% rename from locale/ca-es/ConfirmQueryCurrent.voc rename to locale/ca-es/vocabulary/query/confirm-query-current.voc diff --git a/locale/ca-es/ConfirmQueryFuture.voc b/locale/ca-es/vocabulary/query/confirm-query-future.voc similarity index 100% rename from locale/ca-es/ConfirmQueryFuture.voc rename to locale/ca-es/vocabulary/query/confirm-query-future.voc diff --git a/locale/ca-es/ConfirmQuery.voc b/locale/ca-es/vocabulary/query/confirm-query.voc similarity index 100% rename from locale/ca-es/ConfirmQuery.voc rename to locale/ca-es/vocabulary/query/confirm-query.voc diff --git a/locale/ca-es/How.voc b/locale/ca-es/vocabulary/query/how.voc similarity index 100% rename from locale/ca-es/How.voc rename to locale/ca-es/vocabulary/query/how.voc diff --git a/locale/ca-es/Query.voc b/locale/ca-es/vocabulary/query/query.voc similarity index 100% rename from locale/ca-es/Query.voc rename to locale/ca-es/vocabulary/query/query.voc diff --git a/locale/ca-es/When.voc b/locale/ca-es/vocabulary/query/when.voc similarity index 100% rename from locale/ca-es/When.voc rename to locale/ca-es/vocabulary/query/when.voc diff --git a/locale/ca-es/Sunrise.voc b/locale/ca-es/vocabulary/sunrise.voc similarity index 100% rename from locale/ca-es/Sunrise.voc rename to locale/ca-es/vocabulary/sunrise.voc diff --git a/locale/ca-es/Sunset.voc b/locale/ca-es/vocabulary/sunset.voc similarity index 100% rename from locale/ca-es/Sunset.voc rename to locale/ca-es/vocabulary/sunset.voc diff --git a/locale/ca-es/Cold.voc b/locale/ca-es/vocabulary/temperature/cold.voc similarity index 100% rename from locale/ca-es/Cold.voc rename to locale/ca-es/vocabulary/temperature/cold.voc diff --git a/locale/ca-es/High.voc b/locale/ca-es/vocabulary/temperature/high.voc similarity index 100% rename from locale/ca-es/High.voc rename to locale/ca-es/vocabulary/temperature/high.voc diff --git a/locale/ca-es/Hot.voc b/locale/ca-es/vocabulary/temperature/hot.voc similarity index 100% rename from locale/ca-es/Hot.voc rename to locale/ca-es/vocabulary/temperature/hot.voc diff --git a/locale/ca-es/Low.voc b/locale/ca-es/vocabulary/temperature/low.voc similarity index 100% rename from locale/ca-es/Low.voc rename to locale/ca-es/vocabulary/temperature/low.voc diff --git a/locale/ca-es/Temperature.voc b/locale/ca-es/vocabulary/temperature/temperature.voc similarity index 100% rename from locale/ca-es/Temperature.voc rename to locale/ca-es/vocabulary/temperature/temperature.voc diff --git a/locale/ca-es/Fahrenheit.voc b/locale/ca-es/vocabulary/unit/fahrenheit.voc similarity index 100% rename from locale/ca-es/Fahrenheit.voc rename to locale/ca-es/vocabulary/unit/fahrenheit.voc diff --git a/locale/ca-es/Unit.entity b/locale/ca-es/vocabulary/unit/unit.entity similarity index 100% rename from locale/ca-es/Unit.entity rename to locale/ca-es/vocabulary/unit/unit.entity diff --git a/locale/ca-es/Unit.voc b/locale/ca-es/vocabulary/unit/unit.voc similarity index 100% rename from locale/ca-es/Unit.voc rename to locale/ca-es/vocabulary/unit/unit.voc diff --git a/locale/ca-es/Weather.voc b/locale/ca-es/vocabulary/weather.voc similarity index 100% rename from locale/ca-es/Weather.voc rename to locale/ca-es/vocabulary/weather.voc diff --git a/locale/da-dk/ThreeDay.voc b/locale/da-dk/ThreeDay.voc deleted file mode 100644 index 71b3c8ab..00000000 --- a/locale/da-dk/ThreeDay.voc +++ /dev/null @@ -1,6 +0,0 @@ -# 3 day(s|) -3 dage(s|) -# three day(s|) -tre dage(s|) -# few days -få dage diff --git a/locale/da-dk/ThunderstormAlternatives.voc b/locale/da-dk/ThunderstormAlternatives.voc deleted file mode 100644 index 13b5d314..00000000 --- a/locale/da-dk/ThunderstormAlternatives.voc +++ /dev/null @@ -1,3 +0,0 @@ -# Alternatives similar to stormy weather -# (drizzle|rain|light rain|snow|light snow|sleet|fog|mist|clouds|cloud|partially cloudy) -(støvregn|regn|let regn|sne|let sne|slud|tåge|tåge|skyer|Sky|delvis skyet) diff --git a/locale/da-dk/WeatherType.voc b/locale/da-dk/WeatherType.voc deleted file mode 100644 index 6c9882f9..00000000 --- a/locale/da-dk/WeatherType.voc +++ /dev/null @@ -1,16 +0,0 @@ -# rain|raining -regn|regner -# snow|snowing -sne|sner -# sleet -slud -# hail|hailing -hagl|signalsystemet -# sunny|sun -solrig|sol -# hot|warm -hed|varm -# cold|cool -kold|fedt nok -# - diff --git a/locale/da-dk/and.dialog b/locale/da-dk/dialog/and.dialog similarity index 100% rename from locale/da-dk/and.dialog rename to locale/da-dk/dialog/and.dialog diff --git a/locale/da-dk/clear sky.dialog b/locale/da-dk/dialog/condition/clear sky.dialog similarity index 100% rename from locale/da-dk/clear sky.dialog rename to locale/da-dk/dialog/condition/clear sky.dialog diff --git a/locale/da-dk/clear.dialog b/locale/da-dk/dialog/condition/clear.dialog similarity index 100% rename from locale/da-dk/clear.dialog rename to locale/da-dk/dialog/condition/clear.dialog diff --git a/locale/da-dk/no precipitation expected.dialog b/locale/da-dk/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/da-dk/no precipitation expected.dialog rename to locale/da-dk/dialog/condition/no precipitation expected.dialog diff --git a/locale/da-dk/precipitation expected.dialog b/locale/da-dk/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/da-dk/precipitation expected.dialog rename to locale/da-dk/dialog/condition/precipitation expected.dialog diff --git a/locale/da-dk/rain.dialog b/locale/da-dk/dialog/condition/rain.dialog similarity index 100% rename from locale/da-dk/rain.dialog rename to locale/da-dk/dialog/condition/rain.dialog diff --git a/locale/da-dk/snow.dialog b/locale/da-dk/dialog/condition/snow.dialog similarity index 100% rename from locale/da-dk/snow.dialog rename to locale/da-dk/dialog/condition/snow.dialog diff --git a/locale/da-dk/thunderstorm.dialog b/locale/da-dk/dialog/condition/thunderstorm.dialog similarity index 100% rename from locale/da-dk/thunderstorm.dialog rename to locale/da-dk/dialog/condition/thunderstorm.dialog diff --git a/locale/da-dk/current.condition.expected.local.dialog b/locale/da-dk/dialog/current/current-condition-expected-local.dialog similarity index 100% rename from locale/da-dk/current.condition.expected.local.dialog rename to locale/da-dk/dialog/current/current-condition-expected-local.dialog diff --git a/locale/da-dk/current.condition.expected.location.dialog b/locale/da-dk/dialog/current/current-condition-expected-location.dialog similarity index 100% rename from locale/da-dk/current.condition.expected.location.dialog rename to locale/da-dk/dialog/current/current-condition-expected-location.dialog diff --git a/locale/da-dk/current.humidity.location.dialog b/locale/da-dk/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/da-dk/current.humidity.location.dialog rename to locale/da-dk/dialog/current/current-humidity-location.dialog diff --git a/locale/da-dk/current.temperature.high.local.dialog b/locale/da-dk/dialog/current/current-temperature-high-local.dialog similarity index 100% rename from locale/da-dk/current.temperature.high.local.dialog rename to locale/da-dk/dialog/current/current-temperature-high-local.dialog diff --git a/locale/da-dk/current.temperature.high.location.dialog b/locale/da-dk/dialog/current/current-temperature-high-location.dialog similarity index 100% rename from locale/da-dk/current.temperature.high.location.dialog rename to locale/da-dk/dialog/current/current-temperature-high-location.dialog diff --git a/locale/da-dk/current.temperature.high.low.dialog b/locale/da-dk/dialog/current/current-temperature-high-low.dialog similarity index 100% rename from locale/da-dk/current.temperature.high.low.dialog rename to locale/da-dk/dialog/current/current-temperature-high-low.dialog diff --git a/locale/da-dk/current.temperature.local.dialog b/locale/da-dk/dialog/current/current-temperature-local.dialog similarity index 100% rename from locale/da-dk/current.temperature.local.dialog rename to locale/da-dk/dialog/current/current-temperature-local.dialog diff --git a/locale/da-dk/current.temperature.location.dialog b/locale/da-dk/dialog/current/current-temperature-location.dialog similarity index 100% rename from locale/da-dk/current.temperature.location.dialog rename to locale/da-dk/dialog/current/current-temperature-location.dialog diff --git a/locale/da-dk/current.temperature.low.local.dialog b/locale/da-dk/dialog/current/current-temperature-low-local.dialog similarity index 100% rename from locale/da-dk/current.temperature.low.local.dialog rename to locale/da-dk/dialog/current/current-temperature-low-local.dialog diff --git a/locale/da-dk/current.temperature.low.location.dialog b/locale/da-dk/dialog/current/current-temperature-low-location.dialog similarity index 100% rename from locale/da-dk/current.temperature.low.location.dialog rename to locale/da-dk/dialog/current/current-temperature-low-location.dialog diff --git a/locale/da-dk/current.weather.local.dialog b/locale/da-dk/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/da-dk/current.weather.local.dialog rename to locale/da-dk/dialog/current/current-weather-local.dialog diff --git a/locale/da-dk/current.weather.location.dialog b/locale/da-dk/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/da-dk/current.weather.location.dialog rename to locale/da-dk/dialog/current/current-weather-location.dialog diff --git a/locale/da-dk/current.wind.light.local.dialog b/locale/da-dk/dialog/current/current-wind-light-local.dialog similarity index 100% rename from locale/da-dk/current.wind.light.local.dialog rename to locale/da-dk/dialog/current/current-wind-light-local.dialog diff --git a/locale/da-dk/current.wind.light.location.dialog b/locale/da-dk/dialog/current/current-wind-light-location.dialog similarity index 100% rename from locale/da-dk/current.wind.light.location.dialog rename to locale/da-dk/dialog/current/current-wind-light-location.dialog diff --git a/locale/da-dk/current.wind.moderate.local.dialog b/locale/da-dk/dialog/current/current-wind-moderate-local.dialog similarity index 100% rename from locale/da-dk/current.wind.moderate.local.dialog rename to locale/da-dk/dialog/current/current-wind-moderate-local.dialog diff --git a/locale/da-dk/current.wind.moderate.location.dialog b/locale/da-dk/dialog/current/current-wind-moderate-location.dialog similarity index 100% rename from locale/da-dk/current.wind.moderate.location.dialog rename to locale/da-dk/dialog/current/current-wind-moderate-location.dialog diff --git a/locale/da-dk/current.wind.strong.local.dialog b/locale/da-dk/dialog/current/current-wind-strong-local.dialog similarity index 100% rename from locale/da-dk/current.wind.strong.local.dialog rename to locale/da-dk/dialog/current/current-wind-strong-local.dialog diff --git a/locale/da-dk/current.wind.strong.location.dialog b/locale/da-dk/dialog/current/current-wind-strong-location.dialog similarity index 100% rename from locale/da-dk/current.wind.strong.location.dialog rename to locale/da-dk/dialog/current/current-wind-strong-location.dialog diff --git a/locale/da-dk/daily.condition.expected.local.dialog b/locale/da-dk/dialog/daily/daily-condition-expected-local.dialog similarity index 100% rename from locale/da-dk/daily.condition.expected.local.dialog rename to locale/da-dk/dialog/daily/daily-condition-expected-local.dialog diff --git a/locale/da-dk/daily.condition.expected.location.dialog b/locale/da-dk/dialog/daily/daily-condition-expected-location.dialog similarity index 100% rename from locale/da-dk/daily.condition.expected.location.dialog rename to locale/da-dk/dialog/daily/daily-condition-expected-location.dialog diff --git a/locale/da-dk/daily.temperature.high.local.dialog b/locale/da-dk/dialog/daily/daily-temperature-high-local.dialog similarity index 100% rename from locale/da-dk/daily.temperature.high.local.dialog rename to locale/da-dk/dialog/daily/daily-temperature-high-local.dialog diff --git a/locale/da-dk/daily.temperature.high.location.dialog b/locale/da-dk/dialog/daily/daily-temperature-high-location.dialog similarity index 100% rename from locale/da-dk/daily.temperature.high.location.dialog rename to locale/da-dk/dialog/daily/daily-temperature-high-location.dialog diff --git a/locale/da-dk/daily.temperature.local.dialog b/locale/da-dk/dialog/daily/daily-temperature-local.dialog similarity index 100% rename from locale/da-dk/daily.temperature.local.dialog rename to locale/da-dk/dialog/daily/daily-temperature-local.dialog diff --git a/locale/da-dk/daily.temperature.location.dialog b/locale/da-dk/dialog/daily/daily-temperature-location.dialog similarity index 100% rename from locale/da-dk/daily.temperature.location.dialog rename to locale/da-dk/dialog/daily/daily-temperature-location.dialog diff --git a/locale/da-dk/daily.temperature.low.local.dialog b/locale/da-dk/dialog/daily/daily-temperature-low-local.dialog similarity index 100% rename from locale/da-dk/daily.temperature.low.local.dialog rename to locale/da-dk/dialog/daily/daily-temperature-low-local.dialog diff --git a/locale/da-dk/daily.temperature.low.location.dialog b/locale/da-dk/dialog/daily/daily-temperature-low-location.dialog similarity index 100% rename from locale/da-dk/daily.temperature.low.location.dialog rename to locale/da-dk/dialog/daily/daily-temperature-low-location.dialog diff --git a/locale/da-dk/daily.weather.local.dialog b/locale/da-dk/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/da-dk/daily.weather.local.dialog rename to locale/da-dk/dialog/daily/daily-weather-local.dialog diff --git a/locale/da-dk/daily.weather.location.dialog b/locale/da-dk/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/da-dk/daily.weather.location.dialog rename to locale/da-dk/dialog/daily/daily-weather-location.dialog diff --git a/locale/da-dk/daily.wind.light.local.dialog b/locale/da-dk/dialog/daily/daily-wind-light-local.dialog similarity index 100% rename from locale/da-dk/daily.wind.light.local.dialog rename to locale/da-dk/dialog/daily/daily-wind-light-local.dialog diff --git a/locale/da-dk/daily.wind.light.location.dialog b/locale/da-dk/dialog/daily/daily-wind-light-location.dialog similarity index 100% rename from locale/da-dk/daily.wind.light.location.dialog rename to locale/da-dk/dialog/daily/daily-wind-light-location.dialog diff --git a/locale/da-dk/daily.wind.moderate.local.dialog b/locale/da-dk/dialog/daily/daily-wind-moderate-local.dialog similarity index 100% rename from locale/da-dk/daily.wind.moderate.local.dialog rename to locale/da-dk/dialog/daily/daily-wind-moderate-local.dialog diff --git a/locale/da-dk/daily.wind.moderate.location.dialog b/locale/da-dk/dialog/daily/daily-wind-moderate-location.dialog similarity index 100% rename from locale/da-dk/daily.wind.moderate.location.dialog rename to locale/da-dk/dialog/daily/daily-wind-moderate-location.dialog diff --git a/locale/da-dk/daily.wind.strong.local.dialog b/locale/da-dk/dialog/daily/daily-wind-strong-local.dialog similarity index 100% rename from locale/da-dk/daily.wind.strong.local.dialog rename to locale/da-dk/dialog/daily/daily-wind-strong-local.dialog diff --git a/locale/da-dk/daily.wind.strong.location.dialog b/locale/da-dk/dialog/daily/daily-wind-strong-location.dialog similarity index 100% rename from locale/da-dk/daily.wind.strong.location.dialog rename to locale/da-dk/dialog/daily/daily-wind-strong-location.dialog diff --git a/locale/da-dk/east.dialog b/locale/da-dk/dialog/direction/east.dialog similarity index 100% rename from locale/da-dk/east.dialog rename to locale/da-dk/dialog/direction/east.dialog diff --git a/locale/da-dk/north.dialog b/locale/da-dk/dialog/direction/north.dialog similarity index 100% rename from locale/da-dk/north.dialog rename to locale/da-dk/dialog/direction/north.dialog diff --git a/locale/da-dk/northeast.dialog b/locale/da-dk/dialog/direction/northeast.dialog similarity index 100% rename from locale/da-dk/northeast.dialog rename to locale/da-dk/dialog/direction/northeast.dialog diff --git a/locale/da-dk/northwest.dialog b/locale/da-dk/dialog/direction/northwest.dialog similarity index 100% rename from locale/da-dk/northwest.dialog rename to locale/da-dk/dialog/direction/northwest.dialog diff --git a/locale/da-dk/south.dialog b/locale/da-dk/dialog/direction/south.dialog similarity index 100% rename from locale/da-dk/south.dialog rename to locale/da-dk/dialog/direction/south.dialog diff --git a/locale/da-dk/southeast.dialog b/locale/da-dk/dialog/direction/southeast.dialog similarity index 100% rename from locale/da-dk/southeast.dialog rename to locale/da-dk/dialog/direction/southeast.dialog diff --git a/locale/da-dk/southwest.dialog b/locale/da-dk/dialog/direction/southwest.dialog similarity index 100% rename from locale/da-dk/southwest.dialog rename to locale/da-dk/dialog/direction/southwest.dialog diff --git a/locale/da-dk/west.dialog b/locale/da-dk/dialog/direction/west.dialog similarity index 100% rename from locale/da-dk/west.dialog rename to locale/da-dk/dialog/direction/west.dialog diff --git a/locale/da-dk/cant.get.forecast.dialog b/locale/da-dk/dialog/error/cant-get-forecast.dialog similarity index 100% rename from locale/da-dk/cant.get.forecast.dialog rename to locale/da-dk/dialog/error/cant-get-forecast.dialog diff --git a/locale/da-dk/location.not.found.dialog b/locale/da-dk/dialog/error/location-not-found.dialog similarity index 100% rename from locale/da-dk/location.not.found.dialog rename to locale/da-dk/dialog/error/location-not-found.dialog diff --git a/locale/da-dk/no.forecast.dialog b/locale/da-dk/dialog/error/no-forecast.dialog similarity index 100% rename from locale/da-dk/no.forecast.dialog rename to locale/da-dk/dialog/error/no-forecast.dialog diff --git a/locale/da-dk/hourly.condition.alternative.local.dialog b/locale/da-dk/dialog/hourly/hourly-condition-alternative-local.dialog similarity index 100% rename from locale/da-dk/hourly.condition.alternative.local.dialog rename to locale/da-dk/dialog/hourly/hourly-condition-alternative-local.dialog diff --git a/locale/da-dk/hourly.condition.alternative.location.dialog b/locale/da-dk/dialog/hourly/hourly-condition-alternative-location.dialog similarity index 100% rename from locale/da-dk/hourly.condition.alternative.location.dialog rename to locale/da-dk/dialog/hourly/hourly-condition-alternative-location.dialog diff --git a/locale/da-dk/hourly.condition.expected.local.dialog b/locale/da-dk/dialog/hourly/hourly-condition-expected-local.dialog similarity index 100% rename from locale/da-dk/hourly.condition.expected.local.dialog rename to locale/da-dk/dialog/hourly/hourly-condition-expected-local.dialog diff --git a/locale/da-dk/hourly.condition.expected.location.dialog b/locale/da-dk/dialog/hourly/hourly-condition-expected-location.dialog similarity index 100% rename from locale/da-dk/hourly.condition.expected.location.dialog rename to locale/da-dk/dialog/hourly/hourly-condition-expected-location.dialog diff --git a/locale/da-dk/hourly.condition.not.expected.local.dialog b/locale/da-dk/dialog/hourly/hourly-condition-not-expected-local.dialog similarity index 100% rename from locale/da-dk/hourly.condition.not.expected.local.dialog rename to locale/da-dk/dialog/hourly/hourly-condition-not-expected-local.dialog diff --git a/locale/da-dk/hourly.condition.not.expected.location.dialog b/locale/da-dk/dialog/hourly/hourly-condition-not-expected-location.dialog similarity index 100% rename from locale/da-dk/hourly.condition.not.expected.location.dialog rename to locale/da-dk/dialog/hourly/hourly-condition-not-expected-location.dialog diff --git a/locale/da-dk/hourly.temperature.local.dialog b/locale/da-dk/dialog/hourly/hourly-temperature-local.dialog similarity index 100% rename from locale/da-dk/hourly.temperature.local.dialog rename to locale/da-dk/dialog/hourly/hourly-temperature-local.dialog diff --git a/locale/da-dk/hourly.weather.local.dialog b/locale/da-dk/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/da-dk/hourly.weather.local.dialog rename to locale/da-dk/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/da-dk/hourly.weather.location.dialog b/locale/da-dk/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/da-dk/hourly.weather.location.dialog rename to locale/da-dk/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/da-dk/percentage.number.dialog b/locale/da-dk/dialog/percentage-number.dialog similarity index 100% rename from locale/da-dk/percentage.number.dialog rename to locale/da-dk/dialog/percentage-number.dialog diff --git a/locale/da-dk/celsius.dialog b/locale/da-dk/dialog/unit/celsius.dialog similarity index 100% rename from locale/da-dk/celsius.dialog rename to locale/da-dk/dialog/unit/celsius.dialog diff --git a/locale/da-dk/fahrenheit.dialog b/locale/da-dk/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/da-dk/fahrenheit.dialog rename to locale/da-dk/dialog/unit/fahrenheit.dialog diff --git a/locale/da-dk/meters per second.dialog b/locale/da-dk/dialog/unit/meters per second.dialog similarity index 100% rename from locale/da-dk/meters per second.dialog rename to locale/da-dk/dialog/unit/meters per second.dialog diff --git a/locale/da-dk/miles per hour.dialog b/locale/da-dk/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/da-dk/miles per hour.dialog rename to locale/da-dk/dialog/unit/miles per hour.dialog diff --git a/locale/da-dk/weekly.temperature.dialog b/locale/da-dk/dialog/weekly/weekly-temperature.dialog similarity index 100% rename from locale/da-dk/weekly.temperature.dialog rename to locale/da-dk/dialog/weekly/weekly-temperature.dialog diff --git a/locale/da-dk/Forecast.voc b/locale/da-dk/forecast.voc similarity index 100% rename from locale/da-dk/Forecast.voc rename to locale/da-dk/forecast.voc diff --git a/locale/da-dk/Location.voc b/locale/da-dk/location.voc similarity index 100% rename from locale/da-dk/Location.voc rename to locale/da-dk/location.voc diff --git a/locale/da-dk/location.rx b/locale/da-dk/regex/location.rx similarity index 100% rename from locale/da-dk/location.rx rename to locale/da-dk/regex/location.rx diff --git a/locale/da-dk/Sunrise.voc b/locale/da-dk/sunrise.voc similarity index 100% rename from locale/da-dk/Sunrise.voc rename to locale/da-dk/sunrise.voc diff --git a/locale/da-dk/Sunset.voc b/locale/da-dk/sunset.voc similarity index 100% rename from locale/da-dk/Sunset.voc rename to locale/da-dk/sunset.voc diff --git a/locale/da-dk/this.week.dialog b/locale/da-dk/this.week.dialog deleted file mode 100644 index e69de29b..00000000 diff --git a/locale/da-dk/Clear.voc b/locale/da-dk/vocabulary/condition/clear.voc similarity index 100% rename from locale/da-dk/Clear.voc rename to locale/da-dk/vocabulary/condition/clear.voc diff --git a/locale/da-dk/Clouds.voc b/locale/da-dk/vocabulary/condition/clouds.voc similarity index 100% rename from locale/da-dk/Clouds.voc rename to locale/da-dk/vocabulary/condition/clouds.voc diff --git a/locale/da-dk/do.i.need.an.umbrella.intent b/locale/da-dk/vocabulary/condition/do-i-need-an-umbrella-intent similarity index 100% rename from locale/da-dk/do.i.need.an.umbrella.intent rename to locale/da-dk/vocabulary/condition/do-i-need-an-umbrella-intent diff --git a/locale/da-dk/Fog.voc b/locale/da-dk/vocabulary/condition/fog.voc similarity index 100% rename from locale/da-dk/Fog.voc rename to locale/da-dk/vocabulary/condition/fog.voc diff --git a/locale/da-dk/Humidity.voc b/locale/da-dk/vocabulary/condition/humidity.voc similarity index 100% rename from locale/da-dk/Humidity.voc rename to locale/da-dk/vocabulary/condition/humidity.voc diff --git a/locale/da-dk/Precipitation.voc b/locale/da-dk/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/da-dk/Precipitation.voc rename to locale/da-dk/vocabulary/condition/precipitation.voc diff --git a/locale/da-dk/Rain.voc b/locale/da-dk/vocabulary/condition/rain.voc similarity index 100% rename from locale/da-dk/Rain.voc rename to locale/da-dk/vocabulary/condition/rain.voc diff --git a/locale/da-dk/Snow.voc b/locale/da-dk/vocabulary/condition/snow.voc similarity index 100% rename from locale/da-dk/Snow.voc rename to locale/da-dk/vocabulary/condition/snow.voc diff --git a/locale/da-dk/Thunderstorm.voc b/locale/da-dk/vocabulary/condition/thunderstorm.voc similarity index 100% rename from locale/da-dk/Thunderstorm.voc rename to locale/da-dk/vocabulary/condition/thunderstorm.voc diff --git a/locale/da-dk/Windy.voc b/locale/da-dk/vocabulary/condition/windy.voc similarity index 100% rename from locale/da-dk/Windy.voc rename to locale/da-dk/vocabulary/condition/windy.voc diff --git a/locale/da-dk/Couple.voc b/locale/da-dk/vocabulary/date-time/couple.voc similarity index 100% rename from locale/da-dk/Couple.voc rename to locale/da-dk/vocabulary/date-time/couple.voc diff --git a/locale/da-dk/Later.voc b/locale/da-dk/vocabulary/date-time/later.voc similarity index 100% rename from locale/da-dk/Later.voc rename to locale/da-dk/vocabulary/date-time/later.voc diff --git a/locale/da-dk/Next.voc b/locale/da-dk/vocabulary/date-time/next.voc similarity index 100% rename from locale/da-dk/Next.voc rename to locale/da-dk/vocabulary/date-time/next.voc diff --git a/locale/da-dk/Now.voc b/locale/da-dk/vocabulary/date-time/now.voc similarity index 100% rename from locale/da-dk/Now.voc rename to locale/da-dk/vocabulary/date-time/now.voc diff --git a/locale/da-dk/RelativeDay.voc b/locale/da-dk/vocabulary/date-time/relative-day.voc similarity index 100% rename from locale/da-dk/RelativeDay.voc rename to locale/da-dk/vocabulary/date-time/relative-day.voc diff --git a/locale/da-dk/RelativeTime.voc b/locale/da-dk/vocabulary/date-time/relative-time.voc similarity index 100% rename from locale/da-dk/RelativeTime.voc rename to locale/da-dk/vocabulary/date-time/relative-time.voc diff --git a/locale/da-dk/Today.voc b/locale/da-dk/vocabulary/date-time/today.voc similarity index 100% rename from locale/da-dk/Today.voc rename to locale/da-dk/vocabulary/date-time/today.voc diff --git a/locale/da-dk/Week.voc b/locale/da-dk/vocabulary/date-time/week.voc similarity index 100% rename from locale/da-dk/Week.voc rename to locale/da-dk/vocabulary/date-time/week.voc diff --git a/locale/da-dk/Weekend.voc b/locale/da-dk/vocabulary/date-time/weekend.voc similarity index 100% rename from locale/da-dk/Weekend.voc rename to locale/da-dk/vocabulary/date-time/weekend.voc diff --git a/locale/da-dk/ConfirmQueryCurrent.voc b/locale/da-dk/vocabulary/query/confirm-query-current.voc similarity index 100% rename from locale/da-dk/ConfirmQueryCurrent.voc rename to locale/da-dk/vocabulary/query/confirm-query-current.voc diff --git a/locale/da-dk/ConfirmQueryFuture.voc b/locale/da-dk/vocabulary/query/confirm-query-future.voc similarity index 100% rename from locale/da-dk/ConfirmQueryFuture.voc rename to locale/da-dk/vocabulary/query/confirm-query-future.voc diff --git a/locale/da-dk/ConfirmQuery.voc b/locale/da-dk/vocabulary/query/confirm-query.voc similarity index 100% rename from locale/da-dk/ConfirmQuery.voc rename to locale/da-dk/vocabulary/query/confirm-query.voc diff --git a/locale/da-dk/How.voc b/locale/da-dk/vocabulary/query/how.voc similarity index 100% rename from locale/da-dk/How.voc rename to locale/da-dk/vocabulary/query/how.voc diff --git a/locale/da-dk/Query.voc b/locale/da-dk/vocabulary/query/query.voc similarity index 100% rename from locale/da-dk/Query.voc rename to locale/da-dk/vocabulary/query/query.voc diff --git a/locale/da-dk/When.voc b/locale/da-dk/vocabulary/query/when.voc similarity index 100% rename from locale/da-dk/When.voc rename to locale/da-dk/vocabulary/query/when.voc diff --git a/locale/da-dk/Cold.voc b/locale/da-dk/vocabulary/temperature/cold.voc similarity index 100% rename from locale/da-dk/Cold.voc rename to locale/da-dk/vocabulary/temperature/cold.voc diff --git a/locale/da-dk/High.voc b/locale/da-dk/vocabulary/temperature/high.voc similarity index 100% rename from locale/da-dk/High.voc rename to locale/da-dk/vocabulary/temperature/high.voc diff --git a/locale/da-dk/Hot.voc b/locale/da-dk/vocabulary/temperature/hot.voc similarity index 100% rename from locale/da-dk/Hot.voc rename to locale/da-dk/vocabulary/temperature/hot.voc diff --git a/locale/da-dk/Low.voc b/locale/da-dk/vocabulary/temperature/low.voc similarity index 100% rename from locale/da-dk/Low.voc rename to locale/da-dk/vocabulary/temperature/low.voc diff --git a/locale/da-dk/Temperature.voc b/locale/da-dk/vocabulary/temperature/temperature.voc similarity index 100% rename from locale/da-dk/Temperature.voc rename to locale/da-dk/vocabulary/temperature/temperature.voc diff --git a/locale/da-dk/Fahrenheit.voc b/locale/da-dk/vocabulary/unit/fahrenheit.voc similarity index 100% rename from locale/da-dk/Fahrenheit.voc rename to locale/da-dk/vocabulary/unit/fahrenheit.voc diff --git a/locale/da-dk/Unit.entity b/locale/da-dk/vocabulary/unit/unit.entity similarity index 100% rename from locale/da-dk/Unit.entity rename to locale/da-dk/vocabulary/unit/unit.entity diff --git a/locale/da-dk/Unit.voc b/locale/da-dk/vocabulary/unit/unit.voc similarity index 100% rename from locale/da-dk/Unit.voc rename to locale/da-dk/vocabulary/unit/unit.voc diff --git a/locale/da-dk/Weather.voc b/locale/da-dk/weather.voc similarity index 100% rename from locale/da-dk/Weather.voc rename to locale/da-dk/weather.voc diff --git a/locale/de-de/ThreeDay.voc b/locale/de-de/ThreeDay.voc deleted file mode 100644 index 9ec24e83..00000000 --- a/locale/de-de/ThreeDay.voc +++ /dev/null @@ -1,3 +0,0 @@ -3 Tag(e|) -drei Tag (e|) -ein paar Tage diff --git a/locale/de-de/WeatherType.voc b/locale/de-de/WeatherType.voc deleted file mode 100644 index 5c523653..00000000 --- a/locale/de-de/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -regnen|regnet -schneien|schneit -Schneeregen -hageln|hagelt -sonnig|Sonne -heiß|warm -kalt|kühl diff --git a/locale/de-de/and.dialog b/locale/de-de/dialog/and.dialog similarity index 100% rename from locale/de-de/and.dialog rename to locale/de-de/dialog/and.dialog diff --git a/locale/de-de/clear sky.dialog b/locale/de-de/dialog/condition/clear sky.dialog similarity index 100% rename from locale/de-de/clear sky.dialog rename to locale/de-de/dialog/condition/clear sky.dialog diff --git a/locale/de-de/clear.dialog b/locale/de-de/dialog/condition/clear.dialog similarity index 100% rename from locale/de-de/clear.dialog rename to locale/de-de/dialog/condition/clear.dialog diff --git a/locale/de-de/no precipitation expected.dialog b/locale/de-de/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/de-de/no precipitation expected.dialog rename to locale/de-de/dialog/condition/no precipitation expected.dialog diff --git a/locale/de-de/precipitation expected.dialog b/locale/de-de/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/de-de/precipitation expected.dialog rename to locale/de-de/dialog/condition/precipitation expected.dialog diff --git a/locale/de-de/rain.dialog b/locale/de-de/dialog/condition/rain.dialog similarity index 100% rename from locale/de-de/rain.dialog rename to locale/de-de/dialog/condition/rain.dialog diff --git a/locale/de-de/snow.dialog b/locale/de-de/dialog/condition/snow.dialog similarity index 100% rename from locale/de-de/snow.dialog rename to locale/de-de/dialog/condition/snow.dialog diff --git a/locale/de-de/thunderstorm.dialog b/locale/de-de/dialog/condition/thunderstorm.dialog similarity index 100% rename from locale/de-de/thunderstorm.dialog rename to locale/de-de/dialog/condition/thunderstorm.dialog diff --git a/locale/de-de/current.condition.expected.local.dialog b/locale/de-de/dialog/current/current-condition-expected-local.dialog similarity index 100% rename from locale/de-de/current.condition.expected.local.dialog rename to locale/de-de/dialog/current/current-condition-expected-local.dialog diff --git a/locale/de-de/current.condition.expected.location.dialog b/locale/de-de/dialog/current/current-condition-expected-location.dialog similarity index 100% rename from locale/de-de/current.condition.expected.location.dialog rename to locale/de-de/dialog/current/current-condition-expected-location.dialog diff --git a/locale/de-de/current.humidity.location.dialog b/locale/de-de/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/de-de/current.humidity.location.dialog rename to locale/de-de/dialog/current/current-humidity-location.dialog diff --git a/locale/de-de/current.temperature.high.local.dialog b/locale/de-de/dialog/current/current-temperature-high-local.dialog similarity index 100% rename from locale/de-de/current.temperature.high.local.dialog rename to locale/de-de/dialog/current/current-temperature-high-local.dialog diff --git a/locale/de-de/current.temperature.high.location.dialog b/locale/de-de/dialog/current/current-temperature-high-location.dialog similarity index 100% rename from locale/de-de/current.temperature.high.location.dialog rename to locale/de-de/dialog/current/current-temperature-high-location.dialog diff --git a/locale/de-de/current.temperature.high.low.dialog b/locale/de-de/dialog/current/current-temperature-high-low.dialog similarity index 100% rename from locale/de-de/current.temperature.high.low.dialog rename to locale/de-de/dialog/current/current-temperature-high-low.dialog diff --git a/locale/de-de/current.temperature.local.dialog b/locale/de-de/dialog/current/current-temperature-local.dialog similarity index 100% rename from locale/de-de/current.temperature.local.dialog rename to locale/de-de/dialog/current/current-temperature-local.dialog diff --git a/locale/de-de/current.temperature.location.dialog b/locale/de-de/dialog/current/current-temperature-location.dialog similarity index 100% rename from locale/de-de/current.temperature.location.dialog rename to locale/de-de/dialog/current/current-temperature-location.dialog diff --git a/locale/de-de/current.temperature.low.local.dialog b/locale/de-de/dialog/current/current-temperature-low-local.dialog similarity index 100% rename from locale/de-de/current.temperature.low.local.dialog rename to locale/de-de/dialog/current/current-temperature-low-local.dialog diff --git a/locale/de-de/current.temperature.low.location.dialog b/locale/de-de/dialog/current/current-temperature-low-location.dialog similarity index 100% rename from locale/de-de/current.temperature.low.location.dialog rename to locale/de-de/dialog/current/current-temperature-low-location.dialog diff --git a/locale/de-de/current.weather.local.dialog b/locale/de-de/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/de-de/current.weather.local.dialog rename to locale/de-de/dialog/current/current-weather-local.dialog diff --git a/locale/de-de/current.weather.location.dialog b/locale/de-de/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/de-de/current.weather.location.dialog rename to locale/de-de/dialog/current/current-weather-location.dialog diff --git a/locale/de-de/current.wind.light.local.dialog b/locale/de-de/dialog/current/current-wind-light-local.dialog similarity index 100% rename from locale/de-de/current.wind.light.local.dialog rename to locale/de-de/dialog/current/current-wind-light-local.dialog diff --git a/locale/de-de/current.wind.light.location.dialog b/locale/de-de/dialog/current/current-wind-light-location.dialog similarity index 100% rename from locale/de-de/current.wind.light.location.dialog rename to locale/de-de/dialog/current/current-wind-light-location.dialog diff --git a/locale/de-de/current.wind.moderate.local.dialog b/locale/de-de/dialog/current/current-wind-moderate-local.dialog similarity index 100% rename from locale/de-de/current.wind.moderate.local.dialog rename to locale/de-de/dialog/current/current-wind-moderate-local.dialog diff --git a/locale/de-de/current.wind.moderate.location.dialog b/locale/de-de/dialog/current/current-wind-moderate-location.dialog similarity index 100% rename from locale/de-de/current.wind.moderate.location.dialog rename to locale/de-de/dialog/current/current-wind-moderate-location.dialog diff --git a/locale/de-de/current.wind.strong.local.dialog b/locale/de-de/dialog/current/current-wind-strong-local.dialog similarity index 100% rename from locale/de-de/current.wind.strong.local.dialog rename to locale/de-de/dialog/current/current-wind-strong-local.dialog diff --git a/locale/de-de/current.wind.strong.location.dialog b/locale/de-de/dialog/current/current-wind-strong-location.dialog similarity index 100% rename from locale/de-de/current.wind.strong.location.dialog rename to locale/de-de/dialog/current/current-wind-strong-location.dialog diff --git a/locale/de-de/daily.condition.expected.local.dialog b/locale/de-de/dialog/daily/daily-condition-expected-local.dialog similarity index 100% rename from locale/de-de/daily.condition.expected.local.dialog rename to locale/de-de/dialog/daily/daily-condition-expected-local.dialog diff --git a/locale/de-de/daily.condition.expected.location.dialog b/locale/de-de/dialog/daily/daily-condition-expected-location.dialog similarity index 100% rename from locale/de-de/daily.condition.expected.location.dialog rename to locale/de-de/dialog/daily/daily-condition-expected-location.dialog diff --git a/locale/de-de/daily.temperature.high.local.dialog b/locale/de-de/dialog/daily/daily-temperature-high-local.dialog similarity index 100% rename from locale/de-de/daily.temperature.high.local.dialog rename to locale/de-de/dialog/daily/daily-temperature-high-local.dialog diff --git a/locale/de-de/daily.temperature.high.location.dialog b/locale/de-de/dialog/daily/daily-temperature-high-location.dialog similarity index 100% rename from locale/de-de/daily.temperature.high.location.dialog rename to locale/de-de/dialog/daily/daily-temperature-high-location.dialog diff --git a/locale/de-de/daily.temperature.local.dialog b/locale/de-de/dialog/daily/daily-temperature-local.dialog similarity index 100% rename from locale/de-de/daily.temperature.local.dialog rename to locale/de-de/dialog/daily/daily-temperature-local.dialog diff --git a/locale/de-de/daily.temperature.location.dialog b/locale/de-de/dialog/daily/daily-temperature-location.dialog similarity index 100% rename from locale/de-de/daily.temperature.location.dialog rename to locale/de-de/dialog/daily/daily-temperature-location.dialog diff --git a/locale/de-de/daily.temperature.low.local.dialog b/locale/de-de/dialog/daily/daily-temperature-low-local.dialog similarity index 100% rename from locale/de-de/daily.temperature.low.local.dialog rename to locale/de-de/dialog/daily/daily-temperature-low-local.dialog diff --git a/locale/de-de/daily.temperature.low.location.dialog b/locale/de-de/dialog/daily/daily-temperature-low-location.dialog similarity index 100% rename from locale/de-de/daily.temperature.low.location.dialog rename to locale/de-de/dialog/daily/daily-temperature-low-location.dialog diff --git a/locale/de-de/daily.weather.local.dialog b/locale/de-de/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/de-de/daily.weather.local.dialog rename to locale/de-de/dialog/daily/daily-weather-local.dialog diff --git a/locale/de-de/daily.weather.location.dialog b/locale/de-de/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/de-de/daily.weather.location.dialog rename to locale/de-de/dialog/daily/daily-weather-location.dialog diff --git a/locale/de-de/daily.wind.light.local.dialog b/locale/de-de/dialog/daily/daily-wind-light-local.dialog similarity index 100% rename from locale/de-de/daily.wind.light.local.dialog rename to locale/de-de/dialog/daily/daily-wind-light-local.dialog diff --git a/locale/de-de/daily.wind.light.location.dialog b/locale/de-de/dialog/daily/daily-wind-light-location.dialog similarity index 100% rename from locale/de-de/daily.wind.light.location.dialog rename to locale/de-de/dialog/daily/daily-wind-light-location.dialog diff --git a/locale/de-de/daily.wind.moderate.local.dialog b/locale/de-de/dialog/daily/daily-wind-moderate-local.dialog similarity index 100% rename from locale/de-de/daily.wind.moderate.local.dialog rename to locale/de-de/dialog/daily/daily-wind-moderate-local.dialog diff --git a/locale/de-de/daily.wind.moderate.location.dialog b/locale/de-de/dialog/daily/daily-wind-moderate-location.dialog similarity index 100% rename from locale/de-de/daily.wind.moderate.location.dialog rename to locale/de-de/dialog/daily/daily-wind-moderate-location.dialog diff --git a/locale/de-de/daily.wind.strong.local.dialog b/locale/de-de/dialog/daily/daily-wind-strong-local.dialog similarity index 100% rename from locale/de-de/daily.wind.strong.local.dialog rename to locale/de-de/dialog/daily/daily-wind-strong-local.dialog diff --git a/locale/de-de/daily.wind.strong.location.dialog b/locale/de-de/dialog/daily/daily-wind-strong-location.dialog similarity index 100% rename from locale/de-de/daily.wind.strong.location.dialog rename to locale/de-de/dialog/daily/daily-wind-strong-location.dialog diff --git a/locale/de-de/east.dialog b/locale/de-de/dialog/direction/east.dialog similarity index 100% rename from locale/de-de/east.dialog rename to locale/de-de/dialog/direction/east.dialog diff --git a/locale/de-de/north.dialog b/locale/de-de/dialog/direction/north.dialog similarity index 100% rename from locale/de-de/north.dialog rename to locale/de-de/dialog/direction/north.dialog diff --git a/locale/de-de/northeast.dialog b/locale/de-de/dialog/direction/northeast.dialog similarity index 100% rename from locale/de-de/northeast.dialog rename to locale/de-de/dialog/direction/northeast.dialog diff --git a/locale/de-de/northwest.dialog b/locale/de-de/dialog/direction/northwest.dialog similarity index 100% rename from locale/de-de/northwest.dialog rename to locale/de-de/dialog/direction/northwest.dialog diff --git a/locale/de-de/south.dialog b/locale/de-de/dialog/direction/south.dialog similarity index 100% rename from locale/de-de/south.dialog rename to locale/de-de/dialog/direction/south.dialog diff --git a/locale/de-de/southeast.dialog b/locale/de-de/dialog/direction/southeast.dialog similarity index 100% rename from locale/de-de/southeast.dialog rename to locale/de-de/dialog/direction/southeast.dialog diff --git a/locale/de-de/southwest.dialog b/locale/de-de/dialog/direction/southwest.dialog similarity index 100% rename from locale/de-de/southwest.dialog rename to locale/de-de/dialog/direction/southwest.dialog diff --git a/locale/de-de/west.dialog b/locale/de-de/dialog/direction/west.dialog similarity index 100% rename from locale/de-de/west.dialog rename to locale/de-de/dialog/direction/west.dialog diff --git a/locale/de-de/cant.get.forecast.dialog b/locale/de-de/dialog/error/cant-get-forecast.dialog similarity index 100% rename from locale/de-de/cant.get.forecast.dialog rename to locale/de-de/dialog/error/cant-get-forecast.dialog diff --git a/locale/de-de/location.not.found.dialog b/locale/de-de/dialog/error/location-not-found.dialog similarity index 100% rename from locale/de-de/location.not.found.dialog rename to locale/de-de/dialog/error/location-not-found.dialog diff --git a/locale/de-de/no.forecast.dialog b/locale/de-de/dialog/error/no-forecast.dialog similarity index 100% rename from locale/de-de/no.forecast.dialog rename to locale/de-de/dialog/error/no-forecast.dialog diff --git a/locale/de-de/hourly.condition.alternative.local.dialog b/locale/de-de/dialog/hourly/hourly-condition-alternative-local.dialog similarity index 100% rename from locale/de-de/hourly.condition.alternative.local.dialog rename to locale/de-de/dialog/hourly/hourly-condition-alternative-local.dialog diff --git a/locale/de-de/hourly.condition.alternative.location.dialog b/locale/de-de/dialog/hourly/hourly-condition-alternative-location.dialog similarity index 100% rename from locale/de-de/hourly.condition.alternative.location.dialog rename to locale/de-de/dialog/hourly/hourly-condition-alternative-location.dialog diff --git a/locale/de-de/hourly.condition.expected.local.dialog b/locale/de-de/dialog/hourly/hourly-condition-expected-local.dialog similarity index 100% rename from locale/de-de/hourly.condition.expected.local.dialog rename to locale/de-de/dialog/hourly/hourly-condition-expected-local.dialog diff --git a/locale/de-de/hourly.condition.expected.location.dialog b/locale/de-de/dialog/hourly/hourly-condition-expected-location.dialog similarity index 100% rename from locale/de-de/hourly.condition.expected.location.dialog rename to locale/de-de/dialog/hourly/hourly-condition-expected-location.dialog diff --git a/locale/de-de/hourly.condition.not.expected.local.dialog b/locale/de-de/dialog/hourly/hourly-condition-not-expected-local.dialog similarity index 100% rename from locale/de-de/hourly.condition.not.expected.local.dialog rename to locale/de-de/dialog/hourly/hourly-condition-not-expected-local.dialog diff --git a/locale/de-de/hourly.condition.not.expected.location.dialog b/locale/de-de/dialog/hourly/hourly-condition-not-expected-location.dialog similarity index 100% rename from locale/de-de/hourly.condition.not.expected.location.dialog rename to locale/de-de/dialog/hourly/hourly-condition-not-expected-location.dialog diff --git a/locale/de-de/hourly.temperature.local.dialog b/locale/de-de/dialog/hourly/hourly-temperature-local.dialog similarity index 100% rename from locale/de-de/hourly.temperature.local.dialog rename to locale/de-de/dialog/hourly/hourly-temperature-local.dialog diff --git a/locale/de-de/hourly.weather.local.dialog b/locale/de-de/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/de-de/hourly.weather.local.dialog rename to locale/de-de/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/de-de/hourly.weather.location.dialog b/locale/de-de/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/de-de/hourly.weather.location.dialog rename to locale/de-de/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/de-de/percentage.number.dialog b/locale/de-de/dialog/percentage-number.dialog similarity index 100% rename from locale/de-de/percentage.number.dialog rename to locale/de-de/dialog/percentage-number.dialog diff --git a/locale/de-de/celsius.dialog b/locale/de-de/dialog/unit/celsius.dialog similarity index 100% rename from locale/de-de/celsius.dialog rename to locale/de-de/dialog/unit/celsius.dialog diff --git a/locale/de-de/fahrenheit.dialog b/locale/de-de/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/de-de/fahrenheit.dialog rename to locale/de-de/dialog/unit/fahrenheit.dialog diff --git a/locale/de-de/meters per second.dialog b/locale/de-de/dialog/unit/meters per second.dialog similarity index 100% rename from locale/de-de/meters per second.dialog rename to locale/de-de/dialog/unit/meters per second.dialog diff --git a/locale/de-de/miles per hour.dialog b/locale/de-de/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/de-de/miles per hour.dialog rename to locale/de-de/dialog/unit/miles per hour.dialog diff --git a/locale/de-de/weekly.temperature.dialog b/locale/de-de/dialog/weekly/weekly-temperature.dialog similarity index 100% rename from locale/de-de/weekly.temperature.dialog rename to locale/de-de/dialog/weekly/weekly-temperature.dialog diff --git a/locale/de-de/do not know.dialog b/locale/de-de/do not know.dialog deleted file mode 100644 index 590ef930..00000000 --- a/locale/de-de/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Ich fürchte, das weiß ich nicht -Diese Information habe ich nicht diff --git a/locale/de-de/Forecast.voc b/locale/de-de/forecast.voc similarity index 100% rename from locale/de-de/Forecast.voc rename to locale/de-de/forecast.voc diff --git a/locale/de-de/Location.voc b/locale/de-de/location.voc similarity index 100% rename from locale/de-de/Location.voc rename to locale/de-de/location.voc diff --git a/locale/de-de/location.rx b/locale/de-de/regex/location.rx similarity index 100% rename from locale/de-de/location.rx rename to locale/de-de/regex/location.rx diff --git a/locale/de-de/sunrise.dialog b/locale/de-de/sunrise.dialog deleted file mode 100644 index 85e35337..00000000 --- a/locale/de-de/sunrise.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Die Sonne geht heute um {time} auf -Sonnenaufgang war heute um {time} diff --git a/locale/de-de/Sunrise.voc b/locale/de-de/sunrise.voc similarity index 100% rename from locale/de-de/Sunrise.voc rename to locale/de-de/sunrise.voc diff --git a/locale/de-de/sunset.dialog b/locale/de-de/sunset.dialog deleted file mode 100644 index 767cbe42..00000000 --- a/locale/de-de/sunset.dialog +++ /dev/null @@ -1,3 +0,0 @@ -die sonne geht heute um {time} unter -Die Sonne wird heute um {time} untergehen -Der Sonnenuntergang ist heute um {time} diff --git a/locale/de-de/Sunset.voc b/locale/de-de/sunset.voc similarity index 100% rename from locale/de-de/Sunset.voc rename to locale/de-de/sunset.voc diff --git a/locale/de-de/Clear.voc b/locale/de-de/vocabulary/condition/clear.voc similarity index 100% rename from locale/de-de/Clear.voc rename to locale/de-de/vocabulary/condition/clear.voc diff --git a/locale/de-de/Clouds.voc b/locale/de-de/vocabulary/condition/clouds.voc similarity index 100% rename from locale/de-de/Clouds.voc rename to locale/de-de/vocabulary/condition/clouds.voc diff --git a/locale/de-de/Fog.voc b/locale/de-de/vocabulary/condition/fog.voc similarity index 100% rename from locale/de-de/Fog.voc rename to locale/de-de/vocabulary/condition/fog.voc diff --git a/locale/de-de/Humidity.voc b/locale/de-de/vocabulary/condition/humidity.voc similarity index 100% rename from locale/de-de/Humidity.voc rename to locale/de-de/vocabulary/condition/humidity.voc diff --git a/locale/de-de/Precipitation.voc b/locale/de-de/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/de-de/Precipitation.voc rename to locale/de-de/vocabulary/condition/precipitation.voc diff --git a/locale/de-de/Rain.voc b/locale/de-de/vocabulary/condition/rain.voc similarity index 100% rename from locale/de-de/Rain.voc rename to locale/de-de/vocabulary/condition/rain.voc diff --git a/locale/de-de/Snow.voc b/locale/de-de/vocabulary/condition/snow.voc similarity index 100% rename from locale/de-de/Snow.voc rename to locale/de-de/vocabulary/condition/snow.voc diff --git a/locale/de-de/Thunderstorm.voc b/locale/de-de/vocabulary/condition/thunderstorm.voc similarity index 100% rename from locale/de-de/Thunderstorm.voc rename to locale/de-de/vocabulary/condition/thunderstorm.voc diff --git a/locale/de-de/Windy.voc b/locale/de-de/vocabulary/condition/windy.voc similarity index 100% rename from locale/de-de/Windy.voc rename to locale/de-de/vocabulary/condition/windy.voc diff --git a/locale/de-de/Couple.voc b/locale/de-de/vocabulary/date-time/couple.voc similarity index 100% rename from locale/de-de/Couple.voc rename to locale/de-de/vocabulary/date-time/couple.voc diff --git a/locale/de-de/Later.voc b/locale/de-de/vocabulary/date-time/later.voc similarity index 100% rename from locale/de-de/Later.voc rename to locale/de-de/vocabulary/date-time/later.voc diff --git a/locale/de-de/Next.voc b/locale/de-de/vocabulary/date-time/next.voc similarity index 100% rename from locale/de-de/Next.voc rename to locale/de-de/vocabulary/date-time/next.voc diff --git a/locale/de-de/Now.voc b/locale/de-de/vocabulary/date-time/now.voc similarity index 100% rename from locale/de-de/Now.voc rename to locale/de-de/vocabulary/date-time/now.voc diff --git a/locale/de-de/RelativeDay.voc b/locale/de-de/vocabulary/date-time/relative-day.voc similarity index 100% rename from locale/de-de/RelativeDay.voc rename to locale/de-de/vocabulary/date-time/relative-day.voc diff --git a/locale/de-de/RelativeTime.voc b/locale/de-de/vocabulary/date-time/relative-time.voc similarity index 100% rename from locale/de-de/RelativeTime.voc rename to locale/de-de/vocabulary/date-time/relative-time.voc diff --git a/locale/de-de/Today.voc b/locale/de-de/vocabulary/date-time/today.voc similarity index 100% rename from locale/de-de/Today.voc rename to locale/de-de/vocabulary/date-time/today.voc diff --git a/locale/de-de/Week.voc b/locale/de-de/vocabulary/date-time/week.voc similarity index 100% rename from locale/de-de/Week.voc rename to locale/de-de/vocabulary/date-time/week.voc diff --git a/locale/de-de/Weekend.voc b/locale/de-de/vocabulary/date-time/weekend.voc similarity index 100% rename from locale/de-de/Weekend.voc rename to locale/de-de/vocabulary/date-time/weekend.voc diff --git a/locale/de-de/ConfirmQueryCurrent.voc b/locale/de-de/vocabulary/query/confirm-query-current.voc similarity index 100% rename from locale/de-de/ConfirmQueryCurrent.voc rename to locale/de-de/vocabulary/query/confirm-query-current.voc diff --git a/locale/de-de/ConfirmQueryFuture.voc b/locale/de-de/vocabulary/query/confirm-query-future.voc similarity index 100% rename from locale/de-de/ConfirmQueryFuture.voc rename to locale/de-de/vocabulary/query/confirm-query-future.voc diff --git a/locale/de-de/ConfirmQuery.voc b/locale/de-de/vocabulary/query/confirm-query.voc similarity index 100% rename from locale/de-de/ConfirmQuery.voc rename to locale/de-de/vocabulary/query/confirm-query.voc diff --git a/locale/de-de/How.voc b/locale/de-de/vocabulary/query/how.voc similarity index 100% rename from locale/de-de/How.voc rename to locale/de-de/vocabulary/query/how.voc diff --git a/locale/de-de/Query.voc b/locale/de-de/vocabulary/query/query.voc similarity index 100% rename from locale/de-de/Query.voc rename to locale/de-de/vocabulary/query/query.voc diff --git a/locale/de-de/When.voc b/locale/de-de/vocabulary/query/when.voc similarity index 100% rename from locale/de-de/When.voc rename to locale/de-de/vocabulary/query/when.voc diff --git a/locale/de-de/Cold.voc b/locale/de-de/vocabulary/temperature/cold.voc similarity index 100% rename from locale/de-de/Cold.voc rename to locale/de-de/vocabulary/temperature/cold.voc diff --git a/locale/de-de/High.voc b/locale/de-de/vocabulary/temperature/high.voc similarity index 100% rename from locale/de-de/High.voc rename to locale/de-de/vocabulary/temperature/high.voc diff --git a/locale/de-de/Hot.voc b/locale/de-de/vocabulary/temperature/hot.voc similarity index 100% rename from locale/de-de/Hot.voc rename to locale/de-de/vocabulary/temperature/hot.voc diff --git a/locale/de-de/Low.voc b/locale/de-de/vocabulary/temperature/low.voc similarity index 100% rename from locale/de-de/Low.voc rename to locale/de-de/vocabulary/temperature/low.voc diff --git a/locale/de-de/Temperature.voc b/locale/de-de/vocabulary/temperature/temperature.voc similarity index 100% rename from locale/de-de/Temperature.voc rename to locale/de-de/vocabulary/temperature/temperature.voc diff --git a/locale/de-de/Fahrenheit.voc b/locale/de-de/vocabulary/unit/fahrenheit.voc similarity index 100% rename from locale/de-de/Fahrenheit.voc rename to locale/de-de/vocabulary/unit/fahrenheit.voc diff --git a/locale/de-de/Unit.entity b/locale/de-de/vocabulary/unit/unit.entity similarity index 100% rename from locale/de-de/Unit.entity rename to locale/de-de/vocabulary/unit/unit.entity diff --git a/locale/de-de/Unit.voc b/locale/de-de/vocabulary/unit/unit.voc similarity index 100% rename from locale/de-de/Unit.voc rename to locale/de-de/vocabulary/unit/unit.voc diff --git a/locale/de-de/Weather.voc b/locale/de-de/weather.voc similarity index 100% rename from locale/de-de/Weather.voc rename to locale/de-de/weather.voc diff --git a/locale/en-us/and.dialog b/locale/en-us/dialog/and.dialog similarity index 100% rename from locale/en-us/and.dialog rename to locale/en-us/dialog/and.dialog diff --git a/locale/en-us/clear sky.dialog b/locale/en-us/dialog/condition/clear-sky.dialog similarity index 100% rename from locale/en-us/clear sky.dialog rename to locale/en-us/dialog/condition/clear-sky.dialog diff --git a/locale/en-us/clear.dialog b/locale/en-us/dialog/condition/clear.dialog similarity index 100% rename from locale/en-us/clear.dialog rename to locale/en-us/dialog/condition/clear.dialog diff --git a/locale/en-us/clouds.dialog b/locale/en-us/dialog/condition/clouds.dialog similarity index 100% rename from locale/en-us/clouds.dialog rename to locale/en-us/dialog/condition/clouds.dialog diff --git a/locale/en-us/humidity.dialog b/locale/en-us/dialog/condition/humidity.dialog similarity index 100% rename from locale/en-us/humidity.dialog rename to locale/en-us/dialog/condition/humidity.dialog diff --git a/locale/en-us/rain.dialog b/locale/en-us/dialog/condition/rain.dialog similarity index 100% rename from locale/en-us/rain.dialog rename to locale/en-us/dialog/condition/rain.dialog diff --git a/locale/en-us/snow.dialog b/locale/en-us/dialog/condition/snow.dialog similarity index 100% rename from locale/en-us/snow.dialog rename to locale/en-us/dialog/condition/snow.dialog diff --git a/locale/en-us/thunderstorm.dialog b/locale/en-us/dialog/condition/thunderstorm.dialog similarity index 100% rename from locale/en-us/thunderstorm.dialog rename to locale/en-us/dialog/condition/thunderstorm.dialog diff --git a/locale/en-us/current.condition.expected.local.dialog b/locale/en-us/dialog/current/current-condition-expected-local.dialog similarity index 100% rename from locale/en-us/current.condition.expected.local.dialog rename to locale/en-us/dialog/current/current-condition-expected-local.dialog diff --git a/locale/en-us/current.condition.expected.location.dialog b/locale/en-us/dialog/current/current-condition-expected-location.dialog similarity index 100% rename from locale/en-us/current.condition.expected.location.dialog rename to locale/en-us/dialog/current/current-condition-expected-location.dialog diff --git a/locale/en-us/current.condition.not.expected.local.dialog b/locale/en-us/dialog/current/current-condition-not-expected-local.dialog similarity index 100% rename from locale/en-us/current.condition.not.expected.local.dialog rename to locale/en-us/dialog/current/current-condition-not-expected-local.dialog diff --git a/locale/en-us/current.condition.not.expected.location.dialog b/locale/en-us/dialog/current/current-condition-not-expected-location.dialog similarity index 100% rename from locale/en-us/current.condition.not.expected.location.dialog rename to locale/en-us/dialog/current/current-condition-not-expected-location.dialog diff --git a/locale/en-us/current.humidity.local.dialog b/locale/en-us/dialog/current/current-humidity-local.dialog similarity index 100% rename from locale/en-us/current.humidity.local.dialog rename to locale/en-us/dialog/current/current-humidity-local.dialog diff --git a/locale/en-us/current.humidity.location.dialog b/locale/en-us/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/en-us/current.humidity.location.dialog rename to locale/en-us/dialog/current/current-humidity-location.dialog diff --git a/locale/en-us/current.sunrise.future.local.dialog b/locale/en-us/dialog/current/current-sunrise-future-local.dialog similarity index 100% rename from locale/en-us/current.sunrise.future.local.dialog rename to locale/en-us/dialog/current/current-sunrise-future-local.dialog diff --git a/locale/en-us/current.sunrise.future.location.dialog b/locale/en-us/dialog/current/current-sunrise-future-location.dialog similarity index 100% rename from locale/en-us/current.sunrise.future.location.dialog rename to locale/en-us/dialog/current/current-sunrise-future-location.dialog diff --git a/locale/en-us/current.sunrise.past.local.dialog b/locale/en-us/dialog/current/current-sunrise-past-local.dialog similarity index 100% rename from locale/en-us/current.sunrise.past.local.dialog rename to locale/en-us/dialog/current/current-sunrise-past-local.dialog diff --git a/locale/en-us/current.sunrise.past.location.dialog b/locale/en-us/dialog/current/current-sunrise-past-location.dialog similarity index 100% rename from locale/en-us/current.sunrise.past.location.dialog rename to locale/en-us/dialog/current/current-sunrise-past-location.dialog diff --git a/locale/en-us/current.sunset.future.local.dialog b/locale/en-us/dialog/current/current-sunset-future-local.dialog similarity index 100% rename from locale/en-us/current.sunset.future.local.dialog rename to locale/en-us/dialog/current/current-sunset-future-local.dialog diff --git a/locale/en-us/current.sunset.future.location.dialog b/locale/en-us/dialog/current/current-sunset-future-location.dialog similarity index 100% rename from locale/en-us/current.sunset.future.location.dialog rename to locale/en-us/dialog/current/current-sunset-future-location.dialog diff --git a/locale/en-us/current.sunset.past.local.dialog b/locale/en-us/dialog/current/current-sunset-past-local.dialog similarity index 100% rename from locale/en-us/current.sunset.past.local.dialog rename to locale/en-us/dialog/current/current-sunset-past-local.dialog diff --git a/locale/en-us/current.sunset.past.location.dialog b/locale/en-us/dialog/current/current-sunset-past-location.dialog similarity index 100% rename from locale/en-us/current.sunset.past.location.dialog rename to locale/en-us/dialog/current/current-sunset-past-location.dialog diff --git a/locale/en-us/current.temperature.high.local.dialog b/locale/en-us/dialog/current/current-temperature-high-local.dialog similarity index 100% rename from locale/en-us/current.temperature.high.local.dialog rename to locale/en-us/dialog/current/current-temperature-high-local.dialog diff --git a/locale/en-us/current.temperature.high.location.dialog b/locale/en-us/dialog/current/current-temperature-high-location.dialog similarity index 100% rename from locale/en-us/current.temperature.high.location.dialog rename to locale/en-us/dialog/current/current-temperature-high-location.dialog diff --git a/locale/en-us/current.temperature.high.low.dialog b/locale/en-us/dialog/current/current-temperature-high-low.dialog similarity index 100% rename from locale/en-us/current.temperature.high.low.dialog rename to locale/en-us/dialog/current/current-temperature-high-low.dialog diff --git a/locale/en-us/current.temperature.local.dialog b/locale/en-us/dialog/current/current-temperature-local.dialog similarity index 100% rename from locale/en-us/current.temperature.local.dialog rename to locale/en-us/dialog/current/current-temperature-local.dialog diff --git a/locale/en-us/current.temperature.location.dialog b/locale/en-us/dialog/current/current-temperature-location.dialog similarity index 100% rename from locale/en-us/current.temperature.location.dialog rename to locale/en-us/dialog/current/current-temperature-location.dialog diff --git a/locale/en-us/current.temperature.low.local.dialog b/locale/en-us/dialog/current/current-temperature-low-local.dialog similarity index 100% rename from locale/en-us/current.temperature.low.local.dialog rename to locale/en-us/dialog/current/current-temperature-low-local.dialog diff --git a/locale/en-us/current.temperature.low.location.dialog b/locale/en-us/dialog/current/current-temperature-low-location.dialog similarity index 100% rename from locale/en-us/current.temperature.low.location.dialog rename to locale/en-us/dialog/current/current-temperature-low-location.dialog diff --git a/locale/en-us/current.weather.local.dialog b/locale/en-us/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/en-us/current.weather.local.dialog rename to locale/en-us/dialog/current/current-weather-local.dialog diff --git a/locale/en-us/current.weather.location.dialog b/locale/en-us/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/en-us/current.weather.location.dialog rename to locale/en-us/dialog/current/current-weather-location.dialog diff --git a/locale/en-us/current.wind.light.local.dialog b/locale/en-us/dialog/current/current-wind-light-local.dialog similarity index 100% rename from locale/en-us/current.wind.light.local.dialog rename to locale/en-us/dialog/current/current-wind-light-local.dialog diff --git a/locale/en-us/current.wind.light.location.dialog b/locale/en-us/dialog/current/current-wind-light-location.dialog similarity index 100% rename from locale/en-us/current.wind.light.location.dialog rename to locale/en-us/dialog/current/current-wind-light-location.dialog diff --git a/locale/en-us/current.wind.moderate.local.dialog b/locale/en-us/dialog/current/current-wind-moderate-local.dialog similarity index 100% rename from locale/en-us/current.wind.moderate.local.dialog rename to locale/en-us/dialog/current/current-wind-moderate-local.dialog diff --git a/locale/en-us/current.wind.moderate.location.dialog b/locale/en-us/dialog/current/current-wind-moderate-location.dialog similarity index 100% rename from locale/en-us/current.wind.moderate.location.dialog rename to locale/en-us/dialog/current/current-wind-moderate-location.dialog diff --git a/locale/en-us/current.wind.strong.local.dialog b/locale/en-us/dialog/current/current-wind-strong-local.dialog similarity index 100% rename from locale/en-us/current.wind.strong.local.dialog rename to locale/en-us/dialog/current/current-wind-strong-local.dialog diff --git a/locale/en-us/current.wind.strong.location.dialog b/locale/en-us/dialog/current/current-wind-strong-location.dialog similarity index 100% rename from locale/en-us/current.wind.strong.location.dialog rename to locale/en-us/dialog/current/current-wind-strong-location.dialog diff --git a/locale/en-us/currrent.clouds.alternative.local.dialog b/locale/en-us/dialog/current/currrent-clouds-alternative-local.dialog similarity index 100% rename from locale/en-us/currrent.clouds.alternative.local.dialog rename to locale/en-us/dialog/current/currrent-clouds-alternative-local.dialog diff --git a/locale/en-us/daily.condition.expected.local.dialog b/locale/en-us/dialog/daily/daily-condition-expected-local.dialog similarity index 100% rename from locale/en-us/daily.condition.expected.local.dialog rename to locale/en-us/dialog/daily/daily-condition-expected-local.dialog diff --git a/locale/en-us/daily.condition.expected.location.dialog b/locale/en-us/dialog/daily/daily-condition-expected-location.dialog similarity index 100% rename from locale/en-us/daily.condition.expected.location.dialog rename to locale/en-us/dialog/daily/daily-condition-expected-location.dialog diff --git a/locale/en-us/daily.condition.not.expected.local.dialog b/locale/en-us/dialog/daily/daily-condition-not-expected-local.dialog similarity index 100% rename from locale/en-us/daily.condition.not.expected.local.dialog rename to locale/en-us/dialog/daily/daily-condition-not-expected-local.dialog diff --git a/locale/en-us/daily.condition.not.expected.location.dialog b/locale/en-us/dialog/daily/daily-condition-not-expected-location.dialog similarity index 100% rename from locale/en-us/daily.condition.not.expected.location.dialog rename to locale/en-us/dialog/daily/daily-condition-not-expected-location.dialog diff --git a/locale/en-us/daily.humidity.local.dialog b/locale/en-us/dialog/daily/daily-humidity-local.dialog similarity index 100% rename from locale/en-us/daily.humidity.local.dialog rename to locale/en-us/dialog/daily/daily-humidity-local.dialog diff --git a/locale/en-us/daily.humidity.location.dialog b/locale/en-us/dialog/daily/daily-humidity-location.dialog similarity index 100% rename from locale/en-us/daily.humidity.location.dialog rename to locale/en-us/dialog/daily/daily-humidity-location.dialog diff --git a/locale/en-us/daily.precipitation.next.local.dialog b/locale/en-us/dialog/daily/daily-precipitation-next-local.dialog similarity index 100% rename from locale/en-us/daily.precipitation.next.local.dialog rename to locale/en-us/dialog/daily/daily-precipitation-next-local.dialog diff --git a/locale/en-us/daily.precipitation.next.location.dialog b/locale/en-us/dialog/daily/daily-precipitation-next-location.dialog similarity index 100% rename from locale/en-us/daily.precipitation.next.location.dialog rename to locale/en-us/dialog/daily/daily-precipitation-next-location.dialog diff --git a/locale/en-us/daily.precipitation.next.none.local.dialog b/locale/en-us/dialog/daily/daily-precipitation-next-none-local.dialog similarity index 100% rename from locale/en-us/daily.precipitation.next.none.local.dialog rename to locale/en-us/dialog/daily/daily-precipitation-next-none-local.dialog diff --git a/locale/en-us/daily.precipitation.next.none.location.dialog b/locale/en-us/dialog/daily/daily-precipitation-next-none-location.dialog similarity index 100% rename from locale/en-us/daily.precipitation.next.none.location.dialog rename to locale/en-us/dialog/daily/daily-precipitation-next-none-location.dialog diff --git a/locale/en-us/daily.sunrise.local.dialog b/locale/en-us/dialog/daily/daily-sunrise-local.dialog similarity index 100% rename from locale/en-us/daily.sunrise.local.dialog rename to locale/en-us/dialog/daily/daily-sunrise-local.dialog diff --git a/locale/en-us/daily.sunrise.location.dialog b/locale/en-us/dialog/daily/daily-sunrise-location.dialog similarity index 100% rename from locale/en-us/daily.sunrise.location.dialog rename to locale/en-us/dialog/daily/daily-sunrise-location.dialog diff --git a/locale/en-us/daily.sunset.local.dialog b/locale/en-us/dialog/daily/daily-sunset-local.dialog similarity index 100% rename from locale/en-us/daily.sunset.local.dialog rename to locale/en-us/dialog/daily/daily-sunset-local.dialog diff --git a/locale/en-us/daily.sunset.location.dialog b/locale/en-us/dialog/daily/daily-sunset-location.dialog similarity index 100% rename from locale/en-us/daily.sunset.location.dialog rename to locale/en-us/dialog/daily/daily-sunset-location.dialog diff --git a/locale/en-us/daily.temperature.high.local.dialog b/locale/en-us/dialog/daily/daily-temperature-high-local.dialog similarity index 100% rename from locale/en-us/daily.temperature.high.local.dialog rename to locale/en-us/dialog/daily/daily-temperature-high-local.dialog diff --git a/locale/en-us/daily.temperature.high.location.dialog b/locale/en-us/dialog/daily/daily-temperature-high-location.dialog similarity index 100% rename from locale/en-us/daily.temperature.high.location.dialog rename to locale/en-us/dialog/daily/daily-temperature-high-location.dialog diff --git a/locale/en-us/daily.temperature.local.dialog b/locale/en-us/dialog/daily/daily-temperature-local.dialog similarity index 100% rename from locale/en-us/daily.temperature.local.dialog rename to locale/en-us/dialog/daily/daily-temperature-local.dialog diff --git a/locale/en-us/daily.temperature.location.dialog b/locale/en-us/dialog/daily/daily-temperature-location.dialog similarity index 100% rename from locale/en-us/daily.temperature.location.dialog rename to locale/en-us/dialog/daily/daily-temperature-location.dialog diff --git a/locale/en-us/daily.temperature.low.local.dialog b/locale/en-us/dialog/daily/daily-temperature-low-local.dialog similarity index 100% rename from locale/en-us/daily.temperature.low.local.dialog rename to locale/en-us/dialog/daily/daily-temperature-low-local.dialog diff --git a/locale/en-us/daily.temperature.low.location.dialog b/locale/en-us/dialog/daily/daily-temperature-low-location.dialog similarity index 100% rename from locale/en-us/daily.temperature.low.location.dialog rename to locale/en-us/dialog/daily/daily-temperature-low-location.dialog diff --git a/locale/en-us/daily.weather.local.dialog b/locale/en-us/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/en-us/daily.weather.local.dialog rename to locale/en-us/dialog/daily/daily-weather-local.dialog diff --git a/locale/en-us/daily.weather.location.dialog b/locale/en-us/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/en-us/daily.weather.location.dialog rename to locale/en-us/dialog/daily/daily-weather-location.dialog diff --git a/locale/en-us/daily.wind.light.local.dialog b/locale/en-us/dialog/daily/daily-wind-light-local.dialog similarity index 100% rename from locale/en-us/daily.wind.light.local.dialog rename to locale/en-us/dialog/daily/daily-wind-light-local.dialog diff --git a/locale/en-us/daily.wind.light.location.dialog b/locale/en-us/dialog/daily/daily-wind-light-location.dialog similarity index 100% rename from locale/en-us/daily.wind.light.location.dialog rename to locale/en-us/dialog/daily/daily-wind-light-location.dialog diff --git a/locale/en-us/daily.wind.moderate.local.dialog b/locale/en-us/dialog/daily/daily-wind-moderate-local.dialog similarity index 100% rename from locale/en-us/daily.wind.moderate.local.dialog rename to locale/en-us/dialog/daily/daily-wind-moderate-local.dialog diff --git a/locale/en-us/daily.wind.moderate.location.dialog b/locale/en-us/dialog/daily/daily-wind-moderate-location.dialog similarity index 100% rename from locale/en-us/daily.wind.moderate.location.dialog rename to locale/en-us/dialog/daily/daily-wind-moderate-location.dialog diff --git a/locale/en-us/daily.wind.strong.local.dialog b/locale/en-us/dialog/daily/daily-wind-strong-local.dialog similarity index 100% rename from locale/en-us/daily.wind.strong.local.dialog rename to locale/en-us/dialog/daily/daily-wind-strong-local.dialog diff --git a/locale/en-us/daily.wind.strong.location.dialog b/locale/en-us/dialog/daily/daily-wind-strong-location.dialog similarity index 100% rename from locale/en-us/daily.wind.strong.location.dialog rename to locale/en-us/dialog/daily/daily-wind-strong-location.dialog diff --git a/locale/en-us/east.dialog b/locale/en-us/dialog/direction/east.dialog similarity index 100% rename from locale/en-us/east.dialog rename to locale/en-us/dialog/direction/east.dialog diff --git a/locale/en-us/north.dialog b/locale/en-us/dialog/direction/north.dialog similarity index 100% rename from locale/en-us/north.dialog rename to locale/en-us/dialog/direction/north.dialog diff --git a/locale/en-us/northeast.dialog b/locale/en-us/dialog/direction/northeast.dialog similarity index 100% rename from locale/en-us/northeast.dialog rename to locale/en-us/dialog/direction/northeast.dialog diff --git a/locale/en-us/northwest.dialog b/locale/en-us/dialog/direction/northwest.dialog similarity index 100% rename from locale/en-us/northwest.dialog rename to locale/en-us/dialog/direction/northwest.dialog diff --git a/locale/en-us/south.dialog b/locale/en-us/dialog/direction/south.dialog similarity index 100% rename from locale/en-us/south.dialog rename to locale/en-us/dialog/direction/south.dialog diff --git a/locale/en-us/southeast.dialog b/locale/en-us/dialog/direction/southeast.dialog similarity index 100% rename from locale/en-us/southeast.dialog rename to locale/en-us/dialog/direction/southeast.dialog diff --git a/locale/en-us/southwest.dialog b/locale/en-us/dialog/direction/southwest.dialog similarity index 100% rename from locale/en-us/southwest.dialog rename to locale/en-us/dialog/direction/southwest.dialog diff --git a/locale/en-us/west.dialog b/locale/en-us/dialog/direction/west.dialog similarity index 100% rename from locale/en-us/west.dialog rename to locale/en-us/dialog/direction/west.dialog diff --git a/locale/en-us/cant.get.forecast.dialog b/locale/en-us/dialog/error/cant-get-forecast.dialog similarity index 100% rename from locale/en-us/cant.get.forecast.dialog rename to locale/en-us/dialog/error/cant-get-forecast.dialog diff --git a/locale/en-us/forty-eight.hours.available.dialog b/locale/en-us/dialog/error/forty-eight-hours-available.dialog similarity index 100% rename from locale/en-us/forty-eight.hours.available.dialog rename to locale/en-us/dialog/error/forty-eight-hours-available.dialog diff --git a/locale/en-us/location.not.found.dialog b/locale/en-us/dialog/error/location-not-found.dialog similarity index 100% rename from locale/en-us/location.not.found.dialog rename to locale/en-us/dialog/error/location-not-found.dialog diff --git a/locale/en-us/no.forecast.dialog b/locale/en-us/dialog/error/no-forecast.dialog similarity index 100% rename from locale/en-us/no.forecast.dialog rename to locale/en-us/dialog/error/no-forecast.dialog diff --git a/locale/en-us/seven.days.available.dialog b/locale/en-us/dialog/error/seven-days-available.dialog similarity index 100% rename from locale/en-us/seven.days.available.dialog rename to locale/en-us/dialog/error/seven-days-available.dialog diff --git a/locale/en-us/hourly.condition.expected.local.dialog b/locale/en-us/dialog/hourly/hourly-condition-expected-local.dialog similarity index 100% rename from locale/en-us/hourly.condition.expected.local.dialog rename to locale/en-us/dialog/hourly/hourly-condition-expected-local.dialog diff --git a/locale/en-us/hourly.condition.expected.location.dialog b/locale/en-us/dialog/hourly/hourly-condition-expected-location.dialog similarity index 100% rename from locale/en-us/hourly.condition.expected.location.dialog rename to locale/en-us/dialog/hourly/hourly-condition-expected-location.dialog diff --git a/locale/en-us/hourly.precipitation.next.local.dialog b/locale/en-us/dialog/hourly/hourly-precipitation-next-local.dialog similarity index 100% rename from locale/en-us/hourly.precipitation.next.local.dialog rename to locale/en-us/dialog/hourly/hourly-precipitation-next-local.dialog diff --git a/locale/en-us/hourly.precipitation.next.location.dialog b/locale/en-us/dialog/hourly/hourly-precipitation-next-location.dialog similarity index 100% rename from locale/en-us/hourly.precipitation.next.location.dialog rename to locale/en-us/dialog/hourly/hourly-precipitation-next-location.dialog diff --git a/locale/en-us/hourly.temperature.local.dialog b/locale/en-us/dialog/hourly/hourly-temperature-local.dialog similarity index 100% rename from locale/en-us/hourly.temperature.local.dialog rename to locale/en-us/dialog/hourly/hourly-temperature-local.dialog diff --git a/locale/en-us/hourly.temperature.location.dialog b/locale/en-us/dialog/hourly/hourly-temperature-location.dialog similarity index 100% rename from locale/en-us/hourly.temperature.location.dialog rename to locale/en-us/dialog/hourly/hourly-temperature-location.dialog diff --git a/locale/en-us/hourly.weather.local.dialog b/locale/en-us/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/en-us/hourly.weather.local.dialog rename to locale/en-us/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/en-us/hourly.weather.location.dialog b/locale/en-us/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/en-us/hourly.weather.location.dialog rename to locale/en-us/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/en-us/percentage.number.dialog b/locale/en-us/dialog/percentage-number.dialog similarity index 100% rename from locale/en-us/percentage.number.dialog rename to locale/en-us/dialog/percentage-number.dialog diff --git a/locale/en-us/celsius.dialog b/locale/en-us/dialog/unit/celsius.dialog similarity index 100% rename from locale/en-us/celsius.dialog rename to locale/en-us/dialog/unit/celsius.dialog diff --git a/locale/en-us/fahrenheit.dialog b/locale/en-us/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/en-us/fahrenheit.dialog rename to locale/en-us/dialog/unit/fahrenheit.dialog diff --git a/locale/en-us/meters per second.dialog b/locale/en-us/dialog/unit/meters per second.dialog similarity index 100% rename from locale/en-us/meters per second.dialog rename to locale/en-us/dialog/unit/meters per second.dialog diff --git a/locale/en-us/miles per hour.dialog b/locale/en-us/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/en-us/miles per hour.dialog rename to locale/en-us/dialog/unit/miles per hour.dialog diff --git a/locale/en-us/weekly.condition.dialog b/locale/en-us/dialog/weekly/weekly-condition.dialog similarity index 100% rename from locale/en-us/weekly.condition.dialog rename to locale/en-us/dialog/weekly/weekly-condition.dialog diff --git a/locale/en-us/weekly.temperature.dialog b/locale/en-us/dialog/weekly/weekly-temperature.dialog similarity index 100% rename from locale/en-us/weekly.temperature.dialog rename to locale/en-us/dialog/weekly/weekly-temperature.dialog diff --git a/locale/en-us/location.rx b/locale/en-us/regex/location.rx similarity index 100% rename from locale/en-us/location.rx rename to locale/en-us/regex/location.rx diff --git a/locale/en-us/Clear.voc b/locale/en-us/vocabulary/condition/clear.voc similarity index 100% rename from locale/en-us/Clear.voc rename to locale/en-us/vocabulary/condition/clear.voc diff --git a/locale/en-us/Clouds.voc b/locale/en-us/vocabulary/condition/clouds.voc similarity index 100% rename from locale/en-us/Clouds.voc rename to locale/en-us/vocabulary/condition/clouds.voc diff --git a/locale/en-us/do.i.need.an.umbrella.intent b/locale/en-us/vocabulary/condition/do-i-need-an-umbrella.intent similarity index 100% rename from locale/en-us/do.i.need.an.umbrella.intent rename to locale/en-us/vocabulary/condition/do-i-need-an-umbrella.intent diff --git a/locale/en-us/Fog.voc b/locale/en-us/vocabulary/condition/fog.voc similarity index 100% rename from locale/en-us/Fog.voc rename to locale/en-us/vocabulary/condition/fog.voc diff --git a/locale/en-us/Humidity.voc b/locale/en-us/vocabulary/condition/humidity.voc similarity index 100% rename from locale/en-us/Humidity.voc rename to locale/en-us/vocabulary/condition/humidity.voc diff --git a/locale/en-us/Precipitation.voc b/locale/en-us/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/en-us/Precipitation.voc rename to locale/en-us/vocabulary/condition/precipitation.voc diff --git a/locale/en-us/Rain.voc b/locale/en-us/vocabulary/condition/rain.voc similarity index 100% rename from locale/en-us/Rain.voc rename to locale/en-us/vocabulary/condition/rain.voc diff --git a/locale/en-us/Snow.voc b/locale/en-us/vocabulary/condition/snow.voc similarity index 100% rename from locale/en-us/Snow.voc rename to locale/en-us/vocabulary/condition/snow.voc diff --git a/locale/en-us/Thunderstorm.voc b/locale/en-us/vocabulary/condition/thunderstorm.voc similarity index 100% rename from locale/en-us/Thunderstorm.voc rename to locale/en-us/vocabulary/condition/thunderstorm.voc diff --git a/locale/en-us/Windy.voc b/locale/en-us/vocabulary/condition/windy.voc similarity index 100% rename from locale/en-us/Windy.voc rename to locale/en-us/vocabulary/condition/windy.voc diff --git a/locale/en-us/Couple.voc b/locale/en-us/vocabulary/date-time/couple.voc similarity index 100% rename from locale/en-us/Couple.voc rename to locale/en-us/vocabulary/date-time/couple.voc diff --git a/locale/en-us/Few.voc b/locale/en-us/vocabulary/date-time/few.voc similarity index 100% rename from locale/en-us/Few.voc rename to locale/en-us/vocabulary/date-time/few.voc diff --git a/locale/en-us/Later.voc b/locale/en-us/vocabulary/date-time/later.voc similarity index 100% rename from locale/en-us/Later.voc rename to locale/en-us/vocabulary/date-time/later.voc diff --git a/locale/en-us/Next.voc b/locale/en-us/vocabulary/date-time/next.voc similarity index 100% rename from locale/en-us/Next.voc rename to locale/en-us/vocabulary/date-time/next.voc diff --git a/locale/en-us/Now.voc b/locale/en-us/vocabulary/date-time/now.voc similarity index 100% rename from locale/en-us/Now.voc rename to locale/en-us/vocabulary/date-time/now.voc diff --git a/locale/en-us/NumberDays.voc b/locale/en-us/vocabulary/date-time/number-days.voc similarity index 100% rename from locale/en-us/NumberDays.voc rename to locale/en-us/vocabulary/date-time/number-days.voc diff --git a/locale/en-us/RelativeDay.voc b/locale/en-us/vocabulary/date-time/relative-day.voc similarity index 100% rename from locale/en-us/RelativeDay.voc rename to locale/en-us/vocabulary/date-time/relative-day.voc diff --git a/locale/en-us/RelativeTime.voc b/locale/en-us/vocabulary/date-time/relative-time.voc similarity index 100% rename from locale/en-us/RelativeTime.voc rename to locale/en-us/vocabulary/date-time/relative-time.voc diff --git a/locale/en-us/Today.voc b/locale/en-us/vocabulary/date-time/today.voc similarity index 100% rename from locale/en-us/Today.voc rename to locale/en-us/vocabulary/date-time/today.voc diff --git a/locale/en-us/Week.voc b/locale/en-us/vocabulary/date-time/week.voc similarity index 100% rename from locale/en-us/Week.voc rename to locale/en-us/vocabulary/date-time/week.voc diff --git a/locale/en-us/Weekend.voc b/locale/en-us/vocabulary/date-time/weekend.voc similarity index 100% rename from locale/en-us/Weekend.voc rename to locale/en-us/vocabulary/date-time/weekend.voc diff --git a/locale/en-us/Forecast.voc b/locale/en-us/vocabulary/forecast.voc similarity index 100% rename from locale/en-us/Forecast.voc rename to locale/en-us/vocabulary/forecast.voc diff --git a/locale/en-us/Like.voc b/locale/en-us/vocabulary/like.voc similarity index 100% rename from locale/en-us/Like.voc rename to locale/en-us/vocabulary/like.voc diff --git a/locale/en-us/Location.voc b/locale/en-us/vocabulary/location.voc similarity index 100% rename from locale/en-us/Location.voc rename to locale/en-us/vocabulary/location.voc diff --git a/locale/en-us/Outside.voc b/locale/en-us/vocabulary/outside.voc similarity index 100% rename from locale/en-us/Outside.voc rename to locale/en-us/vocabulary/outside.voc diff --git a/locale/en-us/ConfirmQueryCurrent.voc b/locale/en-us/vocabulary/query/confirm-query-current.voc similarity index 100% rename from locale/en-us/ConfirmQueryCurrent.voc rename to locale/en-us/vocabulary/query/confirm-query-current.voc diff --git a/locale/en-us/ConfirmQueryFuture.voc b/locale/en-us/vocabulary/query/confirm-query-future.voc similarity index 100% rename from locale/en-us/ConfirmQueryFuture.voc rename to locale/en-us/vocabulary/query/confirm-query-future.voc diff --git a/locale/en-us/ConfirmQuery.voc b/locale/en-us/vocabulary/query/confirm-query.voc similarity index 100% rename from locale/en-us/ConfirmQuery.voc rename to locale/en-us/vocabulary/query/confirm-query.voc diff --git a/locale/en-us/How.voc b/locale/en-us/vocabulary/query/how.voc similarity index 100% rename from locale/en-us/How.voc rename to locale/en-us/vocabulary/query/how.voc diff --git a/locale/en-us/Query.voc b/locale/en-us/vocabulary/query/query.voc similarity index 100% rename from locale/en-us/Query.voc rename to locale/en-us/vocabulary/query/query.voc diff --git a/locale/en-us/When.voc b/locale/en-us/vocabulary/query/when.voc similarity index 100% rename from locale/en-us/When.voc rename to locale/en-us/vocabulary/query/when.voc diff --git a/locale/en-us/Sunrise.voc b/locale/en-us/vocabulary/sunrise.voc similarity index 100% rename from locale/en-us/Sunrise.voc rename to locale/en-us/vocabulary/sunrise.voc diff --git a/locale/en-us/Sunset.voc b/locale/en-us/vocabulary/sunset.voc similarity index 100% rename from locale/en-us/Sunset.voc rename to locale/en-us/vocabulary/sunset.voc diff --git a/locale/en-us/Cold.voc b/locale/en-us/vocabulary/temperature/cold.voc similarity index 100% rename from locale/en-us/Cold.voc rename to locale/en-us/vocabulary/temperature/cold.voc diff --git a/locale/en-us/High.voc b/locale/en-us/vocabulary/temperature/high.voc similarity index 100% rename from locale/en-us/High.voc rename to locale/en-us/vocabulary/temperature/high.voc diff --git a/locale/en-us/Hot.voc b/locale/en-us/vocabulary/temperature/hot.voc similarity index 100% rename from locale/en-us/Hot.voc rename to locale/en-us/vocabulary/temperature/hot.voc diff --git a/locale/en-us/Low.voc b/locale/en-us/vocabulary/temperature/low.voc similarity index 100% rename from locale/en-us/Low.voc rename to locale/en-us/vocabulary/temperature/low.voc diff --git a/locale/en-us/Temperature.voc b/locale/en-us/vocabulary/temperature/temperature.voc similarity index 100% rename from locale/en-us/Temperature.voc rename to locale/en-us/vocabulary/temperature/temperature.voc diff --git a/locale/en-us/Fahrenheit.voc b/locale/en-us/vocabulary/unit/fahrenheit.voc similarity index 100% rename from locale/en-us/Fahrenheit.voc rename to locale/en-us/vocabulary/unit/fahrenheit.voc diff --git a/locale/en-us/Unit.entity b/locale/en-us/vocabulary/unit/unit.entity similarity index 100% rename from locale/en-us/Unit.entity rename to locale/en-us/vocabulary/unit/unit.entity diff --git a/locale/en-us/Unit.voc b/locale/en-us/vocabulary/unit/unit.voc similarity index 100% rename from locale/en-us/Unit.voc rename to locale/en-us/vocabulary/unit/unit.voc diff --git a/locale/en-us/Weather.voc b/locale/en-us/vocabulary/weather.voc similarity index 100% rename from locale/en-us/Weather.voc rename to locale/en-us/vocabulary/weather.voc diff --git a/locale/es-es/WeatherType.voc b/locale/es-es/WeatherType.voc deleted file mode 100644 index 5fbb3284..00000000 --- a/locale/es-es/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -lluvia|lloviendo -nieve|nevando -aguanieve -granizo|granizando -soleado|sol -caliente|caluroso -frío|fresco diff --git a/locale/es-es/humidity.dialog b/locale/es-es/dialog/condition/humidity.dialog similarity index 100% rename from locale/es-es/humidity.dialog rename to locale/es-es/dialog/condition/humidity.dialog diff --git a/locale/es-es/no precipitation expected.dialog b/locale/es-es/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/es-es/no precipitation expected.dialog rename to locale/es-es/dialog/condition/no precipitation expected.dialog diff --git a/locale/es-es/precipitation expected.dialog b/locale/es-es/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/es-es/precipitation expected.dialog rename to locale/es-es/dialog/condition/precipitation expected.dialog diff --git a/locale/es-es/rain.dialog b/locale/es-es/dialog/condition/rain.dialog similarity index 100% rename from locale/es-es/rain.dialog rename to locale/es-es/dialog/condition/rain.dialog diff --git a/locale/es-es/snow.dialog b/locale/es-es/dialog/condition/snow.dialog similarity index 100% rename from locale/es-es/snow.dialog rename to locale/es-es/dialog/condition/snow.dialog diff --git a/locale/es-es/current.weather.local.dialog b/locale/es-es/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/es-es/current.weather.local.dialog rename to locale/es-es/dialog/current/current-weather-local.dialog diff --git a/locale/es-es/current.weather.location.dialog b/locale/es-es/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/es-es/current.weather.location.dialog rename to locale/es-es/dialog/current/current-weather-location.dialog diff --git a/locale/es-es/daily.weather.local.dialog b/locale/es-es/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/es-es/daily.weather.local.dialog rename to locale/es-es/dialog/daily/daily-weather-local.dialog diff --git a/locale/es-es/daily.weather.location.dialog b/locale/es-es/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/es-es/daily.weather.location.dialog rename to locale/es-es/dialog/daily/daily-weather-location.dialog diff --git a/locale/es-es/east.dialog b/locale/es-es/dialog/direction/east.dialog similarity index 100% rename from locale/es-es/east.dialog rename to locale/es-es/dialog/direction/east.dialog diff --git a/locale/es-es/north.dialog b/locale/es-es/dialog/direction/north.dialog similarity index 100% rename from locale/es-es/north.dialog rename to locale/es-es/dialog/direction/north.dialog diff --git a/locale/es-es/northeast.dialog b/locale/es-es/dialog/direction/northeast.dialog similarity index 100% rename from locale/es-es/northeast.dialog rename to locale/es-es/dialog/direction/northeast.dialog diff --git a/locale/es-es/northwest.dialog b/locale/es-es/dialog/direction/northwest.dialog similarity index 100% rename from locale/es-es/northwest.dialog rename to locale/es-es/dialog/direction/northwest.dialog diff --git a/locale/es-es/south.dialog b/locale/es-es/dialog/direction/south.dialog similarity index 100% rename from locale/es-es/south.dialog rename to locale/es-es/dialog/direction/south.dialog diff --git a/locale/es-es/southeast.dialog b/locale/es-es/dialog/direction/southeast.dialog similarity index 100% rename from locale/es-es/southeast.dialog rename to locale/es-es/dialog/direction/southeast.dialog diff --git a/locale/es-es/southwest.dialog b/locale/es-es/dialog/direction/southwest.dialog similarity index 100% rename from locale/es-es/southwest.dialog rename to locale/es-es/dialog/direction/southwest.dialog diff --git a/locale/es-es/west.dialog b/locale/es-es/dialog/direction/west.dialog similarity index 100% rename from locale/es-es/west.dialog rename to locale/es-es/dialog/direction/west.dialog diff --git a/locale/es-es/location.not.found.dialog b/locale/es-es/dialog/error/location-not-found.dialog similarity index 100% rename from locale/es-es/location.not.found.dialog rename to locale/es-es/dialog/error/location-not-found.dialog diff --git a/locale/es-es/hourly.weather.local.dialog b/locale/es-es/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/es-es/hourly.weather.local.dialog rename to locale/es-es/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/es-es/hourly.weather.location.dialog b/locale/es-es/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/es-es/hourly.weather.location.dialog rename to locale/es-es/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/es-es/celsius.dialog b/locale/es-es/dialog/unit/celsius.dialog similarity index 100% rename from locale/es-es/celsius.dialog rename to locale/es-es/dialog/unit/celsius.dialog diff --git a/locale/es-es/fahrenheit.dialog b/locale/es-es/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/es-es/fahrenheit.dialog rename to locale/es-es/dialog/unit/fahrenheit.dialog diff --git a/locale/es-es/meters per second.dialog b/locale/es-es/dialog/unit/meters per second.dialog similarity index 100% rename from locale/es-es/meters per second.dialog rename to locale/es-es/dialog/unit/meters per second.dialog diff --git a/locale/es-es/miles per hour.dialog b/locale/es-es/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/es-es/miles per hour.dialog rename to locale/es-es/dialog/unit/miles per hour.dialog diff --git a/locale/es-es/do not know.dialog b/locale/es-es/do not know.dialog deleted file mode 100644 index 43086b9f..00000000 --- a/locale/es-es/do not know.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Me temo que no sé qué -No tengo esa información diff --git a/locale/es-es/Forecast.voc b/locale/es-es/forecast.voc similarity index 100% rename from locale/es-es/Forecast.voc rename to locale/es-es/forecast.voc diff --git a/locale/es-es/Location.voc b/locale/es-es/location.voc similarity index 100% rename from locale/es-es/Location.voc rename to locale/es-es/location.voc diff --git a/locale/es-es/no forecast.dialog b/locale/es-es/no forecast.dialog deleted file mode 100644 index 43bc181d..00000000 --- a/locale/es-es/no forecast.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Lo siento, no conozco el pronóstico para el {{day}} -No tengo un pronóstico para el {{day}} diff --git a/locale/es-es/location.rx b/locale/es-es/regex/location.rx similarity index 100% rename from locale/es-es/location.rx rename to locale/es-es/regex/location.rx diff --git a/locale/es-es/Sunrise.voc b/locale/es-es/sunrise.voc similarity index 100% rename from locale/es-es/Sunrise.voc rename to locale/es-es/sunrise.voc diff --git a/locale/es-es/Sunset.voc b/locale/es-es/sunset.voc similarity index 100% rename from locale/es-es/Sunset.voc rename to locale/es-es/sunset.voc diff --git a/locale/es-es/Humidity.voc b/locale/es-es/vocabulary/condition/humidity.voc similarity index 100% rename from locale/es-es/Humidity.voc rename to locale/es-es/vocabulary/condition/humidity.voc diff --git a/locale/es-es/Precipitation.voc b/locale/es-es/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/es-es/Precipitation.voc rename to locale/es-es/vocabulary/condition/precipitation.voc diff --git a/locale/es-es/Windy.voc b/locale/es-es/vocabulary/condition/windy.voc similarity index 100% rename from locale/es-es/Windy.voc rename to locale/es-es/vocabulary/condition/windy.voc diff --git a/locale/es-es/Later.voc b/locale/es-es/vocabulary/date-time/later.voc similarity index 100% rename from locale/es-es/Later.voc rename to locale/es-es/vocabulary/date-time/later.voc diff --git a/locale/es-es/Next.voc b/locale/es-es/vocabulary/date-time/next.voc similarity index 100% rename from locale/es-es/Next.voc rename to locale/es-es/vocabulary/date-time/next.voc diff --git a/locale/es-es/Query.voc b/locale/es-es/vocabulary/query/query.voc similarity index 100% rename from locale/es-es/Query.voc rename to locale/es-es/vocabulary/query/query.voc diff --git a/locale/es-es/Weather.voc b/locale/es-es/weather.voc similarity index 100% rename from locale/es-es/Weather.voc rename to locale/es-es/weather.voc diff --git a/locale/fr-fr/WeatherType.voc b/locale/fr-fr/WeatherType.voc deleted file mode 100644 index 55cdaa8d..00000000 --- a/locale/fr-fr/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -pluie|pluie -neige|neiger -neige fondue -grêle|grêle -ensoleillé|soleil -chaud -froid diff --git a/locale/fr-fr/no precipitation expected.dialog b/locale/fr-fr/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/fr-fr/no precipitation expected.dialog rename to locale/fr-fr/dialog/condition/no precipitation expected.dialog diff --git a/locale/fr-fr/precipitation expected.dialog b/locale/fr-fr/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/fr-fr/precipitation expected.dialog rename to locale/fr-fr/dialog/condition/precipitation expected.dialog diff --git a/locale/fr-fr/rain.dialog b/locale/fr-fr/dialog/condition/rain.dialog similarity index 100% rename from locale/fr-fr/rain.dialog rename to locale/fr-fr/dialog/condition/rain.dialog diff --git a/locale/fr-fr/snow.dialog b/locale/fr-fr/dialog/condition/snow.dialog similarity index 100% rename from locale/fr-fr/snow.dialog rename to locale/fr-fr/dialog/condition/snow.dialog diff --git a/locale/fr-fr/current.humidity.location.dialog b/locale/fr-fr/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/fr-fr/current.humidity.location.dialog rename to locale/fr-fr/dialog/current/current-humidity-location.dialog diff --git a/locale/fr-fr/current.weather.local.dialog b/locale/fr-fr/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/fr-fr/current.weather.local.dialog rename to locale/fr-fr/dialog/current/current-weather-local.dialog diff --git a/locale/fr-fr/current.weather.location.dialog b/locale/fr-fr/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/fr-fr/current.weather.location.dialog rename to locale/fr-fr/dialog/current/current-weather-location.dialog diff --git a/locale/fr-fr/daily.weather.local.dialog b/locale/fr-fr/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/fr-fr/daily.weather.local.dialog rename to locale/fr-fr/dialog/daily/daily-weather-local.dialog diff --git a/locale/fr-fr/daily.weather.location.dialog b/locale/fr-fr/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/fr-fr/daily.weather.location.dialog rename to locale/fr-fr/dialog/daily/daily-weather-location.dialog diff --git a/locale/fr-fr/east.dialog b/locale/fr-fr/dialog/direction/east.dialog similarity index 100% rename from locale/fr-fr/east.dialog rename to locale/fr-fr/dialog/direction/east.dialog diff --git a/locale/fr-fr/north.dialog b/locale/fr-fr/dialog/direction/north.dialog similarity index 100% rename from locale/fr-fr/north.dialog rename to locale/fr-fr/dialog/direction/north.dialog diff --git a/locale/fr-fr/northeast.dialog b/locale/fr-fr/dialog/direction/northeast.dialog similarity index 100% rename from locale/fr-fr/northeast.dialog rename to locale/fr-fr/dialog/direction/northeast.dialog diff --git a/locale/fr-fr/northwest.dialog b/locale/fr-fr/dialog/direction/northwest.dialog similarity index 100% rename from locale/fr-fr/northwest.dialog rename to locale/fr-fr/dialog/direction/northwest.dialog diff --git a/locale/fr-fr/south.dialog b/locale/fr-fr/dialog/direction/south.dialog similarity index 100% rename from locale/fr-fr/south.dialog rename to locale/fr-fr/dialog/direction/south.dialog diff --git a/locale/fr-fr/southeast.dialog b/locale/fr-fr/dialog/direction/southeast.dialog similarity index 100% rename from locale/fr-fr/southeast.dialog rename to locale/fr-fr/dialog/direction/southeast.dialog diff --git a/locale/fr-fr/southwest.dialog b/locale/fr-fr/dialog/direction/southwest.dialog similarity index 100% rename from locale/fr-fr/southwest.dialog rename to locale/fr-fr/dialog/direction/southwest.dialog diff --git a/locale/fr-fr/west.dialog b/locale/fr-fr/dialog/direction/west.dialog similarity index 100% rename from locale/fr-fr/west.dialog rename to locale/fr-fr/dialog/direction/west.dialog diff --git a/locale/fr-fr/location.not.found.dialog b/locale/fr-fr/dialog/error/location-not-found.dialog similarity index 100% rename from locale/fr-fr/location.not.found.dialog rename to locale/fr-fr/dialog/error/location-not-found.dialog diff --git a/locale/fr-fr/hourly.weather.local.dialog b/locale/fr-fr/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/fr-fr/hourly.weather.local.dialog rename to locale/fr-fr/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/fr-fr/hourly.weather.location.dialog b/locale/fr-fr/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/fr-fr/hourly.weather.location.dialog rename to locale/fr-fr/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/fr-fr/celsius.dialog b/locale/fr-fr/dialog/unit/celsius.dialog similarity index 100% rename from locale/fr-fr/celsius.dialog rename to locale/fr-fr/dialog/unit/celsius.dialog diff --git a/locale/fr-fr/fahrenheit.dialog b/locale/fr-fr/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/fr-fr/fahrenheit.dialog rename to locale/fr-fr/dialog/unit/fahrenheit.dialog diff --git a/locale/fr-fr/meters per second.dialog b/locale/fr-fr/dialog/unit/meters per second.dialog similarity index 100% rename from locale/fr-fr/meters per second.dialog rename to locale/fr-fr/dialog/unit/meters per second.dialog diff --git a/locale/fr-fr/miles per hour.dialog b/locale/fr-fr/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/fr-fr/miles per hour.dialog rename to locale/fr-fr/dialog/unit/miles per hour.dialog diff --git a/locale/fr-fr/Forecast.voc b/locale/fr-fr/forecast.voc similarity index 100% rename from locale/fr-fr/Forecast.voc rename to locale/fr-fr/forecast.voc diff --git a/locale/fr-fr/Location.voc b/locale/fr-fr/location.voc similarity index 100% rename from locale/fr-fr/Location.voc rename to locale/fr-fr/location.voc diff --git a/locale/fr-fr/Next.voc b/locale/fr-fr/next.voc similarity index 100% rename from locale/fr-fr/Next.voc rename to locale/fr-fr/next.voc diff --git a/locale/fr-fr/no forecast.dialog b/locale/fr-fr/no forecast.dialog deleted file mode 100644 index c4c861cf..00000000 --- a/locale/fr-fr/no forecast.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Je regrette, je ne connais pas la prévision pour {{day}} -Je n'ai pas une prévision pour {{day}} diff --git a/locale/fr-fr/location.rx b/locale/fr-fr/regex/location.rx similarity index 100% rename from locale/fr-fr/location.rx rename to locale/fr-fr/regex/location.rx diff --git a/locale/fr-fr/Sunrise.voc b/locale/fr-fr/sunrise.voc similarity index 100% rename from locale/fr-fr/Sunrise.voc rename to locale/fr-fr/sunrise.voc diff --git a/locale/fr-fr/Sunset.voc b/locale/fr-fr/sunset.voc similarity index 100% rename from locale/fr-fr/Sunset.voc rename to locale/fr-fr/sunset.voc diff --git a/locale/fr-fr/Humidity.voc b/locale/fr-fr/vocabulary/condition/humidity.voc similarity index 100% rename from locale/fr-fr/Humidity.voc rename to locale/fr-fr/vocabulary/condition/humidity.voc diff --git a/locale/fr-fr/Precipitation.voc b/locale/fr-fr/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/fr-fr/Precipitation.voc rename to locale/fr-fr/vocabulary/condition/precipitation.voc diff --git a/locale/fr-fr/Windy.voc b/locale/fr-fr/vocabulary/condition/windy.voc similarity index 100% rename from locale/fr-fr/Windy.voc rename to locale/fr-fr/vocabulary/condition/windy.voc diff --git a/locale/fr-fr/Later.voc b/locale/fr-fr/vocabulary/date-time/later.voc similarity index 100% rename from locale/fr-fr/Later.voc rename to locale/fr-fr/vocabulary/date-time/later.voc diff --git a/locale/fr-fr/Query.voc b/locale/fr-fr/vocabulary/query/query.voc similarity index 100% rename from locale/fr-fr/Query.voc rename to locale/fr-fr/vocabulary/query/query.voc diff --git a/locale/fr-fr/Weather.voc b/locale/fr-fr/weather.voc similarity index 100% rename from locale/fr-fr/Weather.voc rename to locale/fr-fr/weather.voc diff --git a/locale/gl-es/ThreeDay.voc b/locale/gl-es/ThreeDay.voc deleted file mode 100644 index a1c9af09..00000000 --- a/locale/gl-es/ThreeDay.voc +++ /dev/null @@ -1,3 +0,0 @@ -3 días -tres días -próximos días diff --git a/locale/gl-es/WeatherType.voc b/locale/gl-es/WeatherType.voc deleted file mode 100644 index 3536ac70..00000000 --- a/locale/gl-es/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -chuvia|chovendo -neve|nevando -granizo -granizo|chovendo granizo -(soleado|sol) -quente|morno -frío|conxelado diff --git a/locale/gl-es/and.dialog b/locale/gl-es/dialog/and.dialog similarity index 100% rename from locale/gl-es/and.dialog rename to locale/gl-es/dialog/and.dialog diff --git a/locale/gl-es/clear sky.dialog b/locale/gl-es/dialog/condition/clear sky.dialog similarity index 100% rename from locale/gl-es/clear sky.dialog rename to locale/gl-es/dialog/condition/clear sky.dialog diff --git a/locale/gl-es/clear.dialog b/locale/gl-es/dialog/condition/clear.dialog similarity index 100% rename from locale/gl-es/clear.dialog rename to locale/gl-es/dialog/condition/clear.dialog diff --git a/locale/gl-es/no precipitation expected.dialog b/locale/gl-es/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/gl-es/no precipitation expected.dialog rename to locale/gl-es/dialog/condition/no precipitation expected.dialog diff --git a/locale/gl-es/percentage.number.dialog b/locale/gl-es/dialog/condition/percentage-number.dialog similarity index 100% rename from locale/gl-es/percentage.number.dialog rename to locale/gl-es/dialog/condition/percentage-number.dialog diff --git a/locale/gl-es/precipitation expected.dialog b/locale/gl-es/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/gl-es/precipitation expected.dialog rename to locale/gl-es/dialog/condition/precipitation expected.dialog diff --git a/locale/gl-es/rain.dialog b/locale/gl-es/dialog/condition/rain.dialog similarity index 100% rename from locale/gl-es/rain.dialog rename to locale/gl-es/dialog/condition/rain.dialog diff --git a/locale/gl-es/snow.dialog b/locale/gl-es/dialog/condition/snow.dialog similarity index 100% rename from locale/gl-es/snow.dialog rename to locale/gl-es/dialog/condition/snow.dialog diff --git a/locale/gl-es/thunderstorm.dialog b/locale/gl-es/dialog/condition/thunderstorm.dialog similarity index 100% rename from locale/gl-es/thunderstorm.dialog rename to locale/gl-es/dialog/condition/thunderstorm.dialog diff --git a/locale/gl-es/current.condition.expected.local.dialog b/locale/gl-es/dialog/current/current-condition-expected-local.dialog similarity index 100% rename from locale/gl-es/current.condition.expected.local.dialog rename to locale/gl-es/dialog/current/current-condition-expected-local.dialog diff --git a/locale/gl-es/current.condition.expected.location.dialog b/locale/gl-es/dialog/current/current-condition-expected-location.dialog similarity index 100% rename from locale/gl-es/current.condition.expected.location.dialog rename to locale/gl-es/dialog/current/current-condition-expected-location.dialog diff --git a/locale/gl-es/current.humidity.location.dialog b/locale/gl-es/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/gl-es/current.humidity.location.dialog rename to locale/gl-es/dialog/current/current-humidity-location.dialog diff --git a/locale/gl-es/current.temperature.high.local.dialog b/locale/gl-es/dialog/current/current-temperature-high-local.dialog similarity index 100% rename from locale/gl-es/current.temperature.high.local.dialog rename to locale/gl-es/dialog/current/current-temperature-high-local.dialog diff --git a/locale/gl-es/current.temperature.high.location.dialog b/locale/gl-es/dialog/current/current-temperature-high-location.dialog similarity index 100% rename from locale/gl-es/current.temperature.high.location.dialog rename to locale/gl-es/dialog/current/current-temperature-high-location.dialog diff --git a/locale/gl-es/current.temperature.high.low.dialog b/locale/gl-es/dialog/current/current-temperature-high-low.dialog similarity index 100% rename from locale/gl-es/current.temperature.high.low.dialog rename to locale/gl-es/dialog/current/current-temperature-high-low.dialog diff --git a/locale/gl-es/current.temperature.local.dialog b/locale/gl-es/dialog/current/current-temperature-local.dialog similarity index 100% rename from locale/gl-es/current.temperature.local.dialog rename to locale/gl-es/dialog/current/current-temperature-local.dialog diff --git a/locale/gl-es/current.temperature.location.dialog b/locale/gl-es/dialog/current/current-temperature-location.dialog similarity index 100% rename from locale/gl-es/current.temperature.location.dialog rename to locale/gl-es/dialog/current/current-temperature-location.dialog diff --git a/locale/gl-es/current.temperature.low.local.dialog b/locale/gl-es/dialog/current/current-temperature-low-local.dialog similarity index 100% rename from locale/gl-es/current.temperature.low.local.dialog rename to locale/gl-es/dialog/current/current-temperature-low-local.dialog diff --git a/locale/gl-es/current.temperature.low.location.dialog b/locale/gl-es/dialog/current/current-temperature-low-location.dialog similarity index 100% rename from locale/gl-es/current.temperature.low.location.dialog rename to locale/gl-es/dialog/current/current-temperature-low-location.dialog diff --git a/locale/gl-es/current.weather.local.dialog b/locale/gl-es/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/gl-es/current.weather.local.dialog rename to locale/gl-es/dialog/current/current-weather-local.dialog diff --git a/locale/gl-es/current.weather.location.dialog b/locale/gl-es/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/gl-es/current.weather.location.dialog rename to locale/gl-es/dialog/current/current-weather-location.dialog diff --git a/locale/gl-es/current.wind.light.local.dialog b/locale/gl-es/dialog/current/current-wind-light-local.dialog similarity index 100% rename from locale/gl-es/current.wind.light.local.dialog rename to locale/gl-es/dialog/current/current-wind-light-local.dialog diff --git a/locale/gl-es/current.wind.light.location.dialog b/locale/gl-es/dialog/current/current-wind-light-location.dialog similarity index 100% rename from locale/gl-es/current.wind.light.location.dialog rename to locale/gl-es/dialog/current/current-wind-light-location.dialog diff --git a/locale/gl-es/current.wind.moderate.local.dialog b/locale/gl-es/dialog/current/current-wind-moderate-local.dialog similarity index 100% rename from locale/gl-es/current.wind.moderate.local.dialog rename to locale/gl-es/dialog/current/current-wind-moderate-local.dialog diff --git a/locale/gl-es/current.wind.moderate.location.dialog b/locale/gl-es/dialog/current/current-wind-moderate-location.dialog similarity index 100% rename from locale/gl-es/current.wind.moderate.location.dialog rename to locale/gl-es/dialog/current/current-wind-moderate-location.dialog diff --git a/locale/gl-es/current.wind.strong.local.dialog b/locale/gl-es/dialog/current/current-wind-strong-local.dialog similarity index 100% rename from locale/gl-es/current.wind.strong.local.dialog rename to locale/gl-es/dialog/current/current-wind-strong-local.dialog diff --git a/locale/gl-es/current.wind.strong.location.dialog b/locale/gl-es/dialog/current/current-wind-strong-location.dialog similarity index 100% rename from locale/gl-es/current.wind.strong.location.dialog rename to locale/gl-es/dialog/current/current-wind-strong-location.dialog diff --git a/locale/gl-es/daily.condition.expected.local.dialog b/locale/gl-es/dialog/daily/daily-condition-expected-local.dialog similarity index 100% rename from locale/gl-es/daily.condition.expected.local.dialog rename to locale/gl-es/dialog/daily/daily-condition-expected-local.dialog diff --git a/locale/gl-es/daily.condition.expected.location.dialog b/locale/gl-es/dialog/daily/daily-condition-expected-location.dialog similarity index 100% rename from locale/gl-es/daily.condition.expected.location.dialog rename to locale/gl-es/dialog/daily/daily-condition-expected-location.dialog diff --git a/locale/gl-es/daily.temperature.high.local.dialog b/locale/gl-es/dialog/daily/daily-temperature-high-local.dialog similarity index 100% rename from locale/gl-es/daily.temperature.high.local.dialog rename to locale/gl-es/dialog/daily/daily-temperature-high-local.dialog diff --git a/locale/gl-es/daily.temperature.high.location.dialog b/locale/gl-es/dialog/daily/daily-temperature-high-location.dialog similarity index 100% rename from locale/gl-es/daily.temperature.high.location.dialog rename to locale/gl-es/dialog/daily/daily-temperature-high-location.dialog diff --git a/locale/gl-es/daily.temperature.local.dialog b/locale/gl-es/dialog/daily/daily-temperature-local.dialog similarity index 100% rename from locale/gl-es/daily.temperature.local.dialog rename to locale/gl-es/dialog/daily/daily-temperature-local.dialog diff --git a/locale/gl-es/daily.temperature.location.dialog b/locale/gl-es/dialog/daily/daily-temperature-location.dialog similarity index 100% rename from locale/gl-es/daily.temperature.location.dialog rename to locale/gl-es/dialog/daily/daily-temperature-location.dialog diff --git a/locale/gl-es/daily.temperature.low.local.dialog b/locale/gl-es/dialog/daily/daily-temperature-low-local.dialog similarity index 100% rename from locale/gl-es/daily.temperature.low.local.dialog rename to locale/gl-es/dialog/daily/daily-temperature-low-local.dialog diff --git a/locale/gl-es/daily.temperature.low.location.dialog b/locale/gl-es/dialog/daily/daily-temperature-low-location.dialog similarity index 100% rename from locale/gl-es/daily.temperature.low.location.dialog rename to locale/gl-es/dialog/daily/daily-temperature-low-location.dialog diff --git a/locale/gl-es/daily.weather.local.dialog b/locale/gl-es/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/gl-es/daily.weather.local.dialog rename to locale/gl-es/dialog/daily/daily-weather-local.dialog diff --git a/locale/gl-es/daily.weather.location.dialog b/locale/gl-es/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/gl-es/daily.weather.location.dialog rename to locale/gl-es/dialog/daily/daily-weather-location.dialog diff --git a/locale/gl-es/daily.wind.light.local.dialog b/locale/gl-es/dialog/daily/daily-wind-light-local.dialog similarity index 100% rename from locale/gl-es/daily.wind.light.local.dialog rename to locale/gl-es/dialog/daily/daily-wind-light-local.dialog diff --git a/locale/gl-es/daily.wind.light.location.dialog b/locale/gl-es/dialog/daily/daily-wind-light-location.dialog similarity index 100% rename from locale/gl-es/daily.wind.light.location.dialog rename to locale/gl-es/dialog/daily/daily-wind-light-location.dialog diff --git a/locale/gl-es/daily.wind.moderate.local.dialog b/locale/gl-es/dialog/daily/daily-wind-moderate-local.dialog similarity index 100% rename from locale/gl-es/daily.wind.moderate.local.dialog rename to locale/gl-es/dialog/daily/daily-wind-moderate-local.dialog diff --git a/locale/gl-es/daily.wind.moderate.location.dialog b/locale/gl-es/dialog/daily/daily-wind-moderate-location.dialog similarity index 100% rename from locale/gl-es/daily.wind.moderate.location.dialog rename to locale/gl-es/dialog/daily/daily-wind-moderate-location.dialog diff --git a/locale/gl-es/daily.wind.strong.local.dialog b/locale/gl-es/dialog/daily/daily-wind-strong-local.dialog similarity index 100% rename from locale/gl-es/daily.wind.strong.local.dialog rename to locale/gl-es/dialog/daily/daily-wind-strong-local.dialog diff --git a/locale/gl-es/daily.wind.strong.location.dialog b/locale/gl-es/dialog/daily/daily-wind-strong-location.dialog similarity index 100% rename from locale/gl-es/daily.wind.strong.location.dialog rename to locale/gl-es/dialog/daily/daily-wind-strong-location.dialog diff --git a/locale/gl-es/east.dialog b/locale/gl-es/dialog/direction/east.dialog similarity index 100% rename from locale/gl-es/east.dialog rename to locale/gl-es/dialog/direction/east.dialog diff --git a/locale/gl-es/north.dialog b/locale/gl-es/dialog/direction/north.dialog similarity index 100% rename from locale/gl-es/north.dialog rename to locale/gl-es/dialog/direction/north.dialog diff --git a/locale/gl-es/northeast.dialog b/locale/gl-es/dialog/direction/northeast.dialog similarity index 100% rename from locale/gl-es/northeast.dialog rename to locale/gl-es/dialog/direction/northeast.dialog diff --git a/locale/gl-es/northwest.dialog b/locale/gl-es/dialog/direction/northwest.dialog similarity index 100% rename from locale/gl-es/northwest.dialog rename to locale/gl-es/dialog/direction/northwest.dialog diff --git a/locale/gl-es/south.dialog b/locale/gl-es/dialog/direction/south.dialog similarity index 100% rename from locale/gl-es/south.dialog rename to locale/gl-es/dialog/direction/south.dialog diff --git a/locale/gl-es/southeast.dialog b/locale/gl-es/dialog/direction/southeast.dialog similarity index 100% rename from locale/gl-es/southeast.dialog rename to locale/gl-es/dialog/direction/southeast.dialog diff --git a/locale/gl-es/southwest.dialog b/locale/gl-es/dialog/direction/southwest.dialog similarity index 100% rename from locale/gl-es/southwest.dialog rename to locale/gl-es/dialog/direction/southwest.dialog diff --git a/locale/gl-es/west.dialog b/locale/gl-es/dialog/direction/west.dialog similarity index 100% rename from locale/gl-es/west.dialog rename to locale/gl-es/dialog/direction/west.dialog diff --git a/locale/gl-es/cant.get.forecast.dialog b/locale/gl-es/dialog/error/cant-get-forecast.dialog similarity index 100% rename from locale/gl-es/cant.get.forecast.dialog rename to locale/gl-es/dialog/error/cant-get-forecast.dialog diff --git a/locale/gl-es/location.not.found.dialog b/locale/gl-es/dialog/error/location-not-found.dialog similarity index 100% rename from locale/gl-es/location.not.found.dialog rename to locale/gl-es/dialog/error/location-not-found.dialog diff --git a/locale/gl-es/no.forecast.dialog b/locale/gl-es/dialog/error/no-forecast.dialog similarity index 100% rename from locale/gl-es/no.forecast.dialog rename to locale/gl-es/dialog/error/no-forecast.dialog diff --git a/locale/gl-es/hourly.condition.alternative.local.dialog b/locale/gl-es/dialog/hourly/hourly-condition-alternative-local.dialog similarity index 100% rename from locale/gl-es/hourly.condition.alternative.local.dialog rename to locale/gl-es/dialog/hourly/hourly-condition-alternative-local.dialog diff --git a/locale/gl-es/hourly.condition.alternative.location.dialog b/locale/gl-es/dialog/hourly/hourly-condition-alternative-location.dialog similarity index 100% rename from locale/gl-es/hourly.condition.alternative.location.dialog rename to locale/gl-es/dialog/hourly/hourly-condition-alternative-location.dialog diff --git a/locale/gl-es/hourly.condition.expected.local.dialog b/locale/gl-es/dialog/hourly/hourly-condition-expected-local.dialog similarity index 100% rename from locale/gl-es/hourly.condition.expected.local.dialog rename to locale/gl-es/dialog/hourly/hourly-condition-expected-local.dialog diff --git a/locale/gl-es/hourly.condition.expected.dialog b/locale/gl-es/dialog/hourly/hourly-condition-expected.dialog similarity index 100% rename from locale/gl-es/hourly.condition.expected.dialog rename to locale/gl-es/dialog/hourly/hourly-condition-expected.dialog diff --git a/locale/gl-es/hourly.condition.not.expected.local.dialog b/locale/gl-es/dialog/hourly/hourly-condition-not-expected-local.dialog similarity index 100% rename from locale/gl-es/hourly.condition.not.expected.local.dialog rename to locale/gl-es/dialog/hourly/hourly-condition-not-expected-local.dialog diff --git a/locale/gl-es/hourly.condition.not.expected.location.dialog b/locale/gl-es/dialog/hourly/hourly-condition-not-expected-location.dialog similarity index 100% rename from locale/gl-es/hourly.condition.not.expected.location.dialog rename to locale/gl-es/dialog/hourly/hourly-condition-not-expected-location.dialog diff --git a/locale/gl-es/hourly.temperature.local.dialog b/locale/gl-es/dialog/hourly/hourly-temperature-local.dialog similarity index 100% rename from locale/gl-es/hourly.temperature.local.dialog rename to locale/gl-es/dialog/hourly/hourly-temperature-local.dialog diff --git a/locale/gl-es/hourly.weather.local.dialog b/locale/gl-es/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/gl-es/hourly.weather.local.dialog rename to locale/gl-es/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/gl-es/hourly.weather.location.dialog b/locale/gl-es/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/gl-es/hourly.weather.location.dialog rename to locale/gl-es/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/gl-es/celsius.dialog b/locale/gl-es/dialog/unit/celsius.dialog similarity index 100% rename from locale/gl-es/celsius.dialog rename to locale/gl-es/dialog/unit/celsius.dialog diff --git a/locale/gl-es/fahrenheit.dialog b/locale/gl-es/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/gl-es/fahrenheit.dialog rename to locale/gl-es/dialog/unit/fahrenheit.dialog diff --git a/locale/gl-es/meters per second.dialog b/locale/gl-es/dialog/unit/meters per second.dialog similarity index 100% rename from locale/gl-es/meters per second.dialog rename to locale/gl-es/dialog/unit/meters per second.dialog diff --git a/locale/gl-es/miles per hour.dialog b/locale/gl-es/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/gl-es/miles per hour.dialog rename to locale/gl-es/dialog/unit/miles per hour.dialog diff --git a/locale/gl-es/weekly.temperature.dialog b/locale/gl-es/dialog/weekly/weekly-temperature.dialog similarity index 100% rename from locale/gl-es/weekly.temperature.dialog rename to locale/gl-es/dialog/weekly/weekly-temperature.dialog diff --git a/locale/gl-es/Forecast.voc b/locale/gl-es/forecast.voc similarity index 100% rename from locale/gl-es/Forecast.voc rename to locale/gl-es/forecast.voc diff --git a/locale/gl-es/Location.voc b/locale/gl-es/location.voc similarity index 100% rename from locale/gl-es/Location.voc rename to locale/gl-es/location.voc diff --git a/locale/gl-es/location.rx b/locale/gl-es/regex/location.rx similarity index 100% rename from locale/gl-es/location.rx rename to locale/gl-es/regex/location.rx diff --git a/locale/gl-es/Sunrise.voc b/locale/gl-es/sunrise.voc similarity index 100% rename from locale/gl-es/Sunrise.voc rename to locale/gl-es/sunrise.voc diff --git a/locale/gl-es/Sunset.voc b/locale/gl-es/sunset.voc similarity index 100% rename from locale/gl-es/Sunset.voc rename to locale/gl-es/sunset.voc diff --git a/locale/gl-es/Clear.voc b/locale/gl-es/vocabulary/condition/clear.voc similarity index 100% rename from locale/gl-es/Clear.voc rename to locale/gl-es/vocabulary/condition/clear.voc diff --git a/locale/gl-es/Clouds.voc b/locale/gl-es/vocabulary/condition/clouds.voc similarity index 100% rename from locale/gl-es/Clouds.voc rename to locale/gl-es/vocabulary/condition/clouds.voc diff --git a/locale/gl-es/do.i.need.an.umbrella.intent b/locale/gl-es/vocabulary/condition/do.i.need.an.umbrella.intent similarity index 100% rename from locale/gl-es/do.i.need.an.umbrella.intent rename to locale/gl-es/vocabulary/condition/do.i.need.an.umbrella.intent diff --git a/locale/gl-es/Fog.voc b/locale/gl-es/vocabulary/condition/fog.voc similarity index 100% rename from locale/gl-es/Fog.voc rename to locale/gl-es/vocabulary/condition/fog.voc diff --git a/locale/gl-es/Humidity.voc b/locale/gl-es/vocabulary/condition/humidity.voc similarity index 100% rename from locale/gl-es/Humidity.voc rename to locale/gl-es/vocabulary/condition/humidity.voc diff --git a/locale/gl-es/Precipitation.voc b/locale/gl-es/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/gl-es/Precipitation.voc rename to locale/gl-es/vocabulary/condition/precipitation.voc diff --git a/locale/gl-es/Rain.voc b/locale/gl-es/vocabulary/condition/rain.voc similarity index 100% rename from locale/gl-es/Rain.voc rename to locale/gl-es/vocabulary/condition/rain.voc diff --git a/locale/gl-es/Snow.voc b/locale/gl-es/vocabulary/condition/snow.voc similarity index 100% rename from locale/gl-es/Snow.voc rename to locale/gl-es/vocabulary/condition/snow.voc diff --git a/locale/gl-es/Thunderstorm.voc b/locale/gl-es/vocabulary/condition/thunderstorm.voc similarity index 100% rename from locale/gl-es/Thunderstorm.voc rename to locale/gl-es/vocabulary/condition/thunderstorm.voc diff --git a/locale/gl-es/Windy.voc b/locale/gl-es/vocabulary/condition/windy.voc similarity index 100% rename from locale/gl-es/Windy.voc rename to locale/gl-es/vocabulary/condition/windy.voc diff --git a/locale/gl-es/Couple.voc b/locale/gl-es/vocabulary/date-time/couple.voc similarity index 100% rename from locale/gl-es/Couple.voc rename to locale/gl-es/vocabulary/date-time/couple.voc diff --git a/locale/gl-es/Later.voc b/locale/gl-es/vocabulary/date-time/later.voc similarity index 100% rename from locale/gl-es/Later.voc rename to locale/gl-es/vocabulary/date-time/later.voc diff --git a/locale/gl-es/Next.voc b/locale/gl-es/vocabulary/date-time/next.voc similarity index 100% rename from locale/gl-es/Next.voc rename to locale/gl-es/vocabulary/date-time/next.voc diff --git a/locale/gl-es/Now.voc b/locale/gl-es/vocabulary/date-time/now.voc similarity index 100% rename from locale/gl-es/Now.voc rename to locale/gl-es/vocabulary/date-time/now.voc diff --git a/locale/gl-es/RelativeDay.voc b/locale/gl-es/vocabulary/date-time/relative-day.voc similarity index 100% rename from locale/gl-es/RelativeDay.voc rename to locale/gl-es/vocabulary/date-time/relative-day.voc diff --git a/locale/gl-es/RelativeTime.voc b/locale/gl-es/vocabulary/date-time/relative-time.voc similarity index 100% rename from locale/gl-es/RelativeTime.voc rename to locale/gl-es/vocabulary/date-time/relative-time.voc diff --git a/locale/gl-es/Today.voc b/locale/gl-es/vocabulary/date-time/today.voc similarity index 100% rename from locale/gl-es/Today.voc rename to locale/gl-es/vocabulary/date-time/today.voc diff --git a/locale/gl-es/Week.voc b/locale/gl-es/vocabulary/date-time/week.voc similarity index 100% rename from locale/gl-es/Week.voc rename to locale/gl-es/vocabulary/date-time/week.voc diff --git a/locale/gl-es/Weekend.voc b/locale/gl-es/vocabulary/date-time/weekend.voc similarity index 100% rename from locale/gl-es/Weekend.voc rename to locale/gl-es/vocabulary/date-time/weekend.voc diff --git a/locale/gl-es/ConfirmQueryCurrent.voc b/locale/gl-es/vocabulary/query/confirm-query-current.voc similarity index 100% rename from locale/gl-es/ConfirmQueryCurrent.voc rename to locale/gl-es/vocabulary/query/confirm-query-current.voc diff --git a/locale/gl-es/ConfirmQueryFuture.voc b/locale/gl-es/vocabulary/query/confirm-query-future.voc similarity index 100% rename from locale/gl-es/ConfirmQueryFuture.voc rename to locale/gl-es/vocabulary/query/confirm-query-future.voc diff --git a/locale/gl-es/ConfirmQuery.voc b/locale/gl-es/vocabulary/query/confirm-query.voc similarity index 100% rename from locale/gl-es/ConfirmQuery.voc rename to locale/gl-es/vocabulary/query/confirm-query.voc diff --git a/locale/gl-es/How.voc b/locale/gl-es/vocabulary/query/how.voc similarity index 100% rename from locale/gl-es/How.voc rename to locale/gl-es/vocabulary/query/how.voc diff --git a/locale/gl-es/Query.voc b/locale/gl-es/vocabulary/query/query.voc similarity index 100% rename from locale/gl-es/Query.voc rename to locale/gl-es/vocabulary/query/query.voc diff --git a/locale/gl-es/When.voc b/locale/gl-es/vocabulary/query/when.voc similarity index 100% rename from locale/gl-es/When.voc rename to locale/gl-es/vocabulary/query/when.voc diff --git a/locale/gl-es/Cold.voc b/locale/gl-es/vocabulary/temperature/cold.voc similarity index 100% rename from locale/gl-es/Cold.voc rename to locale/gl-es/vocabulary/temperature/cold.voc diff --git a/locale/gl-es/High.voc b/locale/gl-es/vocabulary/temperature/high.voc similarity index 100% rename from locale/gl-es/High.voc rename to locale/gl-es/vocabulary/temperature/high.voc diff --git a/locale/gl-es/Hot.voc b/locale/gl-es/vocabulary/temperature/hot.voc similarity index 100% rename from locale/gl-es/Hot.voc rename to locale/gl-es/vocabulary/temperature/hot.voc diff --git a/locale/gl-es/Low.voc b/locale/gl-es/vocabulary/temperature/low.voc similarity index 100% rename from locale/gl-es/Low.voc rename to locale/gl-es/vocabulary/temperature/low.voc diff --git a/locale/gl-es/Temperature.voc b/locale/gl-es/vocabulary/temperature/temperature.voc similarity index 100% rename from locale/gl-es/Temperature.voc rename to locale/gl-es/vocabulary/temperature/temperature.voc diff --git a/locale/gl-es/Fahrenheit.voc b/locale/gl-es/vocabulary/unit/fahrenheit.voc similarity index 100% rename from locale/gl-es/Fahrenheit.voc rename to locale/gl-es/vocabulary/unit/fahrenheit.voc diff --git a/locale/gl-es/Unit.entity b/locale/gl-es/vocabulary/unit/unit.entity similarity index 100% rename from locale/gl-es/Unit.entity rename to locale/gl-es/vocabulary/unit/unit.entity diff --git a/locale/gl-es/Unit.voc b/locale/gl-es/vocabulary/unit/unit.voc similarity index 100% rename from locale/gl-es/Unit.voc rename to locale/gl-es/vocabulary/unit/unit.voc diff --git a/locale/gl-es/Weather.voc b/locale/gl-es/weather.voc similarity index 100% rename from locale/gl-es/Weather.voc rename to locale/gl-es/weather.voc diff --git a/locale/it-it/WeatherType.voc b/locale/it-it/WeatherType.voc deleted file mode 100644 index 8f70e733..00000000 --- a/locale/it-it/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -pioggia|piove -neve|nevica -nevischio -grandine|grandina -soleggiato|sole -caldo|calda -freddo|fredda diff --git a/locale/it-it/no precipitation expected.dialog b/locale/it-it/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/it-it/no precipitation expected.dialog rename to locale/it-it/dialog/condition/no precipitation expected.dialog diff --git a/locale/it-it/precipitation expected.dialog b/locale/it-it/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/it-it/precipitation expected.dialog rename to locale/it-it/dialog/condition/precipitation expected.dialog diff --git a/locale/it-it/rain.dialog b/locale/it-it/dialog/condition/rain.dialog similarity index 100% rename from locale/it-it/rain.dialog rename to locale/it-it/dialog/condition/rain.dialog diff --git a/locale/it-it/snow.dialog b/locale/it-it/dialog/condition/snow.dialog similarity index 100% rename from locale/it-it/snow.dialog rename to locale/it-it/dialog/condition/snow.dialog diff --git a/locale/it-it/current.condition.expected.local.dialog b/locale/it-it/dialog/current/current-condition-expected-local.dialog similarity index 100% rename from locale/it-it/current.condition.expected.local.dialog rename to locale/it-it/dialog/current/current-condition-expected-local.dialog diff --git a/locale/it-it/current.condition.expected.location.dialog b/locale/it-it/dialog/current/current-condition-expected-location.dialog similarity index 100% rename from locale/it-it/current.condition.expected.location.dialog rename to locale/it-it/dialog/current/current-condition-expected-location.dialog diff --git a/locale/it-it/current.humidity.location.dialog b/locale/it-it/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/it-it/current.humidity.location.dialog rename to locale/it-it/dialog/current/current-humidity-location.dialog diff --git a/locale/it-it/current.temperature.high.local.dialog b/locale/it-it/dialog/current/current-temperature-high-local.dialog similarity index 100% rename from locale/it-it/current.temperature.high.local.dialog rename to locale/it-it/dialog/current/current-temperature-high-local.dialog diff --git a/locale/it-it/current.temperature.high.location.dialog b/locale/it-it/dialog/current/current-temperature-high-location.dialog similarity index 100% rename from locale/it-it/current.temperature.high.location.dialog rename to locale/it-it/dialog/current/current-temperature-high-location.dialog diff --git a/locale/it-it/current.temperature.high.low.dialog b/locale/it-it/dialog/current/current-temperature-high-low.dialog similarity index 100% rename from locale/it-it/current.temperature.high.low.dialog rename to locale/it-it/dialog/current/current-temperature-high-low.dialog diff --git a/locale/it-it/current.temperature.local.dialog b/locale/it-it/dialog/current/current-temperature-local.dialog similarity index 100% rename from locale/it-it/current.temperature.local.dialog rename to locale/it-it/dialog/current/current-temperature-local.dialog diff --git a/locale/it-it/current.temperature.location.dialog b/locale/it-it/dialog/current/current-temperature-location.dialog similarity index 100% rename from locale/it-it/current.temperature.location.dialog rename to locale/it-it/dialog/current/current-temperature-location.dialog diff --git a/locale/it-it/current.temperature.low.local.dialog b/locale/it-it/dialog/current/current-temperature-low-local.dialog similarity index 100% rename from locale/it-it/current.temperature.low.local.dialog rename to locale/it-it/dialog/current/current-temperature-low-local.dialog diff --git a/locale/it-it/current.temperature.low.location.dialog b/locale/it-it/dialog/current/current-temperature-low-location.dialog similarity index 100% rename from locale/it-it/current.temperature.low.location.dialog rename to locale/it-it/dialog/current/current-temperature-low-location.dialog diff --git a/locale/it-it/current.weather.local.dialog b/locale/it-it/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/it-it/current.weather.local.dialog rename to locale/it-it/dialog/current/current-weather-local.dialog diff --git a/locale/it-it/current.weather.location.dialog b/locale/it-it/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/it-it/current.weather.location.dialog rename to locale/it-it/dialog/current/current-weather-location.dialog diff --git a/locale/it-it/current.wind.light.local.dialog b/locale/it-it/dialog/current/current-wind-light-local.dialog similarity index 100% rename from locale/it-it/current.wind.light.local.dialog rename to locale/it-it/dialog/current/current-wind-light-local.dialog diff --git a/locale/it-it/current.wind.light.location.dialog b/locale/it-it/dialog/current/current-wind-light-location.dialog similarity index 100% rename from locale/it-it/current.wind.light.location.dialog rename to locale/it-it/dialog/current/current-wind-light-location.dialog diff --git a/locale/it-it/current.wind.moderate.local.dialog b/locale/it-it/dialog/current/current-wind-moderate-local.dialog similarity index 100% rename from locale/it-it/current.wind.moderate.local.dialog rename to locale/it-it/dialog/current/current-wind-moderate-local.dialog diff --git a/locale/it-it/current.wind.moderate.location.dialog b/locale/it-it/dialog/current/current-wind-moderate-location.dialog similarity index 100% rename from locale/it-it/current.wind.moderate.location.dialog rename to locale/it-it/dialog/current/current-wind-moderate-location.dialog diff --git a/locale/it-it/current.wind.strong.local.dialog b/locale/it-it/dialog/current/current-wind-strong-local.dialog similarity index 100% rename from locale/it-it/current.wind.strong.local.dialog rename to locale/it-it/dialog/current/current-wind-strong-local.dialog diff --git a/locale/it-it/current.wind.strong.location.dialog b/locale/it-it/dialog/current/current-wind-strong-location.dialog similarity index 100% rename from locale/it-it/current.wind.strong.location.dialog rename to locale/it-it/dialog/current/current-wind-strong-location.dialog diff --git a/locale/it-it/daily.condition.expected.local.dialog b/locale/it-it/dialog/daily/daily-condition-expected-local.dialog similarity index 100% rename from locale/it-it/daily.condition.expected.local.dialog rename to locale/it-it/dialog/daily/daily-condition-expected-local.dialog diff --git a/locale/it-it/daily.condition.expected.location.dialog b/locale/it-it/dialog/daily/daily-condition-expected-location.dialog similarity index 100% rename from locale/it-it/daily.condition.expected.location.dialog rename to locale/it-it/dialog/daily/daily-condition-expected-location.dialog diff --git a/locale/it-it/daily.temperature.high.local.dialog b/locale/it-it/dialog/daily/daily-temperature-high-local.dialog similarity index 100% rename from locale/it-it/daily.temperature.high.local.dialog rename to locale/it-it/dialog/daily/daily-temperature-high-local.dialog diff --git a/locale/it-it/daily.temperature.high.location.dialog b/locale/it-it/dialog/daily/daily-temperature-high-location.dialog similarity index 100% rename from locale/it-it/daily.temperature.high.location.dialog rename to locale/it-it/dialog/daily/daily-temperature-high-location.dialog diff --git a/locale/it-it/daily.temperature.local.dialog b/locale/it-it/dialog/daily/daily-temperature-local.dialog similarity index 100% rename from locale/it-it/daily.temperature.local.dialog rename to locale/it-it/dialog/daily/daily-temperature-local.dialog diff --git a/locale/it-it/daily.temperature.location.dialog b/locale/it-it/dialog/daily/daily-temperature-location.dialog similarity index 100% rename from locale/it-it/daily.temperature.location.dialog rename to locale/it-it/dialog/daily/daily-temperature-location.dialog diff --git a/locale/it-it/daily.temperature.low.local.dialog b/locale/it-it/dialog/daily/daily-temperature-low-local.dialog similarity index 100% rename from locale/it-it/daily.temperature.low.local.dialog rename to locale/it-it/dialog/daily/daily-temperature-low-local.dialog diff --git a/locale/it-it/daily.weather.local.dialog b/locale/it-it/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/it-it/daily.weather.local.dialog rename to locale/it-it/dialog/daily/daily-weather-local.dialog diff --git a/locale/it-it/daily.weather.location.dialog b/locale/it-it/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/it-it/daily.weather.location.dialog rename to locale/it-it/dialog/daily/daily-weather-location.dialog diff --git a/locale/it-it/daily.wind.light.local.dialog b/locale/it-it/dialog/daily/daily-wind-light-local.dialog similarity index 100% rename from locale/it-it/daily.wind.light.local.dialog rename to locale/it-it/dialog/daily/daily-wind-light-local.dialog diff --git a/locale/it-it/daily.wind.light.location.dialog b/locale/it-it/dialog/daily/daily-wind-light-location.dialog similarity index 100% rename from locale/it-it/daily.wind.light.location.dialog rename to locale/it-it/dialog/daily/daily-wind-light-location.dialog diff --git a/locale/it-it/daily.wind.moderate.local.dialog b/locale/it-it/dialog/daily/daily-wind-moderate-local.dialog similarity index 100% rename from locale/it-it/daily.wind.moderate.local.dialog rename to locale/it-it/dialog/daily/daily-wind-moderate-local.dialog diff --git a/locale/it-it/daily.wind.moderate.location.dialog b/locale/it-it/dialog/daily/daily-wind-moderate-location.dialog similarity index 100% rename from locale/it-it/daily.wind.moderate.location.dialog rename to locale/it-it/dialog/daily/daily-wind-moderate-location.dialog diff --git a/locale/it-it/daily.wind.strong.local.dialog b/locale/it-it/dialog/daily/daily-wind-strong-local.dialog similarity index 100% rename from locale/it-it/daily.wind.strong.local.dialog rename to locale/it-it/dialog/daily/daily-wind-strong-local.dialog diff --git a/locale/it-it/daily.wind.strong.location.dialog b/locale/it-it/dialog/daily/daily-wind-strong-location.dialog similarity index 100% rename from locale/it-it/daily.wind.strong.location.dialog rename to locale/it-it/dialog/daily/daily-wind-strong-location.dialog diff --git a/locale/it-it/east.dialog b/locale/it-it/dialog/direction/east.dialog similarity index 100% rename from locale/it-it/east.dialog rename to locale/it-it/dialog/direction/east.dialog diff --git a/locale/it-it/north.dialog b/locale/it-it/dialog/direction/north.dialog similarity index 100% rename from locale/it-it/north.dialog rename to locale/it-it/dialog/direction/north.dialog diff --git a/locale/it-it/northeast.dialog b/locale/it-it/dialog/direction/northeast.dialog similarity index 100% rename from locale/it-it/northeast.dialog rename to locale/it-it/dialog/direction/northeast.dialog diff --git a/locale/it-it/northwest.dialog b/locale/it-it/dialog/direction/northwest.dialog similarity index 100% rename from locale/it-it/northwest.dialog rename to locale/it-it/dialog/direction/northwest.dialog diff --git a/locale/it-it/south.dialog b/locale/it-it/dialog/direction/south.dialog similarity index 100% rename from locale/it-it/south.dialog rename to locale/it-it/dialog/direction/south.dialog diff --git a/locale/it-it/southeast.dialog b/locale/it-it/dialog/direction/southeast.dialog similarity index 100% rename from locale/it-it/southeast.dialog rename to locale/it-it/dialog/direction/southeast.dialog diff --git a/locale/it-it/southwest.dialog b/locale/it-it/dialog/direction/southwest.dialog similarity index 100% rename from locale/it-it/southwest.dialog rename to locale/it-it/dialog/direction/southwest.dialog diff --git a/locale/it-it/west.dialog b/locale/it-it/dialog/direction/west.dialog similarity index 100% rename from locale/it-it/west.dialog rename to locale/it-it/dialog/direction/west.dialog diff --git a/locale/it-it/location.not.found.dialog b/locale/it-it/dialog/error/location-not-found.dialog similarity index 100% rename from locale/it-it/location.not.found.dialog rename to locale/it-it/dialog/error/location-not-found.dialog diff --git a/locale/it-it/hourly.weather.local.dialog b/locale/it-it/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/it-it/hourly.weather.local.dialog rename to locale/it-it/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/it-it/hourly.weather.location.dialog b/locale/it-it/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/it-it/hourly.weather.location.dialog rename to locale/it-it/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/it-it/celsius.dialog b/locale/it-it/dialog/unit/celsius.dialog similarity index 100% rename from locale/it-it/celsius.dialog rename to locale/it-it/dialog/unit/celsius.dialog diff --git a/locale/it-it/fahrenheit.dialog b/locale/it-it/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/it-it/fahrenheit.dialog rename to locale/it-it/dialog/unit/fahrenheit.dialog diff --git a/locale/it-it/meters per second.dialog b/locale/it-it/dialog/unit/meters per second.dialog similarity index 100% rename from locale/it-it/meters per second.dialog rename to locale/it-it/dialog/unit/meters per second.dialog diff --git a/locale/it-it/miles per hour.dialog b/locale/it-it/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/it-it/miles per hour.dialog rename to locale/it-it/dialog/unit/miles per hour.dialog diff --git a/locale/it-it/Forecast.voc b/locale/it-it/forecast.voc similarity index 100% rename from locale/it-it/Forecast.voc rename to locale/it-it/forecast.voc diff --git a/locale/it-it/Location.voc b/locale/it-it/location.voc similarity index 100% rename from locale/it-it/Location.voc rename to locale/it-it/location.voc diff --git a/locale/it-it/no forecast.dialog b/locale/it-it/no forecast.dialog deleted file mode 100644 index aec0e030..00000000 --- a/locale/it-it/no forecast.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Scusa, non ho le previsioni per {{day}} -Non ho una previsione per {{day}} diff --git a/locale/it-it/location.rx b/locale/it-it/regex/location.rx similarity index 100% rename from locale/it-it/location.rx rename to locale/it-it/regex/location.rx diff --git a/locale/it-it/Sunrise.voc b/locale/it-it/sunrise.voc similarity index 100% rename from locale/it-it/Sunrise.voc rename to locale/it-it/sunrise.voc diff --git a/locale/it-it/Sunset.voc b/locale/it-it/sunset.voc similarity index 100% rename from locale/it-it/Sunset.voc rename to locale/it-it/sunset.voc diff --git a/locale/it-it/Clear.voc b/locale/it-it/vocabulary/condition/clear.voc similarity index 100% rename from locale/it-it/Clear.voc rename to locale/it-it/vocabulary/condition/clear.voc diff --git a/locale/it-it/Clouds.voc b/locale/it-it/vocabulary/condition/clouds.voc similarity index 100% rename from locale/it-it/Clouds.voc rename to locale/it-it/vocabulary/condition/clouds.voc diff --git a/locale/it-it/do.i.need.an.umbrella.intent b/locale/it-it/vocabulary/condition/do.i.need.an.umbrella.intent similarity index 100% rename from locale/it-it/do.i.need.an.umbrella.intent rename to locale/it-it/vocabulary/condition/do.i.need.an.umbrella.intent diff --git a/locale/it-it/Fog.voc b/locale/it-it/vocabulary/condition/fog.voc similarity index 100% rename from locale/it-it/Fog.voc rename to locale/it-it/vocabulary/condition/fog.voc diff --git a/locale/it-it/Humidity.voc b/locale/it-it/vocabulary/condition/humidity.voc similarity index 100% rename from locale/it-it/Humidity.voc rename to locale/it-it/vocabulary/condition/humidity.voc diff --git a/locale/it-it/Precipitation.voc b/locale/it-it/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/it-it/Precipitation.voc rename to locale/it-it/vocabulary/condition/precipitation.voc diff --git a/locale/it-it/Rain.voc b/locale/it-it/vocabulary/condition/rain.voc similarity index 100% rename from locale/it-it/Rain.voc rename to locale/it-it/vocabulary/condition/rain.voc diff --git a/locale/it-it/Snow.voc b/locale/it-it/vocabulary/condition/snow.voc similarity index 100% rename from locale/it-it/Snow.voc rename to locale/it-it/vocabulary/condition/snow.voc diff --git a/locale/it-it/Windy.voc b/locale/it-it/vocabulary/condition/windy.voc similarity index 100% rename from locale/it-it/Windy.voc rename to locale/it-it/vocabulary/condition/windy.voc diff --git a/locale/it-it/Later.voc b/locale/it-it/vocabulary/date-time/later.voc similarity index 100% rename from locale/it-it/Later.voc rename to locale/it-it/vocabulary/date-time/later.voc diff --git a/locale/it-it/Next.voc b/locale/it-it/vocabulary/date-time/next.voc similarity index 100% rename from locale/it-it/Next.voc rename to locale/it-it/vocabulary/date-time/next.voc diff --git a/locale/it-it/Weekend.voc b/locale/it-it/vocabulary/date-time/weekend.voc similarity index 100% rename from locale/it-it/Weekend.voc rename to locale/it-it/vocabulary/date-time/weekend.voc diff --git a/locale/it-it/ConfirmQuery.voc b/locale/it-it/vocabulary/query/confirm-query.voc similarity index 100% rename from locale/it-it/ConfirmQuery.voc rename to locale/it-it/vocabulary/query/confirm-query.voc diff --git a/locale/it-it/Query.voc b/locale/it-it/vocabulary/query/query.voc similarity index 100% rename from locale/it-it/Query.voc rename to locale/it-it/vocabulary/query/query.voc diff --git a/locale/it-it/Cold.voc b/locale/it-it/vocabulary/temperature/cold.voc similarity index 100% rename from locale/it-it/Cold.voc rename to locale/it-it/vocabulary/temperature/cold.voc diff --git a/locale/it-it/High.voc b/locale/it-it/vocabulary/temperature/high.voc similarity index 100% rename from locale/it-it/High.voc rename to locale/it-it/vocabulary/temperature/high.voc diff --git a/locale/it-it/Hot.voc b/locale/it-it/vocabulary/temperature/hot.voc similarity index 100% rename from locale/it-it/Hot.voc rename to locale/it-it/vocabulary/temperature/hot.voc diff --git a/locale/it-it/Low.voc b/locale/it-it/vocabulary/temperature/low.voc similarity index 100% rename from locale/it-it/Low.voc rename to locale/it-it/vocabulary/temperature/low.voc diff --git a/locale/it-it/Temperature.voc b/locale/it-it/vocabulary/temperature/temperature.voc similarity index 100% rename from locale/it-it/Temperature.voc rename to locale/it-it/vocabulary/temperature/temperature.voc diff --git a/locale/it-it/Fahrenheit.voc b/locale/it-it/vocabulary/unit/fahrenheit.voc similarity index 100% rename from locale/it-it/Fahrenheit.voc rename to locale/it-it/vocabulary/unit/fahrenheit.voc diff --git a/locale/it-it/Unit.entity b/locale/it-it/vocabulary/unit/unit.entity similarity index 100% rename from locale/it-it/Unit.entity rename to locale/it-it/vocabulary/unit/unit.entity diff --git a/locale/it-it/Unit.voc b/locale/it-it/vocabulary/unit/unit.voc similarity index 100% rename from locale/it-it/Unit.voc rename to locale/it-it/vocabulary/unit/unit.voc diff --git a/locale/it-it/Weather.voc b/locale/it-it/weather.voc similarity index 100% rename from locale/it-it/Weather.voc rename to locale/it-it/weather.voc diff --git a/locale/nl-nl/WeatherType.voc b/locale/nl-nl/WeatherType.voc deleted file mode 100644 index c16355e0..00000000 --- a/locale/nl-nl/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -regen|regenen -sneeuw|sneeuwen -ijzel -hagel|hagelen -zonnig|zon -heet|warm -koud|koel diff --git a/locale/nl-nl/no precipitation expected.dialog b/locale/nl-nl/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/nl-nl/no precipitation expected.dialog rename to locale/nl-nl/dialog/condition/no precipitation expected.dialog diff --git a/locale/nl-nl/precipitation expected.dialog b/locale/nl-nl/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/nl-nl/precipitation expected.dialog rename to locale/nl-nl/dialog/condition/precipitation expected.dialog diff --git a/locale/nl-nl/rain.dialog b/locale/nl-nl/dialog/condition/rain.dialog similarity index 100% rename from locale/nl-nl/rain.dialog rename to locale/nl-nl/dialog/condition/rain.dialog diff --git a/locale/nl-nl/snow.dialog b/locale/nl-nl/dialog/condition/snow.dialog similarity index 100% rename from locale/nl-nl/snow.dialog rename to locale/nl-nl/dialog/condition/snow.dialog diff --git a/locale/nl-nl/current.humidity.location.dialog b/locale/nl-nl/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/nl-nl/current.humidity.location.dialog rename to locale/nl-nl/dialog/current/current-humidity-location.dialog diff --git a/locale/nl-nl/current.weather.local.dialog b/locale/nl-nl/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/nl-nl/current.weather.local.dialog rename to locale/nl-nl/dialog/current/current-weather-local.dialog diff --git a/locale/nl-nl/current.weather.location.dialog b/locale/nl-nl/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/nl-nl/current.weather.location.dialog rename to locale/nl-nl/dialog/current/current-weather-location.dialog diff --git a/locale/nl-nl/daily.weather.local.dialog b/locale/nl-nl/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/nl-nl/daily.weather.local.dialog rename to locale/nl-nl/dialog/daily/daily-weather-local.dialog diff --git a/locale/nl-nl/daily.weather.location.dialog b/locale/nl-nl/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/nl-nl/daily.weather.location.dialog rename to locale/nl-nl/dialog/daily/daily-weather-location.dialog diff --git a/locale/nl-nl/east.dialog b/locale/nl-nl/dialog/direction/east.dialog similarity index 100% rename from locale/nl-nl/east.dialog rename to locale/nl-nl/dialog/direction/east.dialog diff --git a/locale/nl-nl/north.dialog b/locale/nl-nl/dialog/direction/north.dialog similarity index 100% rename from locale/nl-nl/north.dialog rename to locale/nl-nl/dialog/direction/north.dialog diff --git a/locale/nl-nl/northeast.dialog b/locale/nl-nl/dialog/direction/northeast.dialog similarity index 100% rename from locale/nl-nl/northeast.dialog rename to locale/nl-nl/dialog/direction/northeast.dialog diff --git a/locale/nl-nl/northwest.dialog b/locale/nl-nl/dialog/direction/northwest.dialog similarity index 100% rename from locale/nl-nl/northwest.dialog rename to locale/nl-nl/dialog/direction/northwest.dialog diff --git a/locale/nl-nl/south.dialog b/locale/nl-nl/dialog/direction/south.dialog similarity index 100% rename from locale/nl-nl/south.dialog rename to locale/nl-nl/dialog/direction/south.dialog diff --git a/locale/nl-nl/southeast.dialog b/locale/nl-nl/dialog/direction/southeast.dialog similarity index 100% rename from locale/nl-nl/southeast.dialog rename to locale/nl-nl/dialog/direction/southeast.dialog diff --git a/locale/nl-nl/southwest.dialog b/locale/nl-nl/dialog/direction/southwest.dialog similarity index 100% rename from locale/nl-nl/southwest.dialog rename to locale/nl-nl/dialog/direction/southwest.dialog diff --git a/locale/nl-nl/location.not.found.dialog b/locale/nl-nl/dialog/error/location-not-found.dialog similarity index 100% rename from locale/nl-nl/location.not.found.dialog rename to locale/nl-nl/dialog/error/location-not-found.dialog diff --git a/locale/nl-nl/hourly.weather.local.dialog b/locale/nl-nl/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/nl-nl/hourly.weather.local.dialog rename to locale/nl-nl/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/nl-nl/hourly.weather.location.dialog b/locale/nl-nl/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/nl-nl/hourly.weather.location.dialog rename to locale/nl-nl/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/nl-nl/celsius.dialog b/locale/nl-nl/dialog/unit/celsius.dialog similarity index 100% rename from locale/nl-nl/celsius.dialog rename to locale/nl-nl/dialog/unit/celsius.dialog diff --git a/locale/nl-nl/fahrenheit.dialog b/locale/nl-nl/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/nl-nl/fahrenheit.dialog rename to locale/nl-nl/dialog/unit/fahrenheit.dialog diff --git a/locale/nl-nl/meters per second.dialog b/locale/nl-nl/dialog/unit/meters per second.dialog similarity index 100% rename from locale/nl-nl/meters per second.dialog rename to locale/nl-nl/dialog/unit/meters per second.dialog diff --git a/locale/nl-nl/miles per hour.dialog b/locale/nl-nl/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/nl-nl/miles per hour.dialog rename to locale/nl-nl/dialog/unit/miles per hour.dialog diff --git a/locale/nl-nl/Forecast.voc b/locale/nl-nl/forecast.voc similarity index 100% rename from locale/nl-nl/Forecast.voc rename to locale/nl-nl/forecast.voc diff --git a/locale/nl-nl/Location.voc b/locale/nl-nl/location.voc similarity index 100% rename from locale/nl-nl/Location.voc rename to locale/nl-nl/location.voc diff --git a/locale/nl-nl/no forecast.dialog b/locale/nl-nl/no forecast.dialog deleted file mode 100644 index a5a53da4..00000000 --- a/locale/nl-nl/no forecast.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Sorry, ik ken de weersverwachting voor {{day}} niet -Ik heb geen weersvoorspelling voor {{day}} diff --git a/locale/nl-nl/location.rx b/locale/nl-nl/regex/location.rx similarity index 100% rename from locale/nl-nl/location.rx rename to locale/nl-nl/regex/location.rx diff --git a/locale/nl-nl/Sunrise.voc b/locale/nl-nl/sunrise.voc similarity index 100% rename from locale/nl-nl/Sunrise.voc rename to locale/nl-nl/sunrise.voc diff --git a/locale/nl-nl/Sunset.voc b/locale/nl-nl/sunset.voc similarity index 100% rename from locale/nl-nl/Sunset.voc rename to locale/nl-nl/sunset.voc diff --git a/locale/nl-nl/Humidity.voc b/locale/nl-nl/vocabulary/condition/humidity.voc similarity index 100% rename from locale/nl-nl/Humidity.voc rename to locale/nl-nl/vocabulary/condition/humidity.voc diff --git a/locale/nl-nl/Precipitation.voc b/locale/nl-nl/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/nl-nl/Precipitation.voc rename to locale/nl-nl/vocabulary/condition/precipitation.voc diff --git a/locale/nl-nl/Windy.voc b/locale/nl-nl/vocabulary/condition/windy.voc similarity index 100% rename from locale/nl-nl/Windy.voc rename to locale/nl-nl/vocabulary/condition/windy.voc diff --git a/locale/nl-nl/Later.voc b/locale/nl-nl/vocabulary/date-time/later.voc similarity index 100% rename from locale/nl-nl/Later.voc rename to locale/nl-nl/vocabulary/date-time/later.voc diff --git a/locale/nl-nl/Next.voc b/locale/nl-nl/vocabulary/date-time/next.voc similarity index 100% rename from locale/nl-nl/Next.voc rename to locale/nl-nl/vocabulary/date-time/next.voc diff --git a/locale/nl-nl/Query.voc b/locale/nl-nl/vocabulary/query/query.voc similarity index 100% rename from locale/nl-nl/Query.voc rename to locale/nl-nl/vocabulary/query/query.voc diff --git a/locale/nl-nl/Weather.voc b/locale/nl-nl/weather.voc similarity index 100% rename from locale/nl-nl/Weather.voc rename to locale/nl-nl/weather.voc diff --git a/locale/pt-br/ThreeDay.voc b/locale/pt-br/ThreeDay.voc deleted file mode 100644 index 92abadb1..00000000 --- a/locale/pt-br/ThreeDay.voc +++ /dev/null @@ -1,3 +0,0 @@ -3 dias -três dias -próximos dias diff --git a/locale/pt-br/WeatherType.voc b/locale/pt-br/WeatherType.voc deleted file mode 100644 index 79dbf06c..00000000 --- a/locale/pt-br/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -chuva|chovendo -neve|nevando -granizo -granizo|chovendo granizo -(ensolarado|sol) -quente|morno -frio|gelado diff --git a/locale/pt-br/and.dialog b/locale/pt-br/dialog/and.dialog similarity index 100% rename from locale/pt-br/and.dialog rename to locale/pt-br/dialog/and.dialog diff --git a/locale/pt-br/clear sky.dialog b/locale/pt-br/dialog/condition/clear sky.dialog similarity index 100% rename from locale/pt-br/clear sky.dialog rename to locale/pt-br/dialog/condition/clear sky.dialog diff --git a/locale/pt-br/clear.dialog b/locale/pt-br/dialog/condition/clear.dialog similarity index 100% rename from locale/pt-br/clear.dialog rename to locale/pt-br/dialog/condition/clear.dialog diff --git a/locale/pt-br/no precipitation expected.dialog b/locale/pt-br/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/pt-br/no precipitation expected.dialog rename to locale/pt-br/dialog/condition/no precipitation expected.dialog diff --git a/locale/pt-br/precipitation expected.dialog b/locale/pt-br/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/pt-br/precipitation expected.dialog rename to locale/pt-br/dialog/condition/precipitation expected.dialog diff --git a/locale/pt-br/rain.dialog b/locale/pt-br/dialog/condition/rain.dialog similarity index 100% rename from locale/pt-br/rain.dialog rename to locale/pt-br/dialog/condition/rain.dialog diff --git a/locale/pt-br/snow.dialog b/locale/pt-br/dialog/condition/snow.dialog similarity index 100% rename from locale/pt-br/snow.dialog rename to locale/pt-br/dialog/condition/snow.dialog diff --git a/locale/pt-br/thunderstorm.dialog b/locale/pt-br/dialog/condition/thunderstorm.dialog similarity index 100% rename from locale/pt-br/thunderstorm.dialog rename to locale/pt-br/dialog/condition/thunderstorm.dialog diff --git a/locale/pt-br/current.condition.expected.local.dialog b/locale/pt-br/dialog/current/current-condition-expected-local.dialog similarity index 100% rename from locale/pt-br/current.condition.expected.local.dialog rename to locale/pt-br/dialog/current/current-condition-expected-local.dialog diff --git a/locale/pt-br/current.condition.expected.location.dialog b/locale/pt-br/dialog/current/current-condition-expected-location.dialog similarity index 100% rename from locale/pt-br/current.condition.expected.location.dialog rename to locale/pt-br/dialog/current/current-condition-expected-location.dialog diff --git a/locale/pt-br/current.humidity.location.dialog b/locale/pt-br/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/pt-br/current.humidity.location.dialog rename to locale/pt-br/dialog/current/current-humidity-location.dialog diff --git a/locale/pt-br/current.temperature.high.local.dialog b/locale/pt-br/dialog/current/current-temperature-high-local.dialog similarity index 100% rename from locale/pt-br/current.temperature.high.local.dialog rename to locale/pt-br/dialog/current/current-temperature-high-local.dialog diff --git a/locale/pt-br/current.temperature.high.location.dialog b/locale/pt-br/dialog/current/current-temperature-high-location.dialog similarity index 100% rename from locale/pt-br/current.temperature.high.location.dialog rename to locale/pt-br/dialog/current/current-temperature-high-location.dialog diff --git a/locale/pt-br/current.temperature.high.low.dialog b/locale/pt-br/dialog/current/current-temperature-high-low.dialog similarity index 100% rename from locale/pt-br/current.temperature.high.low.dialog rename to locale/pt-br/dialog/current/current-temperature-high-low.dialog diff --git a/locale/pt-br/current.temperature.local.dialog b/locale/pt-br/dialog/current/current-temperature-local.dialog similarity index 100% rename from locale/pt-br/current.temperature.local.dialog rename to locale/pt-br/dialog/current/current-temperature-local.dialog diff --git a/locale/pt-br/current.temperature.location.dialog b/locale/pt-br/dialog/current/current-temperature-location.dialog similarity index 100% rename from locale/pt-br/current.temperature.location.dialog rename to locale/pt-br/dialog/current/current-temperature-location.dialog diff --git a/locale/pt-br/current.temperature.low.local.dialog b/locale/pt-br/dialog/current/current-temperature-low-local.dialog similarity index 100% rename from locale/pt-br/current.temperature.low.local.dialog rename to locale/pt-br/dialog/current/current-temperature-low-local.dialog diff --git a/locale/pt-br/current.temperature.low.location.dialog b/locale/pt-br/dialog/current/current-temperature-low-location.dialog similarity index 100% rename from locale/pt-br/current.temperature.low.location.dialog rename to locale/pt-br/dialog/current/current-temperature-low-location.dialog diff --git a/locale/pt-br/current.weather.local.dialog b/locale/pt-br/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/pt-br/current.weather.local.dialog rename to locale/pt-br/dialog/current/current-weather-local.dialog diff --git a/locale/pt-br/current.weather.location.dialog b/locale/pt-br/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/pt-br/current.weather.location.dialog rename to locale/pt-br/dialog/current/current-weather-location.dialog diff --git a/locale/pt-br/current.wind.light.local.dialog b/locale/pt-br/dialog/current/current-wind-light-local.dialog similarity index 100% rename from locale/pt-br/current.wind.light.local.dialog rename to locale/pt-br/dialog/current/current-wind-light-local.dialog diff --git a/locale/pt-br/current.wind.light.location.dialog b/locale/pt-br/dialog/current/current-wind-light-location.dialog similarity index 100% rename from locale/pt-br/current.wind.light.location.dialog rename to locale/pt-br/dialog/current/current-wind-light-location.dialog diff --git a/locale/pt-br/current.wind.moderate.local.dialog b/locale/pt-br/dialog/current/current-wind-moderate-local.dialog similarity index 100% rename from locale/pt-br/current.wind.moderate.local.dialog rename to locale/pt-br/dialog/current/current-wind-moderate-local.dialog diff --git a/locale/pt-br/current.wind.moderate.location.dialog b/locale/pt-br/dialog/current/current-wind-moderate-location.dialog similarity index 100% rename from locale/pt-br/current.wind.moderate.location.dialog rename to locale/pt-br/dialog/current/current-wind-moderate-location.dialog diff --git a/locale/pt-br/current.wind.strong.local.dialog b/locale/pt-br/dialog/current/current-wind-strong-local.dialog similarity index 100% rename from locale/pt-br/current.wind.strong.local.dialog rename to locale/pt-br/dialog/current/current-wind-strong-local.dialog diff --git a/locale/pt-br/current.wind.strong.location.dialog b/locale/pt-br/dialog/current/current-wind-strong-location.dialog similarity index 100% rename from locale/pt-br/current.wind.strong.location.dialog rename to locale/pt-br/dialog/current/current-wind-strong-location.dialog diff --git a/locale/pt-br/daily.condition.expected.local.dialog b/locale/pt-br/dialog/daily/daily-condition-expected-local.dialog similarity index 100% rename from locale/pt-br/daily.condition.expected.local.dialog rename to locale/pt-br/dialog/daily/daily-condition-expected-local.dialog diff --git a/locale/pt-br/daily.condition.expected.location.dialog b/locale/pt-br/dialog/daily/daily-condition-expected-location.dialog similarity index 100% rename from locale/pt-br/daily.condition.expected.location.dialog rename to locale/pt-br/dialog/daily/daily-condition-expected-location.dialog diff --git a/locale/pt-br/daily.temperature.high.local.dialog b/locale/pt-br/dialog/daily/daily-temperature-high-local.dialog similarity index 100% rename from locale/pt-br/daily.temperature.high.local.dialog rename to locale/pt-br/dialog/daily/daily-temperature-high-local.dialog diff --git a/locale/pt-br/daily.temperature.high.dialog b/locale/pt-br/dialog/daily/daily-temperature-high.dialog similarity index 100% rename from locale/pt-br/daily.temperature.high.dialog rename to locale/pt-br/dialog/daily/daily-temperature-high.dialog diff --git a/locale/pt-br/daily.temperature.local.dialog b/locale/pt-br/dialog/daily/daily-temperature-local.dialog similarity index 100% rename from locale/pt-br/daily.temperature.local.dialog rename to locale/pt-br/dialog/daily/daily-temperature-local.dialog diff --git a/locale/pt-br/daily.temperature.location.dialog b/locale/pt-br/dialog/daily/daily-temperature-location.dialog similarity index 100% rename from locale/pt-br/daily.temperature.location.dialog rename to locale/pt-br/dialog/daily/daily-temperature-location.dialog diff --git a/locale/pt-br/daily.temperature.low.local.dialog b/locale/pt-br/dialog/daily/daily-temperature-low-local.dialog similarity index 100% rename from locale/pt-br/daily.temperature.low.local.dialog rename to locale/pt-br/dialog/daily/daily-temperature-low-local.dialog diff --git a/locale/pt-br/daily.temperature.low.location.dialog b/locale/pt-br/dialog/daily/daily-temperature-low-location.dialog similarity index 100% rename from locale/pt-br/daily.temperature.low.location.dialog rename to locale/pt-br/dialog/daily/daily-temperature-low-location.dialog diff --git a/locale/pt-br/daily.weather.local.dialog b/locale/pt-br/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/pt-br/daily.weather.local.dialog rename to locale/pt-br/dialog/daily/daily-weather-local.dialog diff --git a/locale/pt-br/daily.weather.location.dialog b/locale/pt-br/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/pt-br/daily.weather.location.dialog rename to locale/pt-br/dialog/daily/daily-weather-location.dialog diff --git a/locale/pt-br/daily.wind.light.local.dialog b/locale/pt-br/dialog/daily/daily-wind-light-local.dialog similarity index 100% rename from locale/pt-br/daily.wind.light.local.dialog rename to locale/pt-br/dialog/daily/daily-wind-light-local.dialog diff --git a/locale/pt-br/daily.wind.light.location.dialog b/locale/pt-br/dialog/daily/daily-wind-light-location.dialog similarity index 100% rename from locale/pt-br/daily.wind.light.location.dialog rename to locale/pt-br/dialog/daily/daily-wind-light-location.dialog diff --git a/locale/pt-br/daily.wind.moderate.local.dialog b/locale/pt-br/dialog/daily/daily-wind-moderate-local.dialog similarity index 100% rename from locale/pt-br/daily.wind.moderate.local.dialog rename to locale/pt-br/dialog/daily/daily-wind-moderate-local.dialog diff --git a/locale/pt-br/daily.wind.moderate.location.dialog b/locale/pt-br/dialog/daily/daily-wind-moderate-location.dialog similarity index 100% rename from locale/pt-br/daily.wind.moderate.location.dialog rename to locale/pt-br/dialog/daily/daily-wind-moderate-location.dialog diff --git a/locale/pt-br/daily.wind.strong.local.dialog b/locale/pt-br/dialog/daily/daily-wind-strong-local.dialog similarity index 100% rename from locale/pt-br/daily.wind.strong.local.dialog rename to locale/pt-br/dialog/daily/daily-wind-strong-local.dialog diff --git a/locale/pt-br/daily.wind.strong.location.dialog b/locale/pt-br/dialog/daily/daily-wind-strong-location.dialog similarity index 100% rename from locale/pt-br/daily.wind.strong.location.dialog rename to locale/pt-br/dialog/daily/daily-wind-strong-location.dialog diff --git a/locale/pt-br/east.dialog b/locale/pt-br/dialog/direction/east.dialog similarity index 100% rename from locale/pt-br/east.dialog rename to locale/pt-br/dialog/direction/east.dialog diff --git a/locale/pt-br/north.dialog b/locale/pt-br/dialog/direction/north.dialog similarity index 100% rename from locale/pt-br/north.dialog rename to locale/pt-br/dialog/direction/north.dialog diff --git a/locale/pt-br/northeast.dialog b/locale/pt-br/dialog/direction/northeast.dialog similarity index 100% rename from locale/pt-br/northeast.dialog rename to locale/pt-br/dialog/direction/northeast.dialog diff --git a/locale/pt-br/northwest.dialog b/locale/pt-br/dialog/direction/northwest.dialog similarity index 100% rename from locale/pt-br/northwest.dialog rename to locale/pt-br/dialog/direction/northwest.dialog diff --git a/locale/pt-br/south.dialog b/locale/pt-br/dialog/direction/south.dialog similarity index 100% rename from locale/pt-br/south.dialog rename to locale/pt-br/dialog/direction/south.dialog diff --git a/locale/pt-br/southeast.dialog b/locale/pt-br/dialog/direction/southeast.dialog similarity index 100% rename from locale/pt-br/southeast.dialog rename to locale/pt-br/dialog/direction/southeast.dialog diff --git a/locale/pt-br/southwest.dialog b/locale/pt-br/dialog/direction/southwest.dialog similarity index 100% rename from locale/pt-br/southwest.dialog rename to locale/pt-br/dialog/direction/southwest.dialog diff --git a/locale/pt-br/west.dialog b/locale/pt-br/dialog/direction/west.dialog similarity index 100% rename from locale/pt-br/west.dialog rename to locale/pt-br/dialog/direction/west.dialog diff --git a/locale/pt-br/cant.get.forecast.dialog b/locale/pt-br/dialog/error/cant-get-forecast.dialog similarity index 100% rename from locale/pt-br/cant.get.forecast.dialog rename to locale/pt-br/dialog/error/cant-get-forecast.dialog diff --git a/locale/pt-br/location.not.found.dialog b/locale/pt-br/dialog/error/location-not-found.dialog similarity index 100% rename from locale/pt-br/location.not.found.dialog rename to locale/pt-br/dialog/error/location-not-found.dialog diff --git a/locale/pt-br/hourly.condition.alternative.local.dialog b/locale/pt-br/dialog/hourly/hourly-condition-alternative-local.dialog similarity index 100% rename from locale/pt-br/hourly.condition.alternative.local.dialog rename to locale/pt-br/dialog/hourly/hourly-condition-alternative-local.dialog diff --git a/locale/pt-br/hourly.condition.alternative.location.dialog b/locale/pt-br/dialog/hourly/hourly-condition-alternative-location.dialog similarity index 100% rename from locale/pt-br/hourly.condition.alternative.location.dialog rename to locale/pt-br/dialog/hourly/hourly-condition-alternative-location.dialog diff --git a/locale/pt-br/hourly.condition.expected.local.dialog b/locale/pt-br/dialog/hourly/hourly-condition-expected-local.dialog similarity index 100% rename from locale/pt-br/hourly.condition.expected.local.dialog rename to locale/pt-br/dialog/hourly/hourly-condition-expected-local.dialog diff --git a/locale/pt-br/hourly.condition.expected.location.dialog b/locale/pt-br/dialog/hourly/hourly-condition-expected-location.dialog similarity index 100% rename from locale/pt-br/hourly.condition.expected.location.dialog rename to locale/pt-br/dialog/hourly/hourly-condition-expected-location.dialog diff --git a/locale/pt-br/hourly.condition.not.expected.local.dialog b/locale/pt-br/dialog/hourly/hourly-condition-not-expected-local.dialog similarity index 100% rename from locale/pt-br/hourly.condition.not.expected.local.dialog rename to locale/pt-br/dialog/hourly/hourly-condition-not-expected-local.dialog diff --git a/locale/pt-br/hourly.condition.not.expected.location.dialog b/locale/pt-br/dialog/hourly/hourly-condition-not-expected-location.dialog similarity index 100% rename from locale/pt-br/hourly.condition.not.expected.location.dialog rename to locale/pt-br/dialog/hourly/hourly-condition-not-expected-location.dialog diff --git a/locale/pt-br/hourly.temperature.local.dialog b/locale/pt-br/dialog/hourly/hourly-temperature-local.dialog similarity index 100% rename from locale/pt-br/hourly.temperature.local.dialog rename to locale/pt-br/dialog/hourly/hourly-temperature-local.dialog diff --git a/locale/pt-br/hourly.weather.local.dialog b/locale/pt-br/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/pt-br/hourly.weather.local.dialog rename to locale/pt-br/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/pt-br/hourly.weather.location.dialog b/locale/pt-br/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/pt-br/hourly.weather.location.dialog rename to locale/pt-br/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/pt-br/percentage.number.dialog b/locale/pt-br/dialog/percentage-number.dialog similarity index 100% rename from locale/pt-br/percentage.number.dialog rename to locale/pt-br/dialog/percentage-number.dialog diff --git a/locale/pt-br/celsius.dialog b/locale/pt-br/dialog/unit/celsius.dialog similarity index 100% rename from locale/pt-br/celsius.dialog rename to locale/pt-br/dialog/unit/celsius.dialog diff --git a/locale/pt-br/fahrenheit.dialog b/locale/pt-br/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/pt-br/fahrenheit.dialog rename to locale/pt-br/dialog/unit/fahrenheit.dialog diff --git a/locale/pt-br/meters per second.dialog b/locale/pt-br/dialog/unit/meters per second.dialog similarity index 100% rename from locale/pt-br/meters per second.dialog rename to locale/pt-br/dialog/unit/meters per second.dialog diff --git a/locale/pt-br/miles per hour.dialog b/locale/pt-br/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/pt-br/miles per hour.dialog rename to locale/pt-br/dialog/unit/miles per hour.dialog diff --git a/locale/pt-br/weekly.temperature.dialog b/locale/pt-br/dialog/weekly/weekly-temperature.dialog similarity index 100% rename from locale/pt-br/weekly.temperature.dialog rename to locale/pt-br/dialog/weekly/weekly-temperature.dialog diff --git a/locale/pt-br/Forecast.voc b/locale/pt-br/forecast.voc similarity index 100% rename from locale/pt-br/Forecast.voc rename to locale/pt-br/forecast.voc diff --git a/locale/pt-br/Location.voc b/locale/pt-br/location.voc similarity index 100% rename from locale/pt-br/Location.voc rename to locale/pt-br/location.voc diff --git a/locale/pt-br/no.forecast.dialog b/locale/pt-br/no.forecast.dialog deleted file mode 100644 index 3662d054..00000000 --- a/locale/pt-br/no.forecast.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Desculpe, eu não tenho a previsão para {day} -Eu não tenho uma previsão para {day} diff --git a/locale/pt-br/location.rx b/locale/pt-br/regex/location.rx similarity index 100% rename from locale/pt-br/location.rx rename to locale/pt-br/regex/location.rx diff --git a/locale/pt-br/Sunrise.voc b/locale/pt-br/sunrise.voc similarity index 100% rename from locale/pt-br/Sunrise.voc rename to locale/pt-br/sunrise.voc diff --git a/locale/pt-br/Sunset.voc b/locale/pt-br/sunset.voc similarity index 100% rename from locale/pt-br/Sunset.voc rename to locale/pt-br/sunset.voc diff --git a/locale/pt-br/Clear.voc b/locale/pt-br/vocabulary/condition/clear.voc similarity index 100% rename from locale/pt-br/Clear.voc rename to locale/pt-br/vocabulary/condition/clear.voc diff --git a/locale/pt-br/Clouds.voc b/locale/pt-br/vocabulary/condition/clouds.voc similarity index 100% rename from locale/pt-br/Clouds.voc rename to locale/pt-br/vocabulary/condition/clouds.voc diff --git a/locale/pt-br/do.i.need.an.umbrella.intent b/locale/pt-br/vocabulary/condition/do.i.need.an.umbrella.intent similarity index 100% rename from locale/pt-br/do.i.need.an.umbrella.intent rename to locale/pt-br/vocabulary/condition/do.i.need.an.umbrella.intent diff --git a/locale/pt-br/Fog.voc b/locale/pt-br/vocabulary/condition/fog.voc similarity index 100% rename from locale/pt-br/Fog.voc rename to locale/pt-br/vocabulary/condition/fog.voc diff --git a/locale/pt-br/Humidity.voc b/locale/pt-br/vocabulary/condition/humidity.voc similarity index 100% rename from locale/pt-br/Humidity.voc rename to locale/pt-br/vocabulary/condition/humidity.voc diff --git a/locale/pt-br/Precipitation.voc b/locale/pt-br/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/pt-br/Precipitation.voc rename to locale/pt-br/vocabulary/condition/precipitation.voc diff --git a/locale/pt-br/Rain.voc b/locale/pt-br/vocabulary/condition/rain.voc similarity index 100% rename from locale/pt-br/Rain.voc rename to locale/pt-br/vocabulary/condition/rain.voc diff --git a/locale/pt-br/Snow.voc b/locale/pt-br/vocabulary/condition/snow.voc similarity index 100% rename from locale/pt-br/Snow.voc rename to locale/pt-br/vocabulary/condition/snow.voc diff --git a/locale/pt-br/Thunderstorm.voc b/locale/pt-br/vocabulary/condition/thunderstorm.voc similarity index 100% rename from locale/pt-br/Thunderstorm.voc rename to locale/pt-br/vocabulary/condition/thunderstorm.voc diff --git a/locale/pt-br/Windy.voc b/locale/pt-br/vocabulary/condition/windy.voc similarity index 100% rename from locale/pt-br/Windy.voc rename to locale/pt-br/vocabulary/condition/windy.voc diff --git a/locale/pt-br/Couple.voc b/locale/pt-br/vocabulary/date-time/couple.voc similarity index 100% rename from locale/pt-br/Couple.voc rename to locale/pt-br/vocabulary/date-time/couple.voc diff --git a/locale/pt-br/Later.voc b/locale/pt-br/vocabulary/date-time/later.voc similarity index 100% rename from locale/pt-br/Later.voc rename to locale/pt-br/vocabulary/date-time/later.voc diff --git a/locale/pt-br/Next.voc b/locale/pt-br/vocabulary/date-time/next.voc similarity index 100% rename from locale/pt-br/Next.voc rename to locale/pt-br/vocabulary/date-time/next.voc diff --git a/locale/pt-br/Now.voc b/locale/pt-br/vocabulary/date-time/now.voc similarity index 100% rename from locale/pt-br/Now.voc rename to locale/pt-br/vocabulary/date-time/now.voc diff --git a/locale/pt-br/RelativeDay.voc b/locale/pt-br/vocabulary/date-time/relative-day.voc similarity index 100% rename from locale/pt-br/RelativeDay.voc rename to locale/pt-br/vocabulary/date-time/relative-day.voc diff --git a/locale/pt-br/RelativeTime.voc b/locale/pt-br/vocabulary/date-time/relative-time.voc similarity index 100% rename from locale/pt-br/RelativeTime.voc rename to locale/pt-br/vocabulary/date-time/relative-time.voc diff --git a/locale/pt-br/Today.voc b/locale/pt-br/vocabulary/date-time/today.voc similarity index 100% rename from locale/pt-br/Today.voc rename to locale/pt-br/vocabulary/date-time/today.voc diff --git a/locale/pt-br/Week.voc b/locale/pt-br/vocabulary/date-time/week.voc similarity index 100% rename from locale/pt-br/Week.voc rename to locale/pt-br/vocabulary/date-time/week.voc diff --git a/locale/pt-br/Weekend.voc b/locale/pt-br/vocabulary/date-time/weekend.voc similarity index 100% rename from locale/pt-br/Weekend.voc rename to locale/pt-br/vocabulary/date-time/weekend.voc diff --git a/locale/pt-br/ConfirmQueryCurrent.voc b/locale/pt-br/vocabulary/query/confirm-query-current.voc similarity index 100% rename from locale/pt-br/ConfirmQueryCurrent.voc rename to locale/pt-br/vocabulary/query/confirm-query-current.voc diff --git a/locale/pt-br/ConfirmQueryFuture.voc b/locale/pt-br/vocabulary/query/confirm-query-future.voc similarity index 100% rename from locale/pt-br/ConfirmQueryFuture.voc rename to locale/pt-br/vocabulary/query/confirm-query-future.voc diff --git a/locale/pt-br/ConfirmQuery.voc b/locale/pt-br/vocabulary/query/confirm-query.voc similarity index 100% rename from locale/pt-br/ConfirmQuery.voc rename to locale/pt-br/vocabulary/query/confirm-query.voc diff --git a/locale/pt-br/How.voc b/locale/pt-br/vocabulary/query/how.voc similarity index 100% rename from locale/pt-br/How.voc rename to locale/pt-br/vocabulary/query/how.voc diff --git a/locale/pt-br/Query.voc b/locale/pt-br/vocabulary/query/query.voc similarity index 100% rename from locale/pt-br/Query.voc rename to locale/pt-br/vocabulary/query/query.voc diff --git a/locale/pt-br/When.voc b/locale/pt-br/vocabulary/query/when.voc similarity index 100% rename from locale/pt-br/When.voc rename to locale/pt-br/vocabulary/query/when.voc diff --git a/locale/pt-br/Cold.voc b/locale/pt-br/vocabulary/temperature/cold.voc similarity index 100% rename from locale/pt-br/Cold.voc rename to locale/pt-br/vocabulary/temperature/cold.voc diff --git a/locale/pt-br/High.voc b/locale/pt-br/vocabulary/temperature/high.voc similarity index 100% rename from locale/pt-br/High.voc rename to locale/pt-br/vocabulary/temperature/high.voc diff --git a/locale/pt-br/Hot.voc b/locale/pt-br/vocabulary/temperature/hot.voc similarity index 100% rename from locale/pt-br/Hot.voc rename to locale/pt-br/vocabulary/temperature/hot.voc diff --git a/locale/pt-br/Low.voc b/locale/pt-br/vocabulary/temperature/low.voc similarity index 100% rename from locale/pt-br/Low.voc rename to locale/pt-br/vocabulary/temperature/low.voc diff --git a/locale/pt-br/Temperature.voc b/locale/pt-br/vocabulary/temperature/temperature.voc similarity index 100% rename from locale/pt-br/Temperature.voc rename to locale/pt-br/vocabulary/temperature/temperature.voc diff --git a/locale/pt-br/Fahrenheit.voc b/locale/pt-br/vocabulary/unit/fahrenheit.voc similarity index 100% rename from locale/pt-br/Fahrenheit.voc rename to locale/pt-br/vocabulary/unit/fahrenheit.voc diff --git a/locale/pt-br/Unit.entity b/locale/pt-br/vocabulary/unit/unit.entity similarity index 100% rename from locale/pt-br/Unit.entity rename to locale/pt-br/vocabulary/unit/unit.entity diff --git a/locale/pt-br/Unit.voc b/locale/pt-br/vocabulary/unit/unit.voc similarity index 100% rename from locale/pt-br/Unit.voc rename to locale/pt-br/vocabulary/unit/unit.voc diff --git a/locale/pt-br/Weather.voc b/locale/pt-br/weather.voc similarity index 100% rename from locale/pt-br/Weather.voc rename to locale/pt-br/weather.voc diff --git a/locale/ru-ru/WeatherType.voc b/locale/ru-ru/WeatherType.voc deleted file mode 100644 index 181ef683..00000000 --- a/locale/ru-ru/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -дождь -снег -мокрый снег -град -солнечно -жарко -холодно diff --git a/locale/ru-ru/no precipitation expected.dialog b/locale/ru-ru/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/ru-ru/no precipitation expected.dialog rename to locale/ru-ru/dialog/condition/no precipitation expected.dialog diff --git a/locale/ru-ru/precipitation expected.dialog b/locale/ru-ru/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/ru-ru/precipitation expected.dialog rename to locale/ru-ru/dialog/condition/precipitation expected.dialog diff --git a/locale/ru-ru/rain.dialog b/locale/ru-ru/dialog/condition/rain.dialog similarity index 100% rename from locale/ru-ru/rain.dialog rename to locale/ru-ru/dialog/condition/rain.dialog diff --git a/locale/ru-ru/snow.dialog b/locale/ru-ru/dialog/condition/snow.dialog similarity index 100% rename from locale/ru-ru/snow.dialog rename to locale/ru-ru/dialog/condition/snow.dialog diff --git a/locale/ru-ru/current.humidity.location.dialog b/locale/ru-ru/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/ru-ru/current.humidity.location.dialog rename to locale/ru-ru/dialog/current/current-humidity-location.dialog diff --git a/locale/ru-ru/current.weather.local.dialog b/locale/ru-ru/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/ru-ru/current.weather.local.dialog rename to locale/ru-ru/dialog/current/current-weather-local.dialog diff --git a/locale/ru-ru/current.weather.location.dialog b/locale/ru-ru/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/ru-ru/current.weather.location.dialog rename to locale/ru-ru/dialog/current/current-weather-location.dialog diff --git a/locale/ru-ru/daily.weather.loation.dialog b/locale/ru-ru/dialog/daily/daily-weather-loation.dialog similarity index 100% rename from locale/ru-ru/daily.weather.loation.dialog rename to locale/ru-ru/dialog/daily/daily-weather-loation.dialog diff --git a/locale/ru-ru/daily.weather.local.dialog b/locale/ru-ru/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/ru-ru/daily.weather.local.dialog rename to locale/ru-ru/dialog/daily/daily-weather-local.dialog diff --git a/locale/ru-ru/east.dialog b/locale/ru-ru/dialog/direction/east.dialog similarity index 100% rename from locale/ru-ru/east.dialog rename to locale/ru-ru/dialog/direction/east.dialog diff --git a/locale/ru-ru/north.dialog b/locale/ru-ru/dialog/direction/north.dialog similarity index 100% rename from locale/ru-ru/north.dialog rename to locale/ru-ru/dialog/direction/north.dialog diff --git a/locale/ru-ru/northeast.dialog b/locale/ru-ru/dialog/direction/northeast.dialog similarity index 100% rename from locale/ru-ru/northeast.dialog rename to locale/ru-ru/dialog/direction/northeast.dialog diff --git a/locale/ru-ru/northwest.dialog b/locale/ru-ru/dialog/direction/northwest.dialog similarity index 100% rename from locale/ru-ru/northwest.dialog rename to locale/ru-ru/dialog/direction/northwest.dialog diff --git a/locale/ru-ru/south.dialog b/locale/ru-ru/dialog/direction/south.dialog similarity index 100% rename from locale/ru-ru/south.dialog rename to locale/ru-ru/dialog/direction/south.dialog diff --git a/locale/ru-ru/southeast.dialog b/locale/ru-ru/dialog/direction/southeast.dialog similarity index 100% rename from locale/ru-ru/southeast.dialog rename to locale/ru-ru/dialog/direction/southeast.dialog diff --git a/locale/ru-ru/southwest.dialog b/locale/ru-ru/dialog/direction/southwest.dialog similarity index 100% rename from locale/ru-ru/southwest.dialog rename to locale/ru-ru/dialog/direction/southwest.dialog diff --git a/locale/ru-ru/west.dialog b/locale/ru-ru/dialog/direction/west.dialog similarity index 100% rename from locale/ru-ru/west.dialog rename to locale/ru-ru/dialog/direction/west.dialog diff --git a/locale/ru-ru/location.not.found.dialog b/locale/ru-ru/dialog/error/location-not-found.dialog similarity index 100% rename from locale/ru-ru/location.not.found.dialog rename to locale/ru-ru/dialog/error/location-not-found.dialog diff --git a/locale/ru-ru/hourly.weather.local.dialog b/locale/ru-ru/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/ru-ru/hourly.weather.local.dialog rename to locale/ru-ru/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/ru-ru/hourly.weather.location.dialog b/locale/ru-ru/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/ru-ru/hourly.weather.location.dialog rename to locale/ru-ru/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/ru-ru/celsius.dialog b/locale/ru-ru/dialog/unit/celsius.dialog similarity index 100% rename from locale/ru-ru/celsius.dialog rename to locale/ru-ru/dialog/unit/celsius.dialog diff --git a/locale/ru-ru/fahrenheit.dialog b/locale/ru-ru/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/ru-ru/fahrenheit.dialog rename to locale/ru-ru/dialog/unit/fahrenheit.dialog diff --git a/locale/ru-ru/meters per second.dialog b/locale/ru-ru/dialog/unit/meters per second.dialog similarity index 100% rename from locale/ru-ru/meters per second.dialog rename to locale/ru-ru/dialog/unit/meters per second.dialog diff --git a/locale/ru-ru/miles per hour.dialog b/locale/ru-ru/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/ru-ru/miles per hour.dialog rename to locale/ru-ru/dialog/unit/miles per hour.dialog diff --git a/locale/ru-ru/Forecast.voc b/locale/ru-ru/forecast.voc similarity index 100% rename from locale/ru-ru/Forecast.voc rename to locale/ru-ru/forecast.voc diff --git a/locale/ru-ru/Location.voc b/locale/ru-ru/location.voc similarity index 100% rename from locale/ru-ru/Location.voc rename to locale/ru-ru/location.voc diff --git a/locale/ru-ru/no forecast.dialog b/locale/ru-ru/no forecast.dialog deleted file mode 100644 index 344d10f1..00000000 --- a/locale/ru-ru/no forecast.dialog +++ /dev/null @@ -1,2 +0,0 @@ -Извини, я не знаю прогноз на {{day}} -У меня нет прогноза погоды для {{day}} diff --git a/locale/ru-ru/location.rx b/locale/ru-ru/regex/location.rx similarity index 100% rename from locale/ru-ru/location.rx rename to locale/ru-ru/regex/location.rx diff --git a/locale/ru-ru/Sunrise.voc b/locale/ru-ru/sunrise.voc similarity index 100% rename from locale/ru-ru/Sunrise.voc rename to locale/ru-ru/sunrise.voc diff --git a/locale/ru-ru/Sunset.voc b/locale/ru-ru/sunset.voc similarity index 100% rename from locale/ru-ru/Sunset.voc rename to locale/ru-ru/sunset.voc diff --git a/locale/ru-ru/Humidity.voc b/locale/ru-ru/vocabulary/condition/humidity.voc similarity index 100% rename from locale/ru-ru/Humidity.voc rename to locale/ru-ru/vocabulary/condition/humidity.voc diff --git a/locale/ru-ru/Precipitation.voc b/locale/ru-ru/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/ru-ru/Precipitation.voc rename to locale/ru-ru/vocabulary/condition/precipitation.voc diff --git a/locale/ru-ru/Windy.voc b/locale/ru-ru/vocabulary/condition/windy.voc similarity index 100% rename from locale/ru-ru/Windy.voc rename to locale/ru-ru/vocabulary/condition/windy.voc diff --git a/locale/ru-ru/Later.voc b/locale/ru-ru/vocabulary/date-time/later.voc similarity index 100% rename from locale/ru-ru/Later.voc rename to locale/ru-ru/vocabulary/date-time/later.voc diff --git a/locale/ru-ru/Next.voc b/locale/ru-ru/vocabulary/date-time/next.voc similarity index 100% rename from locale/ru-ru/Next.voc rename to locale/ru-ru/vocabulary/date-time/next.voc diff --git a/locale/ru-ru/Query.voc b/locale/ru-ru/vocabulary/query/query.voc similarity index 100% rename from locale/ru-ru/Query.voc rename to locale/ru-ru/vocabulary/query/query.voc diff --git a/locale/ru-ru/Weather.voc b/locale/ru-ru/weather.voc similarity index 100% rename from locale/ru-ru/Weather.voc rename to locale/ru-ru/weather.voc diff --git a/locale/sv-se/ThreeDay.voc b/locale/sv-se/ThreeDay.voc deleted file mode 100644 index 2658e33c..00000000 --- a/locale/sv-se/ThreeDay.voc +++ /dev/null @@ -1,3 +0,0 @@ -3 dag(ar|) -tre dag(ar|) -några dagar diff --git a/locale/sv-se/WeatherType.voc b/locale/sv-se/WeatherType.voc deleted file mode 100644 index 740692a7..00000000 --- a/locale/sv-se/WeatherType.voc +++ /dev/null @@ -1,7 +0,0 @@ -regn|regnar -snö|snöar -snöblandat regn -hagel|haglar -soligt|sol -het|varm -kallt|kall diff --git a/locale/sv-se/and.dialog b/locale/sv-se/dialog/and.dialog similarity index 100% rename from locale/sv-se/and.dialog rename to locale/sv-se/dialog/and.dialog diff --git a/locale/sv-se/clear sky.dialog b/locale/sv-se/dialog/condition/clear sky.dialog similarity index 100% rename from locale/sv-se/clear sky.dialog rename to locale/sv-se/dialog/condition/clear sky.dialog diff --git a/locale/sv-se/clear.dialog b/locale/sv-se/dialog/condition/clear.dialog similarity index 100% rename from locale/sv-se/clear.dialog rename to locale/sv-se/dialog/condition/clear.dialog diff --git a/locale/sv-se/no precipitation expected.dialog b/locale/sv-se/dialog/condition/no precipitation expected.dialog similarity index 100% rename from locale/sv-se/no precipitation expected.dialog rename to locale/sv-se/dialog/condition/no precipitation expected.dialog diff --git a/locale/sv-se/precipitation expected.dialog b/locale/sv-se/dialog/condition/precipitation expected.dialog similarity index 100% rename from locale/sv-se/precipitation expected.dialog rename to locale/sv-se/dialog/condition/precipitation expected.dialog diff --git a/locale/sv-se/rain.dialog b/locale/sv-se/dialog/condition/rain.dialog similarity index 100% rename from locale/sv-se/rain.dialog rename to locale/sv-se/dialog/condition/rain.dialog diff --git a/locale/sv-se/snow.dialog b/locale/sv-se/dialog/condition/snow.dialog similarity index 100% rename from locale/sv-se/snow.dialog rename to locale/sv-se/dialog/condition/snow.dialog diff --git a/locale/sv-se/thunderstorm.dialog b/locale/sv-se/dialog/condition/thunderstorm.dialog similarity index 100% rename from locale/sv-se/thunderstorm.dialog rename to locale/sv-se/dialog/condition/thunderstorm.dialog diff --git a/locale/sv-se/current.condition.expected.local.dialog b/locale/sv-se/dialog/current/current-condition-expected-local.dialog similarity index 100% rename from locale/sv-se/current.condition.expected.local.dialog rename to locale/sv-se/dialog/current/current-condition-expected-local.dialog diff --git a/locale/sv-se/current.condition.expected.location.dialog b/locale/sv-se/dialog/current/current-condition-expected-location.dialog similarity index 100% rename from locale/sv-se/current.condition.expected.location.dialog rename to locale/sv-se/dialog/current/current-condition-expected-location.dialog diff --git a/locale/sv-se/current.humidity.location.dialog b/locale/sv-se/dialog/current/current-humidity-location.dialog similarity index 100% rename from locale/sv-se/current.humidity.location.dialog rename to locale/sv-se/dialog/current/current-humidity-location.dialog diff --git a/locale/sv-se/current.temperature.high.local.dialog b/locale/sv-se/dialog/current/current-temperature-high-local.dialog similarity index 100% rename from locale/sv-se/current.temperature.high.local.dialog rename to locale/sv-se/dialog/current/current-temperature-high-local.dialog diff --git a/locale/sv-se/current.temperature.high.location.dialog b/locale/sv-se/dialog/current/current-temperature-high-location.dialog similarity index 100% rename from locale/sv-se/current.temperature.high.location.dialog rename to locale/sv-se/dialog/current/current-temperature-high-location.dialog diff --git a/locale/sv-se/current.temperature.high.low.dialog b/locale/sv-se/dialog/current/current-temperature-high-low.dialog similarity index 100% rename from locale/sv-se/current.temperature.high.low.dialog rename to locale/sv-se/dialog/current/current-temperature-high-low.dialog diff --git a/locale/sv-se/current.temperature.local.dialog b/locale/sv-se/dialog/current/current-temperature-local.dialog similarity index 100% rename from locale/sv-se/current.temperature.local.dialog rename to locale/sv-se/dialog/current/current-temperature-local.dialog diff --git a/locale/sv-se/current.temperature.location.dialog b/locale/sv-se/dialog/current/current-temperature-location.dialog similarity index 100% rename from locale/sv-se/current.temperature.location.dialog rename to locale/sv-se/dialog/current/current-temperature-location.dialog diff --git a/locale/sv-se/current.temperature.low.local.dialog b/locale/sv-se/dialog/current/current-temperature-low-local.dialog similarity index 100% rename from locale/sv-se/current.temperature.low.local.dialog rename to locale/sv-se/dialog/current/current-temperature-low-local.dialog diff --git a/locale/sv-se/current.temperature.low.location.dialog b/locale/sv-se/dialog/current/current-temperature-low-location.dialog similarity index 100% rename from locale/sv-se/current.temperature.low.location.dialog rename to locale/sv-se/dialog/current/current-temperature-low-location.dialog diff --git a/locale/sv-se/current.weather.local.dialog b/locale/sv-se/dialog/current/current-weather-local.dialog similarity index 100% rename from locale/sv-se/current.weather.local.dialog rename to locale/sv-se/dialog/current/current-weather-local.dialog diff --git a/locale/sv-se/current.weather.location.dialog b/locale/sv-se/dialog/current/current-weather-location.dialog similarity index 100% rename from locale/sv-se/current.weather.location.dialog rename to locale/sv-se/dialog/current/current-weather-location.dialog diff --git a/locale/sv-se/current.wind.light.local.dialog b/locale/sv-se/dialog/current/current-wind-light-local.dialog similarity index 100% rename from locale/sv-se/current.wind.light.local.dialog rename to locale/sv-se/dialog/current/current-wind-light-local.dialog diff --git a/locale/sv-se/current.wind.light.location.dialog b/locale/sv-se/dialog/current/current-wind-light-location.dialog similarity index 100% rename from locale/sv-se/current.wind.light.location.dialog rename to locale/sv-se/dialog/current/current-wind-light-location.dialog diff --git a/locale/sv-se/current.wind.moderate.local.dialog b/locale/sv-se/dialog/current/current-wind-moderate-local.dialog similarity index 100% rename from locale/sv-se/current.wind.moderate.local.dialog rename to locale/sv-se/dialog/current/current-wind-moderate-local.dialog diff --git a/locale/sv-se/current.wind.moderate.location.dialog b/locale/sv-se/dialog/current/current-wind-moderate-location.dialog similarity index 100% rename from locale/sv-se/current.wind.moderate.location.dialog rename to locale/sv-se/dialog/current/current-wind-moderate-location.dialog diff --git a/locale/sv-se/current.wind.strong.local.dialog b/locale/sv-se/dialog/current/current-wind-strong-local.dialog similarity index 100% rename from locale/sv-se/current.wind.strong.local.dialog rename to locale/sv-se/dialog/current/current-wind-strong-local.dialog diff --git a/locale/sv-se/current.wind.strong.location.dialog b/locale/sv-se/dialog/current/current-wind-strong-location.dialog similarity index 100% rename from locale/sv-se/current.wind.strong.location.dialog rename to locale/sv-se/dialog/current/current-wind-strong-location.dialog diff --git a/locale/sv-se/daily.condition.expected.local.dialog b/locale/sv-se/dialog/daily/daily-condition-expected-local.dialog similarity index 100% rename from locale/sv-se/daily.condition.expected.local.dialog rename to locale/sv-se/dialog/daily/daily-condition-expected-local.dialog diff --git a/locale/sv-se/daily.condition.expected.location.dialog b/locale/sv-se/dialog/daily/daily-condition-expected-location.dialog similarity index 100% rename from locale/sv-se/daily.condition.expected.location.dialog rename to locale/sv-se/dialog/daily/daily-condition-expected-location.dialog diff --git a/locale/sv-se/daily.temperature.high.local.dialog b/locale/sv-se/dialog/daily/daily-temperature-high-local.dialog similarity index 100% rename from locale/sv-se/daily.temperature.high.local.dialog rename to locale/sv-se/dialog/daily/daily-temperature-high-local.dialog diff --git a/locale/sv-se/daily.temperature.high.location.dialog b/locale/sv-se/dialog/daily/daily-temperature-high-location.dialog similarity index 100% rename from locale/sv-se/daily.temperature.high.location.dialog rename to locale/sv-se/dialog/daily/daily-temperature-high-location.dialog diff --git a/locale/sv-se/daily.temperature.local.dialog b/locale/sv-se/dialog/daily/daily-temperature-local.dialog similarity index 100% rename from locale/sv-se/daily.temperature.local.dialog rename to locale/sv-se/dialog/daily/daily-temperature-local.dialog diff --git a/locale/sv-se/daily.temperature.location.dialog b/locale/sv-se/dialog/daily/daily-temperature-location.dialog similarity index 100% rename from locale/sv-se/daily.temperature.location.dialog rename to locale/sv-se/dialog/daily/daily-temperature-location.dialog diff --git a/locale/sv-se/daily.temperature.low.local.dialog b/locale/sv-se/dialog/daily/daily-temperature-low-local.dialog similarity index 100% rename from locale/sv-se/daily.temperature.low.local.dialog rename to locale/sv-se/dialog/daily/daily-temperature-low-local.dialog diff --git a/locale/sv-se/daily.temperature.low.location.dialog b/locale/sv-se/dialog/daily/daily-temperature-low-location.dialog similarity index 100% rename from locale/sv-se/daily.temperature.low.location.dialog rename to locale/sv-se/dialog/daily/daily-temperature-low-location.dialog diff --git a/locale/sv-se/daily.weather.local.dialog b/locale/sv-se/dialog/daily/daily-weather-local.dialog similarity index 100% rename from locale/sv-se/daily.weather.local.dialog rename to locale/sv-se/dialog/daily/daily-weather-local.dialog diff --git a/locale/sv-se/daily.weather.location.dialog b/locale/sv-se/dialog/daily/daily-weather-location.dialog similarity index 100% rename from locale/sv-se/daily.weather.location.dialog rename to locale/sv-se/dialog/daily/daily-weather-location.dialog diff --git a/locale/sv-se/daily.wind.light.local.dialog b/locale/sv-se/dialog/daily/daily-wind-light-local.dialog similarity index 100% rename from locale/sv-se/daily.wind.light.local.dialog rename to locale/sv-se/dialog/daily/daily-wind-light-local.dialog diff --git a/locale/sv-se/daily.wind.light.location.dialog b/locale/sv-se/dialog/daily/daily-wind-light-location.dialog similarity index 100% rename from locale/sv-se/daily.wind.light.location.dialog rename to locale/sv-se/dialog/daily/daily-wind-light-location.dialog diff --git a/locale/sv-se/daily.wind.moderate.local.dialog b/locale/sv-se/dialog/daily/daily-wind-moderate-local.dialog similarity index 100% rename from locale/sv-se/daily.wind.moderate.local.dialog rename to locale/sv-se/dialog/daily/daily-wind-moderate-local.dialog diff --git a/locale/sv-se/daily.wind.moderate.location.dialog b/locale/sv-se/dialog/daily/daily-wind-moderate-location.dialog similarity index 100% rename from locale/sv-se/daily.wind.moderate.location.dialog rename to locale/sv-se/dialog/daily/daily-wind-moderate-location.dialog diff --git a/locale/sv-se/daily.wind.strong.local.dialog b/locale/sv-se/dialog/daily/daily-wind-strong-local.dialog similarity index 100% rename from locale/sv-se/daily.wind.strong.local.dialog rename to locale/sv-se/dialog/daily/daily-wind-strong-local.dialog diff --git a/locale/sv-se/daily.wind.strong.location.dialog b/locale/sv-se/dialog/daily/daily-wind-strong-location.dialog similarity index 100% rename from locale/sv-se/daily.wind.strong.location.dialog rename to locale/sv-se/dialog/daily/daily-wind-strong-location.dialog diff --git a/locale/sv-se/east.dialog b/locale/sv-se/dialog/direction/east.dialog similarity index 100% rename from locale/sv-se/east.dialog rename to locale/sv-se/dialog/direction/east.dialog diff --git a/locale/sv-se/north.dialog b/locale/sv-se/dialog/direction/north.dialog similarity index 100% rename from locale/sv-se/north.dialog rename to locale/sv-se/dialog/direction/north.dialog diff --git a/locale/sv-se/northeast.dialog b/locale/sv-se/dialog/direction/northeast.dialog similarity index 100% rename from locale/sv-se/northeast.dialog rename to locale/sv-se/dialog/direction/northeast.dialog diff --git a/locale/sv-se/northwest.dialog b/locale/sv-se/dialog/direction/northwest.dialog similarity index 100% rename from locale/sv-se/northwest.dialog rename to locale/sv-se/dialog/direction/northwest.dialog diff --git a/locale/sv-se/south.dialog b/locale/sv-se/dialog/direction/south.dialog similarity index 100% rename from locale/sv-se/south.dialog rename to locale/sv-se/dialog/direction/south.dialog diff --git a/locale/sv-se/southeast.dialog b/locale/sv-se/dialog/direction/southeast.dialog similarity index 100% rename from locale/sv-se/southeast.dialog rename to locale/sv-se/dialog/direction/southeast.dialog diff --git a/locale/sv-se/southwest.dialog b/locale/sv-se/dialog/direction/southwest.dialog similarity index 100% rename from locale/sv-se/southwest.dialog rename to locale/sv-se/dialog/direction/southwest.dialog diff --git a/locale/sv-se/west.dialog b/locale/sv-se/dialog/direction/west.dialog similarity index 100% rename from locale/sv-se/west.dialog rename to locale/sv-se/dialog/direction/west.dialog diff --git a/locale/sv-se/cant.get.forecast.dialog b/locale/sv-se/dialog/error/cant-get-forecast.dialog similarity index 100% rename from locale/sv-se/cant.get.forecast.dialog rename to locale/sv-se/dialog/error/cant-get-forecast.dialog diff --git a/locale/sv-se/location.not.found.dialog b/locale/sv-se/dialog/error/location-not-found.dialog similarity index 100% rename from locale/sv-se/location.not.found.dialog rename to locale/sv-se/dialog/error/location-not-found.dialog diff --git a/locale/sv-se/no.forecast.dialog b/locale/sv-se/dialog/error/no-forecast.dialog similarity index 100% rename from locale/sv-se/no.forecast.dialog rename to locale/sv-se/dialog/error/no-forecast.dialog diff --git a/locale/sv-se/hourly.condition.alternative.local.dialog b/locale/sv-se/dialog/hourly/hourly-condition-alternative-local.dialog similarity index 100% rename from locale/sv-se/hourly.condition.alternative.local.dialog rename to locale/sv-se/dialog/hourly/hourly-condition-alternative-local.dialog diff --git a/locale/sv-se/hourly.condition.alternative.location.dialog b/locale/sv-se/dialog/hourly/hourly-condition-alternative-location.dialog similarity index 100% rename from locale/sv-se/hourly.condition.alternative.location.dialog rename to locale/sv-se/dialog/hourly/hourly-condition-alternative-location.dialog diff --git a/locale/sv-se/hourly.condition.expected.local.dialog b/locale/sv-se/dialog/hourly/hourly-condition-expected-local.dialog similarity index 100% rename from locale/sv-se/hourly.condition.expected.local.dialog rename to locale/sv-se/dialog/hourly/hourly-condition-expected-local.dialog diff --git a/locale/sv-se/hourly.condition.expected.location.dialog b/locale/sv-se/dialog/hourly/hourly-condition-expected-location.dialog similarity index 100% rename from locale/sv-se/hourly.condition.expected.location.dialog rename to locale/sv-se/dialog/hourly/hourly-condition-expected-location.dialog diff --git a/locale/sv-se/hourly.condition.not.expected.local.dialog b/locale/sv-se/dialog/hourly/hourly-condition-not-expected-local.dialog similarity index 100% rename from locale/sv-se/hourly.condition.not.expected.local.dialog rename to locale/sv-se/dialog/hourly/hourly-condition-not-expected-local.dialog diff --git a/locale/sv-se/hourly.condition.not.expected.location.dialog b/locale/sv-se/dialog/hourly/hourly-condition-not-expected-location.dialog similarity index 100% rename from locale/sv-se/hourly.condition.not.expected.location.dialog rename to locale/sv-se/dialog/hourly/hourly-condition-not-expected-location.dialog diff --git a/locale/sv-se/hourly.temperature.local.dialog b/locale/sv-se/dialog/hourly/hourly-temperature-local.dialog similarity index 100% rename from locale/sv-se/hourly.temperature.local.dialog rename to locale/sv-se/dialog/hourly/hourly-temperature-local.dialog diff --git a/locale/sv-se/hourly.weather.local.dialog b/locale/sv-se/dialog/hourly/hourly-weather-local.dialog similarity index 100% rename from locale/sv-se/hourly.weather.local.dialog rename to locale/sv-se/dialog/hourly/hourly-weather-local.dialog diff --git a/locale/sv-se/hourly.weather.location.dialog b/locale/sv-se/dialog/hourly/hourly-weather-location.dialog similarity index 100% rename from locale/sv-se/hourly.weather.location.dialog rename to locale/sv-se/dialog/hourly/hourly-weather-location.dialog diff --git a/locale/sv-se/percentage.number.dialog b/locale/sv-se/dialog/percentage-number.dialog similarity index 100% rename from locale/sv-se/percentage.number.dialog rename to locale/sv-se/dialog/percentage-number.dialog diff --git a/locale/sv-se/celsius.dialog b/locale/sv-se/dialog/unit/celsius.dialog similarity index 100% rename from locale/sv-se/celsius.dialog rename to locale/sv-se/dialog/unit/celsius.dialog diff --git a/locale/sv-se/fahrenheit.dialog b/locale/sv-se/dialog/unit/fahrenheit.dialog similarity index 100% rename from locale/sv-se/fahrenheit.dialog rename to locale/sv-se/dialog/unit/fahrenheit.dialog diff --git a/locale/sv-se/meters per second.dialog b/locale/sv-se/dialog/unit/meters per second.dialog similarity index 100% rename from locale/sv-se/meters per second.dialog rename to locale/sv-se/dialog/unit/meters per second.dialog diff --git a/locale/sv-se/miles per hour.dialog b/locale/sv-se/dialog/unit/miles per hour.dialog similarity index 100% rename from locale/sv-se/miles per hour.dialog rename to locale/sv-se/dialog/unit/miles per hour.dialog diff --git a/locale/sv-se/weekly.temperature.dialog b/locale/sv-se/dialog/weekly/weekly-temperature.dialog similarity index 100% rename from locale/sv-se/weekly.temperature.dialog rename to locale/sv-se/dialog/weekly/weekly-temperature.dialog diff --git a/locale/sv-se/Forecast.voc b/locale/sv-se/forecast.voc similarity index 100% rename from locale/sv-se/Forecast.voc rename to locale/sv-se/forecast.voc diff --git a/locale/sv-se/Location.voc b/locale/sv-se/location.voc similarity index 100% rename from locale/sv-se/Location.voc rename to locale/sv-se/location.voc diff --git a/locale/sv-se/location.rx b/locale/sv-se/regex/location.rx similarity index 100% rename from locale/sv-se/location.rx rename to locale/sv-se/regex/location.rx diff --git a/locale/sv-se/sunrise.dialog b/locale/sv-se/sunrise.dialog deleted file mode 100644 index 9fbcd5c4..00000000 --- a/locale/sv-se/sunrise.dialog +++ /dev/null @@ -1,2 +0,0 @@ -solen steg vid {time} idag -soluppgång var vid {time} idag diff --git a/locale/sv-se/Sunrise.voc b/locale/sv-se/sunrise.voc similarity index 100% rename from locale/sv-se/Sunrise.voc rename to locale/sv-se/sunrise.voc diff --git a/locale/sv-se/sunset.dialog b/locale/sv-se/sunset.dialog deleted file mode 100644 index 45698b7a..00000000 --- a/locale/sv-se/sunset.dialog +++ /dev/null @@ -1,3 +0,0 @@ -solen kommer att gå ner vid {time} idag -solen kommer att gå ner {time} idag -solnedgången kommer att vara vid {time} idag diff --git a/locale/sv-se/Sunset.voc b/locale/sv-se/sunset.voc similarity index 100% rename from locale/sv-se/Sunset.voc rename to locale/sv-se/sunset.voc diff --git a/locale/sv-se/Clear.voc b/locale/sv-se/vocabulary/condition/clear.voc similarity index 100% rename from locale/sv-se/Clear.voc rename to locale/sv-se/vocabulary/condition/clear.voc diff --git a/locale/sv-se/Clouds.voc b/locale/sv-se/vocabulary/condition/clouds.voc similarity index 100% rename from locale/sv-se/Clouds.voc rename to locale/sv-se/vocabulary/condition/clouds.voc diff --git a/locale/sv-se/do.i.need.an.umbrella.intent b/locale/sv-se/vocabulary/condition/do.i.need.an.umbrella.intent similarity index 100% rename from locale/sv-se/do.i.need.an.umbrella.intent rename to locale/sv-se/vocabulary/condition/do.i.need.an.umbrella.intent diff --git a/locale/sv-se/Humidity.voc b/locale/sv-se/vocabulary/condition/humidity.voc similarity index 100% rename from locale/sv-se/Humidity.voc rename to locale/sv-se/vocabulary/condition/humidity.voc diff --git a/locale/sv-se/Precipitation.voc b/locale/sv-se/vocabulary/condition/precipitation.voc similarity index 100% rename from locale/sv-se/Precipitation.voc rename to locale/sv-se/vocabulary/condition/precipitation.voc diff --git a/locale/sv-se/Rain.voc b/locale/sv-se/vocabulary/condition/rain.voc similarity index 100% rename from locale/sv-se/Rain.voc rename to locale/sv-se/vocabulary/condition/rain.voc diff --git a/locale/sv-se/Snow.voc b/locale/sv-se/vocabulary/condition/snow.voc similarity index 100% rename from locale/sv-se/Snow.voc rename to locale/sv-se/vocabulary/condition/snow.voc diff --git a/locale/sv-se/Thunderstorm.voc b/locale/sv-se/vocabulary/condition/thunderstorm.voc similarity index 100% rename from locale/sv-se/Thunderstorm.voc rename to locale/sv-se/vocabulary/condition/thunderstorm.voc diff --git a/locale/sv-se/Windy.voc b/locale/sv-se/vocabulary/condition/windy.voc similarity index 100% rename from locale/sv-se/Windy.voc rename to locale/sv-se/vocabulary/condition/windy.voc diff --git a/locale/sv-se/Couple.voc b/locale/sv-se/vocabulary/date-time/couple.voc similarity index 100% rename from locale/sv-se/Couple.voc rename to locale/sv-se/vocabulary/date-time/couple.voc diff --git a/locale/sv-se/Later.voc b/locale/sv-se/vocabulary/date-time/later.voc similarity index 100% rename from locale/sv-se/Later.voc rename to locale/sv-se/vocabulary/date-time/later.voc diff --git a/locale/sv-se/Next.voc b/locale/sv-se/vocabulary/date-time/next.voc similarity index 100% rename from locale/sv-se/Next.voc rename to locale/sv-se/vocabulary/date-time/next.voc diff --git a/locale/sv-se/Now.voc b/locale/sv-se/vocabulary/date-time/now.voc similarity index 100% rename from locale/sv-se/Now.voc rename to locale/sv-se/vocabulary/date-time/now.voc diff --git a/locale/sv-se/RelativeDay.voc b/locale/sv-se/vocabulary/date-time/relative-day.voc similarity index 100% rename from locale/sv-se/RelativeDay.voc rename to locale/sv-se/vocabulary/date-time/relative-day.voc diff --git a/locale/sv-se/RelativeTime.voc b/locale/sv-se/vocabulary/date-time/relative-time.voc similarity index 100% rename from locale/sv-se/RelativeTime.voc rename to locale/sv-se/vocabulary/date-time/relative-time.voc diff --git a/locale/sv-se/Today.voc b/locale/sv-se/vocabulary/date-time/today.voc similarity index 100% rename from locale/sv-se/Today.voc rename to locale/sv-se/vocabulary/date-time/today.voc diff --git a/locale/sv-se/Week.voc b/locale/sv-se/vocabulary/date-time/week.voc similarity index 100% rename from locale/sv-se/Week.voc rename to locale/sv-se/vocabulary/date-time/week.voc diff --git a/locale/sv-se/Weekend.voc b/locale/sv-se/vocabulary/date-time/weekend.voc similarity index 100% rename from locale/sv-se/Weekend.voc rename to locale/sv-se/vocabulary/date-time/weekend.voc diff --git a/locale/sv-se/ConfirmQueryCurrent.voc b/locale/sv-se/vocabulary/query/confirm-query-current.voc similarity index 100% rename from locale/sv-se/ConfirmQueryCurrent.voc rename to locale/sv-se/vocabulary/query/confirm-query-current.voc diff --git a/locale/sv-se/ConfirmQueryFuture.voc b/locale/sv-se/vocabulary/query/confirm-query-future.voc similarity index 100% rename from locale/sv-se/ConfirmQueryFuture.voc rename to locale/sv-se/vocabulary/query/confirm-query-future.voc diff --git a/locale/sv-se/ConfirmQuery.voc b/locale/sv-se/vocabulary/query/confirm-query.voc similarity index 100% rename from locale/sv-se/ConfirmQuery.voc rename to locale/sv-se/vocabulary/query/confirm-query.voc diff --git a/locale/sv-se/How.voc b/locale/sv-se/vocabulary/query/how.voc similarity index 100% rename from locale/sv-se/How.voc rename to locale/sv-se/vocabulary/query/how.voc diff --git a/locale/sv-se/Query.voc b/locale/sv-se/vocabulary/query/query.voc similarity index 100% rename from locale/sv-se/Query.voc rename to locale/sv-se/vocabulary/query/query.voc diff --git a/locale/sv-se/When.voc b/locale/sv-se/vocabulary/query/when.voc similarity index 100% rename from locale/sv-se/When.voc rename to locale/sv-se/vocabulary/query/when.voc diff --git a/locale/sv-se/Cold.voc b/locale/sv-se/vocabulary/temperature/cold.voc similarity index 100% rename from locale/sv-se/Cold.voc rename to locale/sv-se/vocabulary/temperature/cold.voc diff --git a/locale/sv-se/Fog.voc b/locale/sv-se/vocabulary/temperature/fog.voc similarity index 100% rename from locale/sv-se/Fog.voc rename to locale/sv-se/vocabulary/temperature/fog.voc diff --git a/locale/sv-se/High.voc b/locale/sv-se/vocabulary/temperature/high.voc similarity index 100% rename from locale/sv-se/High.voc rename to locale/sv-se/vocabulary/temperature/high.voc diff --git a/locale/sv-se/Hot.voc b/locale/sv-se/vocabulary/temperature/hot.voc similarity index 100% rename from locale/sv-se/Hot.voc rename to locale/sv-se/vocabulary/temperature/hot.voc diff --git a/locale/sv-se/Low.voc b/locale/sv-se/vocabulary/temperature/low.voc similarity index 100% rename from locale/sv-se/Low.voc rename to locale/sv-se/vocabulary/temperature/low.voc diff --git a/locale/sv-se/Temperature.voc b/locale/sv-se/vocabulary/temperature/temperature.voc similarity index 100% rename from locale/sv-se/Temperature.voc rename to locale/sv-se/vocabulary/temperature/temperature.voc diff --git a/locale/sv-se/Fahrenheit.voc b/locale/sv-se/vocabulary/unit/fahrenheit.voc similarity index 100% rename from locale/sv-se/Fahrenheit.voc rename to locale/sv-se/vocabulary/unit/fahrenheit.voc diff --git a/locale/sv-se/Unit.entity b/locale/sv-se/vocabulary/unit/unit.entity similarity index 100% rename from locale/sv-se/Unit.entity rename to locale/sv-se/vocabulary/unit/unit.entity diff --git a/locale/sv-se/Unit.voc b/locale/sv-se/vocabulary/unit/unit.voc similarity index 100% rename from locale/sv-se/Unit.voc rename to locale/sv-se/vocabulary/unit/unit.voc diff --git a/locale/sv-se/Weather.voc b/locale/sv-se/weather.voc similarity index 100% rename from locale/sv-se/Weather.voc rename to locale/sv-se/weather.voc diff --git a/skill/dialog.py b/skill/dialog.py index 84fe138f..cbec3465 100644 --- a/skill/dialog.py +++ b/skill/dialog.py @@ -49,9 +49,9 @@ def __init__(self, intent_data: WeatherIntent, config: WeatherConfig): def _add_location(self): """Add location information to the dialog.""" if self.intent_data.location is None: - self.name += ".local" + self.name += "-local" else: - self.name += ".location" + self.name += "-location" if self.config.country == self.intent_data.geolocation["country"]: spoken_location = ", ".join( [ @@ -94,17 +94,17 @@ def build_wind_dialog(self): self.data.update(day=self.weather.date_time.strftime("%A")) elif self.hourly_forecast: self.data.update(time=nice_time(self.weather.date_time)) - self.name += ".wind." + wind_strength + self.name += "-wind-" + wind_strength self._add_location() def build_humidity_dialog(self): """Build the components necessary to speak the percentage humidity.""" self.data = dict(percent=self.weather.humidity) if self.intent_data.timeframe == DAILY: - self.name = "daily.humidity" + self.name = "daily-humidity" self.data.update(day=self.weather.date_time.strftime("%A")) else: - self.name = "current.humidity" + self.name = "current-humidity" self._add_location() def build_next_precipitation_dialog(self): @@ -114,10 +114,10 @@ def build_next_precipitation_dialog(self): self.data = dict() else: if self.intent_data.timeframe == DAILY: - self.name = "daily.precipitation.next" + self.name = "daily-precipitation-next" self.data = dict(day=self.weather.date_time.strftime("%A")) else: - self.name = "hourly.precipitation.next" + self.name = "hourly-precipitation-next" self.data = dict(time=get_time_period(self.weather.date_time)) self.data = dict( percent=self.weather.chance_of_precipitation, @@ -139,7 +139,7 @@ def __init__( def build_weather_dialog(self): """Build the components necessary to speak current weather.""" - self.name += ".weather" + self.name += "-weather" self.data = dict( condition=self.weather.condition.description, temperature=self.weather.temperature, @@ -149,7 +149,7 @@ def build_weather_dialog(self): def build_high_low_temperature_dialog(self): """Build the components necessary to speak high and low temperature.""" - self.name += ".temperature.high.low" + self.name += "-temperature-high-low" self.data = dict( high_temperature=self.weather.high_temperature, low_temperature=self.weather.low_temperature, @@ -160,12 +160,12 @@ def build_temperature_dialog(self, temperature_type: str): :param temperature_type: indicates if temperature is current, high or low """ - self.name += ".temperature" + self.name += "-temperature" if temperature_type == "high": - self.name += ".high" + self.name += "-high" self.data = dict(temperature=self.weather.high_temperature) elif temperature_type == "low": - self.name += ".low" + self.name += "-low" self.data = dict(temperature=self.weather.low_temperature) else: self.data = dict(temperature=self.weather.temperature) @@ -183,9 +183,9 @@ def build_condition_dialog(self, intent_match: bool): """ self.data = dict(condition=self.weather.condition.description.lower()) if intent_match: - self.name += ".condition.expected" + self.name += "-condition-expected" else: - self.name += ".condition.not.expected".format( + self.name += "-condition-not-expected".format( self.weather.condition.category.lower() ) self._add_location() @@ -197,9 +197,9 @@ def build_sunrise_dialog(self): else: now = now_local(tz=self.intent_data.geolocation["timezone"]) if now < self.weather.sunrise: - self.name += ".sunrise.future" + self.name += "-sunrise-future" else: - self.name += ".sunrise.past" + self.name += "-sunrise-past" self.data = dict(time=nice_time(self.weather.sunrise)) self._add_location() @@ -229,7 +229,7 @@ def __init__( def build_weather_dialog(self): """Build the components necessary to speak the forecast for a hour.""" - self.name += ".weather" + self.name += "-weather" self.data = dict( condition=self.weather.condition.description, time=self.weather.date_time.strftime("%H:00"), @@ -239,7 +239,7 @@ def build_weather_dialog(self): def build_temperature_dialog(self, _): """Build the components necessary to speak the hourly temperature.""" - self.name += ".temperature" + self.name += "-temperature" self.data = dict( temperature=self.weather.temperature, time=get_time_period(self.weather.date_time), @@ -259,9 +259,9 @@ def build_condition_dialog(self, intent_match: bool): time=nice_time(self.weather.date_time), ) if intent_match: - self.name += ".condition.expected" + self.name += "-condition-expected" else: - self.name += ".condition.not.expected".format( + self.name += "-condition-not-expected".format( self.weather.condition.category.lower() ) self._add_location() @@ -279,7 +279,7 @@ def __init__( def build_weather_dialog(self): """Build the components necessary to speak the forecast for a day.""" - self.name += ".weather" + self.name += "-weather" self.data = dict( condition=self.weather.condition.description, day=get_speakable_day_of_week(self.weather.date_time), @@ -295,12 +295,12 @@ def build_temperature_dialog(self, temperature_type: str): :param temperature_type: indicates if temperature is day, high or low """ - self.name += ".temperature" + self.name += "-temperature" if temperature_type == "high": - self.name += ".high" + self.name += "-high" self.data = dict(temperature=self.weather.temperature.high) elif temperature_type == "low": - self.name += ".low" + self.name += "-low" self.data = dict(temperature=self.weather.temperature.low) else: self.data = dict(temperature=self.weather.temperature.day) @@ -322,23 +322,23 @@ def build_condition_dialog(self, intent_match: bool): day=get_speakable_day_of_week(self.weather.date_time), ) if intent_match: - self.name += ".condition.expected" + self.name += "-condition-expected" else: - self.name += ".condition.not.expected".format( + self.name += "-condition-not-expected".format( self.weather.condition.category.lower() ) self._add_location() def build_sunrise_dialog(self): """Build the components necessary to speak the sunrise time.""" - self.name += ".sunrise" + self.name += "-sunrise" self.data = dict(time=nice_time(self.weather.sunrise)) self.data.update(day=get_speakable_day_of_week(self.weather.date_time)) self._add_location() def build_sunset_dialog(self): """Build the components necessary to speak the sunset time.""" - self.name += ".sunset" + self.name += "-sunset" self.data = dict(time=nice_time(self.weather.sunset)) self.data.update(day=get_speakable_day_of_week(self.weather.date_time)) self._add_location() @@ -360,8 +360,8 @@ def __init__( def build_temperature_dialog(self): """Build the components necessary to temperature ranges for a week.""" low_temperatures = [daily.temperature.low for daily in self.forecast] - high_temperatures = [daily.temperature.low for daily in self.forecast] - self.name += ".temperature" + high_temperatures = [daily.temperature.high for daily in self.forecast] + self.name += "-temperature" self.data = dict( low_min=min(low_temperatures), low_max=max(low_temperatures), @@ -371,7 +371,7 @@ def build_temperature_dialog(self): def build_condition_dialog(self, condition: str): """Build the components necessary to speak the days of week for a condition.""" - self.name += ".condition" + self.name += "-condition" self.data = dict(condition=condition) days_with_condition = [] for daily in self.forecast: diff --git a/skill/intent.py b/skill/intent.py index 5e74c243..2f39c77e 100644 --- a/skill/intent.py +++ b/skill/intent.py @@ -36,9 +36,9 @@ def __init__(self, message, language): :param language: The configured language of the device """ self.utterance = message.data["utterance"] - self.location = message.data.get("Location") + self.location = message.data.get("location") self.language = language - self.unit = message.data.get("Unit") + self.unit = message.data.get("unit") self.timeframe = CURRENT @property From 9ca144ac5ae8991c177ba0b0902049cecb7688b0 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Tue, 11 May 2021 22:49:45 -0500 Subject: [PATCH 36/42] applied code review changes --- README.md | 6 +- __init__.py | 252 ++++++++++++++++++++++++++++++----------------- skill/api.py | 13 ++- skill/dialog.py | 35 ++++--- skill/util.py | 47 +++++++-- skill/weather.py | 83 +++++++++++----- 6 files changed, 289 insertions(+), 147 deletions(-) diff --git a/README.md b/README.md index 858f1580..3173c302 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,10 @@ Weather conditions and forecasts ## About Get weather conditions, forecasts, expected precipitation and more! By default, it will tell -you about your default location. You can also ask for other cities around the world. +you about your device's configured location. You can also ask for other cities around the world. Current conditions and weather forecasts come from [Open Weather Map](https://openweathermap.org). -For hardware with Arduino support, like the Mark I, conditions are briefly shown. -For hardware with GUI support, like the Mark II, there are several screens depending -on your request. - The temperature is shown in Celsius or Fahrenheit depending on the preferences set in your [https://home.mycroft.ai](https://home.mycroft.ai) account. You can ask specifically for a unit that differs from your configuration. diff --git a/__init__.py b/__init__.py index 801c86f1..9e86ea13 100644 --- a/__init__.py +++ b/__init__.py @@ -55,14 +55,6 @@ MARK_II = "mycroft_mark_2" TWELVE_HOUR = "half" -CLEAR = 0 -PARTLY_CLOUDY = 1 -CLOUDY = 2 -LIGHT_RAIN = 3 -RAIN = 4 -THUNDERSTORM = 5 -SNOW = 6 -WINDY = 7 class WeatherSkill(MycroftSkill): @@ -72,12 +64,12 @@ def __init__(self): super().__init__("WeatherSkill") self.weather_api = OpenWeatherMapApi() self.weather_api.set_language_parameter(self.lang) - self.weather_config = WeatherConfig(self.config_core, self.settings) self.platform = self.config_core["enclosure"].get("platform", "unknown") + self.weather_config = None - # Use Mycroft proxy if no private key provided - self.settings["api_key"] = None - self.settings["use_proxy"] = True + def initialize(self): + """Do these things after the skill is loaded.""" + self.weather_config = WeatherConfig(self.config_core, self.settings) @intent_handler( IntentBuilder("") @@ -89,7 +81,8 @@ def __init__(self): def handle_current_weather(self, message: Message): """Handle current weather requests such as: what is the weather like? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_current_weather(message) @@ -103,7 +96,8 @@ def handle_current_weather(self, message: Message): def handle_like_outside(self, message: Message): """Handle current weather requests such as: what's it like outside? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_current_weather(message) @@ -121,7 +115,8 @@ def handle_number_days_forecast(self, message: Message): "What is the 3 day forecast?" "What is the weather forecast?" - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ if self.voc_match(message.data["utterance"], "couple"): days = 2 @@ -145,7 +140,8 @@ def handle_one_day_forecast(self, message): "What is the weather forecast tomorrow?" "What is the weather forecast on Tuesday in Baltimore?" - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_one_day_forecast(message) @@ -159,7 +155,8 @@ def handle_one_day_forecast(self, message): def handle_weather_later(self, message: Message): """Handle future weather requests such as: what's the weather later? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_one_hour_weather(message) @@ -174,7 +171,8 @@ def handle_weather_later(self, message: Message): def handle_weather_at_time(self, message: Message): """Handle future weather requests such as: what's the weather tonight? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_one_hour_weather(message) @@ -188,7 +186,8 @@ def handle_weather_at_time(self, message: Message): def handle_weekend_forecast(self, message: Message): """Handle requests for the weekend forecast. - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_weekend_forecast(message) @@ -202,7 +201,8 @@ def handle_weekend_forecast(self, message: Message): def handle_week_weather(self, message: Message): """Handle weather for week (i.e. seven days). - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_week_summary(message) @@ -222,7 +222,8 @@ def handle_current_temperature(self, message: Message): "What is the temperature in Celsius?" "What is the temperature in Baltimore now?" - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_temperature(message, temperature_type="current") @@ -239,7 +240,8 @@ def handle_daily_temperature(self, message: Message): Examples: "What is the temperature?" - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_temperature(message, temperature_type="current") @@ -258,7 +260,8 @@ def handle_hourly_temperature(self, message: Message): "What is the temperature tonight?" "What is the temperature tomorrow morning?" - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_temperature(message) @@ -280,7 +283,8 @@ def handle_high_temperature(self, message: Message): "What is the high temperature tomorrow?" "What is the high temperature in London on Tuesday?" - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_temperature(message, temperature_type="high") @@ -302,7 +306,8 @@ def handle_low_temperature(self, message: Message): "What is the high temperature tomorrow?" "What is the high temperature in London on Tuesday?" - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_temperature(message, temperature_type="low") @@ -316,7 +321,8 @@ def handle_low_temperature(self, message: Message): def handle_is_it_hot(self, message: Message): """Handler for temperature requests such as: is it going to be hot today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_temperature(message, "current") @@ -332,7 +338,8 @@ def handle_is_it_hot(self, message: Message): def handle_how_hot_or_cold(self, message): """Handler for temperature requests such as: how cold will it be today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ temperature_type = "high" if message.data.get("Hot") else "low" self._report_temperature(message, temperature_type) @@ -347,7 +354,8 @@ def handle_how_hot_or_cold(self, message): def handle_is_it_windy(self, message: Message): """Handler for weather requests such as: is it windy today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_wind(message) @@ -362,7 +370,8 @@ def handle_is_it_windy(self, message: Message): def handle_windy(self, message): """Handler for weather requests such as: how windy is it? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_wind(message) @@ -372,7 +381,8 @@ def handle_windy(self, message): def handle_is_it_snowing(self, message: Message): """Handler for weather requests such as: is it snowing today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_weather_condition(message, "snow") @@ -385,7 +395,8 @@ def handle_is_it_snowing(self, message: Message): def handle_is_it_clear(self, message: Message): """Handler for weather requests such as: is the sky clear today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_weather_condition(message, condition="clear") @@ -399,7 +410,8 @@ def handle_is_it_clear(self, message: Message): def handle_is_it_cloudy(self, message: Message): """Handler for weather requests such as: is it cloudy today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_weather_condition(message, "clouds") @@ -409,7 +421,8 @@ def handle_is_it_cloudy(self, message: Message): def handle_is_it_foggy(self, message: Message): """Handler for weather requests such as: is it foggy today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_weather_condition(message, "fog") @@ -419,15 +432,17 @@ def handle_is_it_foggy(self, message: Message): def handle_is_it_raining(self, message: Message): """Handler for weather requests such as: is it raining today? - :param message: Message Bus event information from the intent parser - """ + Args: + message: Message Bus event information from the intent parser +0] """ self._report_weather_condition(message, "rain") @intent_handler("do-i-need-an-umbrella.intent") def handle_need_umbrella(self, message: Message): """Handler for weather requests such as: will I need an umbrella today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_weather_condition(message, "rain") @@ -440,7 +455,8 @@ def handle_need_umbrella(self, message: Message): def handle_is_it_storming(self, message: Message): """Handler for weather requests such as: is it storming today? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ self._report_weather_condition(message, "thunderstorm") @@ -454,7 +470,8 @@ def handle_is_it_storming(self, message: Message): def handle_next_precipitation(self, message: Message): """Handler for weather requests such as: when will it rain next? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) @@ -463,6 +480,10 @@ def handle_next_precipitation(self, message: Message): intent_data.timeframe = timeframe dialog = WeatherDialog(forecast, self.weather_config, intent_data) dialog.build_next_precipitation_dialog() + spoken_percentage = self.translate( + "percentage-number", data=dict(number=dialog.data["percent"]) + ) + dialog.data.update(percent=spoken_percentage) self._speak_weather(dialog) @intent_handler( @@ -475,7 +496,8 @@ def handle_next_precipitation(self, message: Message): def handle_humidity(self, message: Message): """Handler for weather requests such as: how humid is it? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -485,7 +507,7 @@ def handle_humidity(self, message: Message): dialog.build_humidity_dialog() dialog.data.update( humidity=self.translate( - "percentage.number", data=dict(num=dialog.data.humidity) + "percentage-number", data=dict(num=dialog.data["humidity"]) ) ) self._speak_weather(dialog) @@ -501,7 +523,8 @@ def handle_humidity(self, message: Message): def handle_sunrise(self, message: Message): """Handler for weather requests such as: when is the sunrise? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -510,9 +533,8 @@ def handle_sunrise(self, message: Message): dialog_args = intent_data, self.weather_config, intent_weather dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_sunrise_dialog() - if self.platform == MARK_II: - weather_location = self._build_display_location(intent_data) - self._display_sunrise_sunset_mark_ii(intent_weather, weather_location) + weather_location = self._build_display_location(intent_data) + self._display_sunrise_sunset(intent_weather, weather_location) self._speak_weather(dialog) @intent_handler( @@ -526,7 +548,8 @@ def handle_sunrise(self, message: Message): def handle_sunset(self, message: Message): """Handler for weather requests such as: when is the sunset? - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -535,17 +558,30 @@ def handle_sunset(self, message: Message): dialog_args = intent_data, self.weather_config, intent_weather dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_sunset_dialog() - if self.platform == MARK_II: - weather_location = self._build_display_location(intent_data) - self._display_sunrise_sunset_mark_ii(intent_weather, weather_location) + weather_location = self._build_display_location(intent_data) + self._display_sunrise_sunset(intent_weather, weather_location) self._speak_weather(dialog) - def _display_sunrise_sunset_mark_ii( + def _display_sunrise_sunset( self, forecast: DailyWeather, weather_location: str ): """Display the sunrise and sunset. - :param forecast: daily forecasts to display + Args: + forecast: daily forecasts to display + weather_location: the geographical location of the weather + """ + if self.platform == MARK_II: + self._display_sunrise_sunset_mark_ii(forecast, weather_location) + + def _display_sunrise_sunset_mark_ii( + self, forecast: DailyWeather, weather_location: str + ): + """Display the sunrise and sunset on a Mark II device using a grid layout. + + Args: + forecast: daily forecasts to display + weather_location: the geographical location of the weather """ self.gui.clear() self.gui["weatherDate"] = forecast.date_time.strftime("%A %b %d") @@ -561,8 +597,11 @@ def _format_sunrise_sunset_time(self, date_time: datetime) -> str: The datetime builtin returns hour in two character format. Remove the leading zero when present. - :param date_time: the sunrise or sunset - :return: the value to display on the screen. + Args: + date_time: the sunrise or sunset + + Returns: + the value to display on the screen """ if self.config_core["time_format"] == TWELVE_HOUR: display_time = date_time.strftime("%I:%M") @@ -576,7 +615,8 @@ def _format_sunrise_sunset_time(self, date_time: datetime) -> str: def _report_current_weather(self, message: Message): """Handles all requests for current weather conditions. - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -607,7 +647,9 @@ def _display_current_conditions( This is the first screen that shows. Others will follow. - :param weather: current weather conditions from Open Weather Maps + Args: + weather: current weather conditions from Open Weather Maps + weather_location: the geographical location of the reported weather """ if self.gui.connected: page_name = "current_1_scalable.qml" @@ -637,8 +679,11 @@ def _build_display_location(self, intent_data: WeatherIntent) -> str: region. A specified location in a different country will result in a return value of city and country. - :param intent_data: information about the intent that was triggered - :return: The weather location to be displayed on the GUI + Args: + intent_data: information about the intent that was triggered + + Returns: + The weather location to be displayed on the GUI """ if intent_data.geolocation: location = [intent_data.geolocation["city"]] @@ -658,7 +703,9 @@ def _display_more_current_conditions( This is the second screen that shows for current weather. - :param weather: current weather conditions from Open Weather Maps + Args + weather: current weather conditions from Open Weather Maps + weather_location: geographical location of the reported weather """ page_name = "current_2_scalable.qml" self.gui.clear() @@ -675,7 +722,8 @@ def _display_more_current_conditions( def _report_one_hour_weather(self, message: Message): """Handles requests for a one hour forecast. - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -727,7 +775,8 @@ def _display_hourly_forecast(self, weather: WeatherReport, weather_location: str def _report_one_day_forecast(self, message: Message): """Handles all requests for a single day forecast. - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) @@ -776,7 +825,8 @@ def _report_multi_day_forecast(self, message: Message, days: int): def _report_weekend_forecast(self, message: Message): """Handles requests for a weekend forecast. - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -811,7 +861,8 @@ def _report_week_summary(self, message: Message): When the user requests the weather for the week, rather than give a daily forecast for seven days, summarize the weather conditions for the week. - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = WeatherIntent(message, self.lang) weather = self._get_weather(intent_data) @@ -828,19 +879,18 @@ def _build_weekly_condition_dialogs( ) -> List[WeeklyDialog]: """Build the dialog communicating a weather condition on days it is forecasted. - :param forecast: seven day daily forecast - :param intent_data: Parsed intent data - :return: List of dialogs for each condition expected in the coming week. + Args: + forecast: seven day daily forecast + intent_data: Parsed intent data + + Returns: + List of dialogs for each condition expected in the coming week. """ dialogs = list() conditions = set([daily.condition.category for daily in forecast]) for condition in conditions: dialog = WeeklyDialog(intent_data, self.weather_config, forecast) dialog.build_condition_dialog(condition=condition) - dialog.data.update( - condition=self.translate(condition.lower()), - days=dialog.data["days"].replace("and", self.translate("and")), - ) dialogs.append(dialog) return dialogs @@ -850,9 +900,12 @@ def _build_weekly_temperature_dialog( ) -> WeeklyDialog: """Build the dialog communicating the forecasted range of temperatures. - :param forecast: seven day daily forecast - :param intent_data: Parsed intent data - :return: Dialog for the temperature ranges over the coming week. + Args: + forecast: seven day daily forecast + intent_data: Parsed intent data + + Returns: + Dialog for the temperature ranges over the coming week. """ dialog = WeeklyDialog(intent_data, self.weather_config, forecast) dialog.build_temperature_dialog() @@ -864,7 +917,9 @@ def _display_multi_day_forecast( ): """Display daily forecast data on devices that support the GUI. - :param forecast: daily forecasts to display + Args: + forecast: daily forecasts to display + intent_data: Parsed intent data """ if self.platform == MARK_II: self._display_multi_day_mark_ii(forecast, intent_data) @@ -878,7 +933,9 @@ def _display_multi_day_mark_ii( The Mark II supports displaying four days of a forecast at a time. - :param forecast: daily forecasts to display + Args: + forecast: daily forecasts to display + intent_data: Parsed intent data """ page_name = "daily_mark_ii.qml" daily_forecast = [] @@ -906,7 +963,8 @@ def _display_multi_day_scalable(self, forecast: List[DailyWeather]): The generic layout supports displaying two days of a forecast at a time. - :param forecast: daily forecasts to display + Args: + forecast: daily forecasts to display """ page_one_name = "daily_1_scalable.qml" page_two_name = page_one_name.replace("1", "2") @@ -930,8 +988,9 @@ def _display_multi_day_scalable(self, forecast: List[DailyWeather]): def _report_temperature(self, message: Message, temperature_type: str = None): """Handles all requests for a temperature. - :param message: Message Bus event information from the intent parser - :param temperature_type: current, high or low temperature + Args: + message: Message Bus event information from the intent parser + temperature_type: current, high or low temperature """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -945,8 +1004,9 @@ def _report_temperature(self, message: Message, temperature_type: str = None): def _report_weather_condition(self, message: Message, condition: str): """Handles all requests for a specific weather condition. - :param message: Message Bus event information from the intent parser - :param condition: the weather condition specified by the user + Args: + message: Message Bus event information from the intent parser + condition: the weather condition specified by the user """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -962,9 +1022,10 @@ def _build_condition_dialog( ) -> WeatherDialog: """Builds a dialog for the requested weather condition. - :param weather: Current, hourly or daily weather forecast - :param intent_data: Parsed intent data - :param condition: weather condition requested by the user + Args: + weather: Current, hourly or daily weather forecast + intent_data: Parsed intent data + condition: weather condition requested by the user """ dialog_args = intent_data, self.weather_config, weather dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) @@ -977,7 +1038,8 @@ def _build_condition_dialog( def _report_wind(self, message: Message): """Handles all requests for a wind conditions. - :param message: Message Bus event information from the intent parser + Args: + message: Message Bus event information from the intent parser """ intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) @@ -991,10 +1053,13 @@ def _report_wind(self, message: Message): self._speak_weather(dialog) def _get_intent_data(self, message: Message) -> WeatherIntent: - """Parse the intend data from the message into data used in the skill. + """Parse the intent data from the message into data used in the skill. - :param message: Message Bus event information from the intent parser - :return: parsed information about the intent + Args: + message: Message Bus event information from the intent parser + + Returns: + parsed information about the intent """ intent_data = None try: @@ -1015,8 +1080,11 @@ def _get_intent_data(self, message: Message) -> WeatherIntent: def _get_weather(self, intent_data: WeatherIntent) -> WeatherReport: """Call the Open Weather Map One Call API to get weather information - :param intent_data: Parsed intent data - :return: An object representing the data returned by the API + Args: + intent_data: Parsed intent data + + Returns: + An object representing the data returned by the API """ weather = None if intent_data is not None: @@ -1042,7 +1110,8 @@ def _get_weather(self, intent_data: WeatherIntent) -> WeatherReport: def _handle_api_error(self, exception: HTTPError): """Communicate an error condition to the user. - :param exception: the HTTPError returned by the API call + Args: + exception: the HTTPError returned by the API call """ if exception.response.status_code == 401: self.bus.emit(Message("mycroft.not.paired")) @@ -1054,8 +1123,11 @@ def _determine_weather_location( ) -> Tuple[float, float]: """Determine latitude and longitude using the location data in the intent. - :param intent_data: Parsed intent data - :return: latitude and longitude of the location + Args: + intent_data: Parsed intent data + + Returns + latitude and longitude of the location """ if intent_data.location is None: latitude = self.weather_config.latitude diff --git a/skill/api.py b/skill/api.py index 2efbc74e..1032eed4 100644 --- a/skill/api.py +++ b/skill/api.py @@ -89,9 +89,10 @@ def get_weather_for_coordinates( ) -> WeatherReport: """Issue an API call and map the return value into a weather report - :param measurement_system: Metric or Imperial measurement units - :param latitude: the geologic latitude of the weather location - :param longitude: the geologic longitude of the weather location + Args: + measurement_system: Metric or Imperial measurement units + latitude: the geologic latitude of the weather location + longitude: the geologic longitude of the weather location """ query_parameters = dict( exclude="minutely", @@ -109,7 +110,11 @@ def get_weather_for_coordinates( def set_language_parameter(self, language_config: str): """ OWM supports 31 languages, see https://openweathermap.org/current#multi - Convert language code to owm language, if missing use 'en' + + Convert Mycroft's language code to OpenWeatherMap's, if missing use english. + + Args: + language_config: The Mycroft language code. """ special_cases = {"cs": "cz", "ko": "kr", "lv": "la"} language_part_one, language_part_two = language_config.split('-') diff --git a/skill/dialog.py b/skill/dialog.py index cbec3465..79cdddbd 100644 --- a/skill/dialog.py +++ b/skill/dialog.py @@ -11,10 +11,30 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -"""Abstraction of dialog building for the weather skill.""" +"""Abstraction of dialog building for the weather skill. + +There are A LOT of dialog files in this skill. All the permutations of timeframe, +weather condition and location add up fast. To help with discoverability, a naming +convention was applied to the dialog files: + ---.dialog + + Example: + daily-temperature-high-local.dialog + + * Timeframe: the date or time applicable to the forecast. This skill supports + current, hourly and daily weather. + * Weather info: a description of what type of weather the dialog refers to. + Examples include "temperature", "weather" and "sunrise". + * Qualifier: further qualifies what type of weather is being reported. For + example, temperature can be qualified by "high" or "low". + * Locale: indicates if the dialog is for local weather or weather in a remote + location. + +The skill class will use the "name" and "data" attributes to pass to the TTS process. +""" from typing import List, Tuple -from mycroft.util.format import nice_number, nice_time +from mycroft.util.format import join_list, nice_number, nice_time from mycroft.util.time import now_local from .config import WeatherConfig from .intent import WeatherIntent @@ -26,9 +46,6 @@ DailyWeather, HOURLY, HourlyWeather, - is_current_weather, - is_hourly_forecast, - is_daily_forecast, ) # TODO: MISSING DIALOGS @@ -77,9 +94,6 @@ def __init__(self, weather, config, intent_data): self.weather = weather self.config = config self.intent_data = intent_data - self.current_weather = is_current_weather(weather) - self.daily_forecast = is_daily_forecast(weather) - self.hourly_forecast = is_hourly_forecast(weather) def build_wind_dialog(self): """Build the components necessary to speak the wind conditions.""" @@ -378,10 +392,7 @@ def build_condition_dialog(self, condition: str): if daily.condition.category == condition: day = get_speakable_day_of_week(daily.date_time) days_with_condition.append(day) - if len(days_with_condition) > 1: - last_day = days_with_condition.pop(-1) - days_with_condition.append("and " + last_day) - self.data.update(days=", ".join(days_with_condition)) + self.data.update(days=join_list(days_with_condition, "and")) def get_dialog_for_timeframe(timeframe: str, dialog_ags: Tuple): diff --git a/skill/util.py b/skill/util.py index e5168044..8176ec04 100644 --- a/skill/util.py +++ b/skill/util.py @@ -35,8 +35,12 @@ def convert_to_local_datetime(timestamp: time, timezone: str) -> datetime: This function assumes it is passed a timestamp in the UTC timezone. It then adjusts the datetime to match the specified timezone. - :param timestamp: seconds since epoch - :param timezone: the timezone requested by the user + Args: + timestamp: seconds since epoch + timezone: the timezone requested by the user + + Returns: + A datetime in the passed timezone based on the passed timestamp """ naive_datetime = datetime.fromtimestamp(timestamp) utc_datetime = pytz.utc.localize(naive_datetime) @@ -51,9 +55,13 @@ def get_utterance_datetime( ) -> datetime: """Get a datetime representation of a date or time concept in an utterance. - :param utterance: the words spoken by the user - :param timezone: the timezone requested by the user - :param language: the language configured on the device + Args: + utterance: the words spoken by the user + timezone: the timezone requested by the user + language: the language configured on the device + + Returns: + The date and time represented in the utterance in the specified timezone. """ utterance_datetime = None if timezone is None: @@ -71,7 +79,11 @@ def get_utterance_datetime( def get_tz_info(timezone: str) -> tzinfo: """Generate a tzinfo object from a timezone string. - :param timezone: a string representing a timezone + Args: + timezone: a string representing a timezone + + Returns: + timezone in a string format """ return pytz.timezone(timezone) @@ -79,7 +91,15 @@ def get_tz_info(timezone: str) -> tzinfo: def get_geolocation(location: str): """Retrieve the geolocation information about the requested location. - :param location: a location specified in the utterance + Args: + location: a location specified in the utterance + + Returns: + A deserialized JSON object containing geolocation information for the + specified city. + + Raises: + LocationNotFound error if the API returns no results. """ geolocation_api = GeolocationApi() geolocation = geolocation_api.get_geolocation(location) @@ -93,7 +113,11 @@ def get_geolocation(location: str): def get_time_period(intent_datetime: datetime) -> str: """Translate a specific time '9am' to period of the day 'morning' - :param intent_datetime: the datetime extracted from an utterance + Args: + intent_datetime: the datetime extracted from an utterance + + Returns: + A generalized time of day based on the passed datetime object. """ hour = intent_datetime.time().hour if 1 <= hour < 5: @@ -113,8 +137,11 @@ def get_time_period(intent_datetime: datetime) -> str: def get_speakable_day_of_week(date_to_speak: datetime): """Convert the time of the a daily weather forecast to a speakable day of week. - :param date_to_speak: The date/time for the forecast being reported. - :return: The day of the week in the device's configured language + Args: + date_to_speak: The date/time for the forecast being reported. + + Returns: + The day of the week in the device's configured language """ now = now_local() tomorrow = now.date() + timedelta(days=1) diff --git a/skill/weather.py b/skill/weather.py index edf4cf08..4fbe5e3e 100644 --- a/skill/weather.py +++ b/skill/weather.py @@ -14,6 +14,7 @@ """Representations and conversions of the data returned by the weather API.""" from datetime import timedelta from pathlib import Path +from typing import List from .config import MILES_PER_HOUR from .util import convert_to_local_datetime @@ -79,21 +80,6 @@ ) -def is_daily_forecast(weather_report) -> bool: - """Helper function to determine if the object passed is a DailyWeather object.""" - return isinstance(weather_report, DailyWeather) - - -def is_hourly_forecast(weather_report) -> bool: - """Helper function to determine if the object passed is a HourlyWeather object.""" - return isinstance(weather_report, HourlyWeather) - - -def is_current_weather(weather_report) -> bool: - """Helper function to determine if the object passed is a CurrentWeather object.""" - return isinstance(weather_report, CurrentWeather) - - class WeatherCondition: """Data representation of a weather conditions JSON object from the API""" @@ -152,7 +138,11 @@ def __init__(self, weather: dict, timezone: str): def _determine_wind_direction(degree_direction: int): """Convert wind direction from compass degrees to compass direction. - :param degree_direction: Degrees on a compass indicating wind direction. + Args: + degree_direction: Degrees on a compass indicating wind direction. + + Returns: + the wind direction in one of eight compass directions """ for min_degree, compass_direction in WIND_DIRECTION_CONVERSION: if degree_direction < min_degree: @@ -166,7 +156,11 @@ def _determine_wind_direction(degree_direction: int): def determine_wind_strength(self, speed_unit: str): """Convert a wind speed to a wind strength. - :param speed_unit: unit of measure for speed depending on device configuration + Args: + speed_unit: unit of measure for speed depending on device configuration + + Returns: + a string representation of the wind strength """ if speed_unit == MILES_PER_HOUR: limits = dict(strong=20, moderate=11) @@ -263,7 +257,11 @@ def __init__(self, report): self.alerts = None def get_weather_for_intent(self, intent_data): - """Use the intent to determine which forecast satisfies the request""" + """Use the intent to determine which forecast satisfies the request. + + Args: + intent_data: Parsed intent data + """ if intent_data.timeframe == "hourly": weather = self.get_forecast_for_hour(intent_data) elif intent_data.timeframe == "daily": @@ -274,7 +272,11 @@ def get_weather_for_intent(self, intent_data): return weather def get_forecast_for_date(self, intent_data): - """Use the intent to determine which daily forecast(s) satisfies the request""" + """Use the intent to determine which daily forecast(s) satisfies the request. + + Args: + intent_data: Parsed intent data + """ if intent_data.intent_datetime.date() == intent_data.location_datetime.date(): forecast = self.daily[0] else: @@ -285,8 +287,18 @@ def get_forecast_for_date(self, intent_data): return forecast - def get_forecast_for_multiple_days(self, days): - """Use the intent to determine which daily forecast(s) satisfies the request""" + def get_forecast_for_multiple_days(self, days: int) -> List[DailyWeather]: + """Use the intent to determine which daily forecast(s) satisfies the request. + + Args: + days: number of forecast days to return + + Returns: + list of daily forecasts for the specified number of days + + Raises: + IndexError when number of days is more than what is returned by the API + """ if days > 7: raise IndexError("Only seven days of forecasted weather available.") @@ -295,7 +307,14 @@ def get_forecast_for_multiple_days(self, days): return forecast def get_forecast_for_hour(self, intent_data): - """Use the intent to determine which hourly forecast(s) satisfies the request""" + """Use the intent to determine which hourly forecast(s) satisfies the request. + + Args: + intent_data: Parsed intent data + + Returns: + A single hour of forecast data based on the intent data + """ delta = intent_data.intent_datetime - intent_data.location_datetime hour_delta = int(delta / timedelta(hours=1)) hour_index = hour_delta + 1 @@ -304,7 +323,11 @@ def get_forecast_for_hour(self, intent_data): return report def get_weekend_forecast(self): - """Use the intent to determine which daily forecast(s) satisfies the request""" + """Use the intent to determine which daily forecast(s) satisfies the request. + + Returns: + The Saturday and Sunday forecast from the list of daily forecasts + """ forecast = list() for forecast_day in self.daily: report_date = forecast_day.date_time.date() @@ -314,10 +337,18 @@ def get_weekend_forecast(self): return forecast def get_next_precipitation(self, intent_data): - """Determine when the next chance of precipitation is in the forecast""" + """Determine when the next chance of precipitation is in the forecast. + + Args: + intent_data: Parsed intent data + + Returns: + The weather report containing the next chance of rain and the timeframe of + the selected report. + """ report = None current_precipitation = True - timeframe = "hourly" + timeframe = HOURLY for hourly in self.hourly: if hourly.date_time.date() > intent_data.location_datetime.date(): break @@ -329,7 +360,7 @@ def get_next_precipitation(self, intent_data): current_precipitation = False if report is None: - timeframe = "daily" + timeframe = DAILY for daily in self.daily: if daily.date_time.date() == intent_data.location_datetime.date(): continue From 054c9b29b6173071d1e7a8c88513ca4e2990abd4 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 12 May 2021 13:21:36 -0500 Subject: [PATCH 37/42] use the new CardDelegate defined in the mycroft-gui repository to abstract some of the grid-style card layout commonalities. --- ui/WeatherDelegateMarkII.qml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/ui/WeatherDelegateMarkII.qml b/ui/WeatherDelegateMarkII.qml index e1ff4f12..d35c7815 100644 --- a/ui/WeatherDelegateMarkII.qml +++ b/ui/WeatherDelegateMarkII.qml @@ -24,15 +24,6 @@ import QtQuick.Controls 2.0 import Mycroft 1.0 as Mycroft -// TODO: Change to use CardDelegate -Mycroft.Delegate { +Mycroft.CardDelegate { id: root - - readonly property int gridUnit: 16 - - bottomPadding: 32 - leftPadding: 32 - rightPadding: 32 - topPadding: 32 - } From bb5ab990d5aee9e573ca8908afdab8b413dd9c3b Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 12 May 2021 13:49:31 -0500 Subject: [PATCH 38/42] resolve merge conflicts --- ui/current_1_scalable.qml | 4 +++- ui/current_2_scalable.qml | 12 ++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ui/current_1_scalable.qml b/ui/current_1_scalable.qml index cb48a6af..7b286f3b 100644 --- a/ui/current_1_scalable.qml +++ b/ui/current_1_scalable.qml @@ -54,10 +54,12 @@ WeatherDelegateScalable { } } - Mycroft.AutoFitLabel { + Label { // Current temperature in the configured temperature unit id: temperature font.weight: Font.Bold + font.pixelSize: parent.height * 0.65 + horizontalAlignment: Text.AlignHCenter Layout.fillWidth: true Layout.preferredHeight: proportionalGridUnit * 40 rightPadding: -font.pixelSize * 0.1 diff --git a/ui/current_2_scalable.qml b/ui/current_2_scalable.qml index 17f896ef..9d650f96 100644 --- a/ui/current_2_scalable.qml +++ b/ui/current_2_scalable.qml @@ -31,9 +31,11 @@ import org.kde.lottie 1.0 WeatherDelegateScalable { id: root - Mycroft.AutoFitLabel { + Label { id: highTemperature font.weight: Font.Bold + font.pixelSize: parent.height * 0.50 + horizontalAlignment: Text.AlignHCenter Layout.fillWidth: true Layout.preferredHeight: proportionalGridUnit * 40 //The off-centering to balance the ° should be proportional as well, so we use the computed pixel size @@ -41,13 +43,15 @@ WeatherDelegateScalable { text: sessionData.highTemperature + "°" } - Mycroft.AutoFitLabel { + Label { id: lowTemperature + font.pixelSize: parent.height * 0.50 + font.styleName: "Thin" + font.weight: Font.Thin + horizontalAlignment: Text.AlignHCenter Layout.fillWidth: true Layout.preferredHeight: proportionalGridUnit * 40 rightPadding: -font.pixelSize * 0.1 - font.weight: Font.Thin - font.styleName: "Thin" text: sessionData.lowTemperature + "°" } } From 04aca837b1af1a73700d1c92653df1260f3028cc Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 12 May 2021 14:12:35 -0500 Subject: [PATCH 39/42] apply new dialog file naming convention to tests. --- test/behave/current-temperature-local.feature | 6 +++--- test/behave/current-temperature-location.feature | 6 +++--- test/behave/current-weather-local.feature | 4 ++-- test/behave/current-weather-location.feature | 6 +++--- test/behave/daily-temperature-local.feature | 8 ++++---- test/behave/daily-weather-local.feature | 4 ++-- test/behave/daily-weather-location.feature | 2 +- test/behave/hourly-weather-local.feature | 2 +- test/behave/hourly-weather-location.feature | 2 +- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/test/behave/current-temperature-local.feature b/test/behave/current-temperature-local.feature index 0ae0f453..db64f19a 100644 --- a/test/behave/current-temperature-local.feature +++ b/test/behave/current-temperature-local.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill current local weather Scenario Outline: What is the temperature today Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.temperature.local.dialog" + Then "mycroft-weather" should reply with dialog from "current-temperature-local.dialog" Examples: What is the temperature today | what is the temperature today | @@ -19,7 +19,7 @@ Feature: Mycroft Weather Skill current local weather Scenario Outline: What is the high temperature today Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.temperature.high.local.dialog" + Then "mycroft-weather" should reply with dialog from "current-temperature-high-local.dialog" Examples: What is the high temperature today | what is the high temperature today | @@ -35,7 +35,7 @@ Feature: Mycroft Weather Skill current local weather Scenario Outline: What is the low temperature today Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.temperature.low.local.dialog" + Then "mycroft-weather" should reply with dialog from "current-temperature-low-local.dialog" Examples: What is the low temperature today | what is the low temperature today | diff --git a/test/behave/current-temperature-location.feature b/test/behave/current-temperature-location.feature index 47b320eb..be76fc99 100644 --- a/test/behave/current-temperature-location.feature +++ b/test/behave/current-temperature-location.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill current temperature at specified location Scenario Outline: User asks for the temperature today in a location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.temperature.location.dialog" + Then "mycroft-weather" should reply with dialog from "current-temperature-location.dialog" Examples: what is the temperature today in location | what is the temperature today in location | @@ -18,7 +18,7 @@ Feature: Mycroft Weather Skill current temperature at specified location Scenario Outline: User asks for the high temperature today in a location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.temperature.high.location.dialog" + Then "mycroft-weather" should reply with dialog from "current-temperature-high-location.dialog" Examples: what is the high temperature today in location | what is the high temperature today in location | @@ -34,7 +34,7 @@ Feature: Mycroft Weather Skill current temperature at specified location Scenario Outline: User asks for the low temperature in a location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.temperature.low.location.dialog" + Then "mycroft-weather" should reply with dialog from "current-temperature-low-location.dialog" Examples: low temperature today in location | what is the low temperature today in location | diff --git a/test/behave/current-weather-local.feature b/test/behave/current-weather-local.feature index 5e6fbd1e..45a87cf6 100644 --- a/test/behave/current-weather-local.feature +++ b/test/behave/current-weather-local.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill local current weather conditions Scenario Outline: What is the current local weather Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.weather.local.dialog" + Then "mycroft-weather" should reply with dialog from "current-weather-local.dialog" Examples: What is the current local weather | current local weather | @@ -33,7 +33,7 @@ Feature: Mycroft Weather Skill local current weather conditions Scenario Outline: Current local weather matches date/time relative day intent Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.weather.local.dialog" + Then "mycroft-weather" should reply with dialog from "current-weather-local.dialog" Examples: What is the current local weather | current local weather | diff --git a/test/behave/current-weather-location.feature b/test/behave/current-weather-location.feature index fa93aead..fa330fec 100644 --- a/test/behave/current-weather-location.feature +++ b/test/behave/current-weather-location.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill current weather at a specified location Scenario Outline: User asks for the current weather in a location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.weather.location.dialog" + Then "mycroft-weather" should reply with dialog from "current-weather-location.dialog" Examples: what is the current local weather in a location | what is the current weather in location | @@ -23,7 +23,7 @@ Feature: Mycroft Weather Skill current weather at a specified location Scenario Outline: FAILING User asks for the current weather in a location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "current.weather.location.dialog" + Then "mycroft-weather" should reply with dialog from "current-weather-location.dialog" Examples: what is the current local weather in a location | what is the current weather in location | @@ -34,7 +34,7 @@ Feature: Mycroft Weather Skill current weather at a specified location Scenario Outline: User asks for the current weather in an unknown location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "location.not.found.dialog" + Then "mycroft-weather" should reply with dialog from "location-not-found.dialog" Examples: what is the current local weather in a location | what is the current weather in location | diff --git a/test/behave/daily-temperature-local.feature b/test/behave/daily-temperature-local.feature index ab76d78f..4b8ba75f 100644 --- a/test/behave/daily-temperature-local.feature +++ b/test/behave/daily-temperature-local.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill local forecasted temperatures Scenario Outline: What is the temperature for tomorrow Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-temperature-local.dialog" Examples: what is the temperature for tomorrow | what is the temperature tomorrow | @@ -15,7 +15,7 @@ Feature: Mycroft Weather Skill local forecasted temperatures Scenario Outline: Failing what is the temperature for tomorrow Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-temperature-local.dialog" Examples: what is the temperature for tomorrow | what is the temperature tomorrow | @@ -25,7 +25,7 @@ Feature: Mycroft Weather Skill local forecasted temperatures Scenario Outline: what is the high temperature for tomorrow Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.temperature.high.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-temperature-high-local.dialog" Examples: what is the high temperature for tomorrow | what is the high temperature tomorrow | @@ -40,7 +40,7 @@ Feature: Mycroft Weather Skill local forecasted temperatures Scenario Outline: what is the low temperature for tomorrow Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.temperature.low.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-temperature-low-local.dialog" Examples: what is the low temperature for tomorrow | what is the low temperature tomorrow | diff --git a/test/behave/daily-weather-local.feature b/test/behave/daily-weather-local.feature index 1ced10f7..074f71a7 100644 --- a/test/behave/daily-weather-local.feature +++ b/test/behave/daily-weather-local.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill local daily forecasts Scenario Outline: what is the forecast for tomorrow Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-weather-local.dialog" Examples: What is the forecast for tomorrow | what is the forecast for tomorrow | @@ -15,7 +15,7 @@ Feature: Mycroft Weather Skill local daily forecasts Scenario Outline: what is the forecast for a future date Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.weather.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-weather-local.dialog" Examples: what is the forecast for a future date | what is the forecast for a future date | diff --git a/test/behave/daily-weather-location.feature b/test/behave/daily-weather-location.feature index 7371904b..1f70a291 100644 --- a/test/behave/daily-weather-location.feature +++ b/test/behave/daily-weather-location.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill daily forecast for a specified location. Scenario Outline: User asks for the forecast on a future date in a location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.weather.location.dialog" + Then "mycroft-weather" should reply with dialog from "daily-weather-location.dialog" Examples: what is the forecast for a future date in location | what is the forecast on a future date in a location | diff --git a/test/behave/hourly-weather-local.feature b/test/behave/hourly-weather-local.feature index 2f2ac52a..2868dba4 100644 --- a/test/behave/hourly-weather-local.feature +++ b/test/behave/hourly-weather-local.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill local hourly forecasts Scenario Outline: what is the weather later Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "hourly.weather.local.dialog" + Then "mycroft-weather" should reply with dialog from "hourly-weather-local.dialog" Examples: What is the weather later | what is the weather later | diff --git a/test/behave/hourly-weather-location.feature b/test/behave/hourly-weather-location.feature index 364dcbbc..ba1b1df9 100644 --- a/test/behave/hourly-weather-location.feature +++ b/test/behave/hourly-weather-location.feature @@ -3,7 +3,7 @@ Feature: Mycroft Weather Skill hourly forecasts at a specified location Scenario Outline: User asks what the weather is later at a location Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "hourly.weather.location.dialog" + Then "mycroft-weather" should reply with dialog from "hourly-weather-location.dialog" Examples: What is the weather later | what is the weather later | From 3a19904648ba826df087c7631a84c146c3af2054 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 12 May 2021 15:56:49 -0500 Subject: [PATCH 40/42] fixed errant dialog names found in VK testing. --- __init__.py | 4 ++-- test/behave/daily-temperature-local.feature | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/__init__.py b/__init__.py index 9e86ea13..4fbc6592 100644 --- a/__init__.py +++ b/__init__.py @@ -1099,11 +1099,11 @@ def _get_weather(self, intent_data: WeatherIntent) -> WeatherReport: except LocationNotFoundError: self.log.exception("City not found.") self.speak_dialog( - "location.not.found", data=dict(location=intent_data.location) + "location-not-found", data=dict(location=intent_data.location) ) except Exception: self.log.exception("Unexpected error retrieving weather") - self.speak_dialog("cant.get.forecast") + self.speak_dialog("cant-get-forecast") return weather diff --git a/test/behave/daily-temperature-local.feature b/test/behave/daily-temperature-local.feature index 4b8ba75f..feddcaad 100644 --- a/test/behave/daily-temperature-local.feature +++ b/test/behave/daily-temperature-local.feature @@ -54,7 +54,7 @@ Feature: Mycroft Weather Skill local forecasted temperatures Scenario Outline: what is the temperature for a future date Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.temperature.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-temperature-local.dialog" Examples: what is the temperature for a future date | what is the temperature for a future date | @@ -65,7 +65,7 @@ Feature: Mycroft Weather Skill local forecasted temperatures Scenario Outline: what is the high temperature for a future date Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.temperature.high.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-temperature-high-local.dialog" Examples: what is the high temperature for a future date | what is the high temperature for a future date | @@ -76,7 +76,7 @@ Feature: Mycroft Weather Skill local forecasted temperatures Scenario Outline: what is the low temperature for a future date Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "daily.temperature.low.local.dialog" + Then "mycroft-weather" should reply with dialog from "daily-temperature-low-local.dialog" Examples: what is the low temperature for a future date | what is the low temperature for a future date | @@ -87,7 +87,7 @@ Feature: Mycroft Weather Skill local forecasted temperatures Scenario Outline: what is the temperature at a certain time Given an english speaking user When the user says "" - Then "mycroft-weather" should reply with dialog from "hourly.temperature.local.dialog" + Then "mycroft-weather" should reply with dialog from "hourly-temperature-local.dialog" Examples: what is the temperature at a certain time | what is the temperature at a certain time | From 47b6baad98b38fb9c16d76e4ce2ce17839e4f7d9 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 12 May 2021 17:20:13 -0500 Subject: [PATCH 41/42] fix VK test failures. --- __init__.py | 12 +++-- skill/dialog.py | 137 ++++++++++++++++++++++++++++-------------------- 2 files changed, 87 insertions(+), 62 deletions(-) diff --git a/__init__.py b/__init__.py index 4fbc6592..c273c29f 100644 --- a/__init__.py +++ b/__init__.py @@ -341,7 +341,8 @@ def handle_how_hot_or_cold(self, message): Args: message: Message Bus event information from the intent parser """ - temperature_type = "high" if message.data.get("Hot") else "low" + utterance = message.data["utterance"] + temperature_type = "high" if self.voc_match(utterance, "hot") else "low" self._report_temperature(message, temperature_type) @intent_handler( @@ -376,7 +377,10 @@ def handle_windy(self, message): self._report_wind(message) @intent_handler( - IntentBuilder("").require("confirm-query").require("snow").optionally("location") + IntentBuilder("") + .require("confirm-query") + .require("snow") + .optionally("location") ) def handle_is_it_snowing(self, message: Message): """Handler for weather requests such as: is it snowing today? @@ -562,9 +566,7 @@ def handle_sunset(self, message: Message): self._display_sunrise_sunset(intent_weather, weather_location) self._speak_weather(dialog) - def _display_sunrise_sunset( - self, forecast: DailyWeather, weather_location: str - ): + def _display_sunrise_sunset(self, forecast: DailyWeather, weather_location: str): """Display the sunrise and sunset. Args: diff --git a/skill/dialog.py b/skill/dialog.py index 79cdddbd..42449f48 100644 --- a/skill/dialog.py +++ b/skill/dialog.py @@ -86,61 +86,6 @@ def _add_location(self): self.data.update(location=spoken_location) -class WeatherDialog(Dialog): - """Use intent and weather data to determine which dialog will be spoken.""" - - def __init__(self, weather, config, intent_data): - super().__init__(intent_data, config) - self.weather = weather - self.config = config - self.intent_data = intent_data - - def build_wind_dialog(self): - """Build the components necessary to speak the wind conditions.""" - wind_strength = self.weather.determine_wind_strength(self.config.speed_unit) - self.data = dict( - speed=nice_number(self.weather.wind_speed), - speed_unit=self.config.speed_unit, - direction=self.weather.wind_direction, - ) - self.name = self.intent_data.timeframe - if self.intent_data.timeframe == DAILY: - self.data.update(day=self.weather.date_time.strftime("%A")) - elif self.hourly_forecast: - self.data.update(time=nice_time(self.weather.date_time)) - self.name += "-wind-" + wind_strength - self._add_location() - - def build_humidity_dialog(self): - """Build the components necessary to speak the percentage humidity.""" - self.data = dict(percent=self.weather.humidity) - if self.intent_data.timeframe == DAILY: - self.name = "daily-humidity" - self.data.update(day=self.weather.date_time.strftime("%A")) - else: - self.name = "current-humidity" - self._add_location() - - def build_next_precipitation_dialog(self): - """Build the components necessary to speak the next chance of rain.""" - if self.weather is None: - self.name = "daily.precipitation.next.none" - self.data = dict() - else: - if self.intent_data.timeframe == DAILY: - self.name = "daily-precipitation-next" - self.data = dict(day=self.weather.date_time.strftime("%A")) - else: - self.name = "hourly-precipitation-next" - self.data = dict(time=get_time_period(self.weather.date_time)) - self.data = dict( - percent=self.weather.chance_of_precipitation, - precipitation="rain", - day=self.weather.date_time.strftime("%A"), - ) - self._add_location() - - class CurrentDialog(Dialog): """Weather dialog builder for current weather.""" @@ -230,6 +175,23 @@ def build_sunset_dialog(self): self.data = dict(time=nice_time(self.weather.sunset)) self._add_location() + def build_wind_dialog(self): + """Build the components necessary to speak the wind conditions.""" + wind_strength = self.weather.determine_wind_strength(self.config.speed_unit) + self.data = dict( + speed=nice_number(self.weather.wind_speed), + speed_unit=self.config.speed_unit, + direction=self.weather.wind_direction, + ) + self.name += "-wind-" + wind_strength + self._add_location() + + def build_humidity_dialog(self): + """Build the components necessary to speak the percentage humidity.""" + self.data = dict(percent=self.weather.humidity) + self.name += "-humidity" + self._add_location() + class HourlyDialog(Dialog): """Weather dialog builder for hourly weather.""" @@ -257,7 +219,7 @@ def build_temperature_dialog(self, _): self.data = dict( temperature=self.weather.temperature, time=get_time_period(self.weather.date_time), - temperature_unit=self.intent_data.unit or self.config.temperature_unit + temperature_unit=self.intent_data.unit or self.config.temperature_unit, ) self._add_location() @@ -280,6 +242,33 @@ def build_condition_dialog(self, intent_match: bool): ) self._add_location() + def build_wind_dialog(self): + """Build the components necessary to speak the wind conditions.""" + wind_strength = self.weather.determine_wind_strength(self.config.speed_unit) + self.data = dict( + speed=nice_number(self.weather.wind_speed), + speed_unit=self.config.speed_unit, + direction=self.weather.wind_direction, + time=nice_time(self.weather.date_time), + ) + self.name += "-wind-" + wind_strength + self._add_location() + + def build_next_precipitation_dialog(self): + """Build the components necessary to speak the next chance of rain.""" + if self.weather is None: + self.name += "-precipitation-next-none" + self.data = dict() + else: + self.name += "-precipitation-next" + self.data = dict( + percent=self.weather.chance_of_precipitation, + precipitation="rain", + day=self.weather.date_time.strftime("%A"), + time=get_time_period(self.weather.date_time), + ) + self._add_location() + class DailyDialog(Dialog): """Weather dialog builder for daily weather.""" @@ -320,7 +309,7 @@ def build_temperature_dialog(self, temperature_type: str): self.data = dict(temperature=self.weather.temperature.day) self.data.update( day=get_speakable_day_of_week(self.weather.date_time), - temperature_unit = self.intent_data.unit or self.config.temperature_unit + temperature_unit=self.intent_data.unit or self.config.temperature_unit, ) self._add_location() @@ -357,6 +346,40 @@ def build_sunset_dialog(self): self.data.update(day=get_speakable_day_of_week(self.weather.date_time)) self._add_location() + def build_wind_dialog(self): + """Build the components necessary to speak the wind conditions.""" + wind_strength = self.weather.determine_wind_strength(self.config.speed_unit) + self.data = dict( + day=self.weather.date_time.strftime("%A"), + speed=nice_number(self.weather.wind_speed), + speed_unit=self.config.speed_unit, + direction=self.weather.wind_direction, + ) + self.name += "-wind-" + wind_strength + self._add_location() + + def build_humidity_dialog(self): + """Build the components necessary to speak the percentage humidity.""" + self.data = dict( + percent=self.weather.humidity, day=self.weather.date_time.strftime("%A") + ) + self.name += "-humidity" + self._add_location() + + def build_next_precipitation_dialog(self): + """Build the components necessary to speak the next chance of rain.""" + if self.weather is None: + self.name += "-precipitation-next-none" + self.data = dict() + else: + self.name += "-precipitation-next" + self.data = dict( + percent=self.weather.chance_of_precipitation, + precipitation="rain", + day=self.weather.date_time.strftime("%A"), + ) + self._add_location() + class WeeklyDialog(Dialog): """Weather dialog builder for weekly weather.""" From 37de4a58f0c0c691966184de6e9f24990327763d Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Wed, 12 May 2021 18:06:25 -0500 Subject: [PATCH 42/42] Move the rest of the old dialog class to the new ones. --- __init__.py | 16 +++++++++------- skill/dialog.py | 10 +++++----- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/__init__.py b/__init__.py index c273c29f..1c112cbf 100644 --- a/__init__.py +++ b/__init__.py @@ -40,7 +40,6 @@ LocationNotFoundError, OpenWeatherMapApi, WeatherConfig, - WeatherDialog, WeatherIntent, WeatherReport, WeeklyDialog, @@ -477,12 +476,13 @@ def handle_next_precipitation(self, message: Message): Args: message: Message Bus event information from the intent parser """ - intent_data = WeatherIntent(message, self.lang) + intent_data = self._get_intent_data(message) weather = self._get_weather(intent_data) if weather is not None: forecast, timeframe = weather.get_next_precipitation(intent_data) intent_data.timeframe = timeframe - dialog = WeatherDialog(forecast, self.weather_config, intent_data) + dialog_args = intent_data, self.weather_config, forecast + dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_next_precipitation_dialog() spoken_percentage = self.translate( "percentage-number", data=dict(number=dialog.data["percent"]) @@ -507,7 +507,8 @@ def handle_humidity(self, message: Message): weather = self._get_weather(intent_data) if weather is not None: intent_weather = weather.get_weather_for_intent(intent_data) - dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) + dialog_args = intent_data, self.weather_config, intent_weather + dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_humidity_dialog() dialog.data.update( humidity=self.translate( @@ -847,7 +848,7 @@ def _build_forecast_dialogs( :param forecast: daily forecasts to report :param intent_data: information about the intent that was triggered - :return: one WeatherDialog instance for each day being reported. + :return: one DailyDialog instance for each day being reported. """ dialogs = list() for forecast_day in forecast: @@ -1021,7 +1022,7 @@ def _report_weather_condition(self, message: Message, condition: str): def _build_condition_dialog( self, weather, intent_data: WeatherIntent, condition: str - ) -> WeatherDialog: + ): """Builds a dialog for the requested weather condition. Args: @@ -1050,7 +1051,8 @@ def _report_wind(self, message: Message): intent_weather.wind_direction = self.translate( intent_weather.wind_direction ) - dialog = WeatherDialog(intent_weather, self.weather_config, intent_data) + dialog_args = intent_data, self.weather_config, intent_weather + dialog = get_dialog_for_timeframe(intent_data.timeframe, dialog_args) dialog.build_wind_dialog() self._speak_weather(dialog) diff --git a/skill/dialog.py b/skill/dialog.py index 42449f48..b356810d 100644 --- a/skill/dialog.py +++ b/skill/dialog.py @@ -54,7 +54,7 @@ # - daily.snow.alternative.local # - all hourly..alternative.local/location # - all hourly..not.expected.local/location -class Dialog: +class WeatherDialog: """Abstract base class for the weather dialog builders.""" def __init__(self, intent_data: WeatherIntent, config: WeatherConfig): @@ -86,7 +86,7 @@ def _add_location(self): self.data.update(location=spoken_location) -class CurrentDialog(Dialog): +class CurrentDialog(WeatherDialog): """Weather dialog builder for current weather.""" def __init__( @@ -193,7 +193,7 @@ def build_humidity_dialog(self): self._add_location() -class HourlyDialog(Dialog): +class HourlyDialog(WeatherDialog): """Weather dialog builder for hourly weather.""" def __init__( @@ -270,7 +270,7 @@ def build_next_precipitation_dialog(self): self._add_location() -class DailyDialog(Dialog): +class DailyDialog(WeatherDialog): """Weather dialog builder for daily weather.""" def __init__( @@ -381,7 +381,7 @@ def build_next_precipitation_dialog(self): self._add_location() -class WeeklyDialog(Dialog): +class WeeklyDialog(WeatherDialog): """Weather dialog builder for weekly weather.""" def __init__(