コード例 #1
0
        internal static async Task SaveUserSetting(UserSetting setting)
        {
            try
            {
                await JsonHelper.JsonSerializeAsync(setting, _userSettingFilePath);

                bool lanChanged = false;
                if (UserSetting.General.CurrentLan != setting.General.CurrentLan)
                {
                    lanChanged = true;
                }

                //更新内存对象
                UserSetting = setting;

                //多语言变化
                if (lanChanged)
                {
                    CultureChanged?.Invoke(null, null);
                }

                await ApplySetting(UserSetting);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
            }
        }
コード例 #2
0
        private void UpdateCulture()
        {
            Culture = new CultureInfo(SystemSettings.LocaleCountry.Replace('_', '-'));
            Logger.Info($"CurrentCulture: {Culture?.ToString()}");

            OnPropertyChanged(nameof(Culture));
            CultureChanged?.Invoke(this, new CultureChangedEventArgs(Culture));
        }
コード例 #3
0
 private void RaiseCultureChangedEvent()
 {
     CultureChanged?.Invoke(this, new LanguageChangedEventArgs()
     {
         Culture   = _culture,
         UiCulture = _uiCulture,
     });
 }
コード例 #4
0
        void LanguagesComboBox_SelectionChanged(object sender, EventArgs e)
        {
            var currentIndex = (int)languagesComboBox.SelectedIndex;

            if (currentIndex > -1)
            {
                var selected = cultureInfos[currentIndex];
                CultureChanged?.Invoke(this, selected);
            }
        }
コード例 #5
0
        public void SetCulture(string name)
        {
            if (CultureInfo.CurrentUICulture.Name == name)
            {
                return;
            }

            CultureInfo.CurrentUICulture = CultureInfo.GetCultureInfo(name);
            CultureInfo.CurrentCulture   = CultureInfo.GetCultureInfo(name);
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Item[]"));
            CultureChanged?.Invoke(this, new CultureChangedEventArgs(name));
        }
コード例 #6
0
        public void SetCulture(string name)
        {
            var culture = CultureInfo.CreateSpecificCulture(name);

            CultureInfo.DefaultThreadCurrentCulture   = culture;
            CultureInfo.DefaultThreadCurrentUICulture = culture;
            Thread.CurrentThread.CurrentCulture       = culture;
            Thread.CurrentThread.CurrentUICulture     = culture;
            _currentResources = null;

            CultureChanged?.Invoke(this, new EventArgs());
        }
コード例 #7
0
        /// <summary>
        /// Инициирует изменение культуры приложения.
        /// </summary>
        /// <param name="culture">Получает или задает объект, который представляет язык и региональные параметры, используемые приложением.</param>
        /// <param name="uiCulture">Язык и региональные параметры, используемые диспетчером ресурсов для поиска ресурсов, связанных с языком и региональными параметрами, во время выполнения.</param>
        public void ChangeCulture(CultureInfo culture, CultureInfo uiCulture)
        {
            if (culture is null)
            {
                throw new ArgumentNullException(nameof(culture));
            }
            if (uiCulture is null)
            {
                throw new ArgumentNullException(nameof(uiCulture));
            }

            CurrentCulture   = culture;
            CurrentUICulture = uiCulture;

            CultureInfo.CurrentCulture   = culture;
            CultureInfo.CurrentUICulture = uiCulture;

            CultureChanged?.Invoke();
        }
コード例 #8
0
 private void OnCultureChanged()
 {
     CultureChanged?.Invoke(this, EventArgs.Empty);
 }
コード例 #9
0
 public static void ConvertTo(string culture)
 {
     _currentCulture = culture;
     CultureChanged?.Invoke(_currentCulture);
 }
コード例 #10
0
 private static void OnCultureChanged()
 {
     CultureChanged?.Invoke(null, new EventArgs());
 }
コード例 #11
0
 /// <summary>
 /// カルチャー変更通知イベントを呼び出します。
 /// </summary>
 private static void OnCultureChanged()
 {
     // カルチャー変更を通知
     CultureChanged?.Invoke(_currentCulture, new EventArgs());
 }
コード例 #12
0
 /// <inheritdoc />
 public void SetCulture(string newCulture)
 {
     DefaultCulture = newCulture;
     UpdateBoundObjects();
     CultureChanged?.Invoke(this, newCulture);
 }