identifier = str(self)
identifier_without_modifier = identifier.partition('@')[0]
- if not localedata.exists(identifier_without_modifier):
+ if localedata.exists(identifier):
+ self.__data_identifier = identifier
+ elif localedata.exists(identifier_without_modifier):
+ self.__data_identifier = identifier_without_modifier
+ else:
raise UnknownLocaleError(identifier)
@classmethod
@property
def _data(self) -> localedata.LocaleDataDict:
if self.__data is None:
- self.__data = localedata.LocaleDataDict(localedata.load(str(self)))
+ self.__data = localedata.LocaleDataDict(localedata.load(self.__data_identifier))
return self.__data
def get_display_name(self, locale: Locale | str | None = None) -> str | None:
assert dates.format_timedelta(timedelta(days=1), format='narrow', locale='pt_BR') == '1 dia'
assert dates.format_timedelta(timedelta(days=30), format='narrow', locale='pt_BR') == '1 mês'
assert dates.format_timedelta(timedelta(days=365), format='narrow', locale='pt_BR') == '1 ano'
+
+
+def test_issue_1089():
+ assert dates.format_datetime(datetime.utcnow(), locale="ja_JP@mod")
+ assert dates.format_datetime(datetime.utcnow(), locale=Locale.parse("ja_JP@mod"))