Skip to content

Commit

Permalink
fix(ruyipkg): migrate to new locale fallback logic
Browse files Browse the repository at this point in the history
Fixes: #173
  • Loading branch information
xen0n committed Jul 21, 2024
1 parent b973513 commit 4438994
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
10 changes: 5 additions & 5 deletions ruyi/ruyipkg/msg.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

from jinja2 import BaseLoader, Environment, TemplateNotFound

from ..utils.l10n import match_lang_code


RepoMessagesV1Type = TypedDict(
"RepoMessagesV1Type",
{
Expand Down Expand Up @@ -50,11 +53,8 @@ def from_object(cls, obj: object) -> "RepoMessageStore":
return cls(obj)

def get_message_template(self, msgid: str, lang_code: str) -> str | None:
if lang_code not in self._msgs_by_lang_code:
# TODO: fallback
return None

return self._msgs_by_lang_code[lang_code].get(msgid)
resolved_lang_code = match_lang_code(lang_code, self._msgs_by_lang_code.keys())
return self._msgs_by_lang_code[resolved_lang_code].get(msgid)

def get_jinja(self, lang_code: str) -> Environment:
if lang_code in self._cached_envs_by_lang_code:
Expand Down
9 changes: 3 additions & 6 deletions ruyi/ruyipkg/news.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

from ..config.news import NewsReadStatusStore
from ..utils.porcelain import PorcelainEntity, PorcelainEntityType
from ..utils.l10n import match_lang_code

NEWS_FILENAME_RE = re.compile(r"^(\d+-\d{2}-\d{2}-.*?)(\.[0-9A-Za-z_-]+)?\.md$")

Expand Down Expand Up @@ -127,12 +128,8 @@ def __delitem__(self, lang: str) -> None:
del self._content_by_lang[lang]

def get_content_for_lang(self, lang: str) -> "NewsItemContent":
if lang in self:
return self[lang]

# fallback to the first (or indeed, only) language that's present
# this should be enough for our use
return list(self._content_by_lang.values())[0]
resolved_lang_code = match_lang_code(lang, self._content_by_lang.keys())
return self[resolved_lang_code]

def to_porcelain(self) -> "PorcelainNewsItemV1":
return {
Expand Down

0 comments on commit 4438994

Please sign in to comment.