diff --git a/homeassistant/components/abode/strings.json b/homeassistant/components/abode/strings.json index c0c32d4879..4b98b69eb1 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 95ce968a67..e34a7c8822 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 602138e82f..a7ccdd4820 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 7ec58ccd8e..33ee8bbe4c 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 0ba99c0984..397a41bf24 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 585db4b1fa..d7ac882bb8 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 5235a8bf32..ccdc237414 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 9eb3d14a22..7949c06691 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 b14246a392..b776273230 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 e5948a54a8..8730ffe01d 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 90e4f094ee..276844a880 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 8dfd203c84..ad8ebaa016 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 cb32232067..5143b519d2 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 6c07d1fea5..85556bbcd5 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 cae88ef24c..4b16812625 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 04be198d14..4c7c224bc4 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 aacaf81465..30ad296554 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 3ee3fe7609..641b1dbadf 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 fafd5fb96b..9083ba9379 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 bac4e63e28..f254f7602f 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 4de0f85851..ce622e48aa 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 05ea76f317..78274b0586 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 f56a4e514b..3dc02f5603 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 a64e1be7fc..e82c6a0db1 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 bcd818effb..204f43768c 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 632fe832aa..e32ab875c2 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 2dfb3465d6..d9b8960807 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 7a4ee9d4fc..ef36d46d8b 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 84f05b8838..eeae9aa2e2 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 07c8fa8bdb..1cd67d3b02 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 d646f20f7a..48f347a090 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 713cc84efd..d402e27287 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 49a7388add..c81b9f0ea3 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 5724ad643f..7dc44e47a9 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 512e00237d..468cdebf0b 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 05ae600d4b..fc43fc3000 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 bd2b4f11b9..b2fb73cc02 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 5ef15827eb..c854307dd9 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 e8cdbe23a5..4bc705adfb 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 a2aff2a420..97da526185 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 2ec1fe1bc4..2bbbb22994 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 d8214c3aa8..aa38ee170a 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 776644c7cf..1869673b64 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 7617d56d51..d1d812cb21 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 a7bc0190f5..7e8c32017c 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 dd845fc2a1..7cbb10a236 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 2ecac4a574..d61e8a7b7a 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 c7a6e9637d..0a9677b1f9 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 1c1092ee25..ac057f5c63 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 7fa1569992..b3594f3151 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 2df5398222..2b1b41a2c2 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 83537c6b1d..2bd70750ff 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 bbf521b06e..1c656b46b9 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 d2c196dbfd..f507387e62 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 f416adac02..59630e8793 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 8d2fb38517..8dacb0e632 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 8e2b435483..9ae22090d7 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 e954c0cccf..c45d455631 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 6efc9ec427..22715907a9 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 635fe08ccc..7bd362cf3d 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 2c031dc0a0..124aa07059 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 495c5dad1c..e2a3e9dc7e 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 41eedbe83a..091f0c1823 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 57cb5c3eb5..791b1a2192 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 7420ef7f3f..e47ae0fca8 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 14f723694f..48ebbe5d34 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 6a20c5f8a5..3795508d75 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 50c57e6db3..41826dc6ae 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 2c3f493e2c..aef5dba198 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 41a1640878..ec26e423e0 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 8f9c06f53f..a9ec58f12a 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 9bc7750790..96db11d465 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 e52a0882eb..5ba0812697 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 3ee45a4f46..af2152a88b 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 3ba996adff..37cdd5c034 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 3a3940ffc2..74c2b3ee44 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 be8535daec..4c6c68b957 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 fa7dd9b6bf..f3ea929c9e 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 542df60f13..b39bad14d4 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 3906dcb89f..707d7d71d3 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 11e2f66f91..1f85c20fc7 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 30c22a8ca0..0cebfd4bf5 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 7307caa6bb..e5ffff6816 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 57e7fc6858..ab2d4ad944 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 56ff901853..1ff008653d 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 cd08638c77..e1a6863a19 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 ac06e125b0..21d2bdc84b 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 fe9a4b6453..006fd5ebcc 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 267100eaad..e441832926 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 dfbc0b4e38..9d155ae32a 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 fe9cc3b528..8436d24902 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 7e214df259..a4d9138d88 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 10ebcc68f6..aad9c122d2 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 9a06fb45ad..4f641238a4 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 6471830832..d0e456f142 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 bc546321da..b5ec175d1c 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 3d5ae9b6a6..61f1ca9180 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 9c881e6324..a714d1af00 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 3ff8d4308a..944f2b32fa 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 b100833699..4357276a65 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 ce18a4d153..e73fac97bb 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 21902ad182..75b8375adb 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 73e6a150a0..0e1e71fd82 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 c9cf755ad1..61694074d7 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 bb6ac1879d..2e18ba3654 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 397d7267bc..defe412e96 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 4ecf4cfee4..003531518d 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 ae47b33774..f314ddd47d 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 7e0ff2c99d..30fe5f46d6 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 b6941f5139..2c2def6b7a 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 05d0e716ef..e9125f3301 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 9c4c67bddf..1fd1028299 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 a863b9596b..6fa421e085 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 23a1fb8dfa..e145f5ea8c 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 4dae6cb898..d733e39a0f 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 11f94e7a72..b3d0381527 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 70a3767c88..2cf18248ab 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 2a7bd307ff..f58731a237 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 d23fe1c092..a5b8395b56 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 12d5c3e21f..a29a895243 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 a82284c24a..c4daf32499 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 6b8ddb46c4..5f25623314 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 7b9f6789c7..b9aae585d9 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 53f5f0153f..aa992b4874 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 5e7c61c182..ff50501071 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 26ca5dedd3..64b3f22293 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 6f37bcce85..de61d38ffe 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 3d77619343..2132cab868 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 9f4d0c2e34..6046189ddc 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 783c876fe6..fc48ebce4e 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 17539387a2..24f0d806ed 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 15ca4c36da..5590691e24 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 e0b8cb0cdf..0b0c3d8782 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 6c49fb38d6..85ddf559cf 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 63ebd31b34..3b3e622189 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 939c30766e..e52ab55447 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 5711656ef6..a8e146eeb2 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 79b633e28b..4894bc6437 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 3fc9691cc1..7ea1830416 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 265184e622..eeb2c3d322 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 598a2bddff..ddac4713fa 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 4be806ebbb..9921603508 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 c130feaa62..974e5fb7d3 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 6bf8cbcc16..c005c241d7 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 d6c9f4d53f..724e1a8647 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 878341f23b..bc1e68db02 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 a4df830f1f..d6874f94f9 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 c5b5136e97..7ce1d727b1 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 616a4fc5a1..7af95aab38 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 caec5b8a28..ec2721aba8 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 13fe16aa28..87881e3414 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 292ae55da1..4d2c497dc8 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 48f84ea7ba..aa89d87b6b 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 a3cd4879c6..8827df6a08 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 2ce3c3835a..8474d39114 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 6e1ec9643a..2d297cc829 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 24ed1aaf56..f7ae9c9f23 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 e4b2b40637..c3e1f94915 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 b68359a517..dea370f45b 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 8104fdd285..eeca235ab4 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 8bfd9fb96b..832f3b4f89 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 da53f79b69..504823c4d1 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 41e4052508..bd4a48df91 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 b5279804d0..6daa5c9cb1 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 c3fdcc8f1f..97741bd65b 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 f4443e89f7..ccb7d878a4 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 6afae5ffe7..e441d4695e 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 fd2287e08b..73ac6e08c1 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 b5b6dea93d..7e4590d35a 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 45d0c7de1c..ea052f0b45 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 8fccc3cb9e..588dc3ebf5 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 09b9dd0954..f38989b536 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 b33cef0026..42efaeb053 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 bef853001a..948c079444 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 4e51177910..3bfb58f810 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 335daa68ee..f715529b36 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 314f6f8b4e..0ff64eeda5 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 bb9e1d4d84..b2b270e342 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 985edb0564..a5e7b73e59 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 aff89019e4..94dc9aa219 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 2efa3c9a1c..656219f13b 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 3de74cbbf4..b1c332984a 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 4aaf241536..a217a7a36b 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 0944c91fd8..a77b78c5a0 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 578d2a96ff..a958885581 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 5928013e09..ec0c5d0702 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 ddfee94aa0..ecb69d9fc3 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 af26ed13b3..c4f28fc750 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 18b762057a..03a93bd9a5 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 1ecc2bc4db..7f369e9909 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 f0a607f2da..a92e7aa605 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 50eadfc666..1e44191a76 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 1e2e41d274..34e8b84547 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 37b4577e5d..3b86cbdd5a 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 63add194d0..0c5a1d3097 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 0000000000..8681231821 --- /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 a318c7c08b..3bfaa279e9 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 9839fefd9d..0c8c8a2a30 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