public virtual string ConvertToLocalString(DateTime?date, string format, string nullText = null) { var localDate = ConvertToLocal(date); if (!localDate.HasValue) { return(nullText); } // If the configured current calendar is different from the default calendar // of the configured current culture we must override the conversion process. // We do this by using a custom CultureInfo modified to use GregorianCalendar // (means no calendar conversion will be performed as part of the string // formatting) and instead perform the calendar conversion ourselves. var cultureInfo = CurrentCulture; var usingCultureCalendar = CurrentCulture.DateTimeFormat.Calendar.GetType().IsInstanceOfType(CurrentCalendar); if (!usingCultureCalendar) { cultureInfo = (CultureInfo)CurrentCulture.Clone(); cultureInfo.DateTimeFormat.Calendar = new GregorianCalendar(); var calendar = CurrentCalendar; localDate = new DateTime(calendar.GetYear(localDate.Value), calendar.GetMonth(localDate.Value), calendar.GetDayOfMonth(localDate.Value), calendar.GetHour(localDate.Value), calendar.GetMinute(localDate.Value), calendar.GetSecond(localDate.Value)); } return(localDate.Value.ToString(format, cultureInfo)); }
public void SetLanguage(CultureInfo culture) { if (!culture.Equals(CultureInfo.CurrentCulture)) { CultureInfo.CurrentCulture = culture; } if (CurrentCulture == null || !CurrentCulture.Equals(culture)) { CurrentCulture = culture; CultureInfo.DefaultThreadCurrentCulture = culture; CultureInfo.DefaultThreadCurrentUICulture = culture; string fileName = $"{_resourcesAssembly.GetName().Name}.Resources.{culture.Name}.json"; Resources = GetKeysFromCulture(culture.Name, fileName); if (Resources == null) { throw new FileNotFoundException($"There is no language files for '{culture.Name}' existing in the Resources folder within '{_resourcesAssembly.GetName().Name}' assembly"); } LanguageChanged?.Invoke(this, culture); } }
//[DisableValidation] public ActionResult EditStatusRescheduled(Sls_Task _objTask) { _objTask.ModifiedBy = CurrentUser.NameIdentifierInt64; _objTask.ModifiedOn = DateTime.Now; var result = this._TaskBAL.ChangeStatus_RescheduleBAL(_objTask); if (result == -1) { ModelState.AddModelError(lr.ErrorServerError, lr.ErrorServerError); } else { var results = this._TaskBAL.Task_GetBALbyOrganization(CurrentCulture.ToString(), CurrentUser.CompanyID.ToString(), CurrentUser.NameIdentifierInt64, _objTask.ID); var r = results.First(); Library.TMS.Notifications nof = new Library.TMS.Notifications(); nof.NotificationText = "Your Task has rescheduled to " + _objTask.DueDate.Date; nof.Organization_ID = CurrentUser.CompanyID; nof.ToUser = Convert.ToInt64(r.AssignedTo); nof.FromUser = CurrentUser.NameIdentifierInt64; nof.ActionUrl = "../Task/Detail?pid=" + _objTask.ID; nof.Event_ID = 3; nof.CreatedDate = DateTime.Now; BALNotification.create_NotificationsBAL(nof); var notificationHub = GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); notificationHub.Clients.All.notify("added"); } var resultData = new[] { _objTask }; return(RedirectToAction("Index")); }
public virtual DateTime?ConvertFromLocalString(string dateString, string timeString) { if (String.IsNullOrWhiteSpace(dateString) && String.IsNullOrWhiteSpace(timeString)) { return(null); } // If the configured current calendar is different from the default calendar // of the configured current culture we must override the conversion process. // We do this by using a custom CultureInfo modified to use GregorianCalendar // (means no calendar conversion will be performed as part of the string // parsing) and instead perform the calendar conversion ourselves. var cultureInfo = CurrentCulture; var usingCultureCalendar = CurrentCulture.DateTimeFormat.Calendar.GetType().IsInstanceOfType(CurrentCalendar); if (!usingCultureCalendar) { cultureInfo = (CultureInfo)CurrentCulture.Clone(); cultureInfo.DateTimeFormat.Calendar = new GregorianCalendar(); } var localDate = !String.IsNullOrWhiteSpace(dateString) ? DateTime.Parse(dateString, cultureInfo) : new DateTime(1980, 1, 1); var localTime = !String.IsNullOrWhiteSpace(timeString) ? DateTime.Parse(timeString, cultureInfo) : new DateTime(1980, 1, 1, 12, 0, 0); var localDateTime = new DateTime(localDate.Year, localDate.Month, localDate.Day, localTime.Hour, localTime.Minute, localTime.Second); if (!usingCultureCalendar) { var calendar = CurrentCalendar; localDateTime = calendar.ToDateTime(localDateTime.Year, localDateTime.Month, localDateTime.Day, localDateTime.Hour, localDateTime.Minute, localDateTime.Second, localDateTime.Millisecond); } return(ConvertFromLocal(localDateTime)); }
public override int GetHashCode() { unchecked { return(CurrentCulture.GetHashCode() * CurrentUICulture.GetHashCode() * ManagedThreadId.GetHashCode() * Priority.GetHashCode() * ThreadName.GetHashCode() * ThreadState.GetHashCode() * IsBackground.GetHashCode() * IsThreadPoolThread.GetHashCode()); } }
/// <summary> /// Looks up a translated string for a resource. /// </summary> /// <param name="type">Resource type.</param> /// <param name="rawData">Raw API data; provides the necessary data (ID, names, etc.) for a look-up.</param> /// <returns></returns> public string Lookup(TranslationType type, object rawData) { if (!EnableTranslations || CurrentCulture.StartsWith("ja")) { Debug.WriteLine(this.GetType().Name + ": lookup called for {0} but translations are disabled or culture is Japanese.", type); return(null); } return(TranslationDataProvider.Lookup(type, rawData)); }
//public static string GetLocalizedName(object obj,string EnglishProperty, string ArabicProperty) //{ // System.Reflection.PropertyInfo engObj = obj.GetType().GetProperty(EnglishProperty); // System.Reflection.PropertyInfo arObj = obj.GetType().GetProperty(ArabicProperty); // if (CurrentCulture.ToLower().Split('-')[0] == "en") // { // if (engObj != null && engObj.GetValue(obj) != null) // return engObj.GetValue(obj).ToString(); // if (arObj != null && arObj.GetValue(obj) != null) // return arObj.GetValue(obj).ToString(); // } // else // { // if (arObj != null && arObj.GetValue(obj) != null) // return arObj.GetValue(obj).ToString(); // if (engObj != null && engObj.GetValue(obj) != null) // return engObj.GetValue(obj).ToString(); // } // return ""; //} #region common public static string GetLocalizedName(string english, string arabic) { if (CurrentCulture.ToLower().Split('-')[0] == "en") { return(english); } else { return(arabic); } return(""); }
public static String GetLocalValue(this Object obj, String invariantPropertyName) { var propertyName = CurrentCulture.PropertyName(invariantPropertyName); var property = obj.GetType().GetProperty(propertyName); if (property != null) { var value = property.GetValue(obj, null); return(value != null?value.ToString() : null); } else { return(null); } }
public override void Execute() { if (_languageProvider != null) { var langList = new LanguageList(); _language = langList.Search(_languageProvider.GetLanguageId()); } else if (!string.IsNullOrEmpty(_langId)) { var langList = new LanguageList(); _language = langList.Search(_langId); } CurrentCulture.Set(_language.WindowsCultureName); UserLanguage.Set(_language); }
public override void Execute() { //Aktuelle Culture auf de-CH setzen, da Menu-Server Englisch sind CurrentCulture.Set("de-CH"); }
public object GetFormat(Type formatType) { return(CurrentCulture.GetFormat(formatType)); }
public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage) { var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); try { switch (requestMessage.Content.ToLower().Trim()) { //case "g": // responseMessage.Content = GetSPFBAUserNamePassword(); // break; case "debug": SPFBAUser.Debug = !SPFBAUser.Debug; SPFBAUser.Save <WeChatUser>(); responseMessage.Content = GetWelcomeInfo(CurrentCulture); break; case "h": responseMessage.Content = GetWelcomeInfo(CurrentCulture); break; case "x": SPFBAUser.SaveMessageToPublic = !SPFBAUser.SaveMessageToPublic; SPFBAUser.Save <WeChatUser>(); responseMessage.Content = CurrentCulture.Equals(new CultureInfo("zh-CN"))? string.Concat("后续消息将", SPFBAUser.SaveMessageToPublic ? "公开" : "私有", "保存") : string.Concat("Future message will be saved ", SPFBAUser.SaveMessageToPublic ? "publicly" : "privately"); break; //TODO: 这个地方可以是 x 返回当前状态,让后 xx 更改,或者搞一个命令 q, 返回一系列的状态,然后有提示切换 //case "s": //按s 返回所有AppearInWeChat 的 WeChatResult Managed Property //然后, user property 里面可以保留一个 最后 搜索关键字 //可以设置一个WeChat 常用搜索列表 //点S进入搜索状态,在UserProperty 里面设置标记,返回常用搜索列表 //如果用户没点常用搜索项,而是输入任意非命令? 字符串,则返回搜索此字符串结果,并把此字符串存入 user property 最后搜索关键字 case "cn": CultureInfo c = new CultureInfo("zh-CN"); CurrentCulture = c; responseMessage.Content = GetWelcomeInfo(c); //NeedToSetCultureInfo = c; break; case "en": CultureInfo e = new CultureInfo("en-US"); CurrentCulture = e; responseMessage.Content = GetWelcomeInfo(e); //NeedToSetCultureInfo = e; break; case "ls": //list priviate message case "lg": //list public message string nextDateTime; responseMessage.Content = GetLatestMessageSubject(DateTime.Now, out nextDateTime, requestMessage.Content.ToLower().Trim().Equals("lg")); if (!string.IsNullOrEmpty(nextDateTime)) { responseMessage.Content += (System.Environment.NewLine + MessageLink(requestMessage.Content.ToLower().Trim() + HttpUtility.UrlEncode(nextDateTime), "9", "更早的留言")); } break; //case "ps": //case "pg": // var responseMessageNews = CreateResponseMessage<ResponseMessageNews>(); // return responseMessageNews; // break; case "wol": if (SPFBAUserName.Equals("233173287")) { new WakeOnLine().WOLMyDEV(); } break; default: DateTime next; string nextDateTime1; if ((requestMessage.Content.ToLower().StartsWith("lg") || requestMessage.Content.ToLower().StartsWith("ls")) && DateTime.TryParse(HttpUtility.UrlDecode(requestMessage.Content.Substring(2, requestMessage.Content.Length - 2)), out next)) { responseMessage.Content = GetLatestMessageSubject(next, out nextDateTime1, requestMessage.Content.ToLower().Trim().StartsWith("lg")); if (!string.IsNullOrEmpty(nextDateTime1)) { responseMessage.Content += (System.Environment.NewLine + MessageLink(requestMessage.Content.ToLower().Substring(0, 2) + HttpUtility.UrlEncode(nextDateTime1), "9", "更早的留言")); } break; } responseMessage.Content = WriteUserWeixinMessageToSP(SPFBAUserName, requestMessage.Content); //NeedToWriteMessageToSP = true; break; } } catch (WeChatException ex) { responseMessage.Content = ex.Message; } return(responseMessage); }
public override void Execute() { CurrentCulture.Reset(); }
public override void Execute() { CurrentCulture.Set(_cultureName); }
public static T Localize <T>() where T : new() { return(CurrentCulture.Get <T>()); }