Language codes for Hebrew (#93681)
* Language codes for Hebrew There is 2 optional code for Hebrew: he-IL is the new code iw-IL is the old code , the google cloud STT for example is using the old code (iw) * Update language.py * Update test_language.py * Update test_language.py * Update test_language.py * Simplify duplicate language check --------- Co-authored-by: Paulus Schoutsen <balloob@gmail.com>pull/93842/head
parent
bfec3d68dd
commit
4a3f341444
|
@ -10,6 +10,14 @@ import re
|
|||
from homeassistant.const import MATCH_ALL
|
||||
|
||||
SEPARATOR_RE = re.compile(r"[-_]")
|
||||
SAME_LANGUAGES = (
|
||||
# no = spoken Norwegian
|
||||
# nb = written Norwegian (Bokmål)
|
||||
("nb", "no"),
|
||||
# he = Hebrew new code
|
||||
# iw = Hebrew old code
|
||||
("he", "iw"),
|
||||
)
|
||||
|
||||
|
||||
def preferred_regions(
|
||||
|
@ -60,9 +68,7 @@ def is_language_match(lang_1: str, lang_2: str) -> bool:
|
|||
# Exact match
|
||||
return True
|
||||
|
||||
if {lang_1, lang_2} == {"no", "nb"}:
|
||||
# no = spoken Norwegian
|
||||
# nb = written Norwegian (Bokmål)
|
||||
if tuple(sorted([lang_1, lang_2])) in SAME_LANGUAGES:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
|
|
@ -226,3 +226,39 @@ def test_no_nb_prefer_exact_regions() -> None:
|
|||
"no-AA",
|
||||
["en-US", "en-GB", "no-AA", "nb-AA"],
|
||||
) == ["no-AA", "nb-AA"]
|
||||
|
||||
|
||||
def test_he_iw_same() -> None:
|
||||
"""Test that the he/iw are interchangeable."""
|
||||
assert language.matches(
|
||||
"he",
|
||||
["en-US", "en-GB", "iw"],
|
||||
) == ["iw"]
|
||||
assert language.matches(
|
||||
"iw",
|
||||
["en-US", "en-GB", "he"],
|
||||
) == ["he"]
|
||||
|
||||
|
||||
def test_he_iw_prefer_exact() -> None:
|
||||
"""Test that the exact language is preferred even if an interchangeable language is available."""
|
||||
assert language.matches(
|
||||
"he",
|
||||
["en-US", "en-GB", "iw", "he"],
|
||||
) == ["he", "iw"]
|
||||
assert language.matches(
|
||||
"he",
|
||||
["en-US", "en-GB", "he", "iw"],
|
||||
) == ["he", "iw"]
|
||||
|
||||
|
||||
def test_he_iw_prefer_exact_regions() -> None:
|
||||
"""Test that the exact language/region is preferred."""
|
||||
assert language.matches(
|
||||
"he-IL",
|
||||
["en-US", "en-GB", "iw-IL", "he-IL"],
|
||||
) == ["he-IL", "iw-IL"]
|
||||
assert language.matches(
|
||||
"he-IL",
|
||||
["en-US", "en-GB", "he-IL", "iw-IL"],
|
||||
) == ["he-IL", "iw-IL"]
|
||||
|
|
Loading…
Reference in New Issue