Skip to content

Commit 36b158b

Browse files
aapelivclaude
andcommitted
Inline localized name building into the cached response builders
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent c598423 commit 36b158b

2 files changed

Lines changed: 14 additions & 29 deletions

File tree

app/backend/src/couchers/i18n/localize.py

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"""
55

66
import re
7-
from collections.abc import Mapping, Sequence
7+
from collections.abc import Sequence
88
from datetime import date, datetime, time, tzinfo
99
from typing import cast
1010

@@ -13,7 +13,7 @@
1313
from babel.dates import get_datetime_format, get_timezone_name, match_skeleton, parse_pattern
1414
from babel.lists import format_list
1515

16-
from couchers.resources import get_language_dict, get_region_code_iso3166_alpha3_to_alpha2, get_region_dict
16+
from couchers.resources import get_region_code_iso3166_alpha3_to_alpha2
1717

1818

1919
def localize_list(items: Sequence[str], locale: babel.Locale) -> str:
@@ -57,28 +57,6 @@ def try_localize_region_name_from_iso3166(code: str, locale: babel.Locale) -> st
5757
return region_name
5858

5959

60-
def get_localized_language_names(locale: babel.Locale) -> Mapping[str, str]:
61-
"""
62-
Maps every allowed language code to its standalone display name in the given locale
63-
(falling back to English), ordered by code.
64-
"""
65-
return {
66-
code: try_localize_language_name_from_iso639(code, locale, standalone=True) or english_name
67-
for code, english_name in sorted(get_language_dict().items())
68-
}
69-
70-
71-
def get_localized_region_names(locale: babel.Locale) -> Mapping[str, str]:
72-
"""
73-
Maps every region alpha3 code to its display name in the given locale
74-
(falling back to English), ordered by code.
75-
"""
76-
return {
77-
alpha3: try_localize_region_name_from_iso3166(alpha3, locale) or english_name
78-
for alpha3, english_name in sorted(get_region_dict().items())
79-
}
80-
81-
8260
def localize_date(
8361
value: date, locale: babel.Locale, *, abbrev: bool = False, with_year: bool = True, with_day_of_week: bool = False
8462
) -> str:

app/backend/src/couchers/servicers/resources.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
from sqlalchemy.orm import Session
77

88
from couchers.context import CouchersContext
9-
from couchers.i18n.localize import get_localized_language_names, get_localized_region_names
9+
from couchers.i18n.localize import try_localize_language_name_from_iso639, try_localize_region_name_from_iso3166
1010
from couchers.proto import resources_pb2, resources_pb2_grpc
11-
from couchers.resources import get_badge_dict, get_icon, get_terms_of_service
11+
from couchers.resources import get_badge_dict, get_icon, get_language_dict, get_region_dict, get_terms_of_service
1212

1313
logger = logging.getLogger(__name__)
1414

@@ -28,8 +28,11 @@
2828
def _get_regions_res(locale: babel.Locale) -> resources_pb2.GetRegionsRes:
2929
return resources_pb2.GetRegionsRes(
3030
regions=[
31-
resources_pb2.Region(alpha3=alpha3, name=name)
32-
for alpha3, name in get_localized_region_names(locale).items()
31+
resources_pb2.Region(
32+
alpha3=alpha3,
33+
name=try_localize_region_name_from_iso3166(alpha3, locale) or english_name,
34+
)
35+
for alpha3, english_name in sorted(get_region_dict().items())
3336
]
3437
)
3538

@@ -38,7 +41,11 @@ def _get_regions_res(locale: babel.Locale) -> resources_pb2.GetRegionsRes:
3841
def _get_languages_res(locale: babel.Locale) -> resources_pb2.GetLanguagesRes:
3942
return resources_pb2.GetLanguagesRes(
4043
languages=[
41-
resources_pb2.Language(code=code, name=name) for code, name in get_localized_language_names(locale).items()
44+
resources_pb2.Language(
45+
code=code,
46+
name=try_localize_language_name_from_iso639(code, locale, standalone=True) or english_name,
47+
)
48+
for code, english_name in sorted(get_language_dict().items())
4249
]
4350
)
4451

0 commit comments

Comments
 (0)