Skip to content

Commit f48bd51

Browse files
authored
Remove spuriuous ICU errors from the logs (#4132)
2 parents 1d64594 + 509f71a commit f48bd51

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

crates/i18n/src/translator.rs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ const FALLBACKER: LocaleFallbackerWithConfig<'static> = LocaleFallbacker::new().
3535
config
3636
});
3737

38+
/// Construct a [`DataRequest`] for the given locale
39+
pub fn data_request_for_locale(locale: &DataLocale) -> DataRequest<'_> {
40+
let mut metadata = DataRequestMetadata::default();
41+
metadata.silent = true;
42+
DataRequest { locale, metadata }
43+
}
44+
3845
/// Error type for loading translations
3946
#[derive(Debug, Error)]
4047
pub enum LoadError {
@@ -200,19 +207,16 @@ impl Translator {
200207
/// Returns an error if the requested locale is not found, or if the
201208
/// requested key is not found.
202209
pub fn message(&self, locale: &DataLocale, key: &str) -> Result<&Message, DataError> {
203-
let request = DataRequest {
204-
locale,
205-
metadata: DataRequestMetadata::default(),
206-
};
210+
let request = data_request_for_locale(locale);
207211

208212
let tree = self
209213
.translations
210214
.get(locale)
211-
.ok_or(DataErrorKind::MissingLocale.with_req(DATA_KEY, request))?;
215+
.ok_or_else(|| DataErrorKind::MissingLocale.with_req(DATA_KEY, request))?;
212216

213217
let message = tree
214218
.message(key)
215-
.ok_or(DataErrorKind::MissingDataKey.with_req(DATA_KEY, request))?;
219+
.ok_or_else(|| DataErrorKind::MissingDataKey.with_req(DATA_KEY, request))?;
216220

217221
Ok(message)
218222
}
@@ -273,19 +277,16 @@ impl Translator {
273277
let plurals = PluralRules::try_new_cardinal_unstable(&self.plural_provider, locale)?;
274278
let category = plurals.category_for(count);
275279

276-
let request = DataRequest {
277-
locale,
278-
metadata: DataRequestMetadata::default(),
279-
};
280+
let request = data_request_for_locale(locale);
280281

281282
let tree = self
282283
.translations
283284
.get(locale)
284-
.ok_or(DataErrorKind::MissingLocale.with_req(DATA_KEY, request))?;
285+
.ok_or_else(|| DataErrorKind::MissingLocale.with_req(DATA_KEY, request))?;
285286

286287
let message = tree
287288
.pluralize(key, category)
288-
.ok_or(DataErrorKind::MissingDataKey.with_req(DATA_KEY, request))?;
289+
.ok_or_else(|| DataErrorKind::MissingDataKey.with_req(DATA_KEY, request))?;
289290

290291
Ok(message)
291292
}

0 commit comments

Comments
 (0)