mirror of
https://github.com/home-assistant/developers.home-assistant.git
synced 2025-07-19 07:16:29 +00:00
Document entity attribute translations (#1591)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
9815c59189
commit
3c8bdb422a
@ -158,6 +158,82 @@ If your integration provides entities under its domain, you will want to transla
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Entity state attributes
|
||||||
|
|
||||||
|
:::info
|
||||||
|
Translation of entity state attributes also requires frontend support, which is currently only available for `climate` entities.
|
||||||
|
:::
|
||||||
|
|
||||||
|
Integrations can provide translations for its entities' state attributes under other integrations like sensor if the base entity component does not provide translations, or if the translation provided by the base entity component do not match the integration's entity. To do this, provide an `entity` dictionary, that contains translations for entity state attributes and set the entity's `translation_key` property to a key under a domain in the `entity` dictionary.
|
||||||
|
|
||||||
|
To differentiate entities and their translations, provide different translation keys. The following example `strings.json` is for a `demo` domain `climate` entity with its `translation_key` property set to `ubercool`, which has custom `fan_mode` and `swing_mode` settings:
|
||||||
|
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"entity": {
|
||||||
|
"climate": {
|
||||||
|
"ubercool": {
|
||||||
|
"state_attributes": {
|
||||||
|
"fan_mode": {
|
||||||
|
"state": {
|
||||||
|
"auto_high": "Auto High",
|
||||||
|
"auto_low": "Auto Low",
|
||||||
|
"on_high": "On High",
|
||||||
|
"on_low": "On Low"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"swing_mode": {
|
||||||
|
"state": {
|
||||||
|
"1": "1",
|
||||||
|
"2": "2",
|
||||||
|
"3": "3",
|
||||||
|
"auto": "Auto",
|
||||||
|
"off": "Off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Entity attribute name and state of entity components
|
||||||
|
|
||||||
|
:::info
|
||||||
|
Translation of entity attribute names and states also requires frontend support, which is currently only available for `climate` entities.
|
||||||
|
:::
|
||||||
|
|
||||||
|
If your integration provides entities under its domain, you will want to translate the name of entity attributes and also entity state attributes. You do this by offering a `state_attributes` dictionary, that contains translations for entity attributes with different device classes. The key `_` is used for entities without a device class.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"state_attributes": {
|
||||||
|
"_": {
|
||||||
|
"aux_heat": { "name": "Aux heat" },
|
||||||
|
"current_humidity": { "name": "Current humidity" },
|
||||||
|
"current_temperature": { "name": "Current temperature" },
|
||||||
|
"fan_mode": {
|
||||||
|
"name": "Fan mode",
|
||||||
|
"state": {
|
||||||
|
"off": "[%key:common::state::off%]",
|
||||||
|
"on": "[%key:common::state::on%]",
|
||||||
|
"auto": "Auto",
|
||||||
|
"low": "Low",
|
||||||
|
"medium": "Medium",
|
||||||
|
"high": "High",
|
||||||
|
"top": "Top",
|
||||||
|
"middle": "Middle",
|
||||||
|
"focus": "Focus",
|
||||||
|
"diffuse": "Diffuse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Test translations
|
## Test translations
|
||||||
|
|
||||||
In order to test changes to translation files, the translation strings must be compiled into Home Assistant’s translation directories by running the following script:
|
In order to test changes to translation files, the translation strings must be compiled into Home Assistant’s translation directories by running the following script:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user