diff --git a/homeassistant/components/dialogflow/.translations/de.json b/homeassistant/components/dialogflow/.translations/de.json
new file mode 100644
index 00000000000..e10d890b501
--- /dev/null
+++ b/homeassistant/components/dialogflow/.translations/de.json
@@ -0,0 +1,10 @@
+{
+ "config": {
+ "step": {
+ "user": {
+ "title": "Dialogflow Webhook einrichten"
+ }
+ },
+ "title": "Dialogflow"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/dialogflow/.translations/nl.json b/homeassistant/components/dialogflow/.translations/nl.json
new file mode 100644
index 00000000000..5a28d6be9ac
--- /dev/null
+++ b/homeassistant/components/dialogflow/.translations/nl.json
@@ -0,0 +1,15 @@
+{
+ "config": {
+ "abort": {
+ "not_internet_accessible": "Uw Home Assistant instantie moet toegankelijk zijn vanaf het internet om Dialogflow-berichten te ontvangen.",
+ "one_instance_allowed": "Slechts \u00e9\u00e9n instantie is nodig."
+ },
+ "step": {
+ "user": {
+ "description": "Weet u zeker dat u Dialogflow wilt instellen?",
+ "title": "Stel de Twilio Dialogflow in"
+ }
+ },
+ "title": "Dialogflow"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/homematicip_cloud/.translations/ko.json b/homeassistant/components/homematicip_cloud/.translations/ko.json
index 46ef55c9eca..b60da944f64 100644
--- a/homeassistant/components/homematicip_cloud/.translations/ko.json
+++ b/homeassistant/components/homematicip_cloud/.translations/ko.json
@@ -21,7 +21,7 @@
"title": "HomematicIP \uc561\uc138\uc2a4 \ud3ec\uc778\ud2b8 \uc120\ud0dd"
},
"link": {
- "description": "Home Assistant \uc5d0 HomematicIP \ub97c \ub4f1\ub85d\ud558\ub824\uba74 \uc561\uc138\uc2a4 \ud3ec\uc778\ud2b8\uc758 \ud30c\ub780\uc0c9 \ubc84\ud2bc\uacfc \uc11c\ubc0b \ubc84\ud2bc\uc744 \ub20c\ub7ec\uc8fc\uc138\uc694.\n\n",
+ "description": "Home Assistant \uc5d0 HomematicIP \ub97c \ub4f1\ub85d\ud558\ub824\uba74 \uc561\uc138\uc2a4 \ud3ec\uc778\ud2b8\uc758 \ud30c\ub780\uc0c9 \ubc84\ud2bc\uacfc Submit \ubc84\ud2bc\uc744 \ub20c\ub7ec\uc8fc\uc138\uc694.\n\n",
"title": "\uc561\uc138\uc2a4 \ud3ec\uc778\ud2b8\uc5d0 \uc5f0\uacb0"
}
},
diff --git a/homeassistant/components/hue/.translations/it.json b/homeassistant/components/hue/.translations/it.json
index a9f2a732127..72b2fd6445b 100644
--- a/homeassistant/components/hue/.translations/it.json
+++ b/homeassistant/components/hue/.translations/it.json
@@ -17,7 +17,7 @@
"data": {
"host": "Host"
},
- "title": "Selezione il bridge Hue"
+ "title": "Seleziona il bridge Hue"
},
"link": {
"description": "Premi il pulsante sul bridge per registrare Philips Hue con Home Assistant\n\n",
diff --git a/homeassistant/components/luftdaten/.translations/de.json b/homeassistant/components/luftdaten/.translations/de.json
new file mode 100644
index 00000000000..136b907df81
--- /dev/null
+++ b/homeassistant/components/luftdaten/.translations/de.json
@@ -0,0 +1,17 @@
+{
+ "config": {
+ "error": {
+ "communication_error": "Keine Kommunikation mit Lufdaten API m\u00f6glich",
+ "invalid_sensor": "Sensor nicht verf\u00fcgbar oder ung\u00fcltig",
+ "sensor_exists": "Sensor bereits registriert"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "show_on_map": "Auf Karte anzeigen"
+ }
+ }
+ },
+ "title": "Luftdaten"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/luftdaten/.translations/nl.json b/homeassistant/components/luftdaten/.translations/nl.json
new file mode 100644
index 00000000000..3284b581f5f
--- /dev/null
+++ b/homeassistant/components/luftdaten/.translations/nl.json
@@ -0,0 +1,19 @@
+{
+ "config": {
+ "error": {
+ "communication_error": "Kan niet communiceren met de Luftdaten API",
+ "invalid_sensor": "Sensor niet beschikbaar of ongeldig",
+ "sensor_exists": "Sensor bestaat al"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "show_on_map": "Toon op kaart",
+ "station_id": "Luftdaten Sensor ID"
+ },
+ "title": "Definieer Luftdaten"
+ }
+ },
+ "title": "Luftdaten"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/luftdaten/.translations/zh-Hans.json b/homeassistant/components/luftdaten/.translations/zh-Hans.json
new file mode 100644
index 00000000000..375a08d8a45
--- /dev/null
+++ b/homeassistant/components/luftdaten/.translations/zh-Hans.json
@@ -0,0 +1,19 @@
+{
+ "config": {
+ "error": {
+ "communication_error": "\u65e0\u6cd5\u4e0e Luftdaten API \u901a\u4fe1",
+ "invalid_sensor": "\u4f20\u611f\u5668\u4e0d\u53ef\u7528\u6216\u65e0\u6548",
+ "sensor_exists": "\u4f20\u611f\u5668\u5df2\u6ce8\u518c"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "show_on_map": "\u5728\u5730\u56fe\u4e0a\u663e\u793a",
+ "station_id": "Luftdaten \u4f20\u611f\u5668 ID"
+ },
+ "title": "\u5b9a\u4e49 Luftdaten"
+ }
+ },
+ "title": "Luftdaten"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/point/.translations/ca.json b/homeassistant/components/point/.translations/ca.json
new file mode 100644
index 00000000000..6298b29f268
--- /dev/null
+++ b/homeassistant/components/point/.translations/ca.json
@@ -0,0 +1,32 @@
+{
+ "config": {
+ "abort": {
+ "already_setup": "Nom\u00e9s podeu configurar un compte de Point.",
+ "authorize_url_fail": "S'ha produ\u00eft un error desconegut al generar l'URL d'autoritzaci\u00f3.",
+ "authorize_url_timeout": "S'ha acabat el temps d'espera mentre \u00e9s generava l'URL d'autoritzaci\u00f3.",
+ "external_setup": "Point s'ha configurat correctament des d'un altre lloc.",
+ "no_flows": "Necessiteu configurar Point abans de poder autenticar-vos-hi. [Llegiu les instruccions](https://www.home-assistant.io/components/point/)."
+ },
+ "create_entry": {
+ "default": "Autenticaci\u00f3 exitosa amb Minut per als vostres dispositiu/s Point."
+ },
+ "error": {
+ "follow_link": "Si us plau seguiu l'enlla\u00e7 i autentiqueu-vos abans de pr\u00e9mer Enviar",
+ "no_token": "No s'ha autenticat amb Minut"
+ },
+ "step": {
+ "auth": {
+ "description": "Aneu a l'enlla\u00e7 seg\u00fcent i Accepta l'acc\u00e9s al vostre compte de Minut, despr\u00e9s torneu i premeu Enviar (a sota). \n\n[Enlla\u00e7]({authorization_url})",
+ "title": "Autenticar Point"
+ },
+ "user": {
+ "data": {
+ "flow_impl": "Prove\u00efdor"
+ },
+ "description": "Trieu a trav\u00e9s de quin prove\u00efdor d'autenticaci\u00f3 us voleu autenticar amb Point.",
+ "title": "Prove\u00efdor d'autenticaci\u00f3"
+ }
+ },
+ "title": "Minut Point"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/point/.translations/en.json b/homeassistant/components/point/.translations/en.json
index fed892113c3..705ac59b98d 100644
--- a/homeassistant/components/point/.translations/en.json
+++ b/homeassistant/components/point/.translations/en.json
@@ -1,33 +1,32 @@
{
- "config": {
- "title": "Minut Point",
- "step": {
- "user": {
- "title": "Authentication Provider",
- "description": "Pick via which authentication provider you want to authenticate with Point.",
- "data": {
- "flow_impl": "Provider"
- }
- },
- "auth": {
- "title": "Authenticate Point",
- "description": "Please follow the link below and Accept access to your Minut account, then come back and press Submit below.\n\n[Link]({authorization_url})"
- }
- },
- "create_entry": {
- "default": "Successfully authenticated with Minut for your Point device(s)"
- },
- "error": {
- "no_token": "Not authenticated with Minut",
- "follow_link": "Please follow the link and authenticate before pressing Submit"
- },
- "abort": {
- "already_setup": "You can only configure a Point account.",
- "external_setup": "Point successfully configured from another flow.",
- "no_flows": "You need to configure Point before being able to authenticate with it. [Please read the instructions](https://www.home-assistant.io/components/point/).",
- "authorize_url_timeout": "Timeout generating authorize url.",
- "authorize_url_fail": "Unknown error generating an authorize url."
+ "config": {
+ "abort": {
+ "already_setup": "You can only configure a Point account.",
+ "authorize_url_fail": "Unknown error generating an authorize url.",
+ "authorize_url_timeout": "Timeout generating authorize url.",
+ "external_setup": "Point successfully configured from another flow.",
+ "no_flows": "You need to configure Point before being able to authenticate with it. [Please read the instructions](https://www.home-assistant.io/components/point/)."
+ },
+ "create_entry": {
+ "default": "Successfully authenticated with Minut for your Point device(s)"
+ },
+ "error": {
+ "follow_link": "Please follow the link and authenticate before pressing Submit",
+ "no_token": "Not authenticated with Minut"
+ },
+ "step": {
+ "auth": {
+ "description": "Please follow the link below and Accept access to your Minut account, then come back and press Submit below.\n\n[Link]({authorization_url})",
+ "title": "Authenticate Point"
+ },
+ "user": {
+ "data": {
+ "flow_impl": "Provider"
+ },
+ "description": "Pick via which authentication provider you want to authenticate with Point.",
+ "title": "Authentication Provider"
+ }
+ },
+ "title": "Minut Point"
}
- }
-}
-
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/homeassistant/components/point/.translations/it.json b/homeassistant/components/point/.translations/it.json
new file mode 100644
index 00000000000..00e2cb02358
--- /dev/null
+++ b/homeassistant/components/point/.translations/it.json
@@ -0,0 +1,12 @@
+{
+ "config": {
+ "step": {
+ "user": {
+ "data": {
+ "flow_impl": "Provider"
+ },
+ "title": "Provider di autenticazione"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/point/.translations/ko.json b/homeassistant/components/point/.translations/ko.json
new file mode 100644
index 00000000000..fcc9a92bd5e
--- /dev/null
+++ b/homeassistant/components/point/.translations/ko.json
@@ -0,0 +1,32 @@
+{
+ "config": {
+ "abort": {
+ "already_setup": "Point \uacc4\uc815 \ub9cc \uad6c\uc131 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
+ "authorize_url_fail": "\uc778\uc99d url \uc0dd\uc131\uc5d0 \uc54c \uc218 \uc5c6\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.",
+ "authorize_url_timeout": "\uc778\uc99d url \uc0dd\uc131 \uc2dc\uac04\uc774 \ucd08\uacfc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
+ "external_setup": "Point \uac00 \uc774\ubbf8 \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.",
+ "no_flows": "Point \ub97c \uc778\uc99d\ud558\uae30 \uc804\uc5d0 Point \ub97c \uad6c\uc131\ud574\uc57c \ud569\ub2c8\ub2e4. [\uc548\ub0b4](https://www.home-assistant.io/components/point/) \ub97c \uc77d\uc5b4\ubcf4\uc138\uc694."
+ },
+ "create_entry": {
+ "default": "Point \uc7a5\uce58\ub294 Minut \ub85c \uc778\uc99d\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
+ },
+ "error": {
+ "follow_link": "Submit \ubc84\ud2bc\uc744 \ub204\ub974\uae30 \uc804\uc5d0 \ub9c1\ud06c\ub97c \ub530\ub77c \uc778\uc99d\uc744 \ubc1b\uc544\uc8fc\uc138\uc694",
+ "no_token": "Minut \ub85c \uc778\uc99d\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4"
+ },
+ "step": {
+ "auth": {
+ "description": "\uc544\ub798 \ub9c1\ud06c\ub97c \ud074\ub9ad\ud558\uc5ec Minut \uacc4\uc815\uc5d0 \ub300\ud55c \ub3d9\uc758 \ud55c \ub2e4\uc74c, \ub2e4\uc2dc \ub3cc\uc544\uc640\uc11c \ud558\ub2e8\uc758 Submit \ubc84\ud2bc\uc744 \ub20c\ub7ec\uc8fc\uc138\uc694. \n\n [\ub9c1\ud06c] ( {authorization_url} )",
+ "title": "Point \uc778\uc99d"
+ },
+ "user": {
+ "data": {
+ "flow_impl": "\uacf5\uae09\uc790"
+ },
+ "description": "Point\ub85c \uc778\uc99d\ud558\ub824\ub294 \uc778\uc99d \uacf5\uae09\uc790\ub97c \uc120\ud0dd\ud574\uc8fc\uc138\uc694.",
+ "title": "\uc778\uc99d \uacf5\uae09\uc790"
+ }
+ },
+ "title": "Minut Point"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/point/.translations/lb.json b/homeassistant/components/point/.translations/lb.json
new file mode 100644
index 00000000000..571f4617215
--- /dev/null
+++ b/homeassistant/components/point/.translations/lb.json
@@ -0,0 +1,32 @@
+{
+ "config": {
+ "abort": {
+ "already_setup": "Dir k\u00ebnnt n\u00ebmmen een eenzegen Point Kont konfigur\u00e9ieren.",
+ "authorize_url_fail": "Onbekannte Feeler beim gener\u00e9ieren vun der Autorisatiouns URL.",
+ "authorize_url_timeout": "Z\u00e4it Iwwerschreidung beim gener\u00e9ieren vun der Autorisatiouns URL.",
+ "external_setup": "Point gouf vun engem anere Floss erfollegr\u00e4ich konfigur\u00e9iert.",
+ "no_flows": "Dir musst Point konfigur\u00e9ieren, ier Dir d\u00ebs Authentifiz\u00e9ierung k\u00ebnnt benotzen.[Liest w.e.g. d'Instruktioune](https://www.home-assistant.io/components/point/)."
+ },
+ "create_entry": {
+ "default": "Erfollegr\u00e4ich mat Minut authentifiz\u00e9iert fir \u00e4r Point Apparater"
+ },
+ "error": {
+ "follow_link": "Follegt w.e.g dem Link an authentifiz\u00e9iert iech ier de op Ofsch\u00e9cken dr\u00e9ckt",
+ "no_token": "Net mat Minut authentifiz\u00e9iert"
+ },
+ "step": {
+ "auth": {
+ "description": "Follegt dem Link \u00ebnnendr\u00ebnner an accept\u00e9iert den Acc\u00e8s zu \u00e4rem Minut Kont , dann kommt zer\u00e9ck heihin an dr\u00e9ck op ofsch\u00e9cken hei \u00ebnnen.\n\n[Link]({authorization_url})",
+ "title": "Point authentifiz\u00e9ieren"
+ },
+ "user": {
+ "data": {
+ "flow_impl": "Ubidder"
+ },
+ "description": "Wielt den Authentifikatioun Ubidder deen sech mat Point verbanne soll.",
+ "title": "Authentifikatioun Ubidder"
+ }
+ },
+ "title": "Minut Point"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/point/.translations/ru.json b/homeassistant/components/point/.translations/ru.json
new file mode 100644
index 00000000000..1257e1a7f01
--- /dev/null
+++ b/homeassistant/components/point/.translations/ru.json
@@ -0,0 +1,28 @@
+{
+ "config": {
+ "abort": {
+ "already_setup": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430.",
+ "authorize_url_fail": "\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.",
+ "authorize_url_timeout": "\u0418\u0441\u0442\u0435\u043a\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.",
+ "no_flows": "\u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Point \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e. [\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438](https://www.home-assistant.io/components/point/)."
+ },
+ "error": {
+ "follow_link": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0438 \u043f\u0440\u043e\u0439\u0434\u0438\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0436\u0430\u0442\u044c \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c",
+ "no_token": "\u041d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0432\u0445\u043e\u0434 \u0432 Minut"
+ },
+ "step": {
+ "auth": {
+ "description": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e [\u0441\u0441\u044b\u043b\u043a\u0435]({authorization_url}) \u0438 \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0412\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Minut, \u0437\u0430\u0442\u0435\u043c \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u0441\u044e\u0434\u0430 \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c.",
+ "title": "\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0445\u043e\u0434 \u0432 Point"
+ },
+ "user": {
+ "data": {
+ "flow_impl": "\u041f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440"
+ },
+ "description": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0445\u043e\u0434 \u0432 Point.",
+ "title": "\u041f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438"
+ }
+ },
+ "title": "Minut Point"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/point/.translations/zh-Hans.json b/homeassistant/components/point/.translations/zh-Hans.json
new file mode 100644
index 00000000000..7d88bfeec42
--- /dev/null
+++ b/homeassistant/components/point/.translations/zh-Hans.json
@@ -0,0 +1,11 @@
+{
+ "config": {
+ "step": {
+ "user": {
+ "description": "\u9009\u62e9\u60a8\u60f3\u901a\u8fc7\u54ea\u4e2a\u6388\u6743\u63d0\u4f9b\u8005\u4e0e Point \u8fdb\u884c\u6388\u6743\u3002",
+ "title": "\u6388\u6743\u63d0\u4f9b\u8005"
+ }
+ },
+ "title": "Minut Point"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/rainmachine/.translations/ca.json b/homeassistant/components/rainmachine/.translations/ca.json
new file mode 100644
index 00000000000..7a1459cff6b
--- /dev/null
+++ b/homeassistant/components/rainmachine/.translations/ca.json
@@ -0,0 +1,19 @@
+{
+ "config": {
+ "error": {
+ "identifier_exists": "Aquest compte ja est\u00e0 registrat",
+ "invalid_credentials": "Credencials inv\u00e0lides"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "ip_address": "Nom de l'amfitri\u00f3 o adre\u00e7a IP",
+ "password": "Contrasenya",
+ "port": "Port"
+ },
+ "title": "Introdu\u00efu la vostra informaci\u00f3"
+ }
+ },
+ "title": "RainMachine"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/rainmachine/.translations/de.json b/homeassistant/components/rainmachine/.translations/de.json
new file mode 100644
index 00000000000..c262fa5a652
--- /dev/null
+++ b/homeassistant/components/rainmachine/.translations/de.json
@@ -0,0 +1,19 @@
+{
+ "config": {
+ "error": {
+ "identifier_exists": "Konto bereits registriert",
+ "invalid_credentials": "Ung\u00fcltige Anmeldeinformationen"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "ip_address": "Hostname oder IP-Adresse",
+ "password": "Passwort",
+ "port": "Port"
+ },
+ "title": "Informationen eingeben"
+ }
+ },
+ "title": "RainMachine"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/rainmachine/.translations/nl.json b/homeassistant/components/rainmachine/.translations/nl.json
new file mode 100644
index 00000000000..2e1e62c683c
--- /dev/null
+++ b/homeassistant/components/rainmachine/.translations/nl.json
@@ -0,0 +1,19 @@
+{
+ "config": {
+ "error": {
+ "identifier_exists": "Account bestaat al",
+ "invalid_credentials": "Ongeldige gebruikersgegevens"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "ip_address": "Hostnaam of IP-adres",
+ "password": "Wachtwoord",
+ "port": "Poort"
+ },
+ "title": "Vul uw gegevens in"
+ }
+ },
+ "title": "RainMachine"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/rainmachine/.translations/no.json b/homeassistant/components/rainmachine/.translations/no.json
new file mode 100644
index 00000000000..5ec4e5fdc34
--- /dev/null
+++ b/homeassistant/components/rainmachine/.translations/no.json
@@ -0,0 +1,19 @@
+{
+ "config": {
+ "error": {
+ "identifier_exists": "Konto er allerede registrert",
+ "invalid_credentials": "Ugyldig legitimasjon"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "ip_address": "Vertsnavn eller IP-adresse",
+ "password": "Passord",
+ "port": "Port"
+ },
+ "title": "Fyll ut informasjonen din"
+ }
+ },
+ "title": "RainMachine"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/rainmachine/.translations/zh-Hans.json b/homeassistant/components/rainmachine/.translations/zh-Hans.json
new file mode 100644
index 00000000000..7c6f07a7edd
--- /dev/null
+++ b/homeassistant/components/rainmachine/.translations/zh-Hans.json
@@ -0,0 +1,16 @@
+{
+ "config": {
+ "error": {
+ "identifier_exists": "\u5e10\u6237\u5df2\u6ce8\u518c"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "password": "\u5bc6\u7801",
+ "port": "\u7aef\u53e3"
+ },
+ "title": "\u586b\u5199\u60a8\u7684\u4fe1\u606f"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/rainmachine/.translations/zh-Hant.json b/homeassistant/components/rainmachine/.translations/zh-Hant.json
new file mode 100644
index 00000000000..518cc54192f
--- /dev/null
+++ b/homeassistant/components/rainmachine/.translations/zh-Hant.json
@@ -0,0 +1,19 @@
+{
+ "config": {
+ "error": {
+ "identifier_exists": "\u5e33\u865f\u5df2\u8a3b\u518a",
+ "invalid_credentials": "\u6191\u8b49\u7121\u6548"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "ip_address": "\u4e3b\u6a5f\u540d\u6216 IP \u4f4d\u5740",
+ "password": "\u5bc6\u78bc",
+ "port": "\u901a\u8a0a\u57e0"
+ },
+ "title": "\u586b\u5beb\u8cc7\u8a0a"
+ }
+ },
+ "title": "RainMachine"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/twilio/.translations/de.json b/homeassistant/components/twilio/.translations/de.json
new file mode 100644
index 00000000000..86e5d9051b3
--- /dev/null
+++ b/homeassistant/components/twilio/.translations/de.json
@@ -0,0 +1,5 @@
+{
+ "config": {
+ "title": "Twilio"
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/twilio/.translations/nl.json b/homeassistant/components/twilio/.translations/nl.json
index a053bf372a5..fc8b5c08261 100644
--- a/homeassistant/components/twilio/.translations/nl.json
+++ b/homeassistant/components/twilio/.translations/nl.json
@@ -1,6 +1,7 @@
{
"config": {
"abort": {
+ "not_internet_accessible": "Uw Home Assistant instantie moet toegankelijk zijn vanaf het internet om Twillo-berichten te ontvangen.",
"one_instance_allowed": "Slechts \u00e9\u00e9n exemplaar is nodig."
},
"step": {
diff --git a/homeassistant/components/unifi/.translations/de.json b/homeassistant/components/unifi/.translations/de.json
new file mode 100644
index 00000000000..346c1937355
--- /dev/null
+++ b/homeassistant/components/unifi/.translations/de.json
@@ -0,0 +1,16 @@
+{
+ "config": {
+ "abort": {
+ "user_privilege": "Der Benutzer muss Administrator sein"
+ },
+ "step": {
+ "user": {
+ "data": {
+ "password": "Passwort",
+ "port": "Port",
+ "username": "Benutzername"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/homeassistant/components/upnp/.translations/nl.json b/homeassistant/components/upnp/.translations/nl.json
index 647eb647f24..c6939f9a0a7 100644
--- a/homeassistant/components/upnp/.translations/nl.json
+++ b/homeassistant/components/upnp/.translations/nl.json
@@ -2,6 +2,7 @@
"config": {
"abort": {
"already_configured": "UPnP / IGD is al geconfigureerd",
+ "incomplete_device": "Onvolledig UPnP-apparaat negeren",
"no_devices_discovered": "Geen UPnP / IGD's ontdekt",
"no_sensors_or_port_mapping": "Schakel ten minste sensoren of poorttoewijzing in"
},