diff --git a/homeassistant/components/adguard/translations/pt.json b/homeassistant/components/adguard/translations/pt.json
index e34c9db39f617d966608f456daa720540630e596..6d68559011bd1e339019ee3f76e12bab2bbe58b1 100644
--- a/homeassistant/components/adguard/translations/pt.json
+++ b/homeassistant/components/adguard/translations/pt.json
@@ -1,6 +1,12 @@
 {
     "config": {
+        "error": {
+            "connection_error": "Falha na liga\u00e7\u00e3o"
+        },
         "step": {
+            "hassio_confirm": {
+                "title": "AdGuard Home via Hass.io add-on"
+            },
             "user": {
                 "data": {
                     "host": "Servidor",
diff --git a/homeassistant/components/axis/translations/pt.json b/homeassistant/components/axis/translations/pt.json
index 77ce7025f70c98e664e2c54dde8d615028610380..7db65625895e89bc15d977ec381edf978ab5855e 100644
--- a/homeassistant/components/axis/translations/pt.json
+++ b/homeassistant/components/axis/translations/pt.json
@@ -1,5 +1,15 @@
 {
     "config": {
+        "abort": {
+            "already_configured": "O dispositivo j\u00e1 est\u00e1 configurado",
+            "bad_config_file": "Dados incorretos do arquivo de configura\u00e7\u00e3o",
+            "link_local_address": "Eendere\u00e7os de liga\u00e7\u00e3o local n\u00e3o s\u00e3o suportados"
+        },
+        "error": {
+            "already_configured": "O dispositivo j\u00e1 est\u00e1 configurado",
+            "device_unavailable": "Dispositivo n\u00e3o est\u00e1 dispon\u00edvel",
+            "faulty_credentials": "Credenciais do utilizador erradas"
+        },
         "step": {
             "user": {
                 "data": {
diff --git a/homeassistant/components/binary_sensor/translations/pt.json b/homeassistant/components/binary_sensor/translations/pt.json
index c71f43eca728868823ceb3e01d97b2fe7785788c..cedcdc27327efd028ecc2bb0d0b9462b3c3c4431 100644
--- a/homeassistant/components/binary_sensor/translations/pt.json
+++ b/homeassistant/components/binary_sensor/translations/pt.json
@@ -41,10 +41,19 @@
             "is_problem": "{entity_name} est\u00e1 a detectar um problema",
             "is_smoke": "{entity_name} est\u00e1 a detectar fumo",
             "is_sound": "{entity_name} est\u00e1 a detectar som",
+            "is_unsafe": "{entity_name} n\u00e3o \u00e9 seguro",
             "is_vibration": "{entity_name} est\u00e1 a detectar vibra\u00e7\u00f5es"
         },
         "trigger_type": {
+            "bat_low": "{entity_name} com bateria fraca",
+            "cold": "{entity_name} ficou frio",
+            "connected": "{entity_name} est\u00e1 ligado",
+            "gas": "{entity_name} detectou g\u00e1s",
+            "hot": "{entity_name} ficou quente",
+            "light": "{entity_name} detectou luz",
+            "locked": "{entity_name} fechou",
             "moist": "ficou h\u00famido {entity_name}",
+            "motion": "{entity_name} detectou movimento",
             "moving": "{entity_name} come\u00e7ou a mover-se",
             "no_gas": "{entity_name} deixou de detectar g\u00e1s",
             "no_light": "{entity_name} deixou de detectar luz",
diff --git a/homeassistant/components/cover/translations/pt.json b/homeassistant/components/cover/translations/pt.json
index 5308b77ef43daf20b16101c6a07e061e14a4d5d2..876efda1ca6d4ac7efe53c9194a03f9302ff1a59 100644
--- a/homeassistant/components/cover/translations/pt.json
+++ b/homeassistant/components/cover/translations/pt.json
@@ -20,7 +20,9 @@
             "closed": "{entity_name} fechou",
             "closing": "{entity_name} est\u00e1 a fechar",
             "opened": "{entity_name} abriu",
-            "opening": "{entity_name} est\u00e1 a abrir"
+            "opening": "{entity_name} est\u00e1 a abrir",
+            "position": "{entity_name} mudou de posi\u00e7\u00e3o",
+            "tilt_position": "{entity_name} mudou inclina\u00e7\u00e3o"
         }
     },
     "state": {
diff --git a/homeassistant/components/deconz/translations/pt.json b/homeassistant/components/deconz/translations/pt.json
index 9cb21e03568e0d0c5c338ec0ddadeabf707b446b..19bfd346ff785021fbcf4063bed3c40a39935909 100644
--- a/homeassistant/components/deconz/translations/pt.json
+++ b/homeassistant/components/deconz/translations/pt.json
@@ -46,6 +46,9 @@
             "turn_on": "Ligar"
         },
         "trigger_type": {
+            "remote_awakened": "Dispositivo acordou",
+            "remote_button_double_press": "Bot\u00e3o \"{subtype}\" clicado duas vezes",
+            "remote_button_long_press": "Bot\u00e3o \"{subtype}\" pressionado continuamente",
             "remote_falling": "Dispositivo em queda livre"
         }
     }
diff --git a/homeassistant/components/dexcom/translations/ca.json b/homeassistant/components/dexcom/translations/ca.json
new file mode 100644
index 0000000000000000000000000000000000000000..7be3b94993f8bb952b541beab5c4fd6f8040aab8
--- /dev/null
+++ b/homeassistant/components/dexcom/translations/ca.json
@@ -0,0 +1,32 @@
+{
+    "config": {
+        "abort": {
+            "already_configured_account": "El compte ja ha estat configurat"
+        },
+        "error": {
+            "account_error": "Autenticaci\u00f3 inv\u00e0lida",
+            "session_error": "Ha fallat la connexi\u00f3",
+            "unknown": "Error inesperat"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "password": "Contrasenya",
+                    "server": "Servidor",
+                    "username": "Nom d'usuari"
+                },
+                "description": "Introdueix les credencials de Dexcom Share",
+                "title": "Configura la integraci\u00f3 de Dexcom"
+            }
+        }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "unit_of_measurement": "Unitat de mesura"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/dexcom/translations/en.json b/homeassistant/components/dexcom/translations/en.json
index 3430a65131b3ccc5e59a409ae334ef9fb10d3069..2d2f6aa0834b8830b619211e51cb282714c6b5cb 100644
--- a/homeassistant/components/dexcom/translations/en.json
+++ b/homeassistant/components/dexcom/translations/en.json
@@ -1,19 +1,19 @@
 {
     "config": {
         "abort": {
-            "already_configured_account": "[%key:common::config_flow::abort::already_configured_account%]"
+            "already_configured_account": "Account is already configured"
         },
         "error": {
-            "account_error": "[%key:common::config_flow::error::invalid_auth%]",
-            "session_error": "[%key:common::config_flow::error::cannot_connect%]",
-            "unknown": "[%key:common::config_flow::error::unknown%]"
+            "account_error": "Invalid authentication",
+            "session_error": "Failed to connect",
+            "unknown": "Unexpected error"
         },
         "step": {
             "user": {
                 "data": {
-                    "password": "[%key:common::config_flow::data::password%]",
+                    "password": "Password",
                     "server": "Server",
-                    "username": "[%key:common::config_flow::data::username%]"
+                    "username": "Username"
                 },
                 "description": "Enter Dexcom Share credentials",
                 "title": "Setup Dexcom integration"
diff --git a/homeassistant/components/dexcom/translations/es.json b/homeassistant/components/dexcom/translations/es.json
new file mode 100644
index 0000000000000000000000000000000000000000..146e77632514f3155dfb4ef010672efd4044ef9a
--- /dev/null
+++ b/homeassistant/components/dexcom/translations/es.json
@@ -0,0 +1,32 @@
+{
+    "config": {
+        "abort": {
+            "already_configured_account": "La cuenta ya ha sido configurada"
+        },
+        "error": {
+            "account_error": "Autenticaci\u00f3n no v\u00e1lida",
+            "session_error": "No se pudo conectar",
+            "unknown": "Error inesperado"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "password": "Contrase\u00f1a",
+                    "server": "Servidor",
+                    "username": "Usuario"
+                },
+                "description": "Introducir las credenciales de Dexcom Share",
+                "title": "Configurar integraci\u00f3n de Dexcom"
+            }
+        }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "unit_of_measurement": "Unidad de medida"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/dexcom/translations/eu.json b/homeassistant/components/dexcom/translations/eu.json
new file mode 100644
index 0000000000000000000000000000000000000000..8d917dfafcd1cd569bf61f4dfa5a52335672148a
--- /dev/null
+++ b/homeassistant/components/dexcom/translations/eu.json
@@ -0,0 +1,22 @@
+{
+    "config": {
+        "step": {
+            "user": {
+                "data": {
+                    "password": "\u5bc6\u7801",
+                    "server": "\u670d\u52a1\u5668",
+                    "username": "\u7528\u6237\u540d"
+                }
+            }
+        }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "unit_of_measurement": "\u6d4b\u91cf\u5355\u4f4d"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/dexcom/translations/fr.json b/homeassistant/components/dexcom/translations/fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..022cb82ef05b5466e9547f18e8a1d1f86d59c0d3
--- /dev/null
+++ b/homeassistant/components/dexcom/translations/fr.json
@@ -0,0 +1,22 @@
+{
+    "config": {
+        "step": {
+            "user": {
+                "data": {
+                    "server": "Serveur"
+                },
+                "description": "Saisir les donn\u00e9es d'identification de Dexcom Share",
+                "title": "Configurer l'int\u00e9gration Dexcom"
+            }
+        }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "unit_of_measurement": "Unit\u00e9 de mesure"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/dexcom/translations/lb.json b/homeassistant/components/dexcom/translations/lb.json
new file mode 100644
index 0000000000000000000000000000000000000000..a17a218988aff99ed3e566f060a63adb3c4b28c3
--- /dev/null
+++ b/homeassistant/components/dexcom/translations/lb.json
@@ -0,0 +1,31 @@
+{
+    "config": {
+        "abort": {
+            "already_configured_account": "Kont ass scho konfigur\u00e9iert"
+        },
+        "error": {
+            "account_error": "Ong\u00eblteg Authentifikatioun",
+            "session_error": "Feeler beim verbannen",
+            "unknown": "Onerwaarte"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "password": "Passwuert",
+                    "server": "Server",
+                    "username": "Benotzernumm"
+                },
+                "title": "Dexcom Integration ariichten"
+            }
+        }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "unit_of_measurement": "Moosseenheet"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/dexcom/translations/ru.json b/homeassistant/components/dexcom/translations/ru.json
new file mode 100644
index 0000000000000000000000000000000000000000..270abf370c223376f173dfd98f9480743b9547b6
--- /dev/null
+++ b/homeassistant/components/dexcom/translations/ru.json
@@ -0,0 +1,32 @@
+{
+    "config": {
+        "abort": {
+            "already_configured_account": "\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430."
+        },
+        "error": {
+            "account_error": "\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f.",
+            "session_error": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.",
+            "unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "password": "\u041f\u0430\u0440\u043e\u043b\u044c",
+                    "server": "\u0421\u0435\u0440\u0432\u0435\u0440",
+                    "username": "\u041b\u043e\u0433\u0438\u043d"
+                },
+                "description": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0412\u0430\u0448\u0438 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.",
+                "title": "Dexcom"
+            }
+        }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "unit_of_measurement": "\u0415\u0434\u0438\u043d\u0438\u0446\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/dexcom/translations/zh-Hans.json b/homeassistant/components/dexcom/translations/zh-Hans.json
new file mode 100644
index 0000000000000000000000000000000000000000..41e54c84b56d12ed676fc2bffd0b4588c829a2bc
--- /dev/null
+++ b/homeassistant/components/dexcom/translations/zh-Hans.json
@@ -0,0 +1,26 @@
+{
+    "config": {
+        "error": {
+            "account_error": "\u8ba4\u8bc1\u65e0\u6548",
+            "session_error": "\u8fde\u63a5\u5931\u8d25",
+            "unknown": "\u672a\u77e5\u9519\u8bef"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "password": "\u5bc6\u7801",
+                    "server": "\u670d\u52a1\u5668"
+                }
+            }
+        }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "unit_of_measurement": "\u5355\u4f4d"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/dexcom/translations/zh-Hant.json b/homeassistant/components/dexcom/translations/zh-Hant.json
new file mode 100644
index 0000000000000000000000000000000000000000..f056b92b2de1b9faf70ef66b4aef51e68498c9c4
--- /dev/null
+++ b/homeassistant/components/dexcom/translations/zh-Hant.json
@@ -0,0 +1,32 @@
+{
+    "config": {
+        "abort": {
+            "already_configured_account": "\u5e33\u865f\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
+        },
+        "error": {
+            "account_error": "\u9a57\u8b49\u78bc\u7121\u6548",
+            "session_error": "\u9023\u7dda\u5931\u6557",
+            "unknown": "\u672a\u9810\u671f\u932f\u8aa4"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "password": "\u5bc6\u78bc",
+                    "server": "\u4f3a\u670d\u5668",
+                    "username": "\u4f7f\u7528\u8005\u540d\u7a31"
+                },
+                "description": "\u8f38\u5165 Dexcom \u5171\u4eab\u6191\u8b49",
+                "title": "\u8a2d\u5b9a Dexcom \u6574\u5408"
+            }
+        }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "unit_of_measurement": "\u55ae\u4f4d"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/gogogate2/translations/en.json b/homeassistant/components/gogogate2/translations/en.json
index e587cf6c0015c8de8de9d8cf92ac91e1f2b02ac5..d5a93091d916b13ca8385fa1d936d021bb4bbe93 100644
--- a/homeassistant/components/gogogate2/translations/en.json
+++ b/homeassistant/components/gogogate2/translations/en.json
@@ -14,7 +14,7 @@
                     "password": "Password",
                     "username": "Username"
                 },
-                "description": "Provide requisite information below. Note: only the 'admin' user is known to work.",
+                "description": "Provide requisite information below.",
                 "title": "Setup GogoGate2"
             }
         }
diff --git a/homeassistant/components/hue/translations/ca.json b/homeassistant/components/hue/translations/ca.json
index 3294cd2f0e83d6e78dbb04245fb67c9d121d634e..667c6e705cf3860e92054b84b15e505c9d8a3cf2 100644
--- a/homeassistant/components/hue/translations/ca.json
+++ b/homeassistant/components/hue/translations/ca.json
@@ -24,6 +24,12 @@
             "link": {
                 "description": "Prem el bot\u00f3 de l'enlla\u00e7 per registrar Philips Hue amb Home Assistant. \n\n ![Ubicaci\u00f3 del bot\u00f3 a l'element d'enlla\u00e7](/static/images/config_philips_hue.jpg)",
                 "title": "Vincular concentrador"
+            },
+            "manual": {
+                "data": {
+                    "host": "Amfitri\u00f3"
+                },
+                "title": "Configuraci\u00f3 manual d'enlla\u00e7 Hue"
             }
         }
     },
@@ -47,5 +53,15 @@
             "remote_double_button_long_press": "Ambd\u00f3s \"{subtype}\" alliberats despr\u00e9s d'una estona premuts",
             "remote_double_button_short_press": "Ambd\u00f3s \"{subtype}\" alliberats"
         }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "allow_how_groups": "Permet grups Hue",
+                    "allow_unreachable": "Permet que bombetes no accessibles puguin informar del seu estat correctament"
+                }
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/homeassistant/components/hue/translations/en.json b/homeassistant/components/hue/translations/en.json
index 553dc5bac83e9502dccfd5bbef9b61d8e94b4719..3394c9e49718839993ce3ba2aa6683714c454080 100644
--- a/homeassistant/components/hue/translations/en.json
+++ b/homeassistant/components/hue/translations/en.json
@@ -24,6 +24,12 @@
             "link": {
                 "description": "Press the button on the bridge to register Philips Hue with Home Assistant.\n\n![Location of button on bridge](/static/images/config_philips_hue.jpg)",
                 "title": "Link Hub"
+            },
+            "manual": {
+                "data": {
+                    "host": "Host"
+                },
+                "title": "Manual configure a Hue bridge"
             }
         }
     },
@@ -47,5 +53,15 @@
             "remote_double_button_long_press": "Both \"{subtype}\" released after long press",
             "remote_double_button_short_press": "Both \"{subtype}\" released"
         }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "allow_how_groups": "Allow Hue groups",
+                    "allow_unreachable": "Allow unreachable bulbs to report their state correctly"
+                }
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/homeassistant/components/hue/translations/lb.json b/homeassistant/components/hue/translations/lb.json
index 02a4924d59fa46150ee1ac94460afc28c3c9fa9f..4e33d39072c06a5d70465dfb9ff33ab92dfc1dc3 100644
--- a/homeassistant/components/hue/translations/lb.json
+++ b/homeassistant/components/hue/translations/lb.json
@@ -24,6 +24,12 @@
             "link": {
                 "description": "Dr\u00e9ckt de Kn\u00e4ppchen un der Bridge fir den Philips Hue mam Home Assistant ze registr\u00e9ieren.\n\n![Kn\u00e4ppchen un der Bridge](/static/images/config_philips_hue.jpg)",
                 "title": "Link Hub"
+            },
+            "manual": {
+                "data": {
+                    "host": "Host"
+                },
+                "title": "Eng Hue Bridge manuell konfigur\u00e9ieren"
             }
         }
     },
@@ -47,5 +53,14 @@
             "remote_double_button_long_press": "B\u00e9id \"{subtype}\" no laangem unhalen lassgelooss",
             "remote_double_button_short_press": "B\u00e9id \"{subtype}\" lassgeloss"
         }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "allow_how_groups": "Hue Gruppen erlaaben"
+                }
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/homeassistant/components/hue/translations/ru.json b/homeassistant/components/hue/translations/ru.json
index 2b92391156ab5cc32334df70adafdde91cbdf629..fbf006545674f2ecb78608a2cc3b08f035acba9c 100644
--- a/homeassistant/components/hue/translations/ru.json
+++ b/homeassistant/components/hue/translations/ru.json
@@ -24,6 +24,12 @@
             "link": {
                 "description": "\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u0448\u043b\u044e\u0437\u0435 \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 Philips Hue \u0432 Home Assistant.\n\n![\u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0430 \u0448\u043b\u044e\u0437\u0435](/static/images/config_philips_hue.jpg)",
                 "title": "Philips Hue"
+            },
+            "manual": {
+                "data": {
+                    "host": "\u0425\u043e\u0441\u0442"
+                },
+                "title": "\u0420\u0443\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0448\u043b\u044e\u0437\u0430"
             }
         }
     },
@@ -47,5 +53,15 @@
             "remote_double_button_long_press": "{subtype} \u043e\u0442\u043f\u0443\u0449\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044f",
             "remote_double_button_short_press": "{subtype} \u043e\u0442\u043f\u0443\u0449\u0435\u043d\u044b"
         }
+    },
+    "options": {
+        "step": {
+            "init": {
+                "data": {
+                    "allow_how_groups": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u044b Hue",
+                    "allow_unreachable": "\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432"
+                }
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/homeassistant/components/humidifier/translations/pt.json b/homeassistant/components/humidifier/translations/pt.json
new file mode 100644
index 0000000000000000000000000000000000000000..64f652bb012b013030387ab4833283998400b30b
--- /dev/null
+++ b/homeassistant/components/humidifier/translations/pt.json
@@ -0,0 +1,11 @@
+{
+    "device_automation": {
+        "action_type": {
+            "set_humidity": "Definir humidade para {entity_name}",
+            "set_mode": "Alterar modo de {entity_name}",
+            "toggle": "Alternar {entity_name}",
+            "turn_off": "Desligar {entity_name}",
+            "turn_on": "Ligar {entity_name}"
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/lock/translations/pt.json b/homeassistant/components/lock/translations/pt.json
index 3828eaa95a7a20c2edae1923e649e00ed670b234..5ba9f10db141d85037f367b1019c123b93e27741 100644
--- a/homeassistant/components/lock/translations/pt.json
+++ b/homeassistant/components/lock/translations/pt.json
@@ -1,5 +1,10 @@
 {
     "device_automation": {
+        "action_type": {
+            "lock": "Bloquear {entity_name}",
+            "open": "Abrir {entity_name}",
+            "unlock": "Desbloquear {entity_name}"
+        },
         "trigger_type": {
             "locked": "{entity_name} fechada",
             "unlocked": "{entity_name} aberta"
diff --git a/homeassistant/components/media_player/translations/pt.json b/homeassistant/components/media_player/translations/pt.json
index a3c741ce0e2f99358e662335cafda9fee510bcbe..304fa415251348445659e54f24224c68682fdb68 100644
--- a/homeassistant/components/media_player/translations/pt.json
+++ b/homeassistant/components/media_player/translations/pt.json
@@ -1,6 +1,7 @@
 {
     "device_automation": {
         "condition_type": {
+            "is_idle": "{entity_name} est\u00e1 em espera",
             "is_off": "{entity_name} est\u00e1 desligada",
             "is_on": "{entity_name} est\u00e1 ligada",
             "is_paused": "{entity_name} est\u00e1 em pausa",
diff --git a/homeassistant/components/met/translations/pt.json b/homeassistant/components/met/translations/pt.json
index 2ba2911d89042f7165b56d806bff35b3ce6feba2..1afabe51e799ffc2de8fbd4ef919ff24ab3eeff0 100644
--- a/homeassistant/components/met/translations/pt.json
+++ b/homeassistant/components/met/translations/pt.json
@@ -6,9 +6,13 @@
         "step": {
             "user": {
                 "data": {
+                    "elevation": "Eleva\u00e7\u00e3o",
                     "latitude": "Latitude",
-                    "longitude": "Longitude"
-                }
+                    "longitude": "Longitude",
+                    "name": "Nome"
+                },
+                "description": "",
+                "title": "Localiza\u00e7\u00e3o"
             }
         }
     }
diff --git a/homeassistant/components/mobile_app/translations/pt.json b/homeassistant/components/mobile_app/translations/pt.json
new file mode 100644
index 0000000000000000000000000000000000000000..bfef7be3f112d4cf30cccbcd824e8265c03ad20c
--- /dev/null
+++ b/homeassistant/components/mobile_app/translations/pt.json
@@ -0,0 +1,12 @@
+{
+    "config": {
+        "abort": {
+            "install_app": "Abra a aplica\u00e7\u00e3o m\u00f3vel para configurar a integra\u00e7\u00e3o com o Home Assistant. Consulte [os documentos]({apps_url}) para obter uma lista de aplicativos compat\u00edveis."
+        },
+        "step": {
+            "confirm": {
+                "description": "Deseja configurar o componente Mobile App?"
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/moon/translations/sensor.pt.json b/homeassistant/components/moon/translations/sensor.pt.json
index da84cfd744e3f5550ccff0a5e52f1be3e952f5b7..34828287c0330e56ca7e7b77aa737d72125053cc 100644
--- a/homeassistant/components/moon/translations/sensor.pt.json
+++ b/homeassistant/components/moon/translations/sensor.pt.json
@@ -3,6 +3,7 @@
         "moon__phase": {
             "first_quarter": "Quarto crescente",
             "full_moon": "Lua cheia",
+            "last_quarter": "Ultimo quarto",
             "new_moon": "Lua nova",
             "waning_crescent": "Minguante",
             "waning_gibbous": "Minguante convexa",
diff --git a/homeassistant/components/plex/translations/pt.json b/homeassistant/components/plex/translations/pt.json
index a8a4bd3f8e53774ca4c2c77149c037c2657705c8..44011eb1f76c6f6545adab705cb1943f4d969c1b 100644
--- a/homeassistant/components/plex/translations/pt.json
+++ b/homeassistant/components/plex/translations/pt.json
@@ -1,5 +1,14 @@
 {
     "config": {
+        "abort": {
+            "already_configured": "Este servidor Plex j\u00e1 est\u00e1 configurado",
+            "already_in_progress": "Plex est\u00e1 a ser configurado",
+            "invalid_import": "A configura\u00e7\u00e3o importada \u00e9 inv\u00e1lida",
+            "unknown": "Falha por motivo desconhecido"
+        },
+        "error": {
+            "faulty_credentials": "A autoriza\u00e7\u00e3o falhou, verifique o token"
+        },
         "step": {
             "manual_setup": {
                 "data": {
diff --git a/homeassistant/components/poolsense/translations/es.json b/homeassistant/components/poolsense/translations/es.json
new file mode 100644
index 0000000000000000000000000000000000000000..eed3f6e69922b62bd1956b376beda95b58506b4d
--- /dev/null
+++ b/homeassistant/components/poolsense/translations/es.json
@@ -0,0 +1,21 @@
+{
+    "config": {
+        "abort": {
+            "already_configured": "El dispositivo ya est\u00e1 configurado"
+        },
+        "error": {
+            "cannot_connect": "No se pudo conectar",
+            "invalid_auth": "Autenticaci\u00f3n no v\u00e1lida",
+            "unknown": "Error inesperado"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "email": "Correo electr\u00f3nico",
+                    "password": "Contrase\u00f1a"
+                },
+                "title": "PoolSense"
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/poolsense/translations/lb.json b/homeassistant/components/poolsense/translations/lb.json
new file mode 100644
index 0000000000000000000000000000000000000000..5b91ee10c75642677f98d98e804f591edbba4296
--- /dev/null
+++ b/homeassistant/components/poolsense/translations/lb.json
@@ -0,0 +1,21 @@
+{
+    "config": {
+        "abort": {
+            "already_configured": "Apparat ass scho konfigur\u00e9iert"
+        },
+        "error": {
+            "cannot_connect": "Feeler beim verbannen",
+            "invalid_auth": "Ong\u00eblteg Authentifikatioun",
+            "unknown": "Onerwaarte Feeler"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "email": "E-Mail",
+                    "password": "Passwuert"
+                },
+                "title": "PoolSense"
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/poolsense/translations/zh-Hans.json b/homeassistant/components/poolsense/translations/zh-Hans.json
new file mode 100644
index 0000000000000000000000000000000000000000..f85f6c84eb191745f738532d67257a2741773cad
--- /dev/null
+++ b/homeassistant/components/poolsense/translations/zh-Hans.json
@@ -0,0 +1,15 @@
+{
+    "config": {
+        "error": {
+            "unknown": "\u672a\u77e5\u9519\u8bef"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "email": "\u90ae\u4ef6",
+                    "password": "\u5bc6\u7801"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/poolsense/translations/zh-Hant.json b/homeassistant/components/poolsense/translations/zh-Hant.json
new file mode 100644
index 0000000000000000000000000000000000000000..53d0748c906b99afa292eb75684f14e255109c7d
--- /dev/null
+++ b/homeassistant/components/poolsense/translations/zh-Hant.json
@@ -0,0 +1,22 @@
+{
+    "config": {
+        "abort": {
+            "already_configured": "\u8a2d\u5099\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
+        },
+        "error": {
+            "cannot_connect": "\u9023\u7dda\u5931\u6557",
+            "invalid_auth": "\u9a57\u8b49\u78bc\u7121\u6548",
+            "unknown": "\u672a\u9810\u671f\u932f\u8aa4"
+        },
+        "step": {
+            "user": {
+                "data": {
+                    "email": "\u96fb\u5b50\u90f5\u4ef6",
+                    "password": "\u5bc6\u78bc"
+                },
+                "description": "[%key:common::config_flow::description%]",
+                "title": "PoolSense"
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/homeassistant/components/ps4/translations/pt.json b/homeassistant/components/ps4/translations/pt.json
index a0f57953df5393ce7fc65e668c97f90ee817bf75..de97213fcc4582db46be876fe749f43bde307c29 100644
--- a/homeassistant/components/ps4/translations/pt.json
+++ b/homeassistant/components/ps4/translations/pt.json
@@ -23,6 +23,9 @@
                 "title": "PlayStation 4"
             },
             "mode": {
+                "data": {
+                    "mode": "Modo de configura\u00e7\u00e3o"
+                },
                 "title": "PlayStation 4"
             }
         }
diff --git a/homeassistant/components/switch/translations/pt.json b/homeassistant/components/switch/translations/pt.json
index a3dcc96c80b3ff90b64524105f641f7bf846b81f..82458b3dbdee4b5f418bb5105409ec1cc1c35c65 100644
--- a/homeassistant/components/switch/translations/pt.json
+++ b/homeassistant/components/switch/translations/pt.json
@@ -1,4 +1,19 @@
 {
+    "device_automation": {
+        "action_type": {
+            "toggle": "Alternar {entity_name}",
+            "turn_off": "Desligar {entity_name}",
+            "turn_on": "Ligar {entity_name}"
+        },
+        "condition_type": {
+            "is_off": "{entity_name} est\u00e1 desligada",
+            "is_on": "{entity_name} est\u00e1 ligada"
+        },
+        "trigger_type": {
+            "turned_off": "{entity_name} desligou-se",
+            "turned_on": "{entity_name} ligou-se"
+        }
+    },
     "state": {
         "_": {
             "off": "Desligado",
diff --git a/homeassistant/components/toon/translations/pt.json b/homeassistant/components/toon/translations/pt.json
index a4b601f78990c5217d89f5d5f14bcebef7a8624a..daa3349057f2c900338bc228fc8da7c04abd358b 100644
--- a/homeassistant/components/toon/translations/pt.json
+++ b/homeassistant/components/toon/translations/pt.json
@@ -12,8 +12,12 @@
             "authenticate": {
                 "data": {
                     "password": "Palavra-passe",
+                    "tenant": "Inquilino",
                     "username": "Nome de Utilizador"
                 }
+            },
+            "display": {
+                "title": "Seleccionar visor"
             }
         }
     }
diff --git a/homeassistant/components/xiaomi_aqara/translations/pl.json b/homeassistant/components/xiaomi_aqara/translations/pl.json
index fc199f284bfb98b4f2cfdf6d7ba4f83605c22331..d7d2e4fec3e8b6fd146b6b1f6ccd3c81ac24a8be 100644
--- a/homeassistant/components/xiaomi_aqara/translations/pl.json
+++ b/homeassistant/components/xiaomi_aqara/translations/pl.json
@@ -1,10 +1,39 @@
 {
     "config": {
+        "abort": {
+            "already_configured": "Urz\u0105dzenie jest ju\u017c skonfigurowane.",
+            "already_in_progress": "Konfiguracja dla tej bramki jest ju\u017c w toku.",
+            "not_xiaomi_aqara": "To nie jest bramka Xiaomi Aqara, wykryte urz\u0105dzenie nie pasuje do znanych bramek."
+        },
+        "error": {
+            "discovery_error": "Nie uda\u0142o si\u0119 wykry\u0107 bramki Xiaomi Aqara, spr\u00f3buj u\u017cy\u0107 adresu IP urz\u0105dzenia, na kt\u00f3rym pracuje Home Assistant jako interfejsu.",
+            "invalid_interface": "Nieprawid\u0142owy interfejs sieciowy.",
+            "invalid_key": "Nieprawid\u0142owy klucz bramki.",
+            "not_found_error": "Nie mo\u017cna odnale\u017a\u0107 wykrytej bramki, aby uzyska\u0107 niezb\u0119dne informacje, spr\u00f3buj u\u017cy\u0107 adresu IP urz\u0105dzenia, na kt\u00f3rym pracuje Home Assistant jako interfejsu."
+        },
+        "flow_title": "Bramka Xiaomi Aqara: {name}",
         "step": {
             "select": {
                 "data": {
-                    "select_ip": "IP bramy"
-                }
+                    "select_ip": "IP bramki"
+                },
+                "description": "Uruchom konfiguracj\u0119 ponownie, je\u015bli chcesz pod\u0142\u0105czy\u0107 dodatkowe bramki",
+                "title": "Wybierz bramk\u0119 Xiaomi Aqara, z kt\u00f3r\u0105 chcesz si\u0119 po\u0142\u0105czy\u0107"
+            },
+            "settings": {
+                "data": {
+                    "key": "Klucz bramki",
+                    "name": "Nazwa bramki"
+                },
+                "description": "Klucz (has\u0142o) mo\u017cna uzyska\u0107 za pomoc\u0105 tej instrukcji: https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Adding_the_Xiaomi_Gateway_to_Domoticz. Je\u015bli klucz nie zostanie podany, dost\u0119pne b\u0119d\u0105 tylko sensory.",
+                "title": "Brama Xiaomi Aqara, ustawienia opcjonalne"
+            },
+            "user": {
+                "data": {
+                    "interface": "Interfejs sieciowy"
+                },
+                "description": "Po\u0142\u0105cz si\u0119 z bramk\u0105 Xiaomi Aqara",
+                "title": "Bramka Xiaomi Aqara"
             }
         }
     }
diff --git a/homeassistant/components/zha/translations/pt.json b/homeassistant/components/zha/translations/pt.json
index 233791e63f185229e0f629eb1cd0a8455cbc68b9..42a5c292ecb68230b5e235e0cc879f924210475a 100644
--- a/homeassistant/components/zha/translations/pt.json
+++ b/homeassistant/components/zha/translations/pt.json
@@ -27,7 +27,15 @@
             "close": "Fechar",
             "dim_down": "Escurecer",
             "dim_up": "Clariar",
-            "left": "Esquerda"
+            "left": "Esquerda",
+            "open": "Abrir",
+            "right": "Direita",
+            "turn_off": "Desligar",
+            "turn_on": "Ligar"
+        },
+        "trigger_type": {
+            "device_dropped": "Dispositivo caiu",
+            "device_shaken": "Dispositivo abanado"
         }
     }
 }
\ No newline at end of file