Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class RubberduckLocalization
- {
- private static readonly Dictionary<LocalizationResource, object> localizationResources = new Dictionary<LocalizationResource, object>()
- {
- { LocalizationResource.RubberduckUI, new RubberduckUI() }
- };
- private static readonly Dictionary<LocalizationResource, ResourceDictionary> resourceDictionaries = new Dictionary<LocalizationResource, ResourceDictionary>();
- public static ResourceDictionary GetResourceDictionary(LocalizationResource translationResource)
- {
- Refresh(translationResource);
- return resourceDictionaries[translationResource];
- }
- public static void Refresh(LocalizationResource translationResource)
- {
- ResourceDictionary resourceDictionary;
- if (!resourceDictionaries.TryGetValue(translationResource, out resourceDictionary))
- {
- resourceDictionary = new ResourceDictionary();
- resourceDictionaries.Add(translationResource, resourceDictionary);
- }
- else
- {
- resourceDictionary.Clear();
- }
- object source = localizationResources[translationResource];
- foreach (PropertyInfo property in source.GetType().GetProperties(BindingFlags.Public | BindingFlags.Static))
- {
- if (property.PropertyType == typeof(string))
- {
- string name = property.Name;
- string value = (string)property.GetValue(source);
- resourceDictionary.Add("TEXT_" + name, value);
- }
- }
- }
- }
- public enum LocalizationResource
- {
- RubberduckUI
- }
- // Example WPF GUI ctor
- public InspectionResultsControl()
- {
- InitializeComponent();
- Resources.MergedDictionaries.Add(RubberduckLocalization.GetResourceDictionary(LocalizationResource.RubberduckUI));
- _inspectionTypeGroupsViewSource = (CollectionViewSource)FindResource("InspectionTypeGroupViewSource");
- _inspectionTypeGroupsTemplate = (DataTemplate)FindResource("InspectionTypeGroupsTemplate");
- _moduleGroupsViewSource = (CollectionViewSource)FindResource("CodeModuleGroupViewSource");
- _moduleGroupsTemplate = (DataTemplate)FindResource("CodeModuleGroupsTemplate");
- Loaded += InspectionResultsControl_Loaded;
- }
- // Changes to App.cs
- RubberduckUI.Culture = CultureInfo.GetCultureInfo(_config.UserSettings.LanguageSetting.Code);
- RubberduckLocalization.Refresh(LocalizationResource.RubberduckUI);
- _appMenus.Localize();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement