diff --git a/homeassistant/components/abode/strings.json b/homeassistant/components/abode/strings.json index c0c32d48794..4b98b69eb19 100644 --- a/homeassistant/components/abode/strings.json +++ b/homeassistant/components/abode/strings.json @@ -15,7 +15,7 @@ } }, "reauth_confirm": { - "title": "Fill in your Abode login information", + "title": "[%key:component::abode::config::step::user::title%]", "data": { "username": "[%key:common::config_flow::data::email%]", "password": "[%key:common::config_flow::data::password%]" diff --git a/homeassistant/components/adguard/strings.json b/homeassistant/components/adguard/strings.json index 95ce968a67f..e34a7c88229 100644 --- a/homeassistant/components/adguard/strings.json +++ b/homeassistant/components/adguard/strings.json @@ -79,11 +79,11 @@ "description": "Add a new filter subscription to AdGuard Home.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "The name of the filter subscription." }, "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "The filter URL to subscribe to, containing the filter rules." } } @@ -93,7 +93,7 @@ "description": "Removes a filter subscription from AdGuard Home.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "The filter subscription URL to remove." } } @@ -103,7 +103,7 @@ "description": "Enables a filter subscription in AdGuard Home.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "The filter subscription URL to enable." } } @@ -113,7 +113,7 @@ "description": "Disables a filter subscription in AdGuard Home.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "The filter subscription URL to disable." } } diff --git a/homeassistant/components/aftership/strings.json b/homeassistant/components/aftership/strings.json index 602138e82f5..a7ccdd48202 100644 --- a/homeassistant/components/aftership/strings.json +++ b/homeassistant/components/aftership/strings.json @@ -23,11 +23,11 @@ "description": "Removes a tracking number from Aftership.", "fields": { "tracking_number": { - "name": "Tracking number", + "name": "[%key:component::aftership::services::add_tracking::fields::tracking_number::name%]", "description": "Tracking number of the tracking to remove." }, "slug": { - "name": "Slug", + "name": "[%key:component::aftership::services::add_tracking::fields::slug::name%]", "description": "Slug (carrier) of the tracking to remove." } } diff --git a/homeassistant/components/airly/strings.json b/homeassistant/components/airly/strings.json index 7ec58ccd8e5..33ee8bbe4c9 100644 --- a/homeassistant/components/airly/strings.json +++ b/homeassistant/components/airly/strings.json @@ -17,7 +17,7 @@ }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_location%]", - "wrong_location": "No Airly measuring stations in this area." + "wrong_location": "[%key:component::airly::config::error::wrong_location%]" } }, "system_health": { diff --git a/homeassistant/components/airvisual/strings.json b/homeassistant/components/airvisual/strings.json index 0ba99c0984a..397a41bf24b 100644 --- a/homeassistant/components/airvisual/strings.json +++ b/homeassistant/components/airvisual/strings.json @@ -11,7 +11,7 @@ } }, "geography_by_name": { - "title": "Configure a Geography", + "title": "[%key:component::airvisual::config::step::geography_by_coords::title%]", "description": "Use the AirVisual cloud API to monitor a city/state/country.", "data": { "api_key": "[%key:common::config_flow::data::api_key%]", @@ -45,7 +45,7 @@ "options": { "step": { "init": { - "title": "Configure AirVisual", + "title": "[%key:component::airvisual::config::step::user::title%]", "data": { "show_on_map": "Show monitored geography on the map" } diff --git a/homeassistant/components/alarmdecoder/strings.json b/homeassistant/components/alarmdecoder/strings.json index 585db4b1fa3..d7ac882bb82 100644 --- a/homeassistant/components/alarmdecoder/strings.json +++ b/homeassistant/components/alarmdecoder/strings.json @@ -37,7 +37,7 @@ } }, "arm_settings": { - "title": "Configure AlarmDecoder", + "title": "[%key:component::alarmdecoder::options::step::init::title%]", "data": { "auto_bypass": "Auto Bypass on Arm", "code_arm_required": "Code Required for Arming", @@ -45,14 +45,14 @@ } }, "zone_select": { - "title": "Configure AlarmDecoder", + "title": "[%key:component::alarmdecoder::options::step::init::title%]", "description": "Enter the zone number you'd like to to add, edit, or remove.", "data": { "zone_number": "Zone Number" } }, "zone_details": { - "title": "Configure AlarmDecoder", + "title": "[%key:component::alarmdecoder::options::step::init::title%]", "description": "Enter details for zone {zone_number}. To delete zone {zone_number}, leave Zone Name blank.", "data": { "zone_name": "Zone Name", @@ -77,7 +77,7 @@ "description": "Sends custom keypresses to the alarm.", "fields": { "keypress": { - "name": "Key press", + "name": "[%key:component::alarmdecoder::services::alarm_keypress::name%]", "description": "String to send to the alarm panel." } } diff --git a/homeassistant/components/amberelectric/strings.json b/homeassistant/components/amberelectric/strings.json index 5235a8bf325..ccdc2374142 100644 --- a/homeassistant/components/amberelectric/strings.json +++ b/homeassistant/components/amberelectric/strings.json @@ -3,7 +3,7 @@ "step": { "user": { "data": { - "api_token": "API Token", + "api_token": "[%key:common::config_flow::data::api_token%]", "site_id": "Site ID" }, "description": "Go to {api_url} to generate an API key" diff --git a/homeassistant/components/androidtv/strings.json b/homeassistant/components/androidtv/strings.json index 9eb3d14a225..7949c066916 100644 --- a/homeassistant/components/androidtv/strings.json +++ b/homeassistant/components/androidtv/strings.json @@ -50,7 +50,7 @@ "title": "Configure Android state detection rules", "description": "Configure detection rule for application id {rule_id}", "data": { - "rule_id": "Application ID", + "rule_id": "[%key:component::androidtv::options::step::apps::data::app_id%]", "rule_values": "List of state detection rules (see documentation)", "rule_delete": "Check to delete this rule" } @@ -90,12 +90,12 @@ "description": "Uploads a file from your Home Assistant instance to an Android / Fire TV device.", "fields": { "device_path": { - "name": "Device path", - "description": "The filepath on the Android / Fire TV device." + "name": "[%key:component::androidtv::services::download::fields::device_path::name%]", + "description": "[%key:component::androidtv::services::download::fields::device_path::description%]" }, "local_path": { - "name": "Local path", - "description": "The filepath on your Home Assistant instance." + "name": "[%key:component::androidtv::services::download::fields::local_path::name%]", + "description": "[%key:component::androidtv::services::download::fields::local_path::description%]" } } }, diff --git a/homeassistant/components/anova/strings.json b/homeassistant/components/anova/strings.json index b14246a392d..b7762732303 100644 --- a/homeassistant/components/anova/strings.json +++ b/homeassistant/components/anova/strings.json @@ -29,7 +29,7 @@ "name": "State" }, "mode": { - "name": "Mode" + "name": "[%key:common::config_flow::data::mode%]" }, "target_temperature": { "name": "Target temperature" diff --git a/homeassistant/components/apple_tv/strings.json b/homeassistant/components/apple_tv/strings.json index e5948a54a8d..8730ffe01d5 100644 --- a/homeassistant/components/apple_tv/strings.json +++ b/homeassistant/components/apple_tv/strings.json @@ -6,7 +6,7 @@ "title": "Set up a new Apple TV", "description": "Start by entering the device name (e.g. Kitchen or Bedroom) or IP address of the Apple TV you want to add.\n\nIf you cannot see your device or experience any issues, try specifying the device IP address.", "data": { - "device_input": "Device" + "device_input": "[%key:common::config_flow::data::device%]" } }, "reconfigure": { diff --git a/homeassistant/components/aussie_broadband/strings.json b/homeassistant/components/aussie_broadband/strings.json index 90e4f094ee6..276844a8806 100644 --- a/homeassistant/components/aussie_broadband/strings.json +++ b/homeassistant/components/aussie_broadband/strings.json @@ -35,9 +35,9 @@ "options": { "step": { "init": { - "title": "Select Services", + "title": "[%key:component::aussie_broadband::config::step::service::title%]", "data": { - "services": "Services" + "services": "[%key:component::aussie_broadband::config::step::service::data::services%]" } } }, diff --git a/homeassistant/components/azure_devops/strings.json b/homeassistant/components/azure_devops/strings.json index 8dfd203c84b..ad8ebaa016e 100644 --- a/homeassistant/components/azure_devops/strings.json +++ b/homeassistant/components/azure_devops/strings.json @@ -18,7 +18,7 @@ }, "reauth": { "data": { - "personal_access_token": "Personal Access Token (PAT)" + "personal_access_token": "[%key:component::azure_devops::config::step::user::data::personal_access_token%]" }, "description": "Authentication failed for {project_url}. Please enter your current credentials.", "title": "Reauthentication" diff --git a/homeassistant/components/baf/strings.json b/homeassistant/components/baf/strings.json index cb322320675..5143b519d27 100644 --- a/homeassistant/components/baf/strings.json +++ b/homeassistant/components/baf/strings.json @@ -60,7 +60,7 @@ "name": "Wi-Fi SSID" }, "ip_address": { - "name": "IP Address" + "name": "[%key:common::config_flow::data::ip%]" } }, "switch": { diff --git a/homeassistant/components/blink/strings.json b/homeassistant/components/blink/strings.json index 6c07d1fea55..85556bbcd5a 100644 --- a/homeassistant/components/blink/strings.json +++ b/homeassistant/components/blink/strings.json @@ -63,7 +63,7 @@ "description": "Saves last recorded video clip to local file.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of camera to grab video from." }, "filename": { @@ -77,7 +77,7 @@ "description": "Saves all recent video clips to local directory with file pattern \"%Y%m%d_%H%M%S_{name}.mp4\".", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of camera to grab recent clips from." }, "file_path": { diff --git a/homeassistant/components/bluetooth/strings.json b/homeassistant/components/bluetooth/strings.json index cae88ef24c1..4b168126251 100644 --- a/homeassistant/components/bluetooth/strings.json +++ b/homeassistant/components/bluetooth/strings.json @@ -5,7 +5,7 @@ "user": { "description": "Choose a device to set up", "data": { - "address": "Device" + "address": "[%key:common::config_flow::data::device%]" } }, "bluetooth_confirm": { diff --git a/homeassistant/components/bond/strings.json b/homeassistant/components/bond/strings.json index 04be198d149..4c7c224bc44 100644 --- a/homeassistant/components/bond/strings.json +++ b/homeassistant/components/bond/strings.json @@ -60,11 +60,11 @@ "fields": { "entity_id": { "name": "Entity", - "description": "Name(s) of entities to set the tracked power state of." + "description": "[%key:component::bond::services::set_switch_power_tracked_state::fields::entity_id::description%]" }, "power_state": { - "name": "Power state", - "description": "Power state." + "name": "[%key:component::bond::services::set_switch_power_tracked_state::fields::power_state::name%]", + "description": "[%key:component::bond::services::set_switch_power_tracked_state::fields::power_state::description%]" } } }, diff --git a/homeassistant/components/braviatv/strings.json b/homeassistant/components/braviatv/strings.json index aacaf81465b..30ad296554c 100644 --- a/homeassistant/components/braviatv/strings.json +++ b/homeassistant/components/braviatv/strings.json @@ -15,14 +15,14 @@ } }, "pin": { - "title": "Authorize Sony Bravia TV", + "title": "[%key:component::braviatv::config::step::authorize::title%]", "description": "Enter the PIN code shown on the Sony Bravia TV. \n\nIf the PIN code is not shown, you have to unregister Home Assistant on your TV, go to: Settings -> Network -> Remote device settings -> Deregister remote device.", "data": { "pin": "[%key:common::config_flow::data::pin%]" } }, "psk": { - "title": "Authorize Sony Bravia TV", + "title": "[%key:component::braviatv::config::step::authorize::title%]", "description": "To set up PSK on your TV, go to: Settings -> Network -> Home Network Setup -> IP Control. Set «Authentication» to «Normal and Pre-Shared Key» or «Pre-Shared Key» and define your Pre-Shared-Key string (e.g. sony). \n\nThen enter your PSK here.", "data": { "pin": "PSK" diff --git a/homeassistant/components/brother/strings.json b/homeassistant/components/brother/strings.json index 3ee3fe7609f..641b1dbadf3 100644 --- a/homeassistant/components/brother/strings.json +++ b/homeassistant/components/brother/strings.json @@ -12,7 +12,7 @@ "description": "Do you want to add the printer {model} with serial number `{serial_number}` to Home Assistant?", "title": "Discovered Brother Printer", "data": { - "type": "Type of the printer" + "type": "[%key:component::brother::config::step::user::data::type%]" } } }, diff --git a/homeassistant/components/browser/strings.json b/homeassistant/components/browser/strings.json index fafd5fb96b0..9083ba93795 100644 --- a/homeassistant/components/browser/strings.json +++ b/homeassistant/components/browser/strings.json @@ -5,7 +5,7 @@ "description": "Opens a URL in the default browser on the host machine of Home Assistant.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "The URL to open." } } diff --git a/homeassistant/components/buienradar/strings.json b/homeassistant/components/buienradar/strings.json index bac4e63e288..f254f7602f8 100644 --- a/homeassistant/components/buienradar/strings.json +++ b/homeassistant/components/buienradar/strings.json @@ -38,7 +38,7 @@ "name": "Barometer" }, "barometerfcnamenl": { - "name": "Barometer" + "name": "[%key:component::buienradar::entity::sensor::barometerfcname::name%]" }, "condition": { "name": "Condition", diff --git a/homeassistant/components/cast/strings.json b/homeassistant/components/cast/strings.json index 4de0f85851f..ce622e48aae 100644 --- a/homeassistant/components/cast/strings.json +++ b/homeassistant/components/cast/strings.json @@ -22,15 +22,15 @@ "options": { "step": { "basic_options": { - "title": "Google Cast configuration", - "description": "Known Hosts - A comma-separated list of hostnames or IP-addresses of cast devices, use if mDNS discovery is not working.", + "title": "[%key:component::cast::config::step::config::title%]", + "description": "[%key:component::cast::config::step::config::description%]", "data": { - "known_hosts": "Known hosts" + "known_hosts": "[%key:component::cast::config::step::config::data::known_hosts%]" } }, "advanced_options": { "title": "Advanced Google Cast configuration", - "description": "Allowed UUIDs - A comma-separated list of UUIDs of Cast devices to add to Home Assistant. Use only if you don\u2019t want to add all available cast devices.\nIgnore CEC - A comma-separated list of Chromecasts that should ignore CEC data for determining the active input. This will be passed to pychromecast.IGNORE_CEC.", + "description": "Allowed UUIDs - A comma-separated list of UUIDs of Cast devices to add to Home Assistant. Use only if you don’t want to add all available cast devices.\nIgnore CEC - A comma-separated list of Chromecasts that should ignore CEC data for determining the active input. This will be passed to pychromecast.IGNORE_CEC.", "data": { "ignore_cec": "Ignore CEC", "uuid": "Allowed UUIDs" @@ -38,7 +38,7 @@ } }, "error": { - "invalid_known_hosts": "Known hosts must be a comma separated list of hosts." + "invalid_known_hosts": "[%key:component::cast::config::error::invalid_known_hosts%]" } }, "services": { diff --git a/homeassistant/components/co2signal/strings.json b/homeassistant/components/co2signal/strings.json index 05ea76f3179..78274b0586c 100644 --- a/homeassistant/components/co2signal/strings.json +++ b/homeassistant/components/co2signal/strings.json @@ -28,13 +28,17 @@ "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "unknown": "[%key:common::config_flow::error::unknown%]", - "api_ratelimit": "API Ratelimit exceeded" + "api_ratelimit": "[%key:component::co2signal::config::error::api_ratelimit%]" } }, "entity": { "sensor": { - "carbon_intensity": { "name": "CO2 intensity" }, - "fossil_fuel_percentage": { "name": "Grid fossil fuel percentage" } + "carbon_intensity": { + "name": "CO2 intensity" + }, + "fossil_fuel_percentage": { + "name": "Grid fossil fuel percentage" + } } } } diff --git a/homeassistant/components/color_extractor/strings.json b/homeassistant/components/color_extractor/strings.json index f56a4e514b7..3dc02f56030 100644 --- a/homeassistant/components/color_extractor/strings.json +++ b/homeassistant/components/color_extractor/strings.json @@ -5,11 +5,11 @@ "description": "Sets the light RGB to the predominant color found in the image provided by URL or file path.", "fields": { "color_extract_url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "The URL of the image we want to extract RGB values from. Must be allowed in allowlist_external_urls." }, "color_extract_path": { - "name": "Path", + "name": "[%key:common::config_flow::data::path%]", "description": "The full system path to the image we want to extract RGB values from. Must be allowed in allowlist_external_dirs." } } diff --git a/homeassistant/components/cpuspeed/strings.json b/homeassistant/components/cpuspeed/strings.json index a64e1be7fcf..e82c6a0db12 100644 --- a/homeassistant/components/cpuspeed/strings.json +++ b/homeassistant/components/cpuspeed/strings.json @@ -3,7 +3,7 @@ "config": { "step": { "user": { - "title": "CPU Speed", + "title": "[%key:component::cpuspeed::title%]", "description": "[%key:common::config_flow::description::confirm_setup%]" } }, diff --git a/homeassistant/components/crownstone/strings.json b/homeassistant/components/crownstone/strings.json index bcd818effb0..204f43768c7 100644 --- a/homeassistant/components/crownstone/strings.json +++ b/homeassistant/components/crownstone/strings.json @@ -53,22 +53,22 @@ "data": { "usb_path": "[%key:common::config_flow::data::usb_path%]" }, - "title": "Crownstone USB dongle configuration", + "title": "[%key:component::crownstone::config::step::usb_config::title%]", "description": "Select the serial port of the Crownstone USB dongle.\n\nLook for a device with VID 10C4 and PID EA60." }, "usb_manual_config": { "data": { "usb_manual_path": "[%key:common::config_flow::data::usb_path%]" }, - "title": "Crownstone USB dongle manual path", - "description": "Manually enter the path of a Crownstone USB dongle." + "title": "[%key:component::crownstone::config::step::usb_manual_config::title%]", + "description": "[%key:component::crownstone::config::step::usb_manual_config::description%]" }, "usb_sphere_config": { "data": { - "usb_sphere": "Crownstone Sphere" + "usb_sphere": "[%key:component::crownstone::config::step::usb_sphere_config::data::usb_sphere%]" }, - "title": "Crownstone USB Sphere", - "description": "Select a Crownstone Sphere where the USB is located." + "title": "[%key:component::crownstone::config::step::usb_sphere_config::title%]", + "description": "[%key:component::crownstone::config::step::usb_sphere_config::description%]" } } } diff --git a/homeassistant/components/deconz/strings.json b/homeassistant/components/deconz/strings.json index 632fe832aa8..e32ab875c28 100644 --- a/homeassistant/components/deconz/strings.json +++ b/homeassistant/components/deconz/strings.json @@ -116,7 +116,7 @@ "description": "Represents a specific device endpoint in deCONZ." }, "field": { - "name": "Path", + "name": "[%key:common::config_flow::data::path%]", "description": "String representing a full path to deCONZ endpoint (when entity is not specified) or a subpath of the device path for the entity (when entity is specified)." }, "data": { @@ -134,8 +134,8 @@ "description": "Refreshes available devices from deCONZ.", "fields": { "bridgeid": { - "name": "Bridge identifier", - "description": "Unique string for each deCONZ hardware. It can be found as part of the integration name. Useful if you run multiple deCONZ integrations." + "name": "[%key:component::deconz::services::configure::fields::bridgeid::name%]", + "description": "[%key:component::deconz::services::configure::fields::bridgeid::description%]" } } }, @@ -144,8 +144,8 @@ "description": "Cleans up device and entity registry entries orphaned by deCONZ.", "fields": { "bridgeid": { - "name": "Bridge identifier", - "description": "Unique string for each deCONZ hardware. It can be found as part of the integration name. Useful if you run multiple deCONZ integrations." + "name": "[%key:component::deconz::services::configure::fields::bridgeid::name%]", + "description": "[%key:component::deconz::services::configure::fields::bridgeid::description%]" } } } diff --git a/homeassistant/components/demo/strings.json b/homeassistant/components/demo/strings.json index 2dfb3465d68..d9b89608072 100644 --- a/homeassistant/components/demo/strings.json +++ b/homeassistant/components/demo/strings.json @@ -59,7 +59,7 @@ "thermostat_mode": { "name": "Thermostat mode", "state": { - "away": "Away", + "away": "[%key:common::state::not_home%]", "comfort": "Comfort", "eco": "Eco", "sleep": "Sleep" diff --git a/homeassistant/components/derivative/strings.json b/homeassistant/components/derivative/strings.json index 7a4ee9d4fc3..ef36d46d8b9 100644 --- a/homeassistant/components/derivative/strings.json +++ b/homeassistant/components/derivative/strings.json @@ -6,7 +6,7 @@ "title": "Add Derivative sensor", "description": "Create a sensor that estimates the derivative of a sensor.", "data": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "round": "Precision", "source": "Input sensor", "time_window": "Time window", diff --git a/homeassistant/components/devolo_home_control/strings.json b/homeassistant/components/devolo_home_control/strings.json index 84f05b88384..eeae9aa2e2f 100644 --- a/homeassistant/components/devolo_home_control/strings.json +++ b/homeassistant/components/devolo_home_control/strings.json @@ -18,9 +18,9 @@ }, "zeroconf_confirm": { "data": { - "username": "Email / devolo ID", + "username": "[%key:component::devolo_home_control::config::step::user::data::username%]", "password": "[%key:common::config_flow::data::password%]", - "mydevolo_url": "mydevolo URL" + "mydevolo_url": "[%key:component::devolo_home_control::config::step::user::data::mydevolo_url%]" } } } diff --git a/homeassistant/components/discord/strings.json b/homeassistant/components/discord/strings.json index 07c8fa8bdb5..1cd67d3b021 100644 --- a/homeassistant/components/discord/strings.json +++ b/homeassistant/components/discord/strings.json @@ -8,7 +8,7 @@ } }, "reauth_confirm": { - "description": "Refer to the documentation on getting your Discord bot key.\n\n{url}", + "description": "[%key:component::discord::config::step::user::description%]", "data": { "api_token": "[%key:common::config_flow::data::api_token%]" } diff --git a/homeassistant/components/dlna_dmr/strings.json b/homeassistant/components/dlna_dmr/strings.json index d646f20f7a1..48f347a0908 100644 --- a/homeassistant/components/dlna_dmr/strings.json +++ b/homeassistant/components/dlna_dmr/strings.json @@ -34,7 +34,7 @@ }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "not_dmr": "Device is not a supported Digital Media Renderer" + "not_dmr": "[%key:component::dlna_dmr::config::abort::not_dmr%]" } }, "options": { diff --git a/homeassistant/components/dnsip/strings.json b/homeassistant/components/dnsip/strings.json index 713cc84efd4..d402e27287c 100644 --- a/homeassistant/components/dnsip/strings.json +++ b/homeassistant/components/dnsip/strings.json @@ -17,8 +17,8 @@ "step": { "init": { "data": { - "resolver": "Resolver for IPV4 lookup", - "resolver_ipv6": "Resolver for IPV6 lookup" + "resolver": "[%key:component::dnsip::config::step::user::data::resolver%]", + "resolver_ipv6": "[%key:component::dnsip::config::step::user::data::resolver_ipv6%]" } } }, diff --git a/homeassistant/components/downloader/strings.json b/homeassistant/components/downloader/strings.json index 49a7388add2..c81b9f0ea39 100644 --- a/homeassistant/components/downloader/strings.json +++ b/homeassistant/components/downloader/strings.json @@ -5,7 +5,7 @@ "description": "Downloads a file to the download location.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "The URL of the file to download." }, "subdir": { diff --git a/homeassistant/components/dsmr/strings.json b/homeassistant/components/dsmr/strings.json index 5724ad643fe..7dc44e47a98 100644 --- a/homeassistant/components/dsmr/strings.json +++ b/homeassistant/components/dsmr/strings.json @@ -18,15 +18,15 @@ "setup_serial": { "data": { "port": "Select device", - "dsmr_version": "Select DSMR version" + "dsmr_version": "[%key:component::dsmr::config::step::setup_network::data::dsmr_version%]" }, - "title": "Device" + "title": "[%key:common::config_flow::data::device%]" }, "setup_serial_manual_path": { "data": { "port": "[%key:common::config_flow::data::usb_path%]" }, - "title": "Path" + "title": "[%key:common::config_flow::data::path%]" } }, "error": { @@ -37,7 +37,7 @@ "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "cannot_communicate": "Failed to communicate" + "cannot_communicate": "[%key:component::dsmr::config::error::cannot_communicate%]" } }, "entity": { diff --git a/homeassistant/components/dynalite/strings.json b/homeassistant/components/dynalite/strings.json index 512e00237d9..468cdebf0b1 100644 --- a/homeassistant/components/dynalite/strings.json +++ b/homeassistant/components/dynalite/strings.json @@ -21,7 +21,7 @@ "description": "Requests Dynalite to report the preset for an area.", "fields": { "host": { - "name": "Host", + "name": "[%key:common::config_flow::data::host%]", "description": "Host gateway IP to send to or all configured gateways if not specified." }, "area": { @@ -39,11 +39,11 @@ "description": "Requests Dynalite to report the level of a specific channel.", "fields": { "host": { - "name": "Host", - "description": "Host gateway IP to send to or all configured gateways if not specified." + "name": "[%key:common::config_flow::data::host%]", + "description": "[%key:component::dynalite::services::request_area_preset::fields::host::description%]" }, "area": { - "name": "Area", + "name": "[%key:component::dynalite::services::request_area_preset::fields::area::name%]", "description": "Area for the requested channel." }, "channel": { diff --git a/homeassistant/components/ecobee/strings.json b/homeassistant/components/ecobee/strings.json index 05ae600d4b7..fc43fc3000e 100644 --- a/homeassistant/components/ecobee/strings.json +++ b/homeassistant/components/ecobee/strings.json @@ -85,7 +85,7 @@ "description": "Ecobee thermostat on which to delete the vacation." }, "vacation_name": { - "name": "Vacation name", + "name": "[%key:component::ecobee::services::create_vacation::fields::vacation_name::name%]", "description": "Name of the vacation to delete." } } @@ -110,10 +110,10 @@ "fields": { "entity_id": { "name": "Entity", - "description": "Name(s) of entities to change." + "description": "[%key:component::ecobee::services::resume_program::fields::entity_id::description%]" }, "fan_min_on_time": { - "name": "Fan minimum on time", + "name": "[%key:component::ecobee::services::create_vacation::fields::fan_min_on_time::name%]", "description": "New value of fan min on time." } } diff --git a/homeassistant/components/eight_sleep/strings.json b/homeassistant/components/eight_sleep/strings.json index bd2b4f11b9d..b2fb73cc020 100644 --- a/homeassistant/components/eight_sleep/strings.json +++ b/homeassistant/components/eight_sleep/strings.json @@ -13,7 +13,7 @@ }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "cannot_connect": "Cannot connect to Eight Sleep cloud: {error}" + "cannot_connect": "[%key:component::eight_sleep::config::error::cannot_connect%]" } }, "services": { diff --git a/homeassistant/components/elkm1/strings.json b/homeassistant/components/elkm1/strings.json index 5ef15827eb9..c854307dd92 100644 --- a/homeassistant/components/elkm1/strings.json +++ b/homeassistant/components/elkm1/strings.json @@ -6,7 +6,7 @@ "title": "Connect to Elk-M1 Control", "description": "Choose a discovered system or 'Manual Entry' if no devices have been discovered.", "data": { - "device": "Device" + "device": "[%key:common::config_flow::data::device%]" } }, "manual_connection": { @@ -83,7 +83,7 @@ "fields": { "code": { "name": "Code", - "description": "An code to arm the alarm control panel." + "description": "[%key:component::elkm1::services::alarm_arm_home_instant::fields::code::description%]" } } }, @@ -93,7 +93,7 @@ "fields": { "code": { "name": "Code", - "description": "An code to arm the alarm control panel." + "description": "[%key:component::elkm1::services::alarm_arm_home_instant::fields::code::description%]" } } }, @@ -119,7 +119,7 @@ }, "line2": { "name": "Line 2", - "description": "Up to 16 characters of text (truncated if too long)." + "description": "[%key:component::elkm1::services::alarm_display_message::fields::line1::description%]" } } }, @@ -142,7 +142,7 @@ "description": "Phrase number to speak." }, "prefix": { - "name": "Prefix", + "name": "[%key:component::elkm1::services::set_time::fields::prefix::name%]", "description": "Prefix to identify panel when multiple panels configured." } } @@ -156,8 +156,8 @@ "description": "Word number to speak." }, "prefix": { - "name": "Prefix", - "description": "Prefix to identify panel when multiple panels configured." + "name": "[%key:component::elkm1::services::set_time::fields::prefix::name%]", + "description": "[%key:component::elkm1::services::speak_phrase::fields::prefix::description%]" } } }, diff --git a/homeassistant/components/elmax/strings.json b/homeassistant/components/elmax/strings.json index e8cdbe23a5c..4bc705adfbe 100644 --- a/homeassistant/components/elmax/strings.json +++ b/homeassistant/components/elmax/strings.json @@ -13,7 +13,7 @@ "data": { "panel_name": "Panel Name", "panel_id": "Panel ID", - "panel_pin": "PIN Code" + "panel_pin": "[%key:common::config_flow::data::pin%]" } }, "reauth_confirm": { diff --git a/homeassistant/components/enocean/strings.json b/homeassistant/components/enocean/strings.json index a2aff2a4207..97da526185f 100644 --- a/homeassistant/components/enocean/strings.json +++ b/homeassistant/components/enocean/strings.json @@ -10,7 +10,7 @@ "manual": { "title": "Enter the path to your ENOcean dongle", "data": { - "path": "USB dongle path" + "path": "[%key:component::enocean::config::step::detect::data::path%]" } } }, diff --git a/homeassistant/components/esphome/strings.json b/homeassistant/components/esphome/strings.json index 2ec1fe1bc41..2bbbb229949 100644 --- a/homeassistant/components/esphome/strings.json +++ b/homeassistant/components/esphome/strings.json @@ -35,7 +35,7 @@ }, "reauth_confirm": { "data": { - "noise_psk": "Encryption key" + "noise_psk": "[%key:component::esphome::config::step::encryption_key::data::noise_psk%]" }, "description": "The ESPHome device {name} enabled transport encryption or changed the encryption key. Please enter the updated key. You can find it in the ESPHome Dashboard or in your device configuration." }, diff --git a/homeassistant/components/evohome/strings.json b/homeassistant/components/evohome/strings.json index d8214c3aa8b..aa38ee170a5 100644 --- a/homeassistant/components/evohome/strings.json +++ b/homeassistant/components/evohome/strings.json @@ -5,7 +5,7 @@ "description": "Sets the system mode, either indefinitely, or for a specified period of time, after which it will revert to Auto. Not all systems support all modes.", "fields": { "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Mode to set thermostat." }, "period": { diff --git a/homeassistant/components/facebox/strings.json b/homeassistant/components/facebox/strings.json index 776644c7cfa..1869673b643 100644 --- a/homeassistant/components/facebox/strings.json +++ b/homeassistant/components/facebox/strings.json @@ -9,7 +9,7 @@ "description": "The facebox entity to teach." }, "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "The name of the face to teach." }, "file_path": { diff --git a/homeassistant/components/flux_led/strings.json b/homeassistant/components/flux_led/strings.json index 7617d56d512..d1d812cb210 100644 --- a/homeassistant/components/flux_led/strings.json +++ b/homeassistant/components/flux_led/strings.json @@ -114,12 +114,12 @@ "description": "Sets strip zones for Addressable v3 controllers (0xA3).", "fields": { "colors": { - "name": "Colors", + "name": "[%key:component::flux_led::services::set_custom_effect::fields::colors::name%]", "description": "List of colors for each zone (RGB). The length of each zone is the number of pixels per segment divided by the number of colors. (Max 2048 Colors)." }, "speed_pct": { "name": "Speed", - "description": "Effect speed for the custom effect (0-100)." + "description": "[%key:component::flux_led::services::set_custom_effect::fields::speed_pct::description%]" }, "effect": { "name": "Effect", diff --git a/homeassistant/components/forecast_solar/strings.json b/homeassistant/components/forecast_solar/strings.json index a7bc0190f5f..7e8c32017ce 100644 --- a/homeassistant/components/forecast_solar/strings.json +++ b/homeassistant/components/forecast_solar/strings.json @@ -8,7 +8,7 @@ "declination": "Declination (0 = Horizontal, 90 = Vertical)", "latitude": "[%key:common::config_flow::data::latitude%]", "longitude": "[%key:common::config_flow::data::longitude%]", - "modules power": "Total Watt peak power of your solar modules", + "modules_power": "Total Watt peak power of your solar modules", "name": "[%key:common::config_flow::data::name%]" } } @@ -23,11 +23,11 @@ "description": "These values allow tweaking the Forecast.Solar result. Please refer to the documentation if a field is unclear.", "data": { "api_key": "Forecast.Solar API Key (optional)", - "azimuth": "Azimuth (360 degrees, 0 = North, 90 = East, 180 = South, 270 = West)", + "azimuth": "[%key:component::forecast_solar::config::step::user::data::azimuth%]", "damping": "Damping factor: adjusts the results in the morning and evening", "inverter_size": "Inverter size (Watt)", - "declination": "Declination (0 = Horizontal, 90 = Vertical)", - "modules power": "Total Watt peak power of your solar modules" + "declination": "[%key:component::forecast_solar::config::step::user::data::declination%]", + "modules power": "[%key:component::forecast_solar::config::step::user::data::modules_power%]" } } } diff --git a/homeassistant/components/fritz/strings.json b/homeassistant/components/fritz/strings.json index dd845fc2a1b..7cbb10a236b 100644 --- a/homeassistant/components/fritz/strings.json +++ b/homeassistant/components/fritz/strings.json @@ -19,7 +19,7 @@ } }, "user": { - "title": "Set up FRITZ!Box Tools", + "title": "[%key:component::fritz::config::step::confirm::title%]", "description": "Set up FRITZ!Box Tools to control your FRITZ!Box.\nMinimum needed: username, password.", "data": { "host": "[%key:common::config_flow::data::host%]", @@ -126,7 +126,7 @@ }, "services": { "reconnect": { - "name": "Reconnect", + "name": "[%key:component::fritz::entity::button::reconnect::name%]", "description": "Reconnects your FRITZ!Box internet connection.", "fields": { "device_id": { @@ -140,7 +140,7 @@ "description": "Reboots your FRITZ!Box.", "fields": { "device_id": { - "name": "Fritz!Box Device", + "name": "[%key:component::fritz::services::reconnect::fields::device_id::name%]", "description": "Select the Fritz!Box to reboot." } } @@ -150,7 +150,7 @@ "description": "Remove FRITZ!Box stale device_tracker entities.", "fields": { "device_id": { - "name": "Fritz!Box Device", + "name": "[%key:component::fritz::services::reconnect::fields::device_id::name%]", "description": "Select the Fritz!Box to check." } } @@ -160,11 +160,11 @@ "description": "Sets a new password for the guest Wi-Fi. The password must be between 8 and 63 characters long. If no additional parameter is set, the password will be auto-generated with a length of 12 characters.", "fields": { "device_id": { - "name": "Fritz!Box Device", - "description": "Select the Fritz!Box to check." + "name": "[%key:component::fritz::services::reconnect::fields::device_id::name%]", + "description": "Select the Fritz!Box to configure." }, "password": { - "name": "Password", + "name": "[%key:common::config_flow::data::password%]", "description": "New password for the guest Wi-Fi." }, "length": { diff --git a/homeassistant/components/fully_kiosk/strings.json b/homeassistant/components/fully_kiosk/strings.json index 2ecac4a5742..d61e8a7b7a8 100644 --- a/homeassistant/components/fully_kiosk/strings.json +++ b/homeassistant/components/fully_kiosk/strings.json @@ -112,7 +112,7 @@ "description": "Loads a URL on Fully Kiosk Browser.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "URL to load." } } diff --git a/homeassistant/components/gardena_bluetooth/strings.json b/homeassistant/components/gardena_bluetooth/strings.json index c7a6e9637df..0a9677b1f92 100644 --- a/homeassistant/components/gardena_bluetooth/strings.json +++ b/homeassistant/components/gardena_bluetooth/strings.json @@ -38,7 +38,7 @@ }, "switch": { "state": { - "name": "Open" + "name": "[%key:common::state::open%]" } } } diff --git a/homeassistant/components/geniushub/strings.json b/homeassistant/components/geniushub/strings.json index 1c1092ee256..ac057f5c639 100644 --- a/homeassistant/components/geniushub/strings.json +++ b/homeassistant/components/geniushub/strings.json @@ -9,7 +9,7 @@ "description": "The zone's entity_id." }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "One of: off, timer or footprint." } } @@ -20,7 +20,7 @@ "fields": { "entity_id": { "name": "Entity", - "description": "The zone's entity_id." + "description": "[%key:component::geniushub::services::set_zone_mode::fields::entity_id::description%]" }, "temperature": { "name": "Temperature", @@ -38,7 +38,7 @@ "fields": { "duration": { "name": "Duration", - "description": "The duration of the override. Optional, default 1 hour, maximum 24 hours." + "description": "[%key:component::geniushub::services::set_zone_override::fields::duration::description%]" } } } diff --git a/homeassistant/components/google/strings.json b/homeassistant/components/google/strings.json index 7fa1569992f..b3594f31510 100644 --- a/homeassistant/components/google/strings.json +++ b/homeassistant/components/google/strings.json @@ -88,11 +88,11 @@ "fields": { "summary": { "name": "Summary", - "description": "Acts as the title of the event." + "description": "[%key:component::google::services::add_event::fields::summary::description%]" }, "description": { "name": "Description", - "description": "The description of the event. Optional." + "description": "[%key:component::google::services::add_event::fields::description::description%]" }, "start_date_time": { "name": "Start time", @@ -104,18 +104,18 @@ }, "start_date": { "name": "Start date", - "description": "The date the whole day event should start." + "description": "[%key:component::google::services::add_event::fields::start_date::description%]" }, "end_date": { "name": "End date", - "description": "The date the whole day event should end." + "description": "[%key:component::google::services::add_event::fields::end_date::description%]" }, "in": { "name": "In", "description": "Days or weeks that you want to create the event in." }, "location": { - "name": "Location", + "name": "[%key:common::config_flow::data::location%]", "description": "The location of the event. Optional." } } diff --git a/homeassistant/components/google_generative_ai_conversation/strings.json b/homeassistant/components/google_generative_ai_conversation/strings.json index 2df5398222c..2b1b41a2c28 100644 --- a/homeassistant/components/google_generative_ai_conversation/strings.json +++ b/homeassistant/components/google_generative_ai_conversation/strings.json @@ -18,7 +18,7 @@ "init": { "data": { "prompt": "Prompt Template", - "model": "Model", + "model": "[%key:common::generic::model%]", "temperature": "Temperature", "top_p": "Top P", "top_k": "Top K" diff --git a/homeassistant/components/google_mail/strings.json b/homeassistant/components/google_mail/strings.json index 83537c6b1de..2bd70750ff9 100644 --- a/homeassistant/components/google_mail/strings.json +++ b/homeassistant/components/google_mail/strings.json @@ -68,7 +68,7 @@ "description": "Restrict automatic reply to domain. This only affects GSuite accounts." }, "start": { - "name": "Start", + "name": "[%key:common::action::start%]", "description": "First day of the vacation." }, "end": { diff --git a/homeassistant/components/group/strings.json b/homeassistant/components/group/strings.json index bbf521b06e3..1c656b46b9e 100644 --- a/homeassistant/components/group/strings.json +++ b/homeassistant/components/group/strings.json @@ -23,7 +23,7 @@ "all": "All entities", "entities": "Members", "hide_members": "Hide members", - "name": "Name" + "name": "[%key:common::config_flow::data::name%]" } }, "cover": { @@ -70,9 +70,9 @@ "title": "[%key:component::group::config::step::user::title%]", "data": { "ignore_non_numeric": "Ignore non-numeric", - "entities": "Members", - "hide_members": "Hide members", - "name": "Name", + "entities": "[%key:component::group::config::step::binary_sensor::data::entities%]", + "hide_members": "[%key:component::group::config::step::binary_sensor::data::hide_members%]", + "name": "[%key:common::config_flow::data::name%]", "type": "Type", "round_digits": "Round value to number of decimals", "device_class": "Device class", @@ -172,7 +172,7 @@ }, "state_attributes": { "entity_id": { - "name": "Members" + "name": "[%key:component::group::config::step::binary_sensor::data::entities%]" } } } @@ -205,7 +205,7 @@ "description": "Object ID of this group. This object ID is used as part of the entity ID. Entity ID format: [domain].[object_id]." }, "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of the group." }, "icon": { @@ -235,8 +235,8 @@ "description": "Removes a group.", "fields": { "object_id": { - "name": "Object ID", - "description": "Object ID of this group. This object ID is used as part of the entity ID. Entity ID format: [domain].[object_id]." + "name": "[%key:component::group::services::set::fields::object_id::name%]", + "description": "[%key:component::group::services::set::fields::object_id::description%]" } } } diff --git a/homeassistant/components/growatt_server/strings.json b/homeassistant/components/growatt_server/strings.json index d2c196dbfdd..f507387e628 100644 --- a/homeassistant/components/growatt_server/strings.json +++ b/homeassistant/components/growatt_server/strings.json @@ -188,10 +188,10 @@ "name": "Grid discharged today" }, "storage_load_consumption_today": { - "name": "Load consumption today" + "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_today::name%]" }, "storage_load_consumption_lifetime": { - "name": "Lifetime load consumption" + "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_lifetime::name%]" }, "storage_grid_charged_today": { "name": "Grid charged today" @@ -215,7 +215,7 @@ "name": "Charge today" }, "storage_import_from_grid": { - "name": "Import from grid" + "name": "[%key:component::growatt_server::entity::sensor::mix_import_from_grid::name%]" }, "storage_import_from_grid_today": { "name": "Import from grid today" @@ -224,7 +224,7 @@ "name": "Import from grid total" }, "storage_load_consumption": { - "name": "Load consumption" + "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption::name%]" }, "storage_grid_voltage": { "name": "AC input voltage" @@ -263,7 +263,7 @@ "name": "Energy today" }, "tlx_energy_total": { - "name": "Lifetime energy output" + "name": "[%key:component::growatt_server::entity::sensor::inverter_energy_total::name%]" }, "tlx_energy_total_input_1": { "name": "Lifetime total energy input 1" @@ -272,13 +272,13 @@ "name": "Energy Today Input 1" }, "tlx_voltage_input_1": { - "name": "Input 1 voltage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_1::name%]" }, "tlx_amperage_input_1": { - "name": "Input 1 Amperage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_1::name%]" }, "tlx_wattage_input_1": { - "name": "Input 1 Wattage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_1::name%]" }, "tlx_energy_total_input_2": { "name": "Lifetime total energy input 2" @@ -287,13 +287,13 @@ "name": "Energy Today Input 2" }, "tlx_voltage_input_2": { - "name": "Input 2 voltage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_2::name%]" }, "tlx_amperage_input_2": { - "name": "Input 2 Amperage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_2::name%]" }, "tlx_wattage_input_2": { - "name": "Input 2 Wattage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_2::name%]" }, "tlx_energy_total_input_3": { "name": "Lifetime total energy input 3" @@ -302,13 +302,13 @@ "name": "Energy Today Input 3" }, "tlx_voltage_input_3": { - "name": "Input 3 voltage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_voltage_input_3::name%]" }, "tlx_amperage_input_3": { - "name": "Input 3 Amperage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_amperage_input_3::name%]" }, "tlx_wattage_input_3": { - "name": "Input 3 Wattage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_wattage_input_3::name%]" }, "tlx_energy_total_input_4": { "name": "Lifetime total energy input 4" @@ -329,16 +329,16 @@ "name": "Lifetime total solar energy" }, "tlx_internal_wattage": { - "name": "Internal wattage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_internal_wattage::name%]" }, "tlx_reactive_voltage": { - "name": "Reactive voltage" + "name": "[%key:component::growatt_server::entity::sensor::inverter_reactive_voltage::name%]" }, "tlx_frequency": { - "name": "AC frequency" + "name": "[%key:component::growatt_server::entity::sensor::inverter_frequency::name%]" }, "tlx_current_wattage": { - "name": "Output power" + "name": "[%key:component::growatt_server::entity::sensor::inverter_current_wattage::name%]" }, "tlx_temperature_1": { "name": "Temperature 1" @@ -392,13 +392,13 @@ "name": "Lifetime total battery 2 charged" }, "tlx_export_to_grid_today": { - "name": "Export to grid today" + "name": "[%key:component::growatt_server::entity::sensor::mix_export_to_grid_today::name%]" }, "tlx_export_to_grid_total": { "name": "Lifetime total export to grid" }, "tlx_load_consumption_today": { - "name": "Load consumption today" + "name": "[%key:component::growatt_server::entity::sensor::mix_load_consumption_today::name%]" }, "mix_load_consumption_total": { "name": "Lifetime total load consumption" @@ -419,7 +419,7 @@ "name": "Output Power" }, "total_energy_output": { - "name": "Lifetime energy output" + "name": "[%key:component::growatt_server::entity::sensor::inverter_energy_total::name%]" }, "total_maximum_output": { "name": "Maximum power" diff --git a/homeassistant/components/guardian/strings.json b/homeassistant/components/guardian/strings.json index f416adac027..59630e87932 100644 --- a/homeassistant/components/guardian/strings.json +++ b/homeassistant/components/guardian/strings.json @@ -52,7 +52,7 @@ "description": "Adds a new paired sensor to the valve controller.", "fields": { "device_id": { - "name": "Valve controller", + "name": "[%key:component::guardian::entity::switch::valve_controller::name%]", "description": "The valve controller to add the sensor to." }, "uid": { @@ -66,12 +66,12 @@ "description": "Removes a paired sensor from the valve controller.", "fields": { "device_id": { - "name": "Valve controller", + "name": "[%key:component::guardian::entity::switch::valve_controller::name%]", "description": "The valve controller to remove the sensor from." }, "uid": { - "name": "UID", - "description": "The UID of the paired sensor." + "name": "[%key:component::guardian::services::pair_sensor::fields::uid::name%]", + "description": "[%key:component::guardian::services::pair_sensor::fields::uid::description%]" } } }, @@ -80,15 +80,15 @@ "description": "Upgrades the device firmware.", "fields": { "device_id": { - "name": "Valve controller", + "name": "[%key:component::guardian::entity::switch::valve_controller::name%]", "description": "The valve controller whose firmware should be upgraded." }, "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "The URL of the server hosting the firmware file." }, "port": { - "name": "Port", + "name": "[%key:common::config_flow::data::port%]", "description": "The port on which the firmware file is served." }, "filename": { diff --git a/homeassistant/components/habitica/strings.json b/homeassistant/components/habitica/strings.json index 8d2fb38517d..8dacb0e6321 100644 --- a/homeassistant/components/habitica/strings.json +++ b/homeassistant/components/habitica/strings.json @@ -11,8 +11,8 @@ "user": { "data": { "url": "[%key:common::config_flow::data::url%]", - "name": "Override for Habitica\u2019s username. Will be used for service calls", - "api_user": "Habitica\u2019s API user ID", + "name": "Override for Habitica’s username. Will be used for service calls", + "api_user": "Habitica’s API user ID", "api_key": "[%key:common::config_flow::data::api_key%]" }, "description": "Connect your Habitica profile to allow monitoring of your user's profile and tasks. Note that api_id and api_key must be gotten from https://habitica.com/user/settings/api" @@ -25,11 +25,11 @@ "description": "Calls Habitica API.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Habitica's username to call for." }, "path": { - "name": "Path", + "name": "[%key:common::config_flow::data::path%]", "description": "Items from API URL in form of an array with method attached at the end. Consult https://habitica.com/apidoc/. Example uses https://habitica.com/apidoc/#api-Task-CreateUserTasks." }, "args": { diff --git a/homeassistant/components/harmony/strings.json b/homeassistant/components/harmony/strings.json index 8e2b435483f..9ae22090d7f 100644 --- a/homeassistant/components/harmony/strings.json +++ b/homeassistant/components/harmony/strings.json @@ -10,7 +10,7 @@ } }, "link": { - "title": "Set up Logitech Harmony Hub", + "title": "[%key:component::harmony::config::step::user::title%]", "description": "Do you want to set up {name} ({host})?" } }, diff --git a/homeassistant/components/hassio/strings.json b/homeassistant/components/hassio/strings.json index e954c0cccf6..c45d455631b 100644 --- a/homeassistant/components/hassio/strings.json +++ b/homeassistant/components/hassio/strings.json @@ -282,11 +282,11 @@ "description": "Creates a full backup.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Optional (default = current date and time)." }, "password": { - "name": "Password", + "name": "[%key:common::config_flow::data::password%]", "description": "Password to protect the backup with." }, "compressed": { @@ -294,7 +294,7 @@ "description": "Compresses the backup files." }, "location": { - "name": "Location", + "name": "[%key:common::config_flow::data::location%]", "description": "Name of a backup network storage to host backups." } } diff --git a/homeassistant/components/hdmi_cec/strings.json b/homeassistant/components/hdmi_cec/strings.json index 6efc9ec4272..22715907a99 100644 --- a/homeassistant/components/hdmi_cec/strings.json +++ b/homeassistant/components/hdmi_cec/strings.json @@ -9,7 +9,7 @@ "description": "Select HDMI device.", "fields": { "device": { - "name": "Device", + "name": "[%key:common::config_flow::data::device%]", "description": "Address of device to select. Can be entity_id, physical address or alias from configuration." } } @@ -41,7 +41,7 @@ } }, "standby": { - "name": "Standby", + "name": "[%key:common::state::standby%]", "description": "Standby all devices which supports it." }, "update": { diff --git a/homeassistant/components/heos/strings.json b/homeassistant/components/heos/strings.json index 635fe08cccc..7bd362cf3d7 100644 --- a/homeassistant/components/heos/strings.json +++ b/homeassistant/components/heos/strings.json @@ -22,11 +22,11 @@ "description": "Signs the controller in to a HEOS account.", "fields": { "username": { - "name": "Username", + "name": "[%key:common::config_flow::data::username%]", "description": "The username or email of the HEOS account." }, "password": { - "name": "Password", + "name": "[%key:common::config_flow::data::password%]", "description": "The password of the HEOS account." } } diff --git a/homeassistant/components/here_travel_time/strings.json b/homeassistant/components/here_travel_time/strings.json index 2c031dc0a02..124aa070595 100644 --- a/homeassistant/components/here_travel_time/strings.json +++ b/homeassistant/components/here_travel_time/strings.json @@ -16,13 +16,13 @@ } }, "origin_coordinates": { - "title": "Choose Origin", + "title": "[%key:component::here_travel_time::config::step::origin_menu::title%]", "data": { "origin": "Origin as GPS coordinates" } }, "origin_entity_id": { - "title": "Choose Origin", + "title": "[%key:component::here_travel_time::config::step::origin_menu::title%]", "data": { "origin_entity_id": "Origin using an entity" } @@ -30,18 +30,18 @@ "destination_menu": { "title": "Choose Destination", "menu_options": { - "destination_coordinates": "Using a map location", - "destination_entity": "Using an entity" + "destination_coordinates": "[%key:component::here_travel_time::config::step::origin_menu::menu_options::origin_coordinates%]", + "destination_entity": "[%key:component::here_travel_time::config::step::origin_menu::menu_options::origin_entity%]" } }, "destination_coordinates": { - "title": "Choose Destination", + "title": "[%key:component::here_travel_time::config::step::destination_menu::title%]", "data": { "destination": "Destination as GPS coordinates" } }, "destination_entity_id": { - "title": "Choose Destination", + "title": "[%key:component::here_travel_time::config::step::destination_menu::title%]", "data": { "destination_entity_id": "Destination using an entity" } diff --git a/homeassistant/components/hive/strings.json b/homeassistant/components/hive/strings.json index 495c5dad1cc..e2a3e9dc7e1 100644 --- a/homeassistant/components/hive/strings.json +++ b/homeassistant/components/hive/strings.json @@ -25,7 +25,7 @@ "title": "Hive Configuration." }, "reauth": { - "title": "Hive Login", + "title": "[%key:component::hive::config::step::user::title%]", "description": "Re-enter your Hive login information.", "data": { "username": "[%key:common::config_flow::data::username%]", @@ -82,7 +82,7 @@ }, "temperature": { "name": "Temperature", - "description": "Set the target temperature for the boost period." + "description": "[%key:component::hive::services::boost_heating::fields::temperature::description%]" } } }, @@ -109,7 +109,7 @@ "description": "Set the time period for the boost." }, "on_off": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Set the boost function on or off." } } diff --git a/homeassistant/components/home_connect/strings.json b/homeassistant/components/home_connect/strings.json index 41eedbe83a8..091f0c18232 100644 --- a/homeassistant/components/home_connect/strings.json +++ b/homeassistant/components/home_connect/strings.json @@ -46,23 +46,23 @@ "fields": { "device_id": { "name": "Device ID", - "description": "Id of the device." + "description": "[%key:component::home_connect::services::start_program::fields::device_id::description%]" }, "program": { - "name": "Program", - "description": "Program to select." + "name": "[%key:component::home_connect::services::start_program::fields::program::name%]", + "description": "[%key:component::home_connect::services::start_program::fields::program::description%]" }, "key": { - "name": "Option key", - "description": "Key of the option." + "name": "[%key:component::home_connect::services::start_program::fields::key::name%]", + "description": "[%key:component::home_connect::services::start_program::fields::key::description%]" }, "value": { - "name": "Option value", - "description": "Value of the option." + "name": "[%key:component::home_connect::services::start_program::fields::value::name%]", + "description": "[%key:component::home_connect::services::start_program::fields::value::description%]" }, "unit": { - "name": "Option unit", - "description": "Unit for the option." + "name": "[%key:component::home_connect::services::start_program::fields::unit::name%]", + "description": "[%key:component::home_connect::services::start_program::fields::unit::description%]" } } }, @@ -72,7 +72,7 @@ "fields": { "device_id": { "name": "Device ID", - "description": "Id of the device." + "description": "[%key:component::home_connect::services::start_program::fields::device_id::description%]" } } }, @@ -82,7 +82,7 @@ "fields": { "device_id": { "name": "Device ID", - "description": "Id of the device." + "description": "[%key:component::home_connect::services::start_program::fields::device_id::description%]" } } }, @@ -92,15 +92,15 @@ "fields": { "device_id": { "name": "Device ID", - "description": "Id of the device." + "description": "[%key:component::home_connect::services::start_program::fields::device_id::description%]" }, "key": { "name": "Key", - "description": "Key of the option." + "description": "[%key:component::home_connect::services::start_program::fields::key::description%]" }, "value": { "name": "Value", - "description": "Value of the option." + "description": "[%key:component::home_connect::services::start_program::fields::value::description%]" } } }, @@ -110,15 +110,15 @@ "fields": { "device_id": { "name": "Device ID", - "description": "Id of the device." + "description": "[%key:component::home_connect::services::start_program::fields::device_id::description%]" }, "key": { "name": "Key", - "description": "Key of the option." + "description": "[%key:component::home_connect::services::start_program::fields::key::description%]" }, "value": { "name": "Value", - "description": "Value of the option." + "description": "[%key:component::home_connect::services::start_program::fields::value::description%]" } } }, @@ -128,7 +128,7 @@ "fields": { "device_id": { "name": "Device ID", - "description": "Id of the device." + "description": "[%key:component::home_connect::services::start_program::fields::device_id::description%]" }, "key": { "name": "Key", diff --git a/homeassistant/components/homeassistant/strings.json b/homeassistant/components/homeassistant/strings.json index 57cb5c3eb56..791b1a21929 100644 --- a/homeassistant/components/homeassistant/strings.json +++ b/homeassistant/components/homeassistant/strings.json @@ -64,11 +64,11 @@ "description": "Updates the Home Assistant location.", "fields": { "latitude": { - "name": "Latitude", + "name": "[%key:common::config_flow::data::latitude%]", "description": "Latitude of your location." }, "longitude": { - "name": "Longitude", + "name": "[%key:common::config_flow::data::longitude%]", "description": "Longitude of your location." } } diff --git a/homeassistant/components/homekit_controller/strings.json b/homeassistant/components/homekit_controller/strings.json index 7420ef7f3f9..e47ae0fca84 100644 --- a/homeassistant/components/homekit_controller/strings.json +++ b/homeassistant/components/homekit_controller/strings.json @@ -7,7 +7,7 @@ "title": "Device selection", "description": "HomeKit Device communicates over the local area network using a secure encrypted connection without a separate HomeKit Controller or iCloud. Select the device you want to pair with:", "data": { - "device": "Device" + "device": "[%key:common::config_flow::data::device%]" } }, "pair": { @@ -74,8 +74,8 @@ "select": { "ecobee_mode": { "state": { - "away": "Away", - "home": "Home", + "away": "[%key:common::state::not_home%]", + "home": "[%key:common::state::home%]", "sleep": "Sleep" } } @@ -96,7 +96,7 @@ "border_router": "Border Router", "child": "Child", "detached": "Detached", - "disabled": "Disabled", + "disabled": "[%key:common::state::disabled%]", "joining": "Joining", "leader": "Leader", "router": "Router" diff --git a/homeassistant/components/homematic/strings.json b/homeassistant/components/homematic/strings.json index 14f723694fc..48ebbe5d345 100644 --- a/homeassistant/components/homematic/strings.json +++ b/homeassistant/components/homematic/strings.json @@ -31,7 +31,7 @@ "description": "Name(s) of homematic central to set value." }, "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of the variable to set." }, "value": { @@ -46,23 +46,23 @@ "fields": { "address": { "name": "Address", - "description": "Address of homematic device or BidCoS-RF for virtual remote." + "description": "[%key:component::homematic::services::virtualkey::fields::address::description%]" }, "channel": { "name": "Channel", - "description": "Channel for calling a keypress." + "description": "[%key:component::homematic::services::virtualkey::fields::channel::description%]" }, "param": { - "name": "Param", - "description": "Event to send i.e. PRESS_LONG, PRESS_SHORT." + "name": "[%key:component::homematic::services::virtualkey::fields::param::name%]", + "description": "[%key:component::homematic::services::virtualkey::fields::param::description%]" }, "interface": { "name": "Interface", - "description": "Set an interface value." + "description": "[%key:component::homematic::services::virtualkey::fields::interface::description%]" }, "value": { "name": "Value", - "description": "New value." + "description": "[%key:component::homematic::services::set_variable_value::fields::value::description%]" }, "value_type": { "name": "Value type", @@ -83,7 +83,7 @@ "description": "Select the given interface into install mode." }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "1= Normal mode / 2= Remove exists old links." }, "time": { diff --git a/homeassistant/components/homematicip_cloud/strings.json b/homeassistant/components/homematicip_cloud/strings.json index 6a20c5f8a54..3795508d75d 100644 --- a/homeassistant/components/homematicip_cloud/strings.json +++ b/homeassistant/components/homematicip_cloud/strings.json @@ -43,15 +43,15 @@ }, "activate_eco_mode_with_period": { "name": "Activate eco more with period", - "description": "Activates eco mode with period.", + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::description%]", "fields": { "endtime": { "name": "Endtime", "description": "The time when the eco mode should automatically be disabled." }, "accesspoint_id": { - "name": "Accesspoint ID", - "description": "The ID of the Homematic IP Access Point." + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" } } }, @@ -60,7 +60,7 @@ "description": "Activates the vacation mode until the given time.", "fields": { "endtime": { - "name": "Endtime", + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_period::fields::endtime::name%]", "description": "The time when the vacation mode should automatically be disabled." }, "temperature": { @@ -68,8 +68,8 @@ "description": "The set temperature during the vacation mode." }, "accesspoint_id": { - "name": "Accesspoint ID", - "description": "The ID of the Homematic IP Access Point." + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" } } }, @@ -78,8 +78,8 @@ "description": "Deactivates the eco mode immediately.", "fields": { "accesspoint_id": { - "name": "Accesspoint ID", - "description": "The ID of the Homematic IP Access Point." + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" } } }, @@ -88,8 +88,8 @@ "description": "Deactivates the vacation mode immediately.", "fields": { "accesspoint_id": { - "name": "Accesspoint ID", - "description": "The ID of the Homematic IP Access Point." + "name": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::name%]", + "description": "[%key:component::homematicip_cloud::services::activate_eco_mode_with_duration::fields::accesspoint_id::description%]" } } }, diff --git a/homeassistant/components/huawei_lte/strings.json b/homeassistant/components/huawei_lte/strings.json index 50c57e6db3e..41826dc6ae7 100644 --- a/homeassistant/components/huawei_lte/strings.json +++ b/homeassistant/components/huawei_lte/strings.json @@ -55,7 +55,7 @@ "description": "Clears traffic statistics.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "URL of router to clear; optional when only one is configured." } } @@ -65,7 +65,7 @@ "description": "Reboots router.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "URL of router to reboot; optional when only one is configured." } } @@ -75,7 +75,7 @@ "description": "Resumes suspended integration.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "URL of router to resume integration for; optional when only one is configured." } } @@ -85,7 +85,7 @@ "description": "Suspends integration. Suspending logs the integration out from the router, and stops accessing it. Useful e.g. if accessing the router web interface from another source such as a web browser is temporarily required. Invoke the resume_integration service to resume.\n.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "URL of router to suspend integration for; optional when only one is configured." } } diff --git a/homeassistant/components/hue/strings.json b/homeassistant/components/hue/strings.json index 2c3f493e2c8..aef5dba1986 100644 --- a/homeassistant/components/hue/strings.json +++ b/homeassistant/components/hue/strings.json @@ -46,10 +46,10 @@ "dim_up": "Dim up", "turn_off": "[%key:common::action::turn_off%]", "turn_on": "[%key:common::action::turn_on%]", - "1": "First button", - "2": "Second button", - "3": "Third button", - "4": "Fourth button", + "1": "[%key:component::hue::device_automation::trigger_subtype::button_1%]", + "2": "[%key:component::hue::device_automation::trigger_subtype::button_2%]", + "3": "[%key:component::hue::device_automation::trigger_subtype::button_3%]", + "4": "[%key:component::hue::device_automation::trigger_subtype::button_4%]", "clock_wise": "Rotation clockwise", "counter_clock_wise": "Rotation counter-clockwise" }, @@ -62,9 +62,9 @@ "initial_press": "\"{subtype}\" pressed initially", "repeat": "\"{subtype}\" held down", "short_release": "\"{subtype}\" released after short press", - "long_release": "\"{subtype}\" released after long press", - "double_short_release": "Both \"{subtype}\" released", - "start": "\"{subtype}\" pressed initially" + "long_release": "[%key:component::hue::device_automation::trigger_type::remote_button_long_release%]", + "double_short_release": "[%key:component::hue::device_automation::trigger_type::remote_double_button_short_press%]", + "start": "[%key:component::hue::device_automation::trigger_type::initial_press%]" } }, "options": { @@ -107,7 +107,7 @@ "description": "Transition duration it takes to bring devices to the state defined in the scene." }, "dynamic": { - "name": "Dynamic", + "name": "[%key:component::hue::services::hue_activate_scene::fields::dynamic::name%]", "description": "Enable dynamic mode of the scene." }, "speed": { diff --git a/homeassistant/components/hunterdouglas_powerview/strings.json b/homeassistant/components/hunterdouglas_powerview/strings.json index 41a16408783..ec26e423e06 100644 --- a/homeassistant/components/hunterdouglas_powerview/strings.json +++ b/homeassistant/components/hunterdouglas_powerview/strings.json @@ -8,7 +8,7 @@ } }, "link": { - "title": "Connect to the PowerView Hub", + "title": "[%key:component::hunterdouglas_powerview::config::step::user::title%]", "description": "Do you want to set up {name} ({host})?" } }, diff --git a/homeassistant/components/hvv_departures/strings.json b/homeassistant/components/hvv_departures/strings.json index 8f9c06f53fb..a9ec58f12ad 100644 --- a/homeassistant/components/hvv_departures/strings.json +++ b/homeassistant/components/hvv_departures/strings.json @@ -18,7 +18,7 @@ "station_select": { "title": "Select Station/Address", "data": { - "station": "Station/Address" + "station": "[%key:component::hvv_departures::config::step::station::data::station%]" } } }, diff --git a/homeassistant/components/icloud/strings.json b/homeassistant/components/icloud/strings.json index 9bc7750790f..96db11d4656 100644 --- a/homeassistant/components/icloud/strings.json +++ b/homeassistant/components/icloud/strings.json @@ -60,7 +60,7 @@ "fields": { "account": { "name": "Account", - "description": "Your iCloud account username (email) or account name." + "description": "[%key:component::icloud::services::update::fields::account::description%]" }, "device_name": { "name": "Device name", @@ -74,7 +74,7 @@ "fields": { "account": { "name": "Account", - "description": "Your iCloud account username (email) or account name." + "description": "[%key:component::icloud::services::update::fields::account::description%]" }, "device_name": { "name": "Device name", @@ -96,7 +96,7 @@ "fields": { "account": { "name": "Account", - "description": "Your iCloud account username (email) or account name." + "description": "[%key:component::icloud::services::update::fields::account::description%]" }, "device_name": { "name": "Device name", diff --git a/homeassistant/components/ifttt/strings.json b/homeassistant/components/ifttt/strings.json index e52a0882eb1..5ba0812697f 100644 --- a/homeassistant/components/ifttt/strings.json +++ b/homeassistant/components/ifttt/strings.json @@ -44,11 +44,11 @@ }, "value2": { "name": "Value 2", - "description": "Generic field to send data via the event." + "description": "[%key:component::ifttt::services::trigger::fields::value1::description%]" }, "value3": { "name": "Value 3", - "description": "Generic field to send data via the event." + "description": "[%key:component::ifttt::services::trigger::fields::value1::description%]" } } } diff --git a/homeassistant/components/ihc/strings.json b/homeassistant/components/ihc/strings.json index 3ee45a4f464..af2152a88bb 100644 --- a/homeassistant/components/ihc/strings.json +++ b/homeassistant/components/ihc/strings.json @@ -23,12 +23,12 @@ "description": "Sets an integer runtime value on the IHC controller.", "fields": { "controller_id": { - "name": "Controller ID", - "description": "If you have multiple controller, this is the index of you controller\nstarting with 0.\n." + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]", + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]" }, "ihc_id": { - "name": "IHC ID", - "description": "The integer IHC resource ID." + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]", + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]" }, "value": { "name": "Value", @@ -41,12 +41,12 @@ "description": "Sets a float runtime value on the IHC controller.", "fields": { "controller_id": { - "name": "Controller ID", - "description": "If you have multiple controller, this is the index of you controller\nstarting with 0.\n." + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]", + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]" }, "ihc_id": { - "name": "IHC ID", - "description": "The integer IHC resource ID." + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]", + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]" }, "value": { "name": "Value", @@ -59,12 +59,12 @@ "description": "Pulses an input on the IHC controller.", "fields": { "controller_id": { - "name": "Controller ID", - "description": "If you have multiple controller, this is the index of you controller\nstarting with 0.\n." + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::name%]", + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::controller_id::description%]" }, "ihc_id": { - "name": "IHC ID", - "description": "The integer IHC resource ID." + "name": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::name%]", + "description": "[%key:component::ihc::services::set_runtime_value_bool::fields::ihc_id::description%]" } } } diff --git a/homeassistant/components/insteon/strings.json b/homeassistant/components/insteon/strings.json index 3ba996adff7..37cdd5c0343 100644 --- a/homeassistant/components/insteon/strings.json +++ b/homeassistant/components/insteon/strings.json @@ -76,7 +76,7 @@ } }, "add_override": { - "description": "Add a device override.", + "description": "[%key:component::insteon::options::step::init::menu_options::add_override%]", "data": { "address": "Device address (i.e. 1a2b3c)", "cat": "Device category (i.e. 0x10)", @@ -101,7 +101,7 @@ "remove_x10": { "description": "Remove an X10 device", "data": { - "address": "Select a device address to remove" + "address": "[%key:component::insteon::options::step::remove_override::data::address%]" } } }, @@ -120,7 +120,7 @@ "description": "All-Link group number." }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Linking mode controller - IM is controller responder - IM is responder." } } @@ -131,7 +131,7 @@ "fields": { "group": { "name": "Group", - "description": "All-Link group number." + "description": "[%key:component::insteon::services::add_all_link::fields::group::description%]" } } }, @@ -165,7 +165,7 @@ }, "x10_all_units_off": { "name": "X10 all units off", - "description": "Tells the Insteom Modem (IM) start All-Linking mode. Once the IM is in All-Linking mode, press the link button on the device to complete All-Linking.", + "description": "[%key:component::insteon::services::add_all_link::description%]", "fields": { "housecode": { "name": "Housecode", @@ -178,8 +178,8 @@ "description": "Sends X10 All Lights On command.", "fields": { "housecode": { - "name": "Housecode", - "description": "X10 house code." + "name": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::name%]", + "description": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::description%]" } } }, @@ -188,8 +188,8 @@ "description": "Sends X10 All Lights Off command.", "fields": { "housecode": { - "name": "Housecode", - "description": "X10 house code." + "name": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::name%]", + "description": "[%key:component::insteon::services::x10_all_units_off::fields::housecode::description%]" } } }, @@ -209,7 +209,7 @@ "fields": { "group": { "name": "Group", - "description": "INSTEON group or scene number." + "description": "[%key:component::insteon::services::scene_on::fields::group::description%]" } } }, @@ -219,7 +219,7 @@ "fields": { "entity_id": { "name": "Entity", - "description": "Name of the device to load. Use \"all\" to load the database of all devices." + "description": "[%key:component::insteon::services::load_all_link_database::fields::entity_id::description%]" } } } diff --git a/homeassistant/components/integration/strings.json b/homeassistant/components/integration/strings.json index 3a3940ffc2c..74c2b3ee440 100644 --- a/homeassistant/components/integration/strings.json +++ b/homeassistant/components/integration/strings.json @@ -7,7 +7,7 @@ "description": "Create a sensor that calculates a Riemann sum to estimate the integral of a sensor.", "data": { "method": "Integration method", - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "round": "Precision", "source": "Input sensor", "unit_prefix": "Metric prefix", diff --git a/homeassistant/components/iperf3/strings.json b/homeassistant/components/iperf3/strings.json index be8535daec6..4c6c68b9573 100644 --- a/homeassistant/components/iperf3/strings.json +++ b/homeassistant/components/iperf3/strings.json @@ -5,7 +5,7 @@ "description": "Immediately executes a speed test with iperf3.", "fields": { "host": { - "name": "Host", + "name": "[%key:common::config_flow::data::host%]", "description": "The host name of the iperf3 server (already configured) to run a test with." } } diff --git a/homeassistant/components/ipp/strings.json b/homeassistant/components/ipp/strings.json index fa7dd9b6bf8..f3ea929c9ec 100644 --- a/homeassistant/components/ipp/strings.json +++ b/homeassistant/components/ipp/strings.json @@ -37,7 +37,7 @@ "printer": { "state": { "printing": "Printing", - "idle": "Idle", + "idle": "[%key:common::state::idle%]", "stopped": "Stopped" } } diff --git a/homeassistant/components/isy994/strings.json b/homeassistant/components/isy994/strings.json index 542df60f13f..b39bad14d45 100644 --- a/homeassistant/components/isy994/strings.json +++ b/homeassistant/components/isy994/strings.json @@ -36,7 +36,7 @@ "step": { "init": { "title": "ISY Options", - "description": "Set the options for the ISY Integration: \n \u2022 Node Sensor String: Any device or folder that contains 'Node Sensor String' in the name will be treated as a sensor or binary sensor. \n \u2022 Ignore String: Any device with 'Ignore String' in the name will be ignored. \n \u2022 Variable Sensor String: Any variable that contains 'Variable Sensor String' will be added as a sensor. \n \u2022 Restore Light Brightness: If enabled, the previous brightness will be restored when turning on a light instead of the device's built-in On-Level.", + "description": "Set the options for the ISY Integration: \n • Node Sensor String: Any device or folder that contains 'Node Sensor String' in the name will be treated as a sensor or binary sensor. \n • Ignore String: Any device with 'Ignore String' in the name will be ignored. \n • Variable Sensor String: Any variable that contains 'Variable Sensor String' will be added as a sensor. \n • Restore Light Brightness: If enabled, the previous brightness will be restored when turning on a light instead of the device's built-in On-Level.", "data": { "sensor_string": "Node Sensor String", "ignore_string": "Ignore String", @@ -57,7 +57,7 @@ "services": { "send_raw_node_command": { "name": "Send raw node command", - "description": "Set the options for the ISY Integration: \n \u2022 Node Sensor String: Any device or folder that contains 'Node Sensor String' in the name will be treated as a sensor or binary sensor. \n \u2022 Ignore String: Any device with 'Ignore String' in the name will be ignored. \n \u2022 Variable Sensor String: Any variable that contains 'Variable Sensor String' will be added as a sensor. \n \u2022 Restore Light Brightness: If enabled, the previous brightness will be restored when turning on a light instead of the device's built-in On-Level.", + "description": "[%key:component::isy994::options::step::init::description%]", "fields": { "command": { "name": "Command", @@ -102,7 +102,7 @@ "description": "Updates a Z-Wave Device parameter via the ISY. The parameter value will also be returned as a entity extra state attribute with the name \"ZW_#\" where \"#\" is the parameter number.", "fields": { "parameter": { - "name": "Parameter", + "name": "[%key:component::isy994::services::get_zwave_parameter::fields::parameter::name%]", "description": "The parameter number to set on the end device." }, "value": { @@ -134,8 +134,8 @@ "description": "Delete a Z-Wave Lock User Code via the ISY.", "fields": { "user_num": { - "name": "User Number", - "description": "The user slot number on the lock." + "name": "[%key:component::isy994::services::set_zwave_lock_user_code::fields::user_num::name%]", + "description": "[%key:component::isy994::services::set_zwave_lock_user_code::fields::user_num::description%]" } } }, @@ -158,7 +158,7 @@ "description": "The address of the program to control (use either address or name)." }, "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "The name of the program to control (use either address or name)." }, "command": { diff --git a/homeassistant/components/izone/strings.json b/homeassistant/components/izone/strings.json index 3906dcb89fe..707d7d71d34 100644 --- a/homeassistant/components/izone/strings.json +++ b/homeassistant/components/izone/strings.json @@ -26,8 +26,8 @@ "description": "Sets the airflow maximum percent for a zone.", "fields": { "airflow": { - "name": "Percent", - "description": "Airflow percent." + "name": "[%key:component::izone::services::airflow_min::fields::airflow::name%]", + "description": "[%key:component::izone::services::airflow_min::fields::airflow::description%]" } } } diff --git a/homeassistant/components/jvc_projector/strings.json b/homeassistant/components/jvc_projector/strings.json index 11e2f66f91e..1f85c20fc72 100644 --- a/homeassistant/components/jvc_projector/strings.json +++ b/homeassistant/components/jvc_projector/strings.json @@ -29,7 +29,7 @@ "error": { "invalid_host": "[%key:common::config_flow::error::invalid_host%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "invalid_auth": "Password authentication failed" + "invalid_auth": "[%key:component::jvc_projector::config::step::reauth_confirm::description%]" } } } diff --git a/homeassistant/components/kaleidescape/strings.json b/homeassistant/components/kaleidescape/strings.json index 30c22a8ca0e..0cebfd4bf5c 100644 --- a/homeassistant/components/kaleidescape/strings.json +++ b/homeassistant/components/kaleidescape/strings.json @@ -19,7 +19,7 @@ }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "unsupported": "Unsupported device" + "unsupported": "[%key:component::kaleidescape::config::abort::unsupported%]" } }, "entity": { diff --git a/homeassistant/components/kef/strings.json b/homeassistant/components/kef/strings.json index 7307caa6bb3..e5ffff68162 100644 --- a/homeassistant/components/kef/strings.json +++ b/homeassistant/components/kef/strings.json @@ -49,8 +49,8 @@ "description": "Sets the \"Wall mode\" slider of the speaker in dB.", "fields": { "db_value": { - "name": "DB value", - "description": "Value of the slider." + "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]", + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" } } }, @@ -59,8 +59,8 @@ "description": "Sets desk the \"Treble trim\" slider of the speaker in dB.", "fields": { "db_value": { - "name": "DB value", - "description": "Value of the slider." + "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]", + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" } } }, @@ -70,7 +70,7 @@ "fields": { "hz_value": { "name": "Hertz value", - "description": "Value of the slider." + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" } } }, @@ -79,8 +79,8 @@ "description": "Set the \"Sub out low-pass frequency\" slider of the speaker in Hz.", "fields": { "hz_value": { - "name": "Hertz value", - "description": "Value of the slider." + "name": "[%key:component::kef::services::set_high_hz::fields::hz_value::name%]", + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" } } }, @@ -89,8 +89,8 @@ "description": "Set the \"Sub gain\" slider of the speaker in dB.", "fields": { "db_value": { - "name": "DB value", - "description": "Value of the slider." + "name": "[%key:component::kef::services::set_desk_db::fields::db_value::name%]", + "description": "[%key:component::kef::services::set_desk_db::fields::db_value::description%]" } } } diff --git a/homeassistant/components/keymitt_ble/strings.json b/homeassistant/components/keymitt_ble/strings.json index 57e7fc68582..ab2d4ad9440 100644 --- a/homeassistant/components/keymitt_ble/strings.json +++ b/homeassistant/components/keymitt_ble/strings.json @@ -6,7 +6,7 @@ "title": "Set up MicroBot device", "data": { "address": "Device address", - "name": "Name" + "name": "[%key:common::config_flow::data::name%]" } }, "link": { @@ -42,7 +42,7 @@ "description": "Duration in seconds." }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Normal | invert | toggle." } } diff --git a/homeassistant/components/knx/strings.json b/homeassistant/components/knx/strings.json index 56ff9018530..1ff008653d4 100644 --- a/homeassistant/components/knx/strings.json +++ b/homeassistant/components/knx/strings.json @@ -75,7 +75,7 @@ }, "secure_routing_manual": { "title": "Secure routing", - "description": "Please enter your IP secure information.", + "description": "[%key:component::knx::config::step::secure_tunnel_manual::description%]", "data": { "backbone_key": "Backbone key", "sync_latency_tolerance": "Network latency tolerance" @@ -130,7 +130,7 @@ } }, "communication_settings": { - "title": "Communication settings", + "title": "[%key:component::knx::options::step::options_init::menu_options::communication_settings%]", "data": { "state_updater": "State updater", "rate_limit": "Rate limit", @@ -144,9 +144,9 @@ }, "connection_type": { "title": "[%key:component::knx::config::step::connection_type::title%]", - "description": "Please enter the connection type we should use for your KNX connection. \n AUTOMATIC - The integration takes care of the connectivity to your KNX Bus by performing a gateway scan. \n TUNNELING - The integration will connect to your KNX bus via tunneling. \n ROUTING - The integration will connect to your KNX bus via routing.", + "description": "[%key:component::knx::config::step::connection_type::description%]", "data": { - "connection_type": "KNX Connection Type" + "connection_type": "[%key:component::knx::config::step::connection_type::data::connection_type%]" } }, "tunnel": { @@ -259,7 +259,7 @@ "entity": { "sensor": { "individual_address": { - "name": "Individual address" + "name": "[%key:component::knx::config::step::routing::data::individual_address%]" }, "connected_since": { "name": "Connection established" @@ -317,7 +317,7 @@ "description": "Send GroupValueRead requests to the KNX bus. Response can be used from `knx_event` and will be processed in KNX entities.", "fields": { "address": { - "name": "Group address", + "name": "[%key:component::knx::services::send::fields::address::name%]", "description": "Group address(es) to send read request to. Lists will read multiple group addresses." } } @@ -327,7 +327,7 @@ "description": "Add or remove group addresses to knx_event filter for triggering `knx_event`s. Only addresses added with this service can be removed.", "fields": { "address": { - "name": "Group address", + "name": "[%key:component::knx::services::send::fields::address::name%]", "description": "Group address(es) that shall be added or removed. Lists are allowed." }, "type": { @@ -345,7 +345,7 @@ "description": "Adds or remove exposures to KNX bus. Only exposures added with this service can be removed.", "fields": { "address": { - "name": "Group address", + "name": "[%key:component::knx::services::send::fields::address::name%]", "description": "Group address state or attribute updates will be sent to. GroupValueRead requests will be answered. Per address only one exposure can be registered." }, "type": { @@ -358,11 +358,11 @@ }, "attribute": { "name": "Entity attribute", - "description": "Attribute of the entity that shall be sent to the KNX bus. If not set the state will be sent. Eg. for a light the state is eigther \u201con\u201d or \u201coff\u201d - with attribute you can expose its \u201cbrightness\u201d." + "description": "Attribute of the entity that shall be sent to the KNX bus. If not set the state will be sent. Eg. for a light the state is eigther “on” or “off” - with attribute you can expose its “brightness”." }, "default": { "name": "Default value", - "description": "Default value to send to the bus if the state or attribute value is None. Eg. a light with state \u201coff\u201d has no brightness attribute so a default value of 0 could be used. If not set (or None) no value would be sent to the bus and a GroupReadRequest to the address would return the last known value." + "description": "Default value to send to the bus if the state or attribute value is None. Eg. a light with state “off” has no brightness attribute so a default value of 0 could be used. If not set (or None) no value would be sent to the bus and a GroupReadRequest to the address would return the last known value." }, "remove": { "name": "Remove exposure", diff --git a/homeassistant/components/konnected/strings.json b/homeassistant/components/konnected/strings.json index cd08638c775..e1a6863a199 100644 --- a/homeassistant/components/konnected/strings.json +++ b/homeassistant/components/konnected/strings.json @@ -69,7 +69,7 @@ }, "options_digital": { "title": "Configure Digital Sensor", - "description": "{zone} options", + "description": "[%key:component::konnected::options::step::options_binary::description%]", "data": { "type": "Sensor Type", "name": "[%key:common::config_flow::data::name%]", @@ -103,7 +103,7 @@ "bad_host": "Invalid Override API host URL" }, "abort": { - "not_konn_panel": "Not a recognized Konnected.io device" + "not_konn_panel": "[%key:component::konnected::config::abort::not_konn_panel%]" } } } diff --git a/homeassistant/components/lametric/strings.json b/homeassistant/components/lametric/strings.json index ac06e125b0c..21d2bdc84bd 100644 --- a/homeassistant/components/lametric/strings.json +++ b/homeassistant/components/lametric/strings.json @@ -85,7 +85,7 @@ "description": "Displays a chart on a LaMetric device.", "fields": { "device_id": { - "name": "Device", + "name": "[%key:common::config_flow::data::device%]", "description": "The LaMetric device to display the chart on." }, "data": { @@ -207,7 +207,7 @@ }, "priority": { "options": { - "info": "Info", + "info": "[%key:component::lametric::selector::icon_type::options::info%]", "warning": "Warning", "critical": "Critical" } diff --git a/homeassistant/components/lastfm/strings.json b/homeassistant/components/lastfm/strings.json index fe9a4b6453f..006fd5ebcc7 100644 --- a/homeassistant/components/lastfm/strings.json +++ b/homeassistant/components/lastfm/strings.json @@ -24,15 +24,15 @@ "options": { "step": { "init": { - "description": "Fill in other users you want to add.", + "description": "[%key:component::lastfm::config::step::friends::description%]", "data": { - "users": "Last.fm usernames" + "users": "[%key:component::lastfm::config::step::friends::data::users%]" } } }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_account": "Invalid username", + "invalid_account": "[%key:component::lastfm::config::error::invalid_account%]", "unknown": "[%key:common::config_flow::error::unknown%]" } } diff --git a/homeassistant/components/lcn/strings.json b/homeassistant/components/lcn/strings.json index 267100eaad6..e441832926b 100644 --- a/homeassistant/components/lcn/strings.json +++ b/homeassistant/components/lcn/strings.json @@ -37,11 +37,11 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "output": { - "name": "Output", - "description": "Output port." + "name": "[%key:component::lcn::services::output_abs::fields::output::name%]", + "description": "[%key:component::lcn::services::output_abs::fields::output::description%]" }, "brightness": { "name": "Brightness", @@ -55,15 +55,15 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "output": { - "name": "Output", - "description": "Output port." + "name": "[%key:component::lcn::services::output_abs::fields::output::name%]", + "description": "[%key:component::lcn::services::output_abs::fields::output::description%]" }, "transition": { "name": "Transition", - "description": "Transition time." + "description": "[%key:component::lcn::services::output_abs::fields::transition::description%]" } } }, @@ -73,7 +73,7 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "state": { "name": "State", @@ -87,10 +87,10 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "led": { - "name": "LED", + "name": "[%key:component::lcn::services::led::name%]", "description": "Led." }, "state": { @@ -105,7 +105,7 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "variable": { "name": "Variable", @@ -127,11 +127,11 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "variable": { - "name": "Variable", - "description": "Variable or setpoint name." + "name": "[%key:component::lcn::services::var_abs::fields::variable::name%]", + "description": "[%key:component::lcn::services::var_abs::fields::variable::description%]" } } }, @@ -141,11 +141,11 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "variable": { - "name": "Variable", - "description": "Variable or setpoint name." + "name": "[%key:component::lcn::services::var_abs::fields::variable::name%]", + "description": "[%key:component::lcn::services::var_abs::fields::variable::description%]" }, "value": { "name": "Value", @@ -153,7 +153,7 @@ }, "unit_of_measurement": { "name": "Unit of measurement", - "description": "Unit of value." + "description": "[%key:component::lcn::services::var_abs::fields::unit_of_measurement::description%]" }, "value_reference": { "name": "Reference value", @@ -167,7 +167,7 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "setpoint": { "name": "Setpoint", @@ -185,7 +185,7 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "keys": { "name": "Keys", @@ -211,7 +211,7 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "table": { "name": "Table", @@ -226,7 +226,7 @@ "description": "Lock interval." }, "time_unit": { - "name": "Time unit", + "name": "[%key:component::lcn::services::send_keys::fields::time_unit::name%]", "description": "Time unit of lock interval." } } @@ -237,7 +237,7 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "row": { "name": "Row", @@ -255,10 +255,10 @@ "fields": { "address": { "name": "Address", - "description": "Module address." + "description": "[%key:component::lcn::services::output_abs::fields::address::description%]" }, "pck": { - "name": "PCK", + "name": "[%key:component::lcn::services::pck::name%]", "description": "PCK command (without address header)." } } diff --git a/homeassistant/components/lifx/strings.json b/homeassistant/components/lifx/strings.json index dfbc0b4e384..9d155ae32ae 100644 --- a/homeassistant/components/lifx/strings.json +++ b/homeassistant/components/lifx/strings.json @@ -10,7 +10,7 @@ }, "pick_device": { "data": { - "device": "Device" + "device": "[%key:common::config_flow::data::device%]" } }, "discovery_confirm": { @@ -88,7 +88,7 @@ "description": "Runs a flash effect by changing to a color and back.", "fields": { "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Decides how colors are changed." }, "brightness": { @@ -142,7 +142,7 @@ "description": "Percentage indicating the maximum saturation of the colors in the loop." }, "period": { - "name": "Period", + "name": "[%key:component::lifx::services::effect_pulse::fields::period::name%]", "description": "Duration between color changes." }, "change": { @@ -155,7 +155,7 @@ }, "power_on": { "name": "Power on", - "description": "Powered off lights are temporarily turned on during the effect." + "description": "[%key:component::lifx::services::effect_pulse::fields::power_on::description%]" } } }, @@ -172,7 +172,7 @@ "description": "Direction the effect will move across the device." }, "theme": { - "name": "Theme", + "name": "[%key:component::lifx::entity::select::theme::name%]", "description": "(Optional) set one of the predefined themes onto the device before starting the effect." }, "power_on": { @@ -191,7 +191,7 @@ }, "power_on": { "name": "Power on", - "description": "Powered off lights will be turned on before starting the effect." + "description": "[%key:component::lifx::services::effect_move::fields::power_on::description%]" } } }, @@ -208,12 +208,12 @@ "description": "List of at least 2 and at most 16 colors as hue (0-360), saturation (0-100), brightness (0-100) and kelvin (1500-900) values to use for this effect. Overrides the theme attribute." }, "theme": { - "name": "Theme", + "name": "[%key:component::lifx::entity::select::theme::name%]", "description": "Predefined color theme to use for the effect. Overridden by the palette attribute." }, "power_on": { "name": "Power on", - "description": "Powered off lights will be turned on before starting the effect." + "description": "[%key:component::lifx::services::effect_move::fields::power_on::description%]" } } }, diff --git a/homeassistant/components/litterrobot/strings.json b/homeassistant/components/litterrobot/strings.json index fe9cc3b528a..8436d24902c 100644 --- a/homeassistant/components/litterrobot/strings.json +++ b/homeassistant/components/litterrobot/strings.json @@ -124,7 +124,7 @@ }, "time": { "sleep_mode_start_time": { - "name": "Sleep mode start time" + "name": "[%key:component::litterrobot::entity::sensor::sleep_mode_start_time::name%]" } }, "vacuum": { diff --git a/homeassistant/components/local_ip/strings.json b/homeassistant/components/local_ip/strings.json index 7e214df2592..a4d9138d88e 100644 --- a/homeassistant/components/local_ip/strings.json +++ b/homeassistant/components/local_ip/strings.json @@ -3,7 +3,7 @@ "config": { "step": { "user": { - "title": "Local IP Address", + "title": "[%key:component::local_ip::title%]", "description": "[%key:common::config_flow::description::confirm_setup%]" } }, diff --git a/homeassistant/components/logbook/strings.json b/homeassistant/components/logbook/strings.json index 10ebcc68f64..aad9c122d23 100644 --- a/homeassistant/components/logbook/strings.json +++ b/homeassistant/components/logbook/strings.json @@ -5,7 +5,7 @@ "description": "Creates a custom entry in the logbook.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Custom name for an entity, can be referenced using an `entity_id`." }, "message": { diff --git a/homeassistant/components/logi_circle/strings.json b/homeassistant/components/logi_circle/strings.json index 9a06fb45ad2..4f641238a49 100644 --- a/homeassistant/components/logi_circle/strings.json +++ b/homeassistant/components/logi_circle/strings.json @@ -35,7 +35,7 @@ "description": "Name(s) of entities to apply the operation mode to." }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Operation mode. Allowed values: LED, RECORDING_MODE." }, "value": { @@ -68,7 +68,7 @@ }, "filename": { "name": "File name", - "description": "Template of a Filename. Variable is entity_id." + "description": "[%key:component::logi_circle::services::livestream_snapshot::fields::filename::description%]" }, "duration": { "name": "Duration", diff --git a/homeassistant/components/lovelace/strings.json b/homeassistant/components/lovelace/strings.json index 64718308325..d0e456f142b 100644 --- a/homeassistant/components/lovelace/strings.json +++ b/homeassistant/components/lovelace/strings.json @@ -2,7 +2,7 @@ "system_health": { "info": { "dashboards": "Dashboards", - "mode": "Mode", + "mode": "[%key:common::config_flow::data::mode%]", "resources": "Resources", "views": "Views" } diff --git a/homeassistant/components/lutron_caseta/strings.json b/homeassistant/components/lutron_caseta/strings.json index bc546321da3..b5ec175d1c9 100644 --- a/homeassistant/components/lutron_caseta/strings.json +++ b/homeassistant/components/lutron_caseta/strings.json @@ -40,9 +40,9 @@ "group_1_button_2": "First Group second button", "group_2_button_1": "Second Group first button", "group_2_button_2": "Second Group second button", - "on": "On", + "on": "[%key:common::state::on%]", "stop": "Stop (favorite)", - "off": "Off", + "off": "[%key:common::state::off%]", "raise": "Raise", "lower": "Lower", "open_all": "Open all", diff --git a/homeassistant/components/matter/strings.json b/homeassistant/components/matter/strings.json index 3d5ae9b6a61..61f1ca9180a 100644 --- a/homeassistant/components/matter/strings.json +++ b/homeassistant/components/matter/strings.json @@ -57,7 +57,7 @@ "description": "Allows adding one of your devices to another Matter network by opening the commissioning window for this Matter device for 60 seconds.", "fields": { "device_id": { - "name": "Device", + "name": "[%key:common::config_flow::data::device%]", "description": "The Matter device to add to the other Matter network." } } diff --git a/homeassistant/components/mazda/strings.json b/homeassistant/components/mazda/strings.json index 9c881e6324f..a714d1af00f 100644 --- a/homeassistant/components/mazda/strings.json +++ b/homeassistant/components/mazda/strings.json @@ -31,11 +31,11 @@ "description": "The vehicle to send the GPS location to." }, "latitude": { - "name": "Latitude", + "name": "[%key:common::config_flow::data::latitude%]", "description": "The latitude of the location to send." }, "longitude": { - "name": "Longitude", + "name": "[%key:common::config_flow::data::longitude%]", "description": "The longitude of the location to send." }, "poi_name": { diff --git a/homeassistant/components/meteo_france/strings.json b/homeassistant/components/meteo_france/strings.json index 3ff8d4308a3..944f2b32fab 100644 --- a/homeassistant/components/meteo_france/strings.json +++ b/homeassistant/components/meteo_france/strings.json @@ -10,7 +10,7 @@ "cities": { "description": "Choose your city from the list", "data": { - "city": "City" + "city": "[%key:component::meteo_france::config::step::user::data::city%]" } } }, diff --git a/homeassistant/components/microsoft_face/strings.json b/homeassistant/components/microsoft_face/strings.json index b1008336992..4357276a650 100644 --- a/homeassistant/components/microsoft_face/strings.json +++ b/homeassistant/components/microsoft_face/strings.json @@ -5,7 +5,7 @@ "description": "Creates a new person group.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of the group." } } @@ -19,7 +19,7 @@ "description": "Name of the group." }, "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of the person." } } @@ -29,7 +29,7 @@ "description": "Deletes a new person group.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of the group." } } @@ -43,8 +43,8 @@ "description": "Name of the group." }, "name": { - "name": "Name", - "description": "Name of the person." + "name": "[%key:common::config_flow::data::name%]", + "description": "[%key:component::microsoft_face::services::create_person::fields::name::description%]" } } }, @@ -62,7 +62,7 @@ }, "person": { "name": "Person", - "description": "Name of the person." + "description": "[%key:component::microsoft_face::services::create_person::fields::name::description%]" } } }, diff --git a/homeassistant/components/min_max/strings.json b/homeassistant/components/min_max/strings.json index ce18a4d153f..e73fac97bb7 100644 --- a/homeassistant/components/min_max/strings.json +++ b/homeassistant/components/min_max/strings.json @@ -3,11 +3,11 @@ "config": { "step": { "user": { - "title": "Combine the state of several sensors", + "title": "[%key:component::min_max::title%]", "description": "Create a sensor that calculates a min, max, mean, median or sum from a list of input sensors.", "data": { "entity_ids": "Input entities", - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "round_digits": "Precision", "type": "Statistic characteristic" }, diff --git a/homeassistant/components/minio/strings.json b/homeassistant/components/minio/strings.json index 21902ad1825..75b8375adb1 100644 --- a/homeassistant/components/minio/strings.json +++ b/homeassistant/components/minio/strings.json @@ -23,16 +23,16 @@ "description": "Uploads file to Minio.", "fields": { "bucket": { - "name": "Bucket", - "description": "Bucket to use." + "name": "[%key:component::minio::services::get::fields::bucket::name%]", + "description": "[%key:component::minio::services::get::fields::bucket::description%]" }, "key": { "name": "Key", - "description": "Object key of the file." + "description": "[%key:component::minio::services::get::fields::key::description%]" }, "file_path": { "name": "File path", - "description": "File path on local filesystem." + "description": "[%key:component::minio::services::get::fields::file_path::description%]" } } }, @@ -41,12 +41,12 @@ "description": "Deletes file from Minio.", "fields": { "bucket": { - "name": "Bucket", - "description": "Bucket to use." + "name": "[%key:component::minio::services::get::fields::bucket::name%]", + "description": "[%key:component::minio::services::get::fields::bucket::description%]" }, "key": { "name": "Key", - "description": "Object key of the file." + "description": "[%key:component::minio::services::get::fields::key::description%]" } } } diff --git a/homeassistant/components/mjpeg/strings.json b/homeassistant/components/mjpeg/strings.json index 73e6a150a09..0e1e71fd82c 100644 --- a/homeassistant/components/mjpeg/strings.json +++ b/homeassistant/components/mjpeg/strings.json @@ -24,10 +24,10 @@ "step": { "init": { "data": { - "mjpeg_url": "MJPEG URL", + "mjpeg_url": "[%key:component::mjpeg::config::step::user::data::mjpeg_url%]", "name": "[%key:common::config_flow::data::name%]", "password": "[%key:common::config_flow::data::password%]", - "still_image_url": "Still Image URL", + "still_image_url": "[%key:component::mjpeg::config::step::user::data::still_image_url%]", "username": "[%key:common::config_flow::data::username%]", "verify_ssl": "[%key:common::config_flow::data::verify_ssl%]" } diff --git a/homeassistant/components/modbus/strings.json b/homeassistant/components/modbus/strings.json index c9cf755ad13..61694074d79 100644 --- a/homeassistant/components/modbus/strings.json +++ b/homeassistant/components/modbus/strings.json @@ -31,20 +31,20 @@ "description": "Writes to a modbus holding register.", "fields": { "address": { - "name": "Address", + "name": "[%key:component::modbus::services::write_coil::fields::address::name%]", "description": "Address of the holding register to write to." }, "slave": { - "name": "Slave", - "description": "Address of the modbus unit/slave." + "name": "[%key:component::modbus::services::write_coil::fields::slave::name%]", + "description": "[%key:component::modbus::services::write_coil::fields::slave::description%]" }, "value": { "name": "Value", "description": "Value (single value or array) to write." }, "hub": { - "name": "Hub", - "description": "Modbus hub name." + "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]", + "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]" } } }, @@ -53,8 +53,8 @@ "description": "Stops modbus hub.", "fields": { "hub": { - "name": "Hub", - "description": "Modbus hub name." + "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]", + "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]" } } }, @@ -63,8 +63,8 @@ "description": "Restarts modbus hub (if running stop then start).", "fields": { "hub": { - "name": "Hub", - "description": "Modbus hub name." + "name": "[%key:component::modbus::services::write_coil::fields::hub::name%]", + "description": "[%key:component::modbus::services::write_coil::fields::hub::description%]" } } } diff --git a/homeassistant/components/modem_callerid/strings.json b/homeassistant/components/modem_callerid/strings.json index bb6ac1879da..2e18ba3654f 100644 --- a/homeassistant/components/modem_callerid/strings.json +++ b/homeassistant/components/modem_callerid/strings.json @@ -9,7 +9,7 @@ } }, "usb_confirm": { - "description": "This is an integration for landline calls using a CX93001 voice modem. This can retrieve caller ID information with an option to reject an incoming call." + "description": "[%key:component::modem_callerid::config::step::user::description%]" } }, "error": { diff --git a/homeassistant/components/modern_forms/strings.json b/homeassistant/components/modern_forms/strings.json index 397d7267bc0..defe412e96d 100644 --- a/homeassistant/components/modern_forms/strings.json +++ b/homeassistant/components/modern_forms/strings.json @@ -41,8 +41,8 @@ "description": "Sets a sleep timer on a Modern Forms fan.", "fields": { "sleep_time": { - "name": "Sleep time", - "description": "Number of minutes to set the timer." + "name": "[%key:component::modern_forms::services::set_light_sleep_timer::fields::sleep_time::name%]", + "description": "[%key:component::modern_forms::services::set_light_sleep_timer::fields::sleep_time::description%]" } } }, diff --git a/homeassistant/components/monoprice/strings.json b/homeassistant/components/monoprice/strings.json index 4ecf4cfee45..003531518dc 100644 --- a/homeassistant/components/monoprice/strings.json +++ b/homeassistant/components/monoprice/strings.json @@ -27,12 +27,12 @@ "init": { "title": "Configure sources", "data": { - "source_1": "Name of source #1", - "source_2": "Name of source #2", - "source_3": "Name of source #3", - "source_4": "Name of source #4", - "source_5": "Name of source #5", - "source_6": "Name of source #6" + "source_1": "[%key:component::monoprice::config::step::user::data::source_1%]", + "source_2": "[%key:component::monoprice::config::step::user::data::source_2%]", + "source_3": "[%key:component::monoprice::config::step::user::data::source_3%]", + "source_4": "[%key:component::monoprice::config::step::user::data::source_4%]", + "source_5": "[%key:component::monoprice::config::step::user::data::source_5%]", + "source_6": "[%key:component::monoprice::config::step::user::data::source_6%]" } } } diff --git a/homeassistant/components/mqtt/strings.json b/homeassistant/components/mqtt/strings.json index ae47b33774d..f314ddd47d3 100644 --- a/homeassistant/components/mqtt/strings.json +++ b/homeassistant/components/mqtt/strings.json @@ -178,7 +178,7 @@ "description": "Writes all messages on a specific topic into the `mqtt_dump.txt` file in your configuration folder.", "fields": { "topic": { - "name": "Topic", + "name": "[%key:component::mqtt::services::publish::fields::topic::name%]", "description": "Topic to listen to." }, "duration": { diff --git a/homeassistant/components/mysensors/strings.json b/homeassistant/components/mysensors/strings.json index 7e0ff2c99d6..30fe5f46d6b 100644 --- a/homeassistant/components/mysensors/strings.json +++ b/homeassistant/components/mysensors/strings.json @@ -29,7 +29,7 @@ "data": { "device": "Serial port", "baud_rate": "baud rate", - "version": "MySensors version", + "version": "[%key:component::mysensors::config::step::gw_tcp::data::version%]", "persistence_file": "Persistence file (leave empty to auto-generate)" } }, @@ -39,8 +39,8 @@ "retain": "MQTT retain", "topic_in_prefix": "Prefix for input topics (topic_in_prefix)", "topic_out_prefix": "Prefix for output topics (topic_out_prefix)", - "version": "MySensors version", - "persistence_file": "Persistence file (leave empty to auto-generate)" + "version": "[%key:component::mysensors::config::step::gw_tcp::data::version%]", + "persistence_file": "[%key:component::mysensors::config::step::gw_serial::data::persistence_file%]" } } }, @@ -67,20 +67,20 @@ "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", - "invalid_subscribe_topic": "Invalid subscribe topic", - "invalid_publish_topic": "Invalid publish topic", - "duplicate_topic": "Topic already in use", - "same_topic": "Subscribe and publish topics are the same", - "invalid_port": "Invalid port number", - "invalid_persistence_file": "Invalid persistence file", - "duplicate_persistence_file": "Persistence file already in use", + "invalid_subscribe_topic": "[%key:component::mysensors::config::error::invalid_subscribe_topic%]", + "invalid_publish_topic": "[%key:component::mysensors::config::error::invalid_publish_topic%]", + "duplicate_topic": "[%key:component::mysensors::config::error::duplicate_topic%]", + "same_topic": "[%key:component::mysensors::config::error::same_topic%]", + "invalid_port": "[%key:component::mysensors::config::error::invalid_port%]", + "invalid_persistence_file": "[%key:component::mysensors::config::error::invalid_persistence_file%]", + "duplicate_persistence_file": "[%key:component::mysensors::config::error::duplicate_persistence_file%]", "invalid_ip": "Invalid IP address", - "invalid_serial": "Invalid serial port", - "invalid_device": "Invalid device", - "invalid_version": "Invalid MySensors version", + "invalid_serial": "[%key:component::mysensors::config::error::invalid_serial%]", + "invalid_device": "[%key:component::mysensors::config::error::invalid_device%]", + "invalid_version": "[%key:component::mysensors::config::error::invalid_version%]", "mqtt_required": "The MQTT integration is not set up", - "not_a_number": "Please enter a number", - "port_out_of_range": "Port number must be at least 1 and at most 65535", + "not_a_number": "[%key:component::mysensors::config::error::not_a_number%]", + "port_out_of_range": "[%key:component::mysensors::config::error::port_out_of_range%]", "unknown": "[%key:common::config_flow::error::unknown%]" } } diff --git a/homeassistant/components/nest/strings.json b/homeassistant/components/nest/strings.json index b6941f51392..2c2def6b7a3 100644 --- a/homeassistant/components/nest/strings.json +++ b/homeassistant/components/nest/strings.json @@ -29,7 +29,7 @@ "title": "Configure Google Cloud", "description": "Visit the [Cloud Console]({url}) to find your Google Cloud Project ID.", "data": { - "cloud_project_id": "Google Cloud Project ID" + "cloud_project_id": "[%key:component::nest::config::step::cloud_project::data::cloud_project_id%]" } }, "reauth_confirm": { @@ -101,8 +101,8 @@ "description": "Unique ID for the trip. Default is auto-generated using a timestamp." }, "structure": { - "name": "Structure", - "description": "Name(s) of structure(s) to change. Defaults to all structures if not specified." + "name": "[%key:component::nest::services::set_away_mode::fields::structure::name%]", + "description": "[%key:component::nest::services::set_away_mode::fields::structure::description%]" } } }, @@ -111,12 +111,12 @@ "description": "Cancels an existing estimated time of arrival window for a Nest structure.", "fields": { "trip_id": { - "name": "Trip ID", + "name": "[%key:component::nest::services::set_eta::fields::trip_id::name%]", "description": "Unique ID for the trip." }, "structure": { - "name": "Structure", - "description": "Name(s) of structure(s) to change. Defaults to all structures if not specified." + "name": "[%key:component::nest::services::set_away_mode::fields::structure::name%]", + "description": "[%key:component::nest::services::set_away_mode::fields::structure::description%]" } } } diff --git a/homeassistant/components/netatmo/strings.json b/homeassistant/components/netatmo/strings.json index 05d0e716ef4..e9125f33016 100644 --- a/homeassistant/components/netatmo/strings.json +++ b/homeassistant/components/netatmo/strings.json @@ -41,13 +41,13 @@ "weather_areas": "Weather areas" }, "description": "Configure public weather sensors.", - "title": "Netatmo public weather sensor" + "title": "[%key:component::netatmo::options::step::public_weather::title%]" } } }, "device_automation": { "trigger_subtype": { - "away": "Away", + "away": "[%key:common::state::not_home%]", "schedule": "Schedule", "hg": "Frost guard" }, @@ -83,7 +83,7 @@ "description": "Sets the heating schedule for Netatmo climate device. The schedule name must match a schedule configured at Netatmo.", "fields": { "schedule_name": { - "name": "Schedule", + "name": "[%key:component::netatmo::device_automation::trigger_subtype::schedule%]", "description": "Schedule name." } } diff --git a/homeassistant/components/netgear_lte/strings.json b/homeassistant/components/netgear_lte/strings.json index 9c4c67bddf7..1fd10282991 100644 --- a/homeassistant/components/netgear_lte/strings.json +++ b/homeassistant/components/netgear_lte/strings.json @@ -5,7 +5,7 @@ "description": "Deletes messages from the modem inbox.", "fields": { "host": { - "name": "Host", + "name": "[%key:common::config_flow::data::host%]", "description": "The modem that should have a message deleted." }, "sms_id": { @@ -19,7 +19,7 @@ "description": "Sets options on the modem.", "fields": { "host": { - "name": "Host", + "name": "[%key:common::config_flow::data::host%]", "description": "The modem to set options on." }, "failover": { @@ -37,7 +37,7 @@ "description": "Asks the modem to establish the LTE connection.", "fields": { "host": { - "name": "Host", + "name": "[%key:common::config_flow::data::host%]", "description": "The modem that should connect." } } @@ -47,7 +47,7 @@ "description": "Asks the modem to close the LTE connection.", "fields": { "host": { - "name": "Host", + "name": "[%key:common::config_flow::data::host%]", "description": "The modem that should disconnect." } } diff --git a/homeassistant/components/nibe_heatpump/strings.json b/homeassistant/components/nibe_heatpump/strings.json index a863b9596b1..6fa421e0855 100644 --- a/homeassistant/components/nibe_heatpump/strings.json +++ b/homeassistant/components/nibe_heatpump/strings.json @@ -22,7 +22,7 @@ "nibegw": { "description": "Before attempting to configure the integration, verify that:\n - The NibeGW unit is connected to a heat pump.\n - The MODBUS40 accessory has been enabled in the heat pump configuration.\n - The pump has not gone into an alarm state about missing MODBUS40 accessory.", "data": { - "model": "Model of Heat Pump", + "model": "[%key:component::nibe_heatpump::config::step::modbus::data::model%]", "ip_address": "Remote address", "remote_read_port": "Remote read port", "remote_write_port": "Remote write port", diff --git a/homeassistant/components/nina/strings.json b/homeassistant/components/nina/strings.json index 23a1fb8dfa6..e145f5ea8ca 100644 --- a/homeassistant/components/nina/strings.json +++ b/homeassistant/components/nina/strings.json @@ -29,19 +29,19 @@ "init": { "title": "Options", "data": { - "_a_to_d": "City/county (A-D)", - "_e_to_h": "City/county (E-H)", - "_i_to_l": "City/county (I-L)", - "_m_to_q": "City/county (M-Q)", - "_r_to_u": "City/county (R-U)", - "_v_to_z": "City/county (V-Z)", - "slots": "Maximum warnings per city/county", - "headline_filter": "Blacklist regex to filter warning headlines" + "_a_to_d": "[%key:component::nina::config::step::user::data::_a_to_d%]", + "_e_to_h": "[%key:component::nina::config::step::user::data::_e_to_h%]", + "_i_to_l": "[%key:component::nina::config::step::user::data::_i_to_l%]", + "_m_to_q": "[%key:component::nina::config::step::user::data::_m_to_q%]", + "_r_to_u": "[%key:component::nina::config::step::user::data::_r_to_u%]", + "_v_to_z": "[%key:component::nina::config::step::user::data::_v_to_z%]", + "slots": "[%key:component::nina::config::step::user::data::slots%]", + "headline_filter": "[%key:component::nina::config::step::user::data::headline_filter%]" } } }, "error": { - "no_selection": "Please select at least one city/county", + "no_selection": "[%key:component::nina::config::error::no_selection%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" } diff --git a/homeassistant/components/nissan_leaf/strings.json b/homeassistant/components/nissan_leaf/strings.json index 4dae6cb898b..d733e39a0fc 100644 --- a/homeassistant/components/nissan_leaf/strings.json +++ b/homeassistant/components/nissan_leaf/strings.json @@ -15,8 +15,8 @@ "description": "Fetches the last state of the vehicle of all your accounts, requesting an update from of the state from the car if possible.\n.", "fields": { "vin": { - "name": "VIN", - "description": "The vehicle identification number (VIN) of the vehicle, 17 characters\n." + "name": "[%key:component::nissan_leaf::services::start_charge::fields::vin::name%]", + "description": "[%key:component::nissan_leaf::services::start_charge::fields::vin::description%]" } } } diff --git a/homeassistant/components/nx584/strings.json b/homeassistant/components/nx584/strings.json index 11f94e7a72c..b3d03815278 100644 --- a/homeassistant/components/nx584/strings.json +++ b/homeassistant/components/nx584/strings.json @@ -15,7 +15,7 @@ "description": "Un-Bypasses a zone.", "fields": { "zone": { - "name": "Zone", + "name": "[%key:component::nx584::services::bypass_zone::fields::zone::name%]", "description": "The number of the zone to be un-bypassed." } } diff --git a/homeassistant/components/ombi/strings.json b/homeassistant/components/ombi/strings.json index 70a3767c889..2cf18248ab8 100644 --- a/homeassistant/components/ombi/strings.json +++ b/homeassistant/components/ombi/strings.json @@ -5,7 +5,7 @@ "description": "Searches for a movie and requests the first result.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Search parameter." } } @@ -15,8 +15,8 @@ "description": "Searches for a TV show and requests the first result.", "fields": { "name": { - "name": "Name", - "description": "Search parameter." + "name": "[%key:common::config_flow::data::name%]", + "description": "[%key:component::ombi::services::submit_movie_request::fields::name::description%]" }, "season": { "name": "Season", @@ -29,8 +29,8 @@ "description": "Searches for a music album and requests the first result.", "fields": { "name": { - "name": "Name", - "description": "Search parameter." + "name": "[%key:common::config_flow::data::name%]", + "description": "[%key:component::ombi::services::submit_movie_request::fields::name::description%]" } } } diff --git a/homeassistant/components/onewire/strings.json b/homeassistant/components/onewire/strings.json index 2a7bd307ff8..f58731a2377 100644 --- a/homeassistant/components/onewire/strings.json +++ b/homeassistant/components/onewire/strings.json @@ -251,7 +251,7 @@ "device_selection": { "data": { "clear_device_options": "Clear all device configurations", - "device_selection": "Select devices to configure" + "device_selection": "[%key:component::onewire::options::error::device_not_selected%]" }, "description": "Select what configuration steps to process", "title": "OneWire Device Options" diff --git a/homeassistant/components/opentherm_gw/strings.json b/homeassistant/components/opentherm_gw/strings.json index d23fe1c0924..a5b8395b56b 100644 --- a/homeassistant/components/opentherm_gw/strings.json +++ b/homeassistant/components/opentherm_gw/strings.json @@ -44,8 +44,8 @@ "description": "Sets the central heating override option on the gateway. When overriding the control setpoint (via a set_control_setpoint service call with a value other than 0), the gateway automatically enables the central heating override to start heating. This service can then be used to control the central heating override status. To return control of the central heating to the thermostat, call the set_control_setpoint service with temperature value 0. You will only need this if you are writing your own software thermostat.\n.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "ch_override": { "name": "Central heating override", @@ -58,8 +58,8 @@ "description": "Sets the clock and day of the week on the connected thermostat.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "date": { "name": "Date", @@ -76,8 +76,8 @@ "description": "Sets the central heating control setpoint override on the gateway. You will only need this if you are writing your own software thermostat.\n.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "temperature": { "name": "Temperature", @@ -90,8 +90,8 @@ "description": "Sets the domestic hot water enable option on the gateway.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "dhw_override": { "name": "Domestic hot water override", @@ -104,8 +104,8 @@ "description": "Sets the domestic hot water setpoint on the gateway.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "temperature": { "name": "Temperature", @@ -118,15 +118,15 @@ "description": "Changes the function of the GPIO pins of the gateway.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "id": { "name": "ID", "description": "The ID of the GPIO pin." }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Mode to set on the GPIO pin. Values 0 through 6 are accepted for both GPIOs, 7 is only accepted for GPIO \"B\". See https://www.home-assistant.io/integrations/opentherm_gw/#gpio-modes for an explanation of the values.\n." } } @@ -136,15 +136,15 @@ "description": "Changes the function of the LEDs of the gateway.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "id": { "name": "ID", "description": "The ID of the LED." }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "The function to assign to the LED. See https://www.home-assistant.io/integrations/opentherm_gw/#led-modes for an explanation of the values.\n." } } @@ -154,8 +154,8 @@ "description": "Overrides the maximum relative modulation level. You will only need this if you are writing your own software thermostat.\n.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "level": { "name": "Level", @@ -168,8 +168,8 @@ "description": "Provides an outside temperature to the thermostat. If your thermostat is unable to display an outside temperature and does not support OTC (Outside Temperature Correction), this has no effect.\n.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "temperature": { "name": "Temperature", @@ -182,8 +182,8 @@ "description": "Configures the setback temperature to be used with the GPIO away mode function.", "fields": { "gateway_id": { - "name": "Gateway ID", - "description": "The gateway_id of the OpenTherm Gateway." + "name": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::name%]", + "description": "[%key:component::opentherm_gw::services::reset_gateway::fields::gateway_id::description%]" }, "temperature": { "name": "Temperature", diff --git a/homeassistant/components/openweathermap/strings.json b/homeassistant/components/openweathermap/strings.json index 12d5c3e21f6..a29a8952434 100644 --- a/homeassistant/components/openweathermap/strings.json +++ b/homeassistant/components/openweathermap/strings.json @@ -15,7 +15,7 @@ "latitude": "[%key:common::config_flow::data::latitude%]", "longitude": "[%key:common::config_flow::data::longitude%]", "mode": "[%key:common::config_flow::data::mode%]", - "name": "Name" + "name": "[%key:common::config_flow::data::name%]" }, "description": "To generate API key go to https://openweathermap.org/appid" } diff --git a/homeassistant/components/overkiz/strings.json b/homeassistant/components/overkiz/strings.json index a82284c24af..c4daf32499a 100644 --- a/homeassistant/components/overkiz/strings.json +++ b/homeassistant/components/overkiz/strings.json @@ -47,7 +47,7 @@ }, "fan_mode": { "state": { - "away": "Away", + "away": "[%key:common::state::not_home%]", "bypass_boost": "Bypass boost", "home_boost": "Home boost", "kitchen_boost": "Kitchen boost" diff --git a/homeassistant/components/persistent_notification/strings.json b/homeassistant/components/persistent_notification/strings.json index 6b8ddb46c49..5f256233149 100644 --- a/homeassistant/components/persistent_notification/strings.json +++ b/homeassistant/components/persistent_notification/strings.json @@ -23,7 +23,7 @@ "description": "Removes a notification from the **Notifications** panel.", "fields": { "notification_id": { - "name": "Notification ID", + "name": "[%key:component::persistent_notification::services::create::fields::notification_id::name%]", "description": "ID of the notification to be removed." } } diff --git a/homeassistant/components/profiler/strings.json b/homeassistant/components/profiler/strings.json index 7b9f6789c79..b9aae585d9f 100644 --- a/homeassistant/components/profiler/strings.json +++ b/homeassistant/components/profiler/strings.json @@ -60,7 +60,7 @@ "fields": { "scan_interval": { "name": "Scan interval", - "description": "The number of seconds between logging objects." + "description": "[%key:component::profiler::services::start_log_objects::fields::scan_interval::description%]" }, "max_objects": { "name": "Maximum objects", diff --git a/homeassistant/components/prusalink/strings.json b/homeassistant/components/prusalink/strings.json index 53f5f0153fe..aa992b4874f 100644 --- a/homeassistant/components/prusalink/strings.json +++ b/homeassistant/components/prusalink/strings.json @@ -20,8 +20,8 @@ "printer_state": { "state": { "cancelling": "Cancelling", - "idle": "Idle", - "paused": "Paused", + "idle": "[%key:common::state::idle%]", + "paused": "[%key:common::state::paused%]", "pausing": "Pausing", "printing": "Printing" } diff --git a/homeassistant/components/purpleair/strings.json b/homeassistant/components/purpleair/strings.json index 5e7c61c1820..ff505010713 100644 --- a/homeassistant/components/purpleair/strings.json +++ b/homeassistant/components/purpleair/strings.json @@ -93,7 +93,7 @@ } }, "settings": { - "title": "Settings", + "title": "[%key:component::purpleair::options::step::init::menu_options::settings%]", "data": { "show_on_map": "Show configured sensor locations on the map" } diff --git a/homeassistant/components/qnap/strings.json b/homeassistant/components/qnap/strings.json index 26ca5dedd34..64b3f22293a 100644 --- a/homeassistant/components/qnap/strings.json +++ b/homeassistant/components/qnap/strings.json @@ -6,9 +6,9 @@ "description": "This qnap sensor allows getting various statistics from your QNAP NAS.", "data": { "host": "Hostname", - "username": "Username", - "password": "Password", - "port": "Port", + "username": "[%key:common::config_flow::data::username%]", + "password": "[%key:common::config_flow::data::password%]", + "port": "[%key:common::config_flow::data::port%]", "ssl": "Enable SSL", "verify_ssl": "Verify SSL" } diff --git a/homeassistant/components/qvr_pro/strings.json b/homeassistant/components/qvr_pro/strings.json index 6f37bcce85e..de61d38ffea 100644 --- a/homeassistant/components/qvr_pro/strings.json +++ b/homeassistant/components/qvr_pro/strings.json @@ -15,7 +15,7 @@ "description": "Stops QVR Pro recording on specified channel.", "fields": { "guid": { - "name": "GUID", + "name": "[%key:component::qvr_pro::services::start_record::fields::guid::name%]", "description": "GUID of the channel to stop recording." } } diff --git a/homeassistant/components/rachio/strings.json b/homeassistant/components/rachio/strings.json index 3d776193432..2132cab8682 100644 --- a/homeassistant/components/rachio/strings.json +++ b/homeassistant/components/rachio/strings.json @@ -67,7 +67,7 @@ "description": "Resume any paused zone runs or schedules.", "fields": { "devices": { - "name": "Devices", + "name": "[%key:component::rachio::services::pause_watering::fields::devices::name%]", "description": "Name of controllers to resume. Defaults to all controllers on the account if not provided." } } @@ -77,7 +77,7 @@ "description": "Stop any currently running zones or schedules.", "fields": { "devices": { - "name": "Devices", + "name": "[%key:component::rachio::services::pause_watering::fields::devices::name%]", "description": "Name of controllers to stop. Defaults to all controllers on the account if not provided." } } diff --git a/homeassistant/components/rainbird/strings.json b/homeassistant/components/rainbird/strings.json index 9f4d0c2e34d..6046189ddc4 100644 --- a/homeassistant/components/rainbird/strings.json +++ b/homeassistant/components/rainbird/strings.json @@ -21,7 +21,7 @@ "options": { "step": { "init": { - "title": "Configure Rain Bird", + "title": "[%key:component::rainbird::config::step::user::title%]", "data": { "duration": "Default irrigation time in minutes" } diff --git a/homeassistant/components/rainmachine/strings.json b/homeassistant/components/rainmachine/strings.json index 783c876fe62..fc48ebce4eb 100644 --- a/homeassistant/components/rainmachine/strings.json +++ b/homeassistant/components/rainmachine/strings.json @@ -118,7 +118,7 @@ "description": "Restricts all watering activities from starting for a time period.", "fields": { "device_id": { - "name": "Controller", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", "description": "The controller whose watering activities should be restricted." }, "duration": { @@ -146,7 +146,7 @@ "description": "Stops all watering activities.", "fields": { "device_id": { - "name": "Controller", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", "description": "The controller whose watering activities should be stopped." } } @@ -164,7 +164,7 @@ "description": "Unpauses all paused watering activities.", "fields": { "device_id": { - "name": "Controller", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", "description": "The controller whose watering activities should be unpaused." } } @@ -174,7 +174,7 @@ "description": "Push flow meter data to the RainMachine device.", "fields": { "device_id": { - "name": "Controller", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", "description": "The controller to send flow meter data to." }, "value": { @@ -192,7 +192,7 @@ "description": "Push weather data from Home Assistant to the RainMachine device.\nLocal Weather Push service should be enabled from Settings > Weather > Developer tab for RainMachine to consider the values being sent. Units must be sent in metric; no conversions are performed by the integraion.\nSee details of RainMachine API Here: https://rainmachine.docs.apiary.io/#reference/weather-services/parserdata/post.", "fields": { "device_id": { - "name": "Controller", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", "description": "The controller for the weather data to be pushed." }, "timestamp": { @@ -201,15 +201,15 @@ }, "mintemp": { "name": "Min temp", - "description": "Minimum temperature (\u00b0C)." + "description": "Minimum temperature (°C)." }, "maxtemp": { "name": "Max temp", - "description": "Maximum temperature (\u00b0C)." + "description": "Maximum temperature (°C)." }, "temperature": { "name": "Temperature", - "description": "Current temperature (\u00b0C)." + "description": "Current temperature (°C)." }, "wind": { "name": "Wind speed", @@ -217,7 +217,7 @@ }, "solarrad": { "name": "Solar radiation", - "description": "Solar radiation (MJ/m\u00b2/h)." + "description": "Solar radiation (MJ/m²/h)." }, "et": { "name": "Evapotranspiration", @@ -249,7 +249,7 @@ }, "dewpoint": { "name": "Dew point", - "description": "Dew point (\u00b0C)." + "description": "Dew point (°C)." } } }, @@ -258,7 +258,7 @@ "description": "Unrestrict all watering activities.", "fields": { "device_id": { - "name": "Controller", + "name": "[%key:component::rainmachine::services::pause_watering::fields::device_id::name%]", "description": "The controller whose watering activities should be unrestricted." } } diff --git a/homeassistant/components/recorder/strings.json b/homeassistant/components/recorder/strings.json index 17539387a29..24f0d806edd 100644 --- a/homeassistant/components/recorder/strings.json +++ b/homeassistant/components/recorder/strings.json @@ -46,7 +46,7 @@ "description": "List of glob patterns used to select the entities for which the data is to be removed from the recorder database." }, "keep_days": { - "name": "Days to keep", + "name": "[%key:component::recorder::services::purge::fields::keep_days::name%]", "description": "Number of days to keep the data for rows matching the filter. Starting today, counting backward. A value of `7` means that everything older than a week will be purged. The default of 0 days will remove all matching rows immediately." } } diff --git a/homeassistant/components/remember_the_milk/strings.json b/homeassistant/components/remember_the_milk/strings.json index 15ca4c36da8..5590691e245 100644 --- a/homeassistant/components/remember_the_milk/strings.json +++ b/homeassistant/components/remember_the_milk/strings.json @@ -5,7 +5,7 @@ "description": "Creates (or update) a new task in your Remember The Milk account. If you want to update a task later on, you have to set an \"id\" when creating the task. Note: Updating a tasks does not support the smart syntax.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of the new task, you can use the smart syntax here." }, "id": { diff --git a/homeassistant/components/renault/strings.json b/homeassistant/components/renault/strings.json index e0b8cb0cdf0..0b0c3d87822 100644 --- a/homeassistant/components/renault/strings.json +++ b/homeassistant/components/renault/strings.json @@ -66,7 +66,7 @@ }, "device_tracker": { "location": { - "name": "Location" + "name": "[%key:common::config_flow::data::location%]" } }, "select": { @@ -74,7 +74,7 @@ "name": "Charge mode", "state": { "always": "Instant", - "always_charging": "Instant", + "always_charging": "[%key:component::renault::entity::select::charge_mode::state::always%]", "schedule_mode": "Planner" } } @@ -163,7 +163,7 @@ }, "temperature": { "name": "Temperature", - "description": "Target A/C temperature in \u00b0C." + "description": "Target A/C temperature in °C." }, "when": { "name": "When", @@ -177,7 +177,7 @@ "fields": { "vehicle": { "name": "Vehicle", - "description": "The vehicle to send the command to." + "description": "[%key:component::renault::services::ac_start::fields::vehicle::description%]" } } }, @@ -187,7 +187,7 @@ "fields": { "vehicle": { "name": "Vehicle", - "description": "The vehicle to send the command to." + "description": "[%key:component::renault::services::ac_start::fields::vehicle::description%]" }, "schedules": { "name": "Schedules", diff --git a/homeassistant/components/rfxtrx/strings.json b/homeassistant/components/rfxtrx/strings.json index 6c49fb38d6c..85ddf559cf5 100644 --- a/homeassistant/components/rfxtrx/strings.json +++ b/homeassistant/components/rfxtrx/strings.json @@ -25,13 +25,13 @@ "data": { "device": "Select device" }, - "title": "Device" + "title": "[%key:common::config_flow::data::device%]" }, "setup_serial_manual_path": { "data": { "device": "[%key:common::config_flow::data::usb_path%]" }, - "title": "Path" + "title": "[%key:common::config_flow::data::path%]" } } }, diff --git a/homeassistant/components/roborock/strings.json b/homeassistant/components/roborock/strings.json index 63ebd31b34c..3b3e6221895 100644 --- a/homeassistant/components/roborock/strings.json +++ b/homeassistant/components/roborock/strings.json @@ -4,7 +4,7 @@ "user": { "description": "Enter your Roborock email address.", "data": { - "username": "Email" + "username": "[%key:common::config_flow::data::email%]" } }, "code": { @@ -51,14 +51,14 @@ "state": { "starting": "Starting", "charger_disconnected": "Charger disconnected", - "idle": "Idle", + "idle": "[%key:common::state::idle%]", "remote_control_active": "Remote control active", "cleaning": "Cleaning", "returning_home": "Returning home", "manual_mode": "Manual mode", "charging": "Charging", "charging_problem": "Charging problem", - "paused": "Paused", + "paused": "[%key:common::state::paused%]", "spot_cleaning": "Spot cleaning", "error": "Error", "shutting_down": "Shutting down", @@ -134,7 +134,7 @@ "moderate": "Moderate", "high": "High", "intense": "Intense", - "custom": "Custom" + "custom": "[%key:component::roborock::entity::select::mop_mode::state::custom%]" } } }, @@ -156,7 +156,7 @@ "state": { "auto": "Auto", "balanced": "Balanced", - "custom": "Custom", + "custom": "[%key:component::roborock::entity::select::mop_mode::state::custom%]", "gentle": "Gentle", "off": "[%key:common::state::off%]", "max": "Max", @@ -164,7 +164,7 @@ "medium": "Medium", "quiet": "Quiet", "silent": "Silent", - "standard": "Standard", + "standard": "[%key:component::roborock::entity::select::mop_mode::state::standard%]", "turbo": "Turbo" } } diff --git a/homeassistant/components/rtsp_to_webrtc/strings.json b/homeassistant/components/rtsp_to_webrtc/strings.json index 939c30766e2..e52ab554473 100644 --- a/homeassistant/components/rtsp_to_webrtc/strings.json +++ b/homeassistant/components/rtsp_to_webrtc/strings.json @@ -20,8 +20,8 @@ }, "abort": { "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]", - "server_failure": "RTSPtoWebRTC server returned an error. Check logs for more information.", - "server_unreachable": "Unable to communicate with RTSPtoWebRTC server. Check logs for more information." + "server_failure": "[%key:component::rtsp_to_webrtc::config::error::server_failure%]", + "server_unreachable": "[%key:component::rtsp_to_webrtc::config::error::server_unreachable%]" } }, "options": { diff --git a/homeassistant/components/sabnzbd/strings.json b/homeassistant/components/sabnzbd/strings.json index 5711656ef69..a8e146eeb27 100644 --- a/homeassistant/components/sabnzbd/strings.json +++ b/homeassistant/components/sabnzbd/strings.json @@ -30,7 +30,7 @@ "description": "Resumes downloads.", "fields": { "api_key": { - "name": "SABnzbd API key", + "name": "[%key:component::sabnzbd::services::pause::fields::api_key::name%]", "description": "The SABnzbd API key to resume downloads." } } @@ -40,7 +40,7 @@ "description": "Sets the download speed limit.", "fields": { "api_key": { - "name": "SABnzbd API key", + "name": "[%key:component::sabnzbd::services::pause::fields::api_key::name%]", "description": "The SABnzbd API key to set speed limit." }, "speed": { diff --git a/homeassistant/components/screenlogic/strings.json b/homeassistant/components/screenlogic/strings.json index 79b633e28b6..4894bc6437d 100644 --- a/homeassistant/components/screenlogic/strings.json +++ b/homeassistant/components/screenlogic/strings.json @@ -14,7 +14,7 @@ } }, "gateway_select": { - "title": "ScreenLogic", + "title": "[%key:component::screenlogic::config::step::gateway_entry::title%]", "description": "The following ScreenLogic gateways were discovered. Please select one to configure, or choose to manually configure a ScreenLogic gateway.", "data": { "selected_gateway": "Gateway" @@ -28,7 +28,7 @@ "options": { "step": { "init": { - "title": "ScreenLogic", + "title": "[%key:component::screenlogic::config::step::gateway_entry::title%]", "description": "Specify settings for {gateway_name}", "data": { "scan_interval": "Seconds between scans" diff --git a/homeassistant/components/sfr_box/strings.json b/homeassistant/components/sfr_box/strings.json index 3fc9691cc12..7ea18304164 100644 --- a/homeassistant/components/sfr_box/strings.json +++ b/homeassistant/components/sfr_box/strings.json @@ -84,7 +84,7 @@ "dsl_training": { "name": "DSL training", "state": { - "idle": "Idle", + "idle": "[%key:common::state::idle%]", "g_994_training": "G.994 Training", "g_992_started": "G.992 Started", "g_922_channel_analysis": "G.922 Channel Analysis", diff --git a/homeassistant/components/shelly/strings.json b/homeassistant/components/shelly/strings.json index 265184e6227..eeb2c3d3224 100644 --- a/homeassistant/components/shelly/strings.json +++ b/homeassistant/components/shelly/strings.json @@ -76,8 +76,8 @@ "selector": { "ble_scanner_mode": { "options": { - "disabled": "Disabled", - "active": "Active", + "disabled": "[%key:common::state::disabled%]", + "active": "[%key:common::state::active%]", "passive": "Passive" } } diff --git a/homeassistant/components/shopping_list/strings.json b/homeassistant/components/shopping_list/strings.json index 598a2bddfff..ddac4713fac 100644 --- a/homeassistant/components/shopping_list/strings.json +++ b/homeassistant/components/shopping_list/strings.json @@ -3,7 +3,7 @@ "config": { "step": { "user": { - "title": "Shopping List", + "title": "[%key:component::shopping_list::title%]", "description": "Do you want to configure the shopping list?" } }, @@ -17,7 +17,7 @@ "description": "Adds an item to the shopping list.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "The name of the item to add." } } @@ -27,7 +27,7 @@ "description": "Removes the first item with matching name from the shopping list.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "The name of the item to remove." } } @@ -37,7 +37,7 @@ "description": "Marks the first item with matching name as completed in the shopping list.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "The name of the item to mark as completed (without removing)." } } @@ -47,7 +47,7 @@ "description": "Marks the first item with matching name as incomplete in the shopping list.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "The name of the item to mark as incomplete." } } diff --git a/homeassistant/components/simplisafe/strings.json b/homeassistant/components/simplisafe/strings.json index 4be806ebbbd..99216035080 100644 --- a/homeassistant/components/simplisafe/strings.json +++ b/homeassistant/components/simplisafe/strings.json @@ -57,7 +57,7 @@ "description": "Sets/updates a PIN.", "fields": { "device_id": { - "name": "System", + "name": "[%key:component::simplisafe::services::remove_pin::fields::device_id::name%]", "description": "The system to set the PIN on." }, "label": { @@ -75,7 +75,7 @@ "description": "Sets one or more system properties.", "fields": { "device_id": { - "name": "System", + "name": "[%key:component::simplisafe::services::remove_pin::fields::device_id::name%]", "description": "The system whose properties should be set." }, "alarm_duration": { diff --git a/homeassistant/components/smarttub/strings.json b/homeassistant/components/smarttub/strings.json index c130feaa620..974e5fb7d37 100644 --- a/homeassistant/components/smarttub/strings.json +++ b/homeassistant/components/smarttub/strings.json @@ -42,7 +42,7 @@ "description": "Updates the secondary filtration settings.", "fields": { "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "The secondary filtration mode." } } @@ -62,7 +62,7 @@ "description": "Reset a reminder, and set the next time it will be triggered.", "fields": { "days": { - "name": "Days", + "name": "[%key:component::smarttub::services::snooze_reminder::fields::days::name%]", "description": "The number of days when the next reminder should trigger." } } diff --git a/homeassistant/components/sms/strings.json b/homeassistant/components/sms/strings.json index 6bf8cbcc166..c005c241d79 100644 --- a/homeassistant/components/sms/strings.json +++ b/homeassistant/components/sms/strings.json @@ -4,7 +4,7 @@ "user": { "title": "Connect to the modem", "data": { - "device": "Device", + "device": "[%key:common::config_flow::data::device%]", "baud_speed": "Baud Speed" } } @@ -20,16 +20,30 @@ }, "entity": { "sensor": { - "bit_error_rate": { "name": "Bit error rate" }, - "cid": { "name": "Cell ID" }, - "lac": { "name": "Local area code" }, - "network_code": { "name": "GSM network code" }, - "network_name": { "name": "Network name" }, - "signal_percent": { "name": "Signal percent" }, + "bit_error_rate": { + "name": "Bit error rate" + }, + "cid": { + "name": "Cell ID" + }, + "lac": { + "name": "Local area code" + }, + "network_code": { + "name": "GSM network code" + }, + "network_name": { + "name": "Network name" + }, + "signal_percent": { + "name": "Signal percent" + }, "signal_strength": { "name": "[%key:component::sensor::entity_component::signal_strength::name%]" }, - "state": { "name": "Network status" } + "state": { + "name": "Network status" + } } } } diff --git a/homeassistant/components/snips/strings.json b/homeassistant/components/snips/strings.json index d6c9f4d53f6..724e1a86477 100644 --- a/homeassistant/components/snips/strings.json +++ b/homeassistant/components/snips/strings.json @@ -16,7 +16,7 @@ "fields": { "site_id": { "name": "Site ID", - "description": "Site to turn sounds on, defaults to all sites." + "description": "[%key:component::snips::services::feedback_off::fields::site_id::description%]" } } }, @@ -47,8 +47,8 @@ "description": "If True, session waits for an open session to end, if False session is dropped if one is running." }, "custom_data": { - "name": "Custom data", - "description": "Custom data that will be included with all messages in this session." + "name": "[%key:component::snips::services::say::fields::custom_data::name%]", + "description": "[%key:component::snips::services::say::fields::custom_data::description%]" }, "intent_filter": { "name": "Intent filter", @@ -56,11 +56,11 @@ }, "site_id": { "name": "Site ID", - "description": "Site to use to start session, defaults to default." + "description": "[%key:component::snips::services::say::fields::site_id::description%]" }, "text": { "name": "Text", - "description": "Text to say." + "description": "[%key:component::snips::services::say::fields::text::description%]" } } } diff --git a/homeassistant/components/snooz/strings.json b/homeassistant/components/snooz/strings.json index 878341f23bc..bc1e68db02f 100644 --- a/homeassistant/components/snooz/strings.json +++ b/homeassistant/components/snooz/strings.json @@ -44,7 +44,7 @@ "description": "Transitions volume off over time.", "fields": { "duration": { - "name": "Transition duration", + "name": "[%key:component::snooz::services::transition_on::fields::duration::name%]", "description": "Time it takes to turn off." } } diff --git a/homeassistant/components/songpal/strings.json b/homeassistant/components/songpal/strings.json index a4df830f1fe..d6874f94f95 100644 --- a/homeassistant/components/songpal/strings.json +++ b/homeassistant/components/songpal/strings.json @@ -25,7 +25,7 @@ "description": "Change sound setting.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "Name of the setting." }, "value": { diff --git a/homeassistant/components/sonos/strings.json b/homeassistant/components/sonos/strings.json index c5b5136e970..7ce1d727b17 100644 --- a/homeassistant/components/sonos/strings.json +++ b/homeassistant/components/sonos/strings.json @@ -41,7 +41,7 @@ "description": "Name of entity that will be restored." }, "with_group": { - "name": "With group", + "name": "[%key:component::sonos::services::snapshot::fields::with_group::name%]", "description": "True or False. Also restore the group layout." } } @@ -75,7 +75,7 @@ "description": "Removes an item from the queue.", "fields": { "queue_position": { - "name": "Queue position", + "name": "[%key:component::sonos::services::play_queue::fields::queue_position::name%]", "description": "Position in the queue to remove." } } diff --git a/homeassistant/components/soundtouch/strings.json b/homeassistant/components/soundtouch/strings.json index 616a4fc5a11..7af95aab38c 100644 --- a/homeassistant/components/soundtouch/strings.json +++ b/homeassistant/components/soundtouch/strings.json @@ -52,7 +52,7 @@ "description": "Name of the master entity that is coordinating the multi-room zone. Platform dependent." }, "slaves": { - "name": "Slaves", + "name": "[%key:component::soundtouch::services::create_zone::fields::slaves::name%]", "description": "Name of slaves entities to add to the existing zone." } } @@ -63,10 +63,10 @@ "fields": { "master": { "name": "Master", - "description": "Name of the master entity that is coordinating the multi-room zone. Platform dependent." + "description": "[%key:component::soundtouch::services::add_zone_slave::fields::master::description%]" }, "slaves": { - "name": "Slaves", + "name": "[%key:component::soundtouch::services::create_zone::fields::slaves::name%]", "description": "Name of slaves entities to remove from the existing zone." } } diff --git a/homeassistant/components/spotify/strings.json b/homeassistant/components/spotify/strings.json index caec5b8a288..ec2721aba8b 100644 --- a/homeassistant/components/spotify/strings.json +++ b/homeassistant/components/spotify/strings.json @@ -10,12 +10,14 @@ } }, "abort": { - "authorize_url_timeout": "Timeout generating authorize URL.", + "authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]", "missing_configuration": "The Spotify integration is not configured. Please follow the documentation.", "no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]", "reauth_account_mismatch": "The Spotify account authenticated with, does not match the account needed re-authentication." }, - "create_entry": { "default": "Successfully authenticated with Spotify." } + "create_entry": { + "default": "Successfully authenticated with Spotify." + } }, "system_health": { "info": { diff --git a/homeassistant/components/squeezebox/strings.json b/homeassistant/components/squeezebox/strings.json index 13fe16aa28c..87881e3414b 100644 --- a/homeassistant/components/squeezebox/strings.json +++ b/homeassistant/components/squeezebox/strings.json @@ -49,11 +49,11 @@ "fields": { "command": { "name": "Command", - "description": "Command to pass to Logitech Media Server (p0 in the CLI documentation)." + "description": "[%key:component::squeezebox::services::call_method::fields::command::description%]" }, "parameters": { "name": "Parameters", - "description": "Array of additional parameters to pass to Logitech Media Server (p1, ..., pN in the CLI documentation).\n." + "description": "[%key:component::squeezebox::services::call_method::fields::parameters::description%]" } } }, diff --git a/homeassistant/components/starline/strings.json b/homeassistant/components/starline/strings.json index 292ae55da1f..4d2c497dc8b 100644 --- a/homeassistant/components/starline/strings.json +++ b/homeassistant/components/starline/strings.json @@ -59,7 +59,7 @@ "fields": { "scan_interval": { "name": "Scan interval", - "description": "Update frequency." + "description": "[%key:component::starline::services::set_scan_interval::fields::scan_interval::description%]" } } } diff --git a/homeassistant/components/starlink/strings.json b/homeassistant/components/starlink/strings.json index 48f84ea7baf..aa89d87b6be 100644 --- a/homeassistant/components/starlink/strings.json +++ b/homeassistant/components/starlink/strings.json @@ -26,7 +26,7 @@ "name": "Heating" }, "power_save_idle": { - "name": "Idle" + "name": "[%key:common::state::idle%]" }, "mast_near_vertical": { "name": "Mast near vertical" @@ -52,7 +52,7 @@ "name": "Azimuth" }, "elevation": { - "name": "Elevation" + "name": "[%key:common::config_flow::data::elevation%]" }, "uplink_throughput": { "name": "Uplink throughput" diff --git a/homeassistant/components/steamist/strings.json b/homeassistant/components/steamist/strings.json index a3cd4879c6a..8827df6a08a 100644 --- a/homeassistant/components/steamist/strings.json +++ b/homeassistant/components/steamist/strings.json @@ -10,7 +10,7 @@ }, "pick_device": { "data": { - "device": "Device" + "device": "[%key:common::config_flow::data::device%]" } }, "discovery_confirm": { diff --git a/homeassistant/components/subaru/strings.json b/homeassistant/components/subaru/strings.json index 2ce3c3835a6..8474d391141 100644 --- a/homeassistant/components/subaru/strings.json +++ b/homeassistant/components/subaru/strings.json @@ -11,21 +11,21 @@ } }, "two_factor": { - "title": "Subaru Starlink Configuration", + "title": "[%key:component::subaru::config::step::user::title%]", "description": "Two factor authentication required", "data": { "contact_method": "Please select a contact method:" } }, "two_factor_validate": { - "title": "Subaru Starlink Configuration", + "title": "[%key:component::subaru::config::step::user::title%]", "description": "Please enter validation code received", "data": { "validation_code": "Validation code" } }, "pin": { - "title": "Subaru Starlink Configuration", + "title": "[%key:component::subaru::config::step::user::title%]", "description": "Please enter your MySubaru PIN\nNOTE: All vehicles in account must have the same PIN", "data": { "pin": "PIN" diff --git a/homeassistant/components/surepetcare/strings.json b/homeassistant/components/surepetcare/strings.json index 6e1ec9643a7..2d297cc829e 100644 --- a/homeassistant/components/surepetcare/strings.json +++ b/homeassistant/components/surepetcare/strings.json @@ -41,7 +41,7 @@ "description": "Name of pet." }, "location": { - "name": "Location", + "name": "[%key:common::config_flow::data::location%]", "description": "Pet location (Inside or Outside)." } } diff --git a/homeassistant/components/synology_dsm/strings.json b/homeassistant/components/synology_dsm/strings.json index 24ed1aaf568..f7ae9c9f238 100644 --- a/homeassistant/components/synology_dsm/strings.json +++ b/homeassistant/components/synology_dsm/strings.json @@ -183,7 +183,7 @@ "description": "Shutdowns the NAS. This service is deprecated and will be removed in future release. Please use the corresponding button entity.", "fields": { "serial": { - "name": "Serial", + "name": "[%key:component::synology_dsm::services::reboot::fields::serial::name%]", "description": "Serial of the NAS to shutdown; required when multiple NAS are configured." } } diff --git a/homeassistant/components/system_bridge/strings.json b/homeassistant/components/system_bridge/strings.json index e4b2b40637c..c3e1f949152 100644 --- a/homeassistant/components/system_bridge/strings.json +++ b/homeassistant/components/system_bridge/strings.json @@ -38,7 +38,7 @@ "description": "The server to talk to." }, "path": { - "name": "Path", + "name": "[%key:common::config_flow::data::path%]", "description": "Path to open." } } @@ -48,11 +48,11 @@ "description": "Opens a URL on the server using the default application.", "fields": { "bridge": { - "name": "Bridge", - "description": "The server to talk to." + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", + "description": "[%key:component::system_bridge::services::open_path::fields::bridge::description%]" }, "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "URL to open." } } @@ -62,7 +62,7 @@ "description": "Sends a keyboard keypress.", "fields": { "bridge": { - "name": "Bridge", + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", "description": "The server to send the command to." }, "key": { @@ -76,8 +76,8 @@ "description": "Sends text for the server to type.", "fields": { "bridge": { - "name": "Bridge", - "description": "The server to send the command to." + "name": "[%key:component::system_bridge::services::open_path::fields::bridge::name%]", + "description": "[%key:component::system_bridge::services::send_keypress::fields::bridge::description%]" }, "text": { "name": "Text", diff --git a/homeassistant/components/tankerkoenig/strings.json b/homeassistant/components/tankerkoenig/strings.json index b68359a5176..dea370f45b3 100644 --- a/homeassistant/components/tankerkoenig/strings.json +++ b/homeassistant/components/tankerkoenig/strings.json @@ -38,7 +38,7 @@ "init": { "title": "Tankerkoenig options", "data": { - "stations": "Stations", + "stations": "[%key:component::tankerkoenig::config::step::select_station::data::stations%]", "show_on_map": "Show stations on map" } } diff --git a/homeassistant/components/telegram_bot/strings.json b/homeassistant/components/telegram_bot/strings.json index 8104fdd285e..eeca235ab44 100644 --- a/homeassistant/components/telegram_bot/strings.json +++ b/homeassistant/components/telegram_bot/strings.json @@ -51,7 +51,7 @@ "description": "Sends a photo.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "Remote path to an image." }, "file": { @@ -63,11 +63,11 @@ "description": "The title of the image." }, "username": { - "name": "Username", + "name": "[%key:common::config_flow::data::username%]", "description": "Username for a URL which require HTTP authentication." }, "password": { - "name": "Password", + "name": "[%key:common::config_flow::data::password%]", "description": "Password (or bearer token) for a URL which require HTTP authentication." }, "authentication": { @@ -79,12 +79,12 @@ "description": "An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default." }, "parse_mode": { - "name": "Parse mode", - "description": "Parser for the message text." + "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" }, "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" }, "verify_ssl": { "name": "Verify SSL", @@ -95,16 +95,16 @@ "description": "Timeout for send photo. Will help with timeout errors (poor internet connection, etc)." }, "keyboard": { - "name": "Keyboard", + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", "description": "List of rows of commands, comma-separated, to make a custom keyboard." }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" }, "message_tag": { - "name": "Message tag", - "description": "Tag for sent message. In telegram_sent event data: {{trigger.event.data.message_tag}}." + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" } } }, @@ -113,11 +113,11 @@ "description": "Sends a sticker.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "Remote path to a static .webp or animated .tgs sticker." }, "file": { - "name": "File", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", "description": "Local path to a static .webp or animated .tgs sticker." }, "sticker_id": { @@ -125,44 +125,44 @@ "description": "ID of a sticker that exists on telegram servers." }, "username": { - "name": "Username", - "description": "Username for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::username%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" }, "password": { - "name": "Password", - "description": "Password (or bearer token) for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::password%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" }, "authentication": { - "name": "Authentication method", - "description": "Define which authentication method to use. Set to `digest` to use HTTP digest authentication, or `bearer_token` for OAuth 2.0 bearer token authentication. Defaults to `basic`." + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" }, "target": { "name": "Target", - "description": "An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default." + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" }, "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" }, "verify_ssl": { "name": "Verify SSL", - "description": "Enable or disable SSL certificate verification. Set to false if you're downloading the file from a URL and you don't want to validate the SSL certificate of the server." + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" }, "timeout": { "name": "Timeout", "description": "Timeout for send sticker. Will help with timeout errors (poor internet connection, etc)." }, "keyboard": { - "name": "Keyboard", - "description": "List of rows of commands, comma-separated, to make a custom keyboard." + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" }, "message_tag": { - "name": "Message tag", - "description": "Tag for sent message. In telegram_sent event data: {{trigger.event.data.message_tag}}." + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" } } }, @@ -171,56 +171,56 @@ "description": "Sends an anmiation.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "Remote path to a GIF or H.264/MPEG-4 AVC video without sound." }, "file": { - "name": "File", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", "description": "Local path to a GIF or H.264/MPEG-4 AVC video without sound." }, "caption": { - "name": "Caption", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", "description": "The title of the animation." }, "username": { - "name": "Username", - "description": "Username for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::username%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" }, "password": { - "name": "Password", - "description": "Password (or bearer token) for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::password%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" }, "authentication": { - "name": "Authentication method", - "description": "Define which authentication method to use. Set to `digest` to use HTTP digest authentication, or `bearer_token` for OAuth 2.0 bearer token authentication. Defaults to `basic`." + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" }, "target": { "name": "Target", - "description": "An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default." + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" }, "parse_mode": { "name": "Parse Mode", - "description": "Parser for the message text." + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" }, "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" }, "verify_ssl": { "name": "Verify SSL", - "description": "Enable or disable SSL certificate verification. Set to false if you're downloading the file from a URL and you don't want to validate the SSL certificate of the server." + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" }, "timeout": { "name": "Timeout", - "description": "Timeout for send sticker. Will help with timeout errors (poor internet connection, etc)." + "description": "[%key:component::telegram_bot::services::send_sticker::fields::timeout::description%]" }, "keyboard": { - "name": "Keyboard", - "description": "List of rows of commands, comma-separated, to make a custom keyboard." + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" } } }, @@ -229,60 +229,60 @@ "description": "Sends a video.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "Remote path to a video." }, "file": { - "name": "File", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", "description": "Local path to a video." }, "caption": { - "name": "Caption", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", "description": "The title of the video." }, "username": { - "name": "Username", - "description": "Username for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::username%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" }, "password": { - "name": "Password", - "description": "Password (or bearer token) for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::password%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" }, "authentication": { - "name": "Authentication method", - "description": "Define which authentication method to use. Set to `digest` to use HTTP digest authentication, or `bearer_token` for OAuth 2.0 bearer token authentication. Defaults to `basic`." + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" }, "target": { "name": "Target", - "description": "An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default." + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" }, "parse_mode": { - "name": "Parse mode", - "description": "Parser for the message text." + "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" }, "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" }, "verify_ssl": { "name": "Verify SSL", - "description": "Enable or disable SSL certificate verification. Set to false if you're downloading the file from a URL and you don't want to validate the SSL certificate of the server." + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" }, "timeout": { "name": "Timeout", "description": "Timeout for send video. Will help with timeout errors (poor internet connection, etc)." }, "keyboard": { - "name": "Keyboard", - "description": "List of rows of commands, comma-separated, to make a custom keyboard." + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" }, "message_tag": { - "name": "Message tag", - "description": "Tag for sent message. In telegram_sent event data: {{trigger.event.data.message_tag}}." + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" } } }, @@ -291,56 +291,56 @@ "description": "Sends a voice message.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "Remote path to a voice message." }, "file": { - "name": "File", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", "description": "Local path to a voice message." }, "caption": { - "name": "Caption", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", "description": "The title of the voice message." }, "username": { - "name": "Username", - "description": "Username for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::username%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" }, "password": { - "name": "Password", - "description": "Password (or bearer token) for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::password%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" }, "authentication": { - "name": "Authentication method", - "description": "Define which authentication method to use. Set to `digest` to use HTTP digest authentication, or `bearer_token` for OAuth 2.0 bearer token authentication. Defaults to `basic`." + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" }, "target": { "name": "Target", - "description": "An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default." + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" }, "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" }, "verify_ssl": { "name": "Verify SSL", - "description": "Enable or disable SSL certificate verification. Set to false if you're downloading the file from a URL and you don't want to validate the SSL certificate of the server." + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" }, "timeout": { "name": "Timeout", "description": "Timeout for send voice. Will help with timeout errors (poor internet connection, etc)." }, "keyboard": { - "name": "Keyboard", - "description": "List of rows of commands, comma-separated, to make a custom keyboard." + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" }, "message_tag": { - "name": "Message tag", - "description": "Tag for sent message. In telegram_sent event data: {{trigger.event.data.message_tag}}." + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" } } }, @@ -349,60 +349,60 @@ "description": "Sends a document.", "fields": { "url": { - "name": "URL", + "name": "[%key:common::config_flow::data::url%]", "description": "Remote path to a document." }, "file": { - "name": "File", + "name": "[%key:component::telegram_bot::services::send_photo::fields::file::name%]", "description": "Local path to a document." }, "caption": { - "name": "Caption", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", "description": "The title of the document." }, "username": { - "name": "Username", - "description": "Username for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::username%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::username::description%]" }, "password": { - "name": "Password", - "description": "Password (or bearer token) for a URL which require HTTP authentication." + "name": "[%key:common::config_flow::data::password%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::password::description%]" }, "authentication": { - "name": "Authentication method", - "description": "Define which authentication method to use. Set to `digest` to use HTTP digest authentication, or `bearer_token` for OAuth 2.0 bearer token authentication. Defaults to `basic`." + "name": "[%key:component::telegram_bot::services::send_photo::fields::authentication::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::authentication::description%]" }, "target": { "name": "Target", - "description": "An array of pre-authorized chat_ids to send the document to. If not present, first allowed chat_id is the default." + "description": "[%key:component::telegram_bot::services::send_photo::fields::target::description%]" }, "parse_mode": { - "name": "Parse mode", - "description": "Parser for the message text." + "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" }, "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" }, "verify_ssl": { "name": "Verify SSL", - "description": "Enable or disable SSL certificate verification. Set to false if you're downloading the file from a URL and you don't want to validate the SSL certificate of the server." + "description": "[%key:component::telegram_bot::services::send_photo::fields::verify_ssl::description%]" }, "timeout": { "name": "Timeout", "description": "Timeout for send document. Will help with timeout errors (poor internet connection, etc)." }, "keyboard": { - "name": "Keyboard", - "description": "List of rows of commands, comma-separated, to make a custom keyboard." + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" }, "message_tag": { - "name": "Message tag", - "description": "Tag for sent message. In telegram_sent event data: {{trigger.event.data.message_tag}}." + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" } } }, @@ -411,11 +411,11 @@ "description": "Sends a location.", "fields": { "latitude": { - "name": "Latitude", + "name": "[%key:common::config_flow::data::latitude%]", "description": "The latitude to send." }, "longitude": { - "name": "Longitude", + "name": "[%key:common::config_flow::data::longitude%]", "description": "The longitude to send." }, "target": { @@ -423,24 +423,24 @@ "description": "An array of pre-authorized chat_ids to send the location to. If not present, first allowed chat_id is the default." }, "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" }, "timeout": { "name": "Timeout", - "description": "Timeout for send photo. Will help with timeout errors (poor internet connection, etc)." + "description": "[%key:component::telegram_bot::services::send_photo::fields::timeout::description%]" }, "keyboard": { - "name": "Keyboard", - "description": "List of rows of commands, comma-separated, to make a custom keyboard." + "name": "[%key:component::telegram_bot::services::send_message::fields::keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_photo::fields::keyboard::description%]" }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" }, "message_tag": { - "name": "Message tag", - "description": "Tag for sent message. In telegram_sent event data: {{trigger.event.data.message_tag}}." + "name": "[%key:component::telegram_bot::services::send_message::fields::message_tag::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::message_tag::description%]" } } }, @@ -450,7 +450,7 @@ "fields": { "target": { "name": "Target", - "description": "An array of pre-authorized chat_ids to send the location to. If not present, first allowed chat_id is the default." + "description": "[%key:component::telegram_bot::services::send_location::fields::target::description%]" }, "question": { "name": "Question", @@ -473,8 +473,8 @@ "description": "Amount of time in seconds the poll will be active after creation, 5-600." }, "disable_notification": { - "name": "Disable notification", - "description": "Sends the message silently. iOS users and Web users will not receive a notification, Android users will receive a notification with no sound." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_notification::description%]" }, "timeout": { "name": "Timeout", @@ -500,19 +500,19 @@ }, "title": { "name": "Title", - "description": "Optional title for your notification. Will be composed as '%title\\n%message'." + "description": "[%key:component::telegram_bot::services::send_message::fields::title::description%]" }, "parse_mode": { - "name": "Parse mode", - "description": "Parser for the message text." + "name": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::parse_mode::description%]" }, "disable_web_page_preview": { - "name": "Disable web page preview", - "description": "Disables link previews for links in the message." + "name": "[%key:component::telegram_bot::services::send_message::fields::disable_web_page_preview::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::disable_web_page_preview::description%]" }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" } } }, @@ -521,20 +521,20 @@ "description": "Edits the caption of a previously sent message.", "fields": { "message_id": { - "name": "Message ID", - "description": "Id of the message to edit." + "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]", + "description": "[%key:component::telegram_bot::services::edit_message::fields::message_id::description%]" }, "chat_id": { - "name": "Chat ID", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", "description": "The chat_id where to edit the caption." }, "caption": { - "name": "Caption", + "name": "[%key:component::telegram_bot::services::send_photo::fields::caption::name%]", "description": "Message body of the notification." }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" } } }, @@ -543,16 +543,16 @@ "description": "Edit the inline keyboard of a previously sent message.", "fields": { "message_id": { - "name": "Message ID", - "description": "Id of the message to edit." + "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]", + "description": "[%key:component::telegram_bot::services::edit_message::fields::message_id::description%]" }, "chat_id": { - "name": "Chat ID", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", "description": "The chat_id where to edit the reply_markup." }, "inline_keyboard": { - "name": "Inline keyboard", - "description": "List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data." + "name": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::name%]", + "description": "[%key:component::telegram_bot::services::send_message::fields::inline_keyboard::description%]" } } }, @@ -583,11 +583,11 @@ "description": "Deletes a previously sent message.", "fields": { "message_id": { - "name": "Message ID", + "name": "[%key:component::telegram_bot::services::edit_message::fields::message_id::name%]", "description": "Id of the message to delete." }, "chat_id": { - "name": "Chat ID", + "name": "[%key:component::telegram_bot::services::edit_message::fields::chat_id::name%]", "description": "The chat_id where to delete the message." } } diff --git a/homeassistant/components/threshold/strings.json b/homeassistant/components/threshold/strings.json index 8bfd9fb96b1..832f3b4f899 100644 --- a/homeassistant/components/threshold/strings.json +++ b/homeassistant/components/threshold/strings.json @@ -9,7 +9,7 @@ "entity_id": "Input sensor", "hysteresis": "Hysteresis", "lower": "Lower limit", - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "upper": "Upper limit" } } diff --git a/homeassistant/components/tile/strings.json b/homeassistant/components/tile/strings.json index da53f79b697..504823c4d16 100644 --- a/homeassistant/components/tile/strings.json +++ b/homeassistant/components/tile/strings.json @@ -26,7 +26,7 @@ "options": { "step": { "init": { - "title": "Configure Tile", + "title": "[%key:component::tile::config::step::user::title%]", "data": { "show_inactive": "Show inactive Tiles" } diff --git a/homeassistant/components/tod/strings.json b/homeassistant/components/tod/strings.json index 41e40525081..bd4a48df915 100644 --- a/homeassistant/components/tod/strings.json +++ b/homeassistant/components/tod/strings.json @@ -8,7 +8,7 @@ "data": { "after_time": "On time", "before_time": "Off time", - "name": "Name" + "name": "[%key:common::config_flow::data::name%]" } } } diff --git a/homeassistant/components/tplink/strings.json b/homeassistant/components/tplink/strings.json index b5279804d0a..6daa5c9cb1a 100644 --- a/homeassistant/components/tplink/strings.json +++ b/homeassistant/components/tplink/strings.json @@ -10,7 +10,7 @@ }, "pick_device": { "data": { - "device": "Device" + "device": "[%key:common::config_flow::data::device%]" } }, "discovery_confirm": { @@ -74,7 +74,7 @@ }, "backgrounds": { "name": "Backgrounds", - "description": "List of HSV sequences (Max 16)." + "description": "[%key:component::tplink::services::sequence_effect::fields::sequence::description%]" }, "segments": { "name": "Segments", @@ -82,15 +82,15 @@ }, "brightness": { "name": "Brightness", - "description": "Initial brightness." + "description": "[%key:component::tplink::services::sequence_effect::fields::brightness::description%]" }, "duration": { "name": "Duration", - "description": "Duration." + "description": "[%key:component::tplink::services::sequence_effect::fields::duration::description%]" }, "transition": { "name": "Transition", - "description": "Transition." + "description": "[%key:component::tplink::services::sequence_effect::fields::transition::description%]" }, "fadeoff": { "name": "Fade off", diff --git a/homeassistant/components/transmission/strings.json b/homeassistant/components/transmission/strings.json index c3fdcc8f1f4..97741bd65bb 100644 --- a/homeassistant/components/transmission/strings.json +++ b/homeassistant/components/transmission/strings.json @@ -45,7 +45,7 @@ "sensor": { "transmission_status": { "state": { - "idle": "Idle", + "idle": "[%key:common::state::idle%]", "up_down": "Up/Down", "seeding": "Seeding", "downloading": "Downloading" @@ -73,8 +73,8 @@ "description": "Removes a torrent.", "fields": { "entry_id": { - "name": "Transmission entry", - "description": "Config entry id." + "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]", + "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]" }, "id": { "name": "ID", @@ -91,12 +91,12 @@ "description": "Starts a torrent.", "fields": { "entry_id": { - "name": "Transmission entry", - "description": "Config entry id." + "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]", + "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]" }, "id": { "name": "ID", - "description": "ID of a torrent." + "description": "[%key:component::transmission::services::remove_torrent::fields::id::description%]" } } }, @@ -105,12 +105,12 @@ "description": "Stops a torrent.", "fields": { "entry_id": { - "name": "Transmission entry", - "description": "Config entry id." + "name": "[%key:component::transmission::services::add_torrent::fields::entry_id::name%]", + "description": "[%key:component::transmission::services::add_torrent::fields::entry_id::description%]" }, "id": { "name": "ID", - "description": "ID of a torrent." + "description": "[%key:component::transmission::services::remove_torrent::fields::id::description%]" } } } diff --git a/homeassistant/components/tuya/strings.json b/homeassistant/components/tuya/strings.json index f4443e89f76..ccb7d878a49 100644 --- a/homeassistant/components/tuya/strings.json +++ b/homeassistant/components/tuya/strings.json @@ -21,7 +21,7 @@ "select": { "basic_anti_flicker": { "state": { - "0": "Disabled", + "0": "[%key:common::state::disabled%]", "1": "50 Hz", "2": "60 Hz" } @@ -61,9 +61,9 @@ }, "motion_sensitivity": { "state": { - "0": "Low sensitivity", + "0": "[%key:component::tuya::entity::select::decibel_sensitivity::state::0%]", "1": "Medium sensitivity", - "2": "High sensitivity" + "2": "[%key:component::tuya::entity::select::decibel_sensitivity::state::1%]" } }, "record_mode": { @@ -75,7 +75,7 @@ "relay_status": { "state": { "last": "Remember last state", - "memory": "Remember last state", + "memory": "[%key:component::tuya::entity::select::relay_status::state::last%]", "off": "[%key:common::state::off%]", "on": "[%key:common::state::on%]", "power_off": "[%key:common::state::off%]", @@ -105,7 +105,7 @@ }, "vacuum_mode": { "state": { - "standby": "Standby", + "standby": "[%key:common::state::standby%]", "random": "Random", "smart": "Smart", "wall_follow": "Follow Wall", @@ -199,7 +199,7 @@ "reserve_1": "Reserve 1", "reserve_2": "Reserve 2", "reserve_3": "Reserve 3", - "standby": "Standby", + "standby": "[%key:common::state::standby%]", "warm": "Heat preservation" } }, diff --git a/homeassistant/components/unifi/strings.json b/homeassistant/components/unifi/strings.json index 6afae5ffe7b..e441d4695ed 100644 --- a/homeassistant/components/unifi/strings.json +++ b/homeassistant/components/unifi/strings.json @@ -75,7 +75,7 @@ "description": "Tries to get wireless client to reconnect to UniFi Network.", "fields": { "device_id": { - "name": "Device", + "name": "[%key:common::config_flow::data::device%]", "description": "Try reconnect client to wireless network." } } diff --git a/homeassistant/components/unifiprotect/strings.json b/homeassistant/components/unifiprotect/strings.json index fd2287e08be..73ac6e08c17 100644 --- a/homeassistant/components/unifiprotect/strings.json +++ b/homeassistant/components/unifiprotect/strings.json @@ -66,7 +66,7 @@ "description": "You are using v{version} of UniFi Protect which is an Early Access version. [Early Access versions are not supported by Home Assistant](https://www.home-assistant.io/integrations/unifiprotect#about-unifi-early-access) and it is recommended to go back to a stable release as soon as possible.\n\nBy submitting this form you have either [downgraded UniFi Protect](https://www.home-assistant.io/integrations/unifiprotect#downgrading-unifi-protect) or you agree to run an unsupported version of UniFi Protect." }, "confirm": { - "title": "v{version} is an Early Access version", + "title": "[%key:component::unifiprotect::issues::ea_warning::fix_flow::step::start::title%]", "description": "Are you sure you want to run unsupported versions of UniFi Protect? This may cause your Home Assistant integration to break." } } @@ -106,11 +106,11 @@ "description": "Removes an existing message for doorbells.", "fields": { "device_id": { - "name": "UniFi Protect NVR", - "description": "Any device from the UniFi Protect instance you want to change. In case you have multiple Protect Instances." + "name": "[%key:component::unifiprotect::services::add_doorbell_text::fields::device_id::name%]", + "description": "[%key:component::unifiprotect::services::add_doorbell_text::fields::device_id::description%]" }, "message": { - "name": "Custom message", + "name": "[%key:component::unifiprotect::services::add_doorbell_text::fields::message::name%]", "description": "Existing custom message to remove for doorbells." } } @@ -120,8 +120,8 @@ "description": "Sets the default doorbell message. This will be the message that is automatically selected when a message \"expires\".", "fields": { "device_id": { - "name": "UniFi Protect NVR", - "description": "Any device from the UniFi Protect instance you want to change. In case you have multiple Protect Instances." + "name": "[%key:component::unifiprotect::services::add_doorbell_text::fields::device_id::name%]", + "description": "[%key:component::unifiprotect::services::add_doorbell_text::fields::device_id::description%]" }, "message": { "name": "Default message", diff --git a/homeassistant/components/upb/strings.json b/homeassistant/components/upb/strings.json index b5b6dea93d5..7e4590d35a2 100644 --- a/homeassistant/components/upb/strings.json +++ b/homeassistant/components/upb/strings.json @@ -48,7 +48,7 @@ "description": "Blinks a light.", "fields": { "rate": { - "name": "Rate", + "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]", "description": "Amount of time that the link flashes on." } } @@ -66,11 +66,11 @@ "description": "Number indicating brightness, where 0 turns the scene off, 1 is the minimum brightness and 255 is the maximum brightness." }, "brightness_pct": { - "name": "Brightness percentage", + "name": "[%key:component::upb::services::light_fade_start::fields::brightness_pct::name%]", "description": "Number indicating percentage of full brightness, where 0 turns the scene off, 1 is the minimum brightness and 100 is the maximum brightness." }, "rate": { - "name": "Rate", + "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]", "description": "Amount of time for scene to transition to new brightness." } } @@ -81,15 +81,15 @@ "fields": { "brightness": { "name": "Brightness", - "description": "Number indicating brightness, where 0 turns the scene off, 1 is the minimum brightness and 255 is the maximum brightness." + "description": "[%key:component::upb::services::link_goto::fields::brightness::description%]" }, "brightness_pct": { - "name": "Brightness percentage", - "description": "Number indicating percentage of full brightness, where 0 turns the scene off, 1 is the minimum brightness and 100 is the maximum brightness." + "name": "[%key:component::upb::services::light_fade_start::fields::brightness_pct::name%]", + "description": "[%key:component::upb::services::link_goto::fields::brightness_pct::description%]" }, "rate": { - "name": "Rate", - "description": "Amount of time for scene to transition to new brightness." + "name": "[%key:component::upb::services::light_fade_start::fields::rate::name%]", + "description": "[%key:component::upb::services::link_goto::fields::rate::description%]" } } }, @@ -103,7 +103,7 @@ "fields": { "blink_rate": { "name": "Blink rate", - "description": "Amount of time that the link flashes on." + "description": "[%key:component::upb::services::light_blink::fields::rate::description%]" } } } diff --git a/homeassistant/components/upnp/strings.json b/homeassistant/components/upnp/strings.json index 45d0c7de1c8..ea052f0b45a 100644 --- a/homeassistant/components/upnp/strings.json +++ b/homeassistant/components/upnp/strings.json @@ -7,7 +7,7 @@ }, "user": { "data": { - "unique_id": "Device" + "unique_id": "[%key:common::config_flow::data::device%]" } } }, diff --git a/homeassistant/components/uptimerobot/strings.json b/homeassistant/components/uptimerobot/strings.json index 8fccc3cb9e9..588dc3ebf5c 100644 --- a/homeassistant/components/uptimerobot/strings.json +++ b/homeassistant/components/uptimerobot/strings.json @@ -35,7 +35,7 @@ "state": { "down": "Down", "not_checked_yet": "Not checked yet", - "pause": "Pause", + "pause": "[%key:common::action::pause%]", "seems_down": "Seems down", "up": "Up" } diff --git a/homeassistant/components/utility_meter/strings.json b/homeassistant/components/utility_meter/strings.json index 09b9dd09540..f38989b536e 100644 --- a/homeassistant/components/utility_meter/strings.json +++ b/homeassistant/components/utility_meter/strings.json @@ -8,7 +8,7 @@ "data": { "cycle": "Meter reset cycle", "delta_values": "Delta values", - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "periodically_resetting": "Periodically resetting", "net_consumption": "Net consumption", "offset": "Meter reset offset", diff --git a/homeassistant/components/vallox/strings.json b/homeassistant/components/vallox/strings.json index b33cef0026a..42efaeb0538 100644 --- a/homeassistant/components/vallox/strings.json +++ b/homeassistant/components/vallox/strings.json @@ -36,7 +36,7 @@ "fields": { "fan_speed": { "name": "Fan speed", - "description": "Fan speed." + "description": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::description%]" } } }, @@ -46,7 +46,7 @@ "fields": { "fan_speed": { "name": "Fan speed", - "description": "Fan speed." + "description": "[%key:component::vallox::services::set_profile_fan_speed_home::fields::fan_speed::description%]" } } } diff --git a/homeassistant/components/velbus/strings.json b/homeassistant/components/velbus/strings.json index bef853001a1..948c079444d 100644 --- a/homeassistant/components/velbus/strings.json +++ b/homeassistant/components/velbus/strings.json @@ -33,8 +33,8 @@ "description": "Scans the velbus modules, this will be need if you see unknown module warnings in the logs, or when you added new modules.", "fields": { "interface": { - "name": "Interface", - "description": "The velbus interface to send the command to, this will be the same value as used during configuration." + "name": "[%key:component::velbus::services::sync_clock::fields::interface::name%]", + "description": "[%key:component::velbus::services::sync_clock::fields::interface::description%]" } } }, @@ -43,8 +43,8 @@ "description": "Clears the velbuscache and then starts a new scan.", "fields": { "interface": { - "name": "Interface", - "description": "The velbus interface to send the command to, this will be the same value as used during configuration." + "name": "[%key:component::velbus::services::sync_clock::fields::interface::name%]", + "description": "[%key:component::velbus::services::sync_clock::fields::interface::description%]" }, "address": { "name": "Address", @@ -57,8 +57,8 @@ "description": "Sets the memo text to the display of modules like VMBGPO, VMBGPOD Be sure the page(s) of the module is configured to display the memo text.\n.", "fields": { "interface": { - "name": "Interface", - "description": "The velbus interface to send the command to, this will be the same value as used during configuration." + "name": "[%key:component::velbus::services::sync_clock::fields::interface::name%]", + "description": "[%key:component::velbus::services::sync_clock::fields::interface::description%]" }, "address": { "name": "Address", diff --git a/homeassistant/components/vera/strings.json b/homeassistant/components/vera/strings.json index 4e51177910c..3bfb58f8104 100644 --- a/homeassistant/components/vera/strings.json +++ b/homeassistant/components/vera/strings.json @@ -23,8 +23,8 @@ "title": "Vera controller options", "description": "See the vera documentation for details on optional parameters: https://www.home-assistant.io/integrations/vera/. Note: Any changes here will need a restart to the home assistant server. To clear values, provide a space.", "data": { - "lights": "Vera switch device ids to treat as lights in Home Assistant.", - "exclude": "Vera device ids to exclude from Home Assistant." + "lights": "[%key:component::vera::config::step::user::data::lights%]", + "exclude": "[%key:component::vera::config::step::user::data::exclude%]" } } } diff --git a/homeassistant/components/verisure/strings.json b/homeassistant/components/verisure/strings.json index 335daa68ee8..f715529b36b 100644 --- a/homeassistant/components/verisure/strings.json +++ b/homeassistant/components/verisure/strings.json @@ -29,8 +29,8 @@ }, "reauth_mfa": { "data": { - "description": "Your account has 2-step verification enabled. Please enter the verification code Verisure sends to you.", - "code": "Verification Code" + "description": "[%key:component::verisure::config::step::mfa::data::description%]", + "code": "[%key:component::verisure::config::step::mfa::data::code%]" } } }, diff --git a/homeassistant/components/vizio/strings.json b/homeassistant/components/vizio/strings.json index 314f6f8b4e5..0ff64eeda53 100644 --- a/homeassistant/components/vizio/strings.json +++ b/homeassistant/components/vizio/strings.json @@ -23,7 +23,7 @@ "description": "Your VIZIO SmartCast Device is now connected to Home Assistant." }, "pairing_complete_import": { - "title": "Pairing Complete", + "title": "[%key:component::vizio::config::step::pairing_complete::title%]", "description": "Your VIZIO SmartCast Device is now connected to Home Assistant.\n\nYour access token is '**{access_token}**'." } }, diff --git a/homeassistant/components/vulcan/strings.json b/homeassistant/components/vulcan/strings.json index bb9e1d4d848..b2b270e3422 100644 --- a/homeassistant/components/vulcan/strings.json +++ b/homeassistant/components/vulcan/strings.json @@ -25,11 +25,11 @@ } }, "reauth_confirm": { - "description": "Login to your Vulcan Account using mobile app registration page.", + "description": "[%key:component::vulcan::config::step::auth::description%]", "data": { "token": "Token", - "region": "Symbol", - "pin": "Pin" + "region": "[%key:component::vulcan::config::step::auth::data::region%]", + "pin": "[%key:component::vulcan::config::step::auth::data::pin%]" } }, "select_student": { diff --git a/homeassistant/components/webostv/strings.json b/homeassistant/components/webostv/strings.json index 985edb05645..a5e7b73e59e 100644 --- a/homeassistant/components/webostv/strings.json +++ b/homeassistant/components/webostv/strings.json @@ -15,8 +15,8 @@ "description": "Click submit and accept the pairing request on your TV.\n\n![Image](/static/images/config_webos.png)" }, "reauth_confirm": { - "title": "webOS TV Pairing", - "description": "Click submit and accept the pairing request on your TV.\n\n![Image](/static/images/config_webos.png)" + "title": "[%key:component::webostv::config::step::pairing::title%]", + "description": "[%key:component::webostv::config::step::pairing::description%]" } }, "error": { @@ -70,7 +70,7 @@ "fields": { "entity_id": { "name": "Entity", - "description": "Name(s) of the webostv entities where to run the API method." + "description": "[%key:component::webostv::services::button::fields::entity_id::description%]" }, "command": { "name": "Command", diff --git a/homeassistant/components/whirlpool/strings.json b/homeassistant/components/whirlpool/strings.json index aff89019e4c..94dc9aa219f 100644 --- a/homeassistant/components/whirlpool/strings.json +++ b/homeassistant/components/whirlpool/strings.json @@ -27,7 +27,7 @@ "delay_countdown": "Delay Countdown", "delay_paused": "Delay Paused", "smart_delay": "Smart Delay", - "smart_grid_pause": "Smart Delay", + "smart_grid_pause": "[%key:component::whirlpool::entity::sensor::whirlpool_machine::state::smart_delay%]", "pause": "[%key:common::state::paused%]", "running_maincycle": "Running Maincycle", "running_postcycle": "Running Postcycle", diff --git a/homeassistant/components/wiz/strings.json b/homeassistant/components/wiz/strings.json index 2efa3c9a1c3..656219f13bb 100644 --- a/homeassistant/components/wiz/strings.json +++ b/homeassistant/components/wiz/strings.json @@ -13,7 +13,7 @@ }, "pick_device": { "data": { - "device": "Device" + "device": "[%key:common::config_flow::data::device%]" } } }, diff --git a/homeassistant/components/wolflink/strings.json b/homeassistant/components/wolflink/strings.json index 3de74cbbf4c..b1c332984a1 100644 --- a/homeassistant/components/wolflink/strings.json +++ b/homeassistant/components/wolflink/strings.json @@ -18,7 +18,7 @@ }, "device": { "data": { - "device_name": "Device" + "device_name": "[%key:common::config_flow::data::device%]" }, "title": "Select WOLF device" } @@ -59,7 +59,7 @@ "spreizung_hoch": "dT too wide", "spreizung_kf": "Spread KF", "test": "Test", - "start": "Start", + "start": "[%key:common::action::start%]", "frost_heizkreis": "Heating circuit frost", "frost_warmwasser": "DHW frost", "schornsteinfeger": "Emissions test", diff --git a/homeassistant/components/workday/strings.json b/homeassistant/components/workday/strings.json index 4aaf241536f..a217a7a36b1 100644 --- a/homeassistant/components/workday/strings.json +++ b/homeassistant/components/workday/strings.json @@ -60,8 +60,8 @@ } }, "error": { - "add_holiday_error": "Incorrect format on date (YYYY-MM-DD)", - "remove_holiday_error": "Incorrect format on date (YYYY-MM-DD) or holiday name not found", + "add_holiday_error": "[%key:component::workday::config::error::add_holiday_error%]", + "remove_holiday_error": "[%key:component::workday::config::error::remove_holiday_error%]", "already_configured": "Service with this configuration already exist" } }, diff --git a/homeassistant/components/xiaomi_aqara/strings.json b/homeassistant/components/xiaomi_aqara/strings.json index 0944c91fd83..a77b78c5a09 100644 --- a/homeassistant/components/xiaomi_aqara/strings.json +++ b/homeassistant/components/xiaomi_aqara/strings.json @@ -54,8 +54,8 @@ "description": "Plays a specific ringtone. The version of the gateway firmware must be 1.4.1_145 at least.", "fields": { "gw_mac": { - "name": "Gateway MAC", - "description": "MAC address of the Xiaomi Aqara Gateway." + "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]", + "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]" }, "ringtone_id": { "name": "Ringtone ID", @@ -76,8 +76,8 @@ "description": "Hardware address of the device to remove." }, "gw_mac": { - "name": "Gateway MAC", - "description": "MAC address of the Xiaomi Aqara Gateway." + "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]", + "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]" } } }, @@ -86,8 +86,8 @@ "description": "Stops a playing ringtone immediately.", "fields": { "gw_mac": { - "name": "Gateway MAC", - "description": "MAC address of the Xiaomi Aqara Gateway." + "name": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::name%]", + "description": "[%key:component::xiaomi_aqara::services::add_device::fields::gw_mac::description%]" } } } diff --git a/homeassistant/components/xiaomi_miio/strings.json b/homeassistant/components/xiaomi_miio/strings.json index 578d2a96ff8..a9588855818 100644 --- a/homeassistant/components/xiaomi_miio/strings.json +++ b/homeassistant/components/xiaomi_miio/strings.json @@ -53,7 +53,7 @@ }, "options": { "error": { - "cloud_credentials_incomplete": "Cloud credentials incomplete, please fill in username, password and country" + "cloud_credentials_incomplete": "[%key:component::xiaomi_miio::config::error::cloud_credentials_incomplete%]" }, "step": { "init": { @@ -112,7 +112,7 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the xiaomi miio entity." + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" }, "features": { "name": "Features", @@ -140,7 +140,7 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the light entity." + "description": "[%key:component::xiaomi_miio::services::light_set_scene::fields::entity_id::description%]" }, "time_period": { "name": "Time period", @@ -164,7 +164,7 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the entity to act on." + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" } } }, @@ -174,7 +174,7 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the entity to act on." + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" } } }, @@ -184,27 +184,27 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the entity to act on." + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" } } }, "light_eyecare_mode_on": { "name": "Light eyecare mode on", - "description": "Enables the eye fatigue reminder/notification (EYECARE SMART LAMP 2 ONLY).", + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::description%]", "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the entity to act on." + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" } } }, "light_eyecare_mode_off": { "name": "Light eyecare mode off", - "description": "Disables the eye fatigue reminder/notification (EYECARE SMART LAMP 2 ONLY).", + "description": "[%key:component::xiaomi_miio::services::light_reminder_off::description%]", "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the entity to act on." + "description": "[%key:component::xiaomi_miio::services::light_reminder_on::fields::entity_id::description%]" } } }, @@ -236,7 +236,7 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the xiaomi miio entity." + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" } } }, @@ -246,7 +246,7 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the xiaomi miio entity." + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" } } }, @@ -256,10 +256,10 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the xiaomi miio entity." + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Power price." } } @@ -270,10 +270,10 @@ "fields": { "entity_id": { "name": "Entity ID", - "description": "Name of the xiaomi miio entity." + "description": "[%key:component::xiaomi_miio::services::fan_reset_filter::fields::entity_id::description%]" }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Power mode." } } @@ -309,16 +309,16 @@ "description": "Remote controls the vacuum cleaner, only makes one move and then stops.", "fields": { "velocity": { - "name": "Velocity", - "description": "Speed." + "name": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::velocity::name%]", + "description": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::velocity::description%]" }, "rotation": { - "name": "Rotation", + "name": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::rotation::name%]", "description": "Rotation." }, "duration": { "name": "Duration", - "description": "Duration of the movement." + "description": "[%key:component::xiaomi_miio::services::vacuum_remote_control_move::fields::duration::description%]" } } }, diff --git a/homeassistant/components/yale_smart_alarm/strings.json b/homeassistant/components/yale_smart_alarm/strings.json index 5928013e098..ec0c5d0702a 100644 --- a/homeassistant/components/yale_smart_alarm/strings.json +++ b/homeassistant/components/yale_smart_alarm/strings.json @@ -22,7 +22,7 @@ "username": "[%key:common::config_flow::data::username%]", "password": "[%key:common::config_flow::data::password%]", "name": "[%key:common::config_flow::data::name%]", - "area_id": "Area ID" + "area_id": "[%key:component::yale_smart_alarm::config::step::user::data::area_id%]" } } } diff --git a/homeassistant/components/yamaha/strings.json b/homeassistant/components/yamaha/strings.json index ddfee94aa04..ecb69d9fc38 100644 --- a/homeassistant/components/yamaha/strings.json +++ b/homeassistant/components/yamaha/strings.json @@ -5,7 +5,7 @@ "description": "Enables or disables an output port.", "fields": { "port": { - "name": "Port", + "name": "[%key:common::config_flow::data::port%]", "description": "Name of port to enable/disable." }, "enabled": { diff --git a/homeassistant/components/yamaha_musiccast/strings.json b/homeassistant/components/yamaha_musiccast/strings.json index af26ed13b38..c4f28fc750b 100644 --- a/homeassistant/components/yamaha_musiccast/strings.json +++ b/homeassistant/components/yamaha_musiccast/strings.json @@ -45,7 +45,7 @@ }, "zone_surr_decoder_type": { "state": { - "toggle": "Toggle", + "toggle": "[%key:common::action::toggle%]", "auto": "Auto", "dolby_pl": "Dolby ProLogic", "dolby_pl2x_movie": "Dolby ProLogic 2x Movie", @@ -61,7 +61,7 @@ "state": { "manual": "Manual", "auto": "Auto", - "bypass": "Bypass" + "bypass": "[%key:component::yamaha_musiccast::entity::select::zone_tone_control_mode::state::bypass%]" } }, "zone_link_audio_quality": { diff --git a/homeassistant/components/yeelight/strings.json b/homeassistant/components/yeelight/strings.json index 18b762057a7..03a93bd9a5b 100644 --- a/homeassistant/components/yeelight/strings.json +++ b/homeassistant/components/yeelight/strings.json @@ -10,7 +10,7 @@ }, "pick_device": { "data": { - "device": "Device" + "device": "[%key:common::config_flow::data::device%]" } }, "discovery_confirm": { @@ -29,7 +29,7 @@ "step": { "init": { "data": { - "model": "Model", + "model": "[%key:common::generic::model%]", "transition": "Transition Time (ms)", "use_music_mode": "Enable Music Mode", "save_on_change": "Save Status On Change", @@ -44,7 +44,7 @@ "description": "Sets a operation mode.", "fields": { "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "Operation mode." } } @@ -73,7 +73,7 @@ }, "brightness": { "name": "Brightness", - "description": "The brightness value to set." + "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]" } } }, @@ -87,7 +87,7 @@ }, "brightness": { "name": "Brightness", - "description": "The brightness value to set." + "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]" } } }, @@ -119,7 +119,7 @@ }, "brightness": { "name": "Brightness", - "description": "The brightness value to set." + "description": "[%key:component::yeelight::services::set_color_scene::fields::brightness::description%]" } } }, @@ -129,15 +129,15 @@ "fields": { "count": { "name": "Count", - "description": "The number of times to run this flow (0 to run forever)." + "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::count::description%]" }, "action": { "name": "Action", - "description": "The action to take after the flow stops." + "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::action::description%]" }, "transitions": { - "name": "Transitions", - "description": "Array of transitions, for desired effect. Examples https://yeelight.readthedocs.io/en/stable/flow.html." + "name": "[%key:component::yeelight::services::set_color_flow_scene::fields::transitions::name%]", + "description": "[%key:component::yeelight::services::set_color_flow_scene::fields::transitions::description%]" } } }, @@ -165,7 +165,7 @@ }, "action": { "options": { - "off": "Off", + "off": "[%key:common::state::off%]", "recover": "Recover", "stay": "Stay" } diff --git a/homeassistant/components/youtube/strings.json b/homeassistant/components/youtube/strings.json index 1ecc2bc4db8..7f369e9909b 100644 --- a/homeassistant/components/youtube/strings.json +++ b/homeassistant/components/youtube/strings.json @@ -27,9 +27,9 @@ "options": { "step": { "init": { - "description": "Select the channels you want to add.", + "description": "[%key:component::youtube::config::step::channels::description%]", "data": { - "channels": "YouTube channels" + "channels": "[%key:component::youtube::config::step::channels::data::channels%]" } } } diff --git a/homeassistant/components/zamg/strings.json b/homeassistant/components/zamg/strings.json index f0a607f2da7..a92e7aa605e 100644 --- a/homeassistant/components/zamg/strings.json +++ b/homeassistant/components/zamg/strings.json @@ -16,7 +16,7 @@ "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", - "station_not_found": "Station ID not found at zamg" + "station_not_found": "[%key:component::zamg::config::error::station_not_found%]" } } } diff --git a/homeassistant/components/zha/strings.json b/homeassistant/components/zha/strings.json index 50eadfc6667..1e44191a762 100644 --- a/homeassistant/components/zha/strings.json +++ b/homeassistant/components/zha/strings.json @@ -19,7 +19,7 @@ "data": { "radio_type": "Radio Type" }, - "title": "Radio Type", + "title": "[%key:component::zha::config::step::manual_pick_radio_type::data::radio_type%]", "description": "Pick your Zigbee radio type" }, "manual_port_config": { @@ -94,7 +94,7 @@ } }, "intent_migrate": { - "title": "Migrate to a new radio", + "title": "[%key:component::zha::options::step::prompt_migrate_or_reconfigure::menu_options::intent_migrate%]", "description": "Before plugging in your new radio, your old radio needs to be reset. An automatic backup will be performed. If you are using a combined Z-Wave and Zigbee adapter like the HUSBZB-1, this will only reset the Zigbee portion.\n\n*Note: if you are migrating from a **ConBee/RaspBee**, make sure it is running firmware `0x26720700` or newer! Otherwise, some devices may not be controllable after migrating until they are power cycled.*\n\nDo you wish to continue?" }, "instruct_unplug": { @@ -367,8 +367,8 @@ "description": "Parameters to pass to the command." }, "manufacturer": { - "name": "Manufacturer", - "description": "Manufacturer code." + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::name%]", + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::description%]" } } }, @@ -381,24 +381,24 @@ "description": "Hexadecimal address of the group." }, "cluster_id": { - "name": "Cluster ID", + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_id::name%]", "description": "ZCL cluster to send command to." }, "cluster_type": { "name": "Cluster type", - "description": "Type of the cluster." + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::cluster_type::description%]" }, "command": { "name": "Command", - "description": "ID of the command to execute." + "description": "[%key:component::zha::services::issue_zigbee_cluster_command::fields::command::description%]" }, "args": { "name": "Args", - "description": "Arguments to pass to the command." + "description": "[%key:component::zha::services::issue_zigbee_cluster_command::fields::args::description%]" }, "manufacturer": { - "name": "Manufacturer", - "description": "Manufacturer code." + "name": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::name%]", + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::manufacturer::description%]" } } }, @@ -408,11 +408,11 @@ "fields": { "ieee": { "name": "[%key:component::zha::services::permit::fields::ieee::name%]", - "description": "IEEE address for the device." + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::ieee::description%]" }, "mode": { - "name": "Mode", - "description": "The Squawk Mode field is used as a 4-bit enumeration, and can have one of the values shown in Table 8-24 of the ZCL spec - Squawk Mode Field. The exact operation of each mode (how the WD \u201csquawks\u201d) is implementation specific." + "name": "[%key:common::config_flow::data::mode%]", + "description": "The Squawk Mode field is used as a 4-bit enumeration, and can have one of the values shown in Table 8-24 of the ZCL spec - Squawk Mode Field. The exact operation of each mode (how the WD “squawks”) is implementation specific." }, "strobe": { "name": "Strobe", @@ -430,15 +430,15 @@ "fields": { "ieee": { "name": "[%key:component::zha::services::permit::fields::ieee::name%]", - "description": "IEEE address for the device." + "description": "[%key:component::zha::services::set_zigbee_cluster_attribute::fields::ieee::description%]" }, "mode": { - "name": "Mode", + "name": "[%key:common::config_flow::data::mode%]", "description": "The Warning Mode field is used as an 4-bit enumeration, can have one of the values 0-6 defined below in table 8-20 of the ZCL spec. The exact behavior of the WD device in each mode is according to the relevant security standards." }, "strobe": { - "name": "Strobe", - "description": "The Strobe field is used as a 2-bit enumeration, and determines if the visual indication is required in addition to the audible siren, as indicated in Table 8-21 of the ZCL spec. \"0\" means no strobe, \"1\" means strobe. If the strobe field is \u201c1\u201d and the Warning Mode is \u201c0\u201d (\u201cStop\u201d) then only the strobe is activated." + "name": "[%key:component::zha::services::warning_device_squawk::fields::strobe::name%]", + "description": "The Strobe field is used as a 2-bit enumeration, and determines if the visual indication is required in addition to the audible siren, as indicated in Table 8-21 of the ZCL spec. \"0\" means no strobe, \"1\" means strobe. If the strobe field is “1” and the Warning Mode is “0” (“Stop”) then only the strobe is activated." }, "level": { "name": "Level", @@ -450,7 +450,7 @@ }, "duty_cycle": { "name": "Duty cycle", - "description": "Indicates the length of the flash cycle. This allows you to vary the flash duration for different alarm types (e.g., fire, police, burglar). The valid range is 0-100 in increments of 10. All other values must be rounded to the nearest valid value. Strobe calculates a duty cycle over a duration of one second. The ON state must precede the OFF state. For example, if Strobe Duty Cycle Field specifies \u201c40,\u201d, then the strobe flashes ON for 4/10ths of a second and then turns OFF for 6/10ths of a second." + "description": "Indicates the length of the flash cycle. This allows you to vary the flash duration for different alarm types (e.g., fire, police, burglar). The valid range is 0-100 in increments of 10. All other values must be rounded to the nearest valid value. Strobe calculates a duty cycle over a duration of one second. The ON state must precede the OFF state. For example, if Strobe Duty Cycle Field specifies “40,”, then the strobe flashes ON for 4/10ths of a second and then turns OFF for 6/10ths of a second." }, "intensity": { "name": "Intensity", diff --git a/homeassistant/components/zoneminder/strings.json b/homeassistant/components/zoneminder/strings.json index 1e2e41d2741..34e8b845472 100644 --- a/homeassistant/components/zoneminder/strings.json +++ b/homeassistant/components/zoneminder/strings.json @@ -5,7 +5,7 @@ "description": "Sets the ZoneMinder run state.", "fields": { "name": { - "name": "Name", + "name": "[%key:common::config_flow::data::name%]", "description": "The string name of the ZoneMinder run state to set as active." } } diff --git a/homeassistant/components/zwave_js/strings.json b/homeassistant/components/zwave_js/strings.json index 37b4577e5df..3b86cbdd5a4 100644 --- a/homeassistant/components/zwave_js/strings.json +++ b/homeassistant/components/zwave_js/strings.json @@ -74,50 +74,50 @@ } }, "on_supervisor": { - "title": "Select connection method", - "description": "Do you want to use the Z-Wave JS Supervisor add-on?", + "title": "[%key:component::zwave_js::config::step::on_supervisor::title%]", + "description": "[%key:component::zwave_js::config::step::on_supervisor::description%]", "data": { - "use_addon": "Use the Z-Wave JS Supervisor add-on" + "use_addon": "[%key:component::zwave_js::config::step::on_supervisor::data::use_addon%]" } }, "install_addon": { - "title": "The Z-Wave JS add-on installation has started" + "title": "[%key:component::zwave_js::config::step::install_addon::title%]" }, "configure_addon": { - "title": "Enter the Z-Wave JS add-on configuration", - "description": "The add-on will generate security keys if those fields are left empty.", + "title": "[%key:component::zwave_js::config::step::configure_addon::title%]", + "description": "[%key:component::zwave_js::config::step::configure_addon::description%]", "data": { "usb_path": "[%key:common::config_flow::data::usb_path%]", - "s0_legacy_key": "S0 Key (Legacy)", - "s2_authenticated_key": "S2 Authenticated Key", - "s2_unauthenticated_key": "S2 Unauthenticated Key", - "s2_access_control_key": "S2 Access Control Key", + "s0_legacy_key": "[%key:component::zwave_js::config::step::configure_addon::data::s0_legacy_key%]", + "s2_authenticated_key": "[%key:component::zwave_js::config::step::configure_addon::data::s2_authenticated_key%]", + "s2_unauthenticated_key": "[%key:component::zwave_js::config::step::configure_addon::data::s2_unauthenticated_key%]", + "s2_access_control_key": "[%key:component::zwave_js::config::step::configure_addon::data::s2_access_control_key%]", "log_level": "Log level", "emulate_hardware": "Emulate Hardware" } }, "start_addon": { - "title": "The Z-Wave JS add-on is starting." + "title": "[%key:component::zwave_js::config::step::start_addon::title%]" } }, "error": { - "invalid_ws_url": "Invalid websocket URL", + "invalid_ws_url": "[%key:component::zwave_js::config::error::invalid_ws_url%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "addon_info_failed": "Failed to get Z-Wave JS add-on info.", - "addon_install_failed": "Failed to install the Z-Wave JS add-on.", - "addon_set_config_failed": "Failed to set Z-Wave JS configuration.", - "addon_start_failed": "Failed to start the Z-Wave JS add-on.", - "addon_get_discovery_info_failed": "Failed to get Z-Wave JS add-on discovery info.", + "addon_info_failed": "[%key:component::zwave_js::config::abort::addon_info_failed%]", + "addon_install_failed": "[%key:component::zwave_js::config::abort::addon_install_failed%]", + "addon_set_config_failed": "[%key:component::zwave_js::config::abort::addon_set_config_failed%]", + "addon_start_failed": "[%key:component::zwave_js::config::abort::addon_start_failed%]", + "addon_get_discovery_info_failed": "[%key:component::zwave_js::config::abort::addon_get_discovery_info_failed%]", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "different_device": "The connected USB device is not the same as previously configured for this config entry. Please instead create a new config entry for the new device." }, "progress": { - "install_addon": "Please wait while the Z-Wave JS add-on installation finishes. This can take several minutes.", - "start_addon": "Please wait while the Z-Wave JS add-on start completes. This may take some seconds." + "install_addon": "[%key:component::zwave_js::config::progress::install_addon%]", + "start_addon": "[%key:component::zwave_js::config::progress::start_addon%]" } }, "device_automation": { diff --git a/homeassistant/components/zwave_me/strings.json b/homeassistant/components/zwave_me/strings.json index 63add194d08..0c5a1d30976 100644 --- a/homeassistant/components/zwave_me/strings.json +++ b/homeassistant/components/zwave_me/strings.json @@ -14,7 +14,7 @@ }, "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "no_valid_uuid_set": "No valid UUID set" + "no_valid_uuid_set": "[%key:component::zwave_me::config::error::no_valid_uuid_set%]" } } } diff --git a/script/translations/deduplicate.py b/script/translations/deduplicate.py new file mode 100644 index 00000000000..86812318218 --- /dev/null +++ b/script/translations/deduplicate.py @@ -0,0 +1,131 @@ +"""Deduplicate translations in strings.json.""" + + +import argparse +import json +from pathlib import Path + +from homeassistant.const import Platform + +from . import upload +from .develop import flatten_translations +from .util import get_base_arg_parser + + +def get_arguments() -> argparse.Namespace: + """Get parsed passed in arguments.""" + parser = get_base_arg_parser() + parser.add_argument( + "--limit-reference", + "--lr", + action="store_true", + help="Only allow references to same strings.json or common.", + ) + return parser.parse_args() + + +STRINGS_PATH = "homeassistant/components/{}/strings.json" +ENTITY_COMPONENT_PREFIX = tuple(f"component::{domain}::" for domain in Platform) + + +def run(): + """Clean translations.""" + args = get_arguments() + translations = upload.generate_upload_data() + flattened_translations = flatten_translations(translations) + flattened_translations = { + key: value + for key, value in flattened_translations.items() + # Skip existing references + if not value.startswith("[%key:") + } + + primary = {} + secondary = {} + + for key, value in flattened_translations.items(): + if key.startswith("common::"): + primary[value] = key + elif key.startswith(ENTITY_COMPONENT_PREFIX): + primary.setdefault(value, key) + else: + secondary.setdefault(value, key) + + merged = {**secondary, **primary} + + # Questionable translations are ones that are duplicate but are not referenced + # by the common strings.json or strings.json from an entity component. + questionable = set(secondary.values()) + suggest_new_common = set() + update_keys = {} + + for key, value in flattened_translations.items(): + if merged[value] == key or key.startswith("common::"): + continue + + key_integration = key.split("::")[1] + + key_to_reference = merged[value] + key_to_reference_integration = key_to_reference.split("::")[1] + is_common = key_to_reference.startswith("common::") + + # If we want to only add references to own integrations + # but not include entity integrations + if ( + args.limit_reference + and (key_integration != key_to_reference_integration and not is_common) + # Do not create self-references in entity integrations + or key_integration in Platform.__members__.values() + ): + continue + + if ( + # We don't want integrations to reference arbitrary other integrations + key_to_reference in questionable + # Allow reference own integration + and key_to_reference_integration != key_integration + ): + suggest_new_common.add(value) + continue + + update_keys[key] = f"[%key:{key_to_reference}%]" + + if suggest_new_common: + print("Suggested new common words:") + for key in sorted(suggest_new_common): + print(key) + + components = sorted({key.split("::")[1] for key in update_keys}) + + strings = {} + + for component in components: + comp_strings_path = Path(STRINGS_PATH.format(component)) + strings[component] = json.loads(comp_strings_path.read_text(encoding="utf-8")) + + for path, value in update_keys.items(): + parts = path.split("::") + parts.pop(0) + component = parts.pop(0) + to_write = strings[component] + while len(parts) > 1: + try: + to_write = to_write[parts.pop(0)] + except KeyError: + print(to_write) + raise + + to_write[parts.pop(0)] = value + + for component in components: + comp_strings_path = Path(STRINGS_PATH.format(component)) + comp_strings_path.write_text( + json.dumps( + strings[component], + indent=2, + ensure_ascii=False, + ), + encoding="utf-8", + ) + + return 0 diff --git a/script/translations/develop.py b/script/translations/develop.py index a318c7c08bc..3bfaa279e93 100644 --- a/script/translations/develop.py +++ b/script/translations/develop.py @@ -92,6 +92,7 @@ def substitute_reference(value, flattened_translations): def run_single(translations, flattened_translations, integration): """Run the script for a single integration.""" + print(f"Generating translations for {integration}") if integration not in translations["component"]: print("Integration has no strings.json") @@ -114,8 +115,6 @@ def run_single(translations, flattened_translations, integration): download.write_integration_translations() - print(f"Generating translations for {integration}") - def run(): """Run the script.""" diff --git a/script/translations/util.py b/script/translations/util.py index 9839fefd9d5..0c8c8a2a30f 100644 --- a/script/translations/util.py +++ b/script/translations/util.py @@ -13,7 +13,15 @@ def get_base_arg_parser() -> argparse.ArgumentParser: parser.add_argument( "action", type=str, - choices=["clean", "develop", "download", "frontend", "migrate", "upload"], + choices=[ + "clean", + "deduplicate", + "develop", + "download", + "frontend", + "migrate", + "upload", + ], ) parser.add_argument("--debug", action="store_true", help="Enable log output") return parser