mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 22:27:07 +00:00
Translate exception messages in myUplink (#131626)
* Translate exceptions * Add one more translation * Adding more translations * Make message easier to understand for end-user * Clarify message * Address review comments
This commit is contained in:
parent
14f4f8aeb5
commit
5adb7f4542
@ -55,13 +55,25 @@ async def async_setup_entry(
|
|||||||
await auth.async_get_access_token()
|
await auth.async_get_access_token()
|
||||||
except ClientResponseError as err:
|
except ClientResponseError as err:
|
||||||
if err.status in {HTTPStatus.UNAUTHORIZED, HTTPStatus.FORBIDDEN}:
|
if err.status in {HTTPStatus.UNAUTHORIZED, HTTPStatus.FORBIDDEN}:
|
||||||
raise ConfigEntryAuthFailed from err
|
raise ConfigEntryAuthFailed(
|
||||||
raise ConfigEntryNotReady from err
|
translation_domain=DOMAIN,
|
||||||
|
translation_key="config_entry_auth_failed",
|
||||||
|
) from err
|
||||||
|
raise ConfigEntryNotReady(
|
||||||
|
translation_domain=DOMAIN,
|
||||||
|
translation_key="config_entry_not_ready",
|
||||||
|
) from err
|
||||||
except ClientError as err:
|
except ClientError as err:
|
||||||
raise ConfigEntryNotReady from err
|
raise ConfigEntryNotReady(
|
||||||
|
translation_domain=DOMAIN,
|
||||||
|
translation_key="config_entry_not_ready",
|
||||||
|
) from err
|
||||||
|
|
||||||
if set(config_entry.data["token"]["scope"].split(" ")) != set(OAUTH2_SCOPES):
|
if set(config_entry.data["token"]["scope"].split(" ")) != set(OAUTH2_SCOPES):
|
||||||
raise ConfigEntryAuthFailed("Incorrect OAuth2 scope")
|
raise ConfigEntryAuthFailed(
|
||||||
|
translation_domain=DOMAIN,
|
||||||
|
translation_key="incorrect_oauth2_scope",
|
||||||
|
)
|
||||||
|
|
||||||
# Setup MyUplinkAPI and coordinator for data fetch
|
# Setup MyUplinkAPI and coordinator for data fetch
|
||||||
api = MyUplinkAPI(auth)
|
api = MyUplinkAPI(auth)
|
||||||
|
@ -10,7 +10,7 @@ from homeassistant.exceptions import HomeAssistantError
|
|||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
from . import MyUplinkConfigEntry, MyUplinkDataCoordinator
|
from . import MyUplinkConfigEntry, MyUplinkDataCoordinator
|
||||||
from .const import F_SERIES
|
from .const import DOMAIN, F_SERIES
|
||||||
from .entity import MyUplinkEntity
|
from .entity import MyUplinkEntity
|
||||||
from .helpers import find_matching_platform, skip_entity, transform_model_series
|
from .helpers import find_matching_platform, skip_entity, transform_model_series
|
||||||
|
|
||||||
@ -137,7 +137,13 @@ class MyUplinkNumber(MyUplinkEntity, NumberEntity):
|
|||||||
)
|
)
|
||||||
except ClientError as err:
|
except ClientError as err:
|
||||||
raise HomeAssistantError(
|
raise HomeAssistantError(
|
||||||
f"Failed to set new value {value} for {self.point_id}/{self.entity_id}"
|
translation_domain=DOMAIN,
|
||||||
|
translation_key="set_number_error",
|
||||||
|
translation_placeholders={
|
||||||
|
"entity": self.entity_id,
|
||||||
|
"point": self.point_id,
|
||||||
|
"value": str(value),
|
||||||
|
},
|
||||||
) from err
|
) from err
|
||||||
|
|
||||||
await self.coordinator.async_request_refresh()
|
await self.coordinator.async_request_refresh()
|
||||||
|
@ -78,9 +78,7 @@ rules:
|
|||||||
It is not feasible to use the API names as translation keys as they can change between
|
It is not feasible to use the API names as translation keys as they can change between
|
||||||
firmware and API upgrades and the number of appliance models and firmware releases are huge.
|
firmware and API upgrades and the number of appliance models and firmware releases are huge.
|
||||||
Entity names translations are therefore not implemented for the time being.
|
Entity names translations are therefore not implemented for the time being.
|
||||||
exception-translations:
|
exception-translations: done
|
||||||
status: todo
|
|
||||||
comment: PR pending review \#191937
|
|
||||||
icon-translations: done
|
icon-translations: done
|
||||||
reconfiguration-flow: done
|
reconfiguration-flow: done
|
||||||
repair-issues:
|
repair-issues:
|
||||||
|
@ -12,6 +12,7 @@ from homeassistant.exceptions import HomeAssistantError
|
|||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
from . import MyUplinkConfigEntry, MyUplinkDataCoordinator
|
from . import MyUplinkConfigEntry, MyUplinkDataCoordinator
|
||||||
|
from .const import DOMAIN
|
||||||
from .entity import MyUplinkEntity
|
from .entity import MyUplinkEntity
|
||||||
from .helpers import find_matching_platform, skip_entity
|
from .helpers import find_matching_platform, skip_entity
|
||||||
|
|
||||||
@ -86,7 +87,13 @@ class MyUplinkSelect(MyUplinkEntity, SelectEntity):
|
|||||||
)
|
)
|
||||||
except ClientError as err:
|
except ClientError as err:
|
||||||
raise HomeAssistantError(
|
raise HomeAssistantError(
|
||||||
f"Failed to set new option {self.options_rev[option]} for {self.point_id}/{self.entity_id}"
|
translation_domain=DOMAIN,
|
||||||
|
translation_key="set_select_error",
|
||||||
|
translation_placeholders={
|
||||||
|
"entity": self.entity_id,
|
||||||
|
"option": self.options_rev[option],
|
||||||
|
"point": self.point_id,
|
||||||
|
},
|
||||||
) from err
|
) from err
|
||||||
|
|
||||||
await self.coordinator.async_request_refresh()
|
await self.coordinator.async_request_refresh()
|
||||||
|
@ -42,5 +42,25 @@
|
|||||||
"name": "Status"
|
"name": "Status"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"exceptions": {
|
||||||
|
"config_entry_auth_failed": {
|
||||||
|
"message": "Error while logging in to the API. Please check your credentials."
|
||||||
|
},
|
||||||
|
"config_entry_not_ready": {
|
||||||
|
"message": "Error while loading the integration."
|
||||||
|
},
|
||||||
|
"incorrect_oauth2_scope": {
|
||||||
|
"message": "Stored permissions are invalid. Please login again to update permissions."
|
||||||
|
},
|
||||||
|
"set_number_error": {
|
||||||
|
"message": "Failed to set new value {value} for {point}/{entity}."
|
||||||
|
},
|
||||||
|
"set_select_error": {
|
||||||
|
"message": "Failed to set new option {option} for {point}/{entity}."
|
||||||
|
},
|
||||||
|
"set_switch_error": {
|
||||||
|
"message": "Failed to set state for {entity}."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ from homeassistant.exceptions import HomeAssistantError
|
|||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
from . import MyUplinkConfigEntry, MyUplinkDataCoordinator
|
from . import MyUplinkConfigEntry, MyUplinkDataCoordinator
|
||||||
from .const import F_SERIES
|
from .const import DOMAIN, F_SERIES
|
||||||
from .entity import MyUplinkEntity
|
from .entity import MyUplinkEntity
|
||||||
from .helpers import find_matching_platform, skip_entity, transform_model_series
|
from .helpers import find_matching_platform, skip_entity, transform_model_series
|
||||||
|
|
||||||
@ -129,7 +129,11 @@ class MyUplinkDevicePointSwitch(MyUplinkEntity, SwitchEntity):
|
|||||||
)
|
)
|
||||||
except aiohttp.ClientError as err:
|
except aiohttp.ClientError as err:
|
||||||
raise HomeAssistantError(
|
raise HomeAssistantError(
|
||||||
f"Failed to set state for {self.entity_id}"
|
translation_domain=DOMAIN,
|
||||||
|
translation_key="set_switch_error",
|
||||||
|
translation_placeholders={
|
||||||
|
"entity": self.entity_id,
|
||||||
|
},
|
||||||
) from err
|
) from err
|
||||||
|
|
||||||
await self.coordinator.async_request_refresh()
|
await self.coordinator.async_request_refresh()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user