private static void CreatePluralProvider(string forcedCultureName = null) { lock (_objLock) { if (_pluralProvider == null) { var cultureToUse = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName; if (!string.IsNullOrEmpty(forcedCultureName)) { try { var forcedCulture = new CultureInfo(forcedCultureName)?.TwoLetterISOLanguageName; if (!string.IsNullOrEmpty(forcedCulture)) { cultureToUse = forcedCulture; } } catch { } } _pluralProvider = PluralHelper.GetPluralChooser(cultureToUse); } } }
private static void Initialize() { var providers = Factory.GetProviders <ProviderBase, ProviderCollectionBase <ProviderBase> >("quantus", out var defaultProvider); if (!(defaultProvider is IPluralProvider defaultSearchResultFormatter)) { throw new ConfigurationErrorsException("The default quantus provider must derive from IPluralProvider"); } _all = providers; _defaultPluralProvider = defaultSearchResultFormatter; }
public static string GetPlural(this ResourceManager resource, string key, decimal number) #endif { if (_pluralProvider == null) { _pluralProvider = PluralHelper.GetPluralChooser(new CultureInfo(resource.GetString("ResourceLanguage"))); } string selectedSentence = null; var pluralType = _pluralProvider.ComputePlural(number); try { switch (pluralType) { case PluralTypeEnum.ZERO: selectedSentence = resource.GetString(key + "_Zero"); break; case PluralTypeEnum.ONE: selectedSentence = resource.GetString(key + "_One"); break; case PluralTypeEnum.OTHER: selectedSentence = resource.GetString(key + "_Other"); break; case PluralTypeEnum.TWO: selectedSentence = resource.GetString(key + "_Two"); break; case PluralTypeEnum.FEW: selectedSentence = resource.GetString(key + "_Few"); break; case PluralTypeEnum.MANY: selectedSentence = resource.GetString(key + "_Many"); break; } } catch { } return(selectedSentence ?? ""); }
public static string GetPlural(this ResourceManager resource, string key, decimal number) #endif { if (_pluralProvider == null) { lock (_objLock) { if (_pluralProvider == null) { CultureInfo cultureToUse = null; var forcedCulture = resource.GetString("ResourceLanguage"); if (!string.IsNullOrEmpty(forcedCulture)) { try { cultureToUse = new CultureInfo(forcedCulture); } catch { cultureToUse = new CultureInfo(CultureInfo.CurrentUICulture.Name); } } else { cultureToUse = new CultureInfo(CultureInfo.CurrentUICulture.Name); } _pluralProvider = PluralHelper.GetPluralChooser(cultureToUse); } } } string selectedSentence = null; var pluralType = _pluralProvider.ComputePlural(number); try { switch (pluralType) { case PluralTypeEnum.ZERO: selectedSentence = resource.GetString(key + "_Zero"); break; case PluralTypeEnum.ONE: selectedSentence = resource.GetString(key + "_One"); break; case PluralTypeEnum.OTHER: selectedSentence = resource.GetString(key + "_Other"); break; case PluralTypeEnum.TWO: selectedSentence = resource.GetString(key + "_Two"); break; case PluralTypeEnum.FEW: selectedSentence = resource.GetString(key + "_Few"); break; case PluralTypeEnum.MANY: selectedSentence = resource.GetString(key + "_Many"); break; } } catch { } return(selectedSentence ?? ""); }