@@ -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 ) ]
4047pub 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