예제 #1
0
 public static void Init(ILanguageSetting setting)
 {
     if (!string.IsNullOrWhiteSpace(setting.Language))
     {
         CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo(setting.Language);
     }
 }
예제 #2
0
 public static void ChangeLanguage(object item, ILanguageSetting setting)
 {
     if (item is CIItem cii)
     {
         changeLanguage(cii.CultureInfo);
         setting.Language = cii.CultureInfo?.Name;
     }
 }
예제 #3
0
 public static bool ChangeLanguage(this ComboBox combobox, ILanguageSetting setting)
 {
     if (combobox.SelectedItem is CIItem cii)
     {
         if (cii.CultureInfo?.Name == setting.Language || (cii.CultureInfo is null && string.IsNullOrWhiteSpace(setting.Language)))
         {
             return(false);
         }
         ChangeLanguage(combobox.SelectedItem, setting);
         return(true);
     }
     return(false);
 }
예제 #4
0
        public static void SetCultures(this ComboBox combobox, Type type, ILanguageSetting setting)
        {
            ResourceManager rm = type.GetDefaultResourceManager();

            var ass    = EntryAssembly;
            var exeDir = ApplDirectory;

            IEnumerable <CultureInfo> cultures =
                CultureInfo.GetCultures(CultureTypes.NeutralCultures).Where(c =>
            {
                var satDir = Path.Combine(exeDir, c.TwoLetterISOLanguageName);
                return(Directory.Exists(satDir) &&
                       new DirectoryInfo(satDir).GetFiles("*.resources.dll").Count() > 0);
            });

            if (!string.IsNullOrWhiteSpace(NeutralCultureName))
            {
                var neutralCulture = new[] { new CultureInfo(NeutralCultureName) };
                cultures = cultures.Union(neutralCulture);
            }

            combobox.Items.Clear();
            combobox.Items.Add(new CIItem(rm.GetStringEx("automatic")));

            var sortedCultures = cultures.ToList();

            sortedCultures.Sort((x, y) => x.ToString().CompareTo(y.ToString()));

            foreach (CultureInfo culture in sortedCultures)
            {
                combobox.Items.Add(new CIItem(culture));
            }


            if (string.IsNullOrWhiteSpace(setting.Language))
            {
                combobox.SelectedIndex = 0;
                return;
            }

            var idx = sortedCultures.FindIndex(c => c.Name == setting.Language);

            if (idx < 0)
            {
                combobox.SelectedIndex = 0;
            }
            else
            {
                combobox.SelectedIndex = idx + 1;
            }
        }
예제 #5
0
        protected override void OnBindingContextChanged()
        {
            base.OnBindingContextChanged();

            if ((BindingContext as ILanguageSetting) != null)
            {
                model = (BindingContext as ILanguageSetting);

                Model_PropertyChanged(null, new System.ComponentModel.PropertyChangedEventArgs("DefaultLanguageEnglish"));
                Model_PropertyChanged(null, new System.ComponentModel.PropertyChangedEventArgs("DefaultGenderMan"));

                model.PropertyChanged -= Model_PropertyChanged;
                model.PropertyChanged += Model_PropertyChanged;
            }
            else
            {
                model.PropertyChanged -= Model_PropertyChanged;
            }
        }
예제 #6
0
 public LocalizeManager(ILanguageSetting settingStub)
 {
     this.setting = settingStub;
     dic          = LocalizeCSVParser.GetTextDictionary(setting.GetLanguage());
 }