diff --git a/docs/internationalization/core.md b/docs/internationalization/core.md index a83b06d4..074cc00c 100644 --- a/docs/internationalization/core.md +++ b/docs/internationalization/core.md @@ -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 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: