@@ -30,7 +30,12 @@ public TranslationProvider()
3030
3131 foreach ( var type in types )
3232 {
33- var languageTranslation = ( ILanguageTranslation ) Activator . CreateInstance ( type ) ;
33+ var languageTranslation = ( ILanguageTranslation ? ) Activator . CreateInstance ( type ) ;
34+ if ( languageTranslation is null )
35+ {
36+ continue ;
37+ }
38+
3439 this . _languageCode2LanguageTranslation . Add ( languageTranslation . LanguageCode , languageTranslation ) ;
3540 }
3641
@@ -296,7 +301,7 @@ public IEnumerable<ILanguageTranslation> GetLanguages()
296301 }
297302
298303 /// <inheritdoc/>
299- public ILanguageTranslation GetLanguage ( string languageCode )
304+ public ILanguageTranslation ? GetLanguage ( string languageCode )
300305 {
301306 if ( Enum . TryParse ( languageCode , true , out LanguageCode languageCodeParsed ) )
302307 {
@@ -307,9 +312,9 @@ public ILanguageTranslation GetLanguage(string languageCode)
307312 }
308313
309314 /// <inheritdoc/>
310- public ILanguageTranslation GetLanguage ( LanguageCode languageCode )
315+ public ILanguageTranslation ? GetLanguage ( LanguageCode languageCode )
311316 {
312- if ( this . _languageCode2LanguageTranslation . TryGetValue ( languageCode , out ILanguageTranslation languageInfo ) )
317+ if ( this . _languageCode2LanguageTranslation . TryGetValue ( languageCode , out ILanguageTranslation ? languageInfo ) )
313318 {
314319 return languageInfo ;
315320 }
@@ -318,9 +323,9 @@ public ILanguageTranslation GetLanguage(LanguageCode languageCode)
318323 }
319324
320325 /// <inheritdoc/>
321- public ICountryTranslation GetCountryTranslation ( Alpha2Code alpha2Code )
326+ public ICountryTranslation ? GetCountryTranslation ( Alpha2Code alpha2Code )
322327 {
323- if ( this . _alpha2Code2CountryTranslation . TryGetValue ( alpha2Code , out ICountryTranslation countryTranslation ) )
328+ if ( this . _alpha2Code2CountryTranslation . TryGetValue ( alpha2Code , out ICountryTranslation ? countryTranslation ) )
324329 {
325330 return countryTranslation ;
326331 }
@@ -329,14 +334,14 @@ public ICountryTranslation GetCountryTranslation(Alpha2Code alpha2Code)
329334 }
330335
331336 /// <inheritdoc/>
332- public string GetCountryTranslatedName ( Alpha2Code alpha2Code , LanguageCode languageCode )
337+ public string ? GetCountryTranslatedName ( Alpha2Code alpha2Code , LanguageCode languageCode )
333338 {
334339 var countryInfo = this . _countryProvider . GetCountry ( alpha2Code ) ;
335340 return this . GetCountryTranslatedName ( countryInfo , languageCode ) ;
336341 }
337342
338343 /// <inheritdoc/>
339- public string GetCountryTranslatedName ( Alpha2Code alpha2Code , string languageCode )
344+ public string ? GetCountryTranslatedName ( Alpha2Code alpha2Code , string languageCode )
340345 {
341346 if ( Enum . TryParse ( languageCode , true , out LanguageCode code ) )
342347 {
@@ -347,14 +352,14 @@ public string GetCountryTranslatedName(Alpha2Code alpha2Code, string languageCod
347352 }
348353
349354 /// <inheritdoc/>
350- public string GetCountryTranslatedName ( Alpha3Code alpha3Code , LanguageCode languageCode )
355+ public string ? GetCountryTranslatedName ( Alpha3Code alpha3Code , LanguageCode languageCode )
351356 {
352357 var countryInfo = this . _countryProvider . GetCountry ( alpha3Code ) ;
353358 return this . GetCountryTranslatedName ( countryInfo , languageCode ) ;
354359 }
355360
356361 /// <inheritdoc/>
357- public string GetCountryTranslatedName ( Alpha3Code alpha3Code , string languageCode )
362+ public string ? GetCountryTranslatedName ( Alpha3Code alpha3Code , string languageCode )
358363 {
359364 if ( Enum . TryParse ( languageCode , true , out LanguageCode code ) )
360365 {
@@ -365,14 +370,14 @@ public string GetCountryTranslatedName(Alpha3Code alpha3Code, string languageCod
365370 }
366371
367372 /// <inheritdoc/>
368- public string GetCountryTranslatedName ( string alpha2or3Code , LanguageCode languageCode )
373+ public string ? GetCountryTranslatedName ( string alpha2or3Code , LanguageCode languageCode )
369374 {
370375 var countryInfo = this . _countryProvider . GetCountry ( alpha2or3Code ) ;
371376 return this . GetCountryTranslatedName ( countryInfo , languageCode ) ;
372377 }
373378
374379 /// <inheritdoc/>
375- public string GetCountryTranslatedName ( string alpha2or3Code , string languageCode )
380+ public string ? GetCountryTranslatedName ( string alpha2or3Code , string languageCode )
376381 {
377382 if ( Enum . TryParse ( languageCode , true , out LanguageCode code ) )
378383 {
@@ -382,11 +387,14 @@ public string GetCountryTranslatedName(string alpha2or3Code, string languageCode
382387 return null ;
383388 }
384389
385- private string GetCountryTranslatedName ( ICountryInfo countryInfo , LanguageCode languageCode )
390+ private string ? GetCountryTranslatedName ( ICountryInfo countryInfo , LanguageCode languageCode )
386391 {
387- this . _alpha2Code2CountryTranslation . TryGetValue ( countryInfo . Alpha2Code , out var countryTranslation ) ;
392+ if ( ! this . _alpha2Code2CountryTranslation . TryGetValue ( countryInfo . Alpha2Code , out var countryTranslation ) )
393+ {
394+ return null ;
395+ }
388396
389- if ( countryTranslation . Translations != null && countryTranslation . Translations . Length > 0 )
397+ if ( countryTranslation . Translations is not null && countryTranslation . Translations . Length > 0 )
390398 {
391399 return countryTranslation . Translations . Where ( x => x . LanguageCode == languageCode ) . Select ( x => x . Name ) . FirstOrDefault ( ) ;
392400 }
@@ -395,25 +403,25 @@ private string GetCountryTranslatedName(ICountryInfo countryInfo, LanguageCode l
395403 }
396404
397405 /// <inheritdoc/>
398- public string GetCountryTranslatedName ( string alpha2or3Code , CultureInfo culture )
406+ public string ? GetCountryTranslatedName ( string alpha2or3Code , CultureInfo culture )
399407 {
400408 return this . GetCountryTranslatedName ( alpha2or3Code , culture . TwoLetterISOLanguageName ) ;
401409 }
402410
403411 /// <inheritdoc/>
404- public string GetCountryTranslatedName ( Alpha2Code alpha2Code , CultureInfo culture )
412+ public string ? GetCountryTranslatedName ( Alpha2Code alpha2Code , CultureInfo culture )
405413 {
406414 return this . GetCountryTranslatedName ( alpha2Code , culture . TwoLetterISOLanguageName ) ;
407415 }
408416
409417 /// <inheritdoc/>
410- public string GetCountryTranslatedName ( Alpha3Code alpha3Code , CultureInfo culture )
418+ public string ? GetCountryTranslatedName ( Alpha3Code alpha3Code , CultureInfo culture )
411419 {
412420 return this . GetCountryTranslatedName ( alpha3Code , culture . TwoLetterISOLanguageName ) ;
413421 }
414422
415423 /// <inheritdoc/>
416- public string GetCountryTranslatedName ( string alpha2or3Code , CultureInfo culture , LanguageCode defaultLanguageCode )
424+ public string ? GetCountryTranslatedName ( string alpha2or3Code , CultureInfo culture , LanguageCode defaultLanguageCode )
417425 {
418426 var name = this . GetCountryTranslatedName ( alpha2or3Code , culture ) ;
419427 if ( string . IsNullOrWhiteSpace ( name ) )
@@ -424,7 +432,7 @@ public string GetCountryTranslatedName(string alpha2or3Code, CultureInfo culture
424432 }
425433
426434 /// <inheritdoc/>
427- public string GetCountryTranslatedName ( Alpha2Code alpha2Code , CultureInfo culture , LanguageCode defaultLanguageCode )
435+ public string ? GetCountryTranslatedName ( Alpha2Code alpha2Code , CultureInfo culture , LanguageCode defaultLanguageCode )
428436 {
429437 var name = this . GetCountryTranslatedName ( alpha2Code , culture ) ;
430438 if ( string . IsNullOrWhiteSpace ( name ) )
@@ -435,7 +443,7 @@ public string GetCountryTranslatedName(Alpha2Code alpha2Code, CultureInfo cultur
435443 }
436444
437445 /// <inheritdoc/>
438- public string GetCountryTranslatedName ( Alpha3Code alpha3Code , CultureInfo culture , LanguageCode defaultLanguageCode )
446+ public string ? GetCountryTranslatedName ( Alpha3Code alpha3Code , CultureInfo culture , LanguageCode defaultLanguageCode )
439447 {
440448 var name = this . GetCountryTranslatedName ( alpha3Code , culture ) ;
441449 if ( string . IsNullOrWhiteSpace ( name ) )
0 commit comments