diff --git a/homeassistant/components/google/translations/fr.json b/homeassistant/components/google/translations/fr.json
index 7c5e492778789a50bd59741dd3260884f030ac44..389f769cdb9a7669e9cbe9c87f570a1c64c8bc34 100644
--- a/homeassistant/components/google/translations/fr.json
+++ b/homeassistant/components/google/translations/fr.json
@@ -11,7 +11,8 @@
             "invalid_access_token": "Jeton d'acc\u00e8s non valide",
             "missing_configuration": "Le composant n'est pas configur\u00e9. Veuillez suivre la documentation.",
             "oauth_error": "Des donn\u00e9es de jeton non valides ont \u00e9t\u00e9 re\u00e7ues.",
-            "reauth_successful": "La r\u00e9-authentification a r\u00e9ussi"
+            "reauth_successful": "La r\u00e9-authentification a r\u00e9ussi",
+            "timeout_connect": "D\u00e9lai d'attente pour \u00e9tablir la connexion expir\u00e9"
         },
         "create_entry": {
             "default": "Authentification r\u00e9ussie"
diff --git a/homeassistant/components/google/translations/ru.json b/homeassistant/components/google/translations/ru.json
index bb47301624f9b392bf1dc971aa2e67a50abdd4ee..5d9f51fe14eecac0bd7d851b7badc1822fc0f06e 100644
--- a/homeassistant/components/google/translations/ru.json
+++ b/homeassistant/components/google/translations/ru.json
@@ -8,7 +8,8 @@
             "invalid_access_token": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0430.",
             "missing_configuration": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439.",
             "oauth_error": "\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u0430.",
-            "reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e."
+            "reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e.",
+            "timeout_connect": "\u0418\u0441\u0442\u0435\u043a\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f."
         },
         "create_entry": {
             "default": "\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e."
diff --git a/homeassistant/components/homekit_controller/translations/fr.json b/homeassistant/components/homekit_controller/translations/fr.json
index 01286ceb991af01d1389176933b504d70e09fbe7..b46069de2b8e201363f6dc8c37c5c3df01889d50 100644
--- a/homeassistant/components/homekit_controller/translations/fr.json
+++ b/homeassistant/components/homekit_controller/translations/fr.json
@@ -18,7 +18,7 @@
             "unable_to_pair": "Impossible d'appairer, veuillez r\u00e9essayer.",
             "unknown_error": "L'appareil a signal\u00e9 une erreur inconnue. L'appairage a \u00e9chou\u00e9."
         },
-        "flow_title": "{name}",
+        "flow_title": "{name} ({category})",
         "step": {
             "busy_error": {
                 "description": "Annulez l'association sur tous les contr\u00f4leurs ou essayez de red\u00e9marrer l'appareil, puis continuez \u00e0 reprendre l'association.",
@@ -33,7 +33,7 @@
                     "allow_insecure_setup_codes": "Autoriser le jumelage avec des codes de configuration non s\u00e9curis\u00e9s.",
                     "pairing_code": "Code d\u2019appairage"
                 },
-                "description": "Le contr\u00f4leur HomeKit communique avec {name} sur le r\u00e9seau local en utilisant une connexion crypt\u00e9e s\u00e9curis\u00e9e sans contr\u00f4leur HomeKit s\u00e9par\u00e9 ou iCloud. Entrez votre code d'appariement HomeKit (au format XXX-XX-XXX) pour utiliser cet accessoire. Ce code se trouve g\u00e9n\u00e9ralement sur l'appareil lui-m\u00eame ou dans l'emballage.",
+                "description": "Le contr\u00f4leur HomeKit communique avec {name} ({category}) sur le r\u00e9seau local en utilisant une connexion chiffr\u00e9e s\u00e9curis\u00e9e sans contr\u00f4leur HomeKit s\u00e9par\u00e9 ni iCloud. Saisissez votre code d'appairage HomeKit (au format XXX-XX-XXX) pour utiliser cet accessoire. Ce code se trouve g\u00e9n\u00e9ralement sur l'appareil lui-m\u00eame ou dans l'emballage.",
                 "title": "Couplage avec un appareil via le protocole accessoire HomeKit"
             },
             "protocol_error": {
diff --git a/homeassistant/components/lifx/translations/ca.json b/homeassistant/components/lifx/translations/ca.json
index 28c25cde70ac5cb259e52f56dd22eed428644b00..8d0efc4de8af12aa2017638830acfa5727d3bece 100644
--- a/homeassistant/components/lifx/translations/ca.json
+++ b/homeassistant/components/lifx/translations/ca.json
@@ -1,12 +1,32 @@
 {
     "config": {
         "abort": {
+            "already_configured": "El dispositiu ja est\u00e0 configurat",
+            "already_in_progress": "El flux de configuraci\u00f3 ja est\u00e0 en curs",
             "no_devices_found": "No s'han trobat dispositius a la xarxa",
             "single_instance_allowed": "Ja configurat. Nom\u00e9s \u00e9s possible una sola configuraci\u00f3."
         },
+        "error": {
+            "cannot_connect": "Ha fallat la connexi\u00f3"
+        },
+        "flow_title": "{label} ({host}) {serial}",
         "step": {
             "confirm": {
                 "description": "Vols configurar LIFX?"
+            },
+            "discovery_confirm": {
+                "description": "Vols configurar {label} ({host}) {serial}?"
+            },
+            "pick_device": {
+                "data": {
+                    "device": "Dispositiu"
+                }
+            },
+            "user": {
+                "data": {
+                    "host": "Amfitri\u00f3"
+                },
+                "description": "Si deixes l'amfitri\u00f3 buit, s'utilitzar\u00e0 el descobriment per cercar dispositius."
             }
         }
     }
diff --git a/homeassistant/components/lifx/translations/de.json b/homeassistant/components/lifx/translations/de.json
index 0c619ea406272b988df5c41cf5c07618b1260238..82e37b39c8bf01d6cc8d011264aa555ba4c9c46d 100644
--- a/homeassistant/components/lifx/translations/de.json
+++ b/homeassistant/components/lifx/translations/de.json
@@ -1,12 +1,32 @@
 {
     "config": {
         "abort": {
+            "already_configured": "Ger\u00e4t ist bereits konfiguriert",
+            "already_in_progress": "Der Konfigurationsablauf wird bereits ausgef\u00fchrt",
             "no_devices_found": "Keine Ger\u00e4te im Netzwerk gefunden",
             "single_instance_allowed": "Bereits konfiguriert. Nur eine einzige Konfiguration m\u00f6glich."
         },
+        "error": {
+            "cannot_connect": "Verbindung fehlgeschlagen"
+        },
+        "flow_title": "{label} ({host}) {serial}",
         "step": {
             "confirm": {
                 "description": "M\u00f6chtest du LIFX einrichten?"
+            },
+            "discovery_confirm": {
+                "description": "M\u00f6chtest du {label} ({host}) {serial} einrichten?"
+            },
+            "pick_device": {
+                "data": {
+                    "device": "Ger\u00e4t"
+                }
+            },
+            "user": {
+                "data": {
+                    "host": "Host"
+                },
+                "description": "Wenn du den Host leer l\u00e4sst, wird die Erkennung verwendet, um Ger\u00e4te zu finden."
             }
         }
     }
diff --git a/homeassistant/components/lifx/translations/et.json b/homeassistant/components/lifx/translations/et.json
index ba833f79f8b7a8f737153823bc0f83257c9ef858..6d06cbb17ba730bfd1cda30c4a52a703545a6769 100644
--- a/homeassistant/components/lifx/translations/et.json
+++ b/homeassistant/components/lifx/translations/et.json
@@ -1,12 +1,32 @@
 {
     "config": {
         "abort": {
+            "already_configured": "Seade on juba h\u00e4\u00e4lestatud",
+            "already_in_progress": "Seadistamine juba k\u00e4ib",
             "no_devices_found": "V\u00f5rgust ei leitud seadmeid",
             "single_instance_allowed": "Juba seadistatud, lubatud on ainult \u00fcks sidumine."
         },
+        "error": {
+            "cannot_connect": "\u00dchendamine nurjus"
+        },
+        "flow_title": "{label} ({host}) {serial}",
         "step": {
             "confirm": {
                 "description": "Kas soovid seadistada LIFX-i?"
+            },
+            "discovery_confirm": {
+                "description": "Kas seadistada {label} ( {host} ) {serial} ?"
+            },
+            "pick_device": {
+                "data": {
+                    "device": "Seade"
+                }
+            },
+            "user": {
+                "data": {
+                    "host": "Host"
+                },
+                "description": "Kui j\u00e4tad hosti t\u00fchjaks kasutatakse seadmete leidmiseks avastamist."
             }
         }
     }
diff --git a/homeassistant/components/lifx/translations/fr.json b/homeassistant/components/lifx/translations/fr.json
index f8cc0a9dddddef6e55a12c3a26967c7f7685b735..c3f0561b08518134224b3f3f93f2b795dcd204cc 100644
--- a/homeassistant/components/lifx/translations/fr.json
+++ b/homeassistant/components/lifx/translations/fr.json
@@ -1,12 +1,32 @@
 {
     "config": {
         "abort": {
+            "already_configured": "L'appareil est d\u00e9j\u00e0 configur\u00e9",
+            "already_in_progress": "La configuration est d\u00e9j\u00e0 en cours",
             "no_devices_found": "Aucun appareil trouv\u00e9 sur le r\u00e9seau",
             "single_instance_allowed": "D\u00e9j\u00e0 configur\u00e9. Une seule configuration possible."
         },
+        "error": {
+            "cannot_connect": "\u00c9chec de connexion"
+        },
+        "flow_title": "{label} ({host}) {serial}",
         "step": {
             "confirm": {
                 "description": "Voulez-vous configurer LIFX?"
+            },
+            "discovery_confirm": {
+                "description": "Voulez-vous configurer {label} ({host}) {serial}\u00a0?"
+            },
+            "pick_device": {
+                "data": {
+                    "device": "Appareil"
+                }
+            },
+            "user": {
+                "data": {
+                    "host": "H\u00f4te"
+                },
+                "description": "Si vous laissez l'h\u00f4te vide, la d\u00e9couverte sera utilis\u00e9e pour trouver des appareils."
             }
         }
     }
diff --git a/homeassistant/components/lifx/translations/ru.json b/homeassistant/components/lifx/translations/ru.json
index 0d50dec498b70af19e52c8b392d54fa8ec80b9e8..9e9a9460e19cde5b6d030e8c95239969eea46304 100644
--- a/homeassistant/components/lifx/translations/ru.json
+++ b/homeassistant/components/lifx/translations/ru.json
@@ -1,12 +1,32 @@
 {
     "config": {
         "abort": {
+            "already_configured": "\u042d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 Home Assistant.",
+            "already_in_progress": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f.",
             "no_devices_found": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u0441\u0435\u0442\u0438.",
             "single_instance_allowed": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e."
         },
+        "error": {
+            "cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f."
+        },
+        "flow_title": "{label} ({host}) {serial}",
         "step": {
             "confirm": {
                 "description": "\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c LIFX?"
+            },
+            "discovery_confirm": {
+                "description": "\u0425\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c {label} ({host}) {serial}?"
+            },
+            "pick_device": {
+                "data": {
+                    "device": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e"
+                }
+            },
+            "user": {
+                "data": {
+                    "host": "\u0425\u043e\u0441\u0442"
+                },
+                "description": "\u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0445\u043e\u0441\u0442\u0430, \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438."
             }
         }
     }