Add multilingual support#171
Conversation
Add translation_key to sensor, select, and switch entity descriptions, removing hardcoded name= strings. Add fan purifier preset_mode states to en.json.
Korean is human-verified; the others are machine-translated and may need refinement.
Note which languages are verified vs. machine-translated and invite PR contributions for corrections.
|
ruff and unit tests all pass. I noticed a bug in the screenshot where the dehumidifier's current humidity (현재 습도; displayed as "currently" in English) is shown as current temperature (현재 온도). This is a bug in the Home Assistant frontend (https://github.com/home-assistant/frontend). I plan to submit a PR to that repository for this issue. |
|
Do you see translations for other integrations in Korean? I am not seeing any Korean (or translation or French, Dutch, and Japanese) json in HomeAssistant. |
This doesn't seem to be a direct question about my PR, right? Lokalise appears to be a commercial solution separate from Home Assistant. It seems to provide AI translation, but Home Assistant doesn't appear to rely solely on automatic translation — it seems to involve contributor participation and verification for translations. To participate in translation, you need to sign up for Lokalise separately. Lokalise looks like the following. Just sharing for reference. It appears that HA core generates the multilingual JSON files via Lokalise at build time and includes them in the whl package. Therefore, the generated multilingual JSONs are not stored in the core repository. For reference, below is an example of searching for fr.json in the HA installation in my virtual env: bash(0db) ~/venv/hass $ uv pip show homeassistant
Using Python 3.13.7 environment at:
Name: homeassistant
Version: 2026.2.3
Location: /home/kyet/venv/hass/lib/python3.13/site-packages
.. snip ..
(0db) ~/venv/hass $ find ./lib/python3.13/site-packages/homeassistant/components/ -name fr.json | wc -l
842
(0db) ~/venv/hass $ find ./lib/python3.13/site-packages/homeassistant/components/ -name fr.json
./lib/python3.13/site-packages/homeassistant/components/schedule/translations/fr.json
./lib/python3.13/site-packages/homeassistant/components/justnimbus/translations/fr.json
./lib/python3.13/site-packages/homeassistant/components/opengarage/translations/fr.json
./lib/python3.13/site-packages/homeassistant/components/nzbget/translations/fr.json
.. snip ..I'm not sure if this is what you were asking about. Does this answer your question? |
|
Thanks. I was not aware of that and definitely couldn't test it on my instance. |


Moved all entity names and state labels into en.json (using translation_key) and added translations for Korean, German, French, Dutch, and Japanese via an AI translator. Korean was reviewed by me, but the other languages may contain awkward phrasing or errors (noted in README).
To decide which languages to translate, I looked into where Winix sells its products — it has sales subsidiaries in the US, Europe, and Australia and also sells in Japan, while China appears to host only manufacturing facilities with no direct sales presence.
Below is what it looks like with the Korean locale:
