BetterExplorer.App.SelectCulture C# (CSharp) Method

SelectCulture() public method

Sets the UI language
public SelectCulture ( String culture ) : void
culture String Language code (ex. "en-EN")
return void
    public void SelectCulture(String culture) {
      if (culture == ":null:") {
        culture = CultureInfo.InstalledUICulture.Name;
      }

      // List all our resources      
      var dictionaryList = new List<ResourceDictionary>(Current.Resources.MergedDictionaries);

      // We want our specific culture      
      String requestedCulture = $"Locale.{culture}.xaml";
      ResourceDictionary resourceDictionary = dictionaryList.FirstOrDefault(d => d.Source.OriginalString == "/BetterExplorer;component/Translation/" + requestedCulture);
      if (resourceDictionary == null) {
        // If not found, we select our default language         
        requestedCulture = "DefaultLocale.xaml";
        resourceDictionary = dictionaryList.FirstOrDefault(d => d.Source.OriginalString == "/BetterExplorer;component/Translation/" + requestedCulture);
      }

      // If we have the requested resource, remove it from the list and place at the end.\      
      // Then this language will be our string table to use.      
      if (resourceDictionary != null) {
        Current.Resources.MergedDictionaries.Remove(resourceDictionary);
        Current.Resources.MergedDictionaries.Add(resourceDictionary);
      }

      // Inform the threads of the new culture    
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
      Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
    }

Same methods

App::SelectCulture ( String culture, String filename ) : void