fix: translate_weather() проверяет точное совпадение перед substring
Точное совпадение (case-insensitive) теперь имеет приоритет над substring-matching, что исключает ложные совпадения вида 'Heavy rain' внутри 'Heavy rain shower'.
This commit is contained in:
parent
0c6e10a482
commit
3bea7abaea
@ -174,10 +174,19 @@ _WEATHER_MAPPING = [
|
||||
def translate_weather(en: Optional[str]) -> str:
|
||||
if not en or not en.strip():
|
||||
return "—"
|
||||
en_lower = en.strip().lower()
|
||||
en_stripped = en.strip()
|
||||
en_lower = en_stripped.lower()
|
||||
|
||||
# Сначала проверяем точное совпадение (приоритет над substring)
|
||||
for key, value in _WEATHER_MAPPING:
|
||||
if key.lower() == en_lower:
|
||||
return value
|
||||
|
||||
# Fallback: substring-matching (отсортировано по убыванию длины ключа)
|
||||
for key, value in _WEATHER_MAPPING:
|
||||
if key.lower() in en_lower:
|
||||
return value
|
||||
|
||||
return en
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user