using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSharpCode.Core; namespace Mesnac.Basic { /// <summary> /// 国际化语言区域处理辅助类 /// </summary> public class LanguageHelper { #region 事件定义 public static event EventHandler LanguageChanged; #endregion #region 属性定义 /// <summary> /// 提示 /// </summary> public static string Caption { get { string caption = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_Caption")); //提示 return caption; } } /// <summary> /// 警告 /// </summary> public static string WarnCaption { get { string warnCption = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_WarnCaption")); //警告 return warnCption; } } /// <summary> /// 错误 /// </summary> public static string ErrorCaption { get { string errorCption = StringParser.Parse(ResourceService.GetString("Mesnac_Dialog_ErrorCaption")); //错误 return errorCption; } } /// <summary> /// 数据库连接失败信息 /// </summary> public static string DataBaseConnectError { get { string databaseconnecterror = StringParser.Parse(ResourceService.GetString("Mesnac_Msg_DataBaseConnect_Error")); //获取数据连接失败,请检查数据库连接字符串是否正确! return databaseconnecterror; } } /// <summary> /// 请选择 /// </summary> public static string PleaseSelect { get { string pleaseSelectText = StringParser.Parse(ResourceService.GetString("Mesnac_Msg_PleaseSelect_Text")); //--请选择-- return pleaseSelectText; } } #endregion #region 方法定义 /// <summary> /// 设置语言区域信息 /// </summary> /// <param name="cultureName">区域语言en/zh</param> public static void SetCurrentCultureInfo(string cultureName) { if (!String.IsNullOrEmpty(cultureName)) { try { string currCultureName = System.Threading.Thread.CurrentThread.CurrentUICulture.Name; if (currCultureName != cultureName) { System.Globalization.CultureInfo currentUICulture = new System.Globalization.CultureInfo(cultureName); System.Threading.Thread.CurrentThread.CurrentUICulture = currentUICulture; ICSharpCode.Core.PropertyService.Set<string>(ResourceService.CultureProperty, cultureName); #region 触发语言切换事件 if (LanguageChanged != null) { LanguageChanged(null, System.EventArgs.Empty); } #endregion } } catch (Exception e) { ICSharpCode.Core.LoggingService<LanguageHelper>.Error(e.Message); } } } /// <summary> /// 刷新新线程的语言区域信息 /// </summary> public static void RefreshCultureInfo() { string cultureName = ICSharpCode.Core.PropertyService.Get<string>(ResourceService.CultureProperty, "zh-CN"); if (!String.IsNullOrEmpty(cultureName)) { System.Globalization.CultureInfo currentUICulture = new System.Globalization.CultureInfo(cultureName); System.Threading.Thread.CurrentThread.CurrentUICulture = currentUICulture; } } #endregion } }