public static async Task <string> TimeSpanStrAsync(TimeSpan ts, ITranslatorProvider1 trans) { // a translated time span string arg; string txt = await trans.TranslateAsync(TimeSpanStr2(ts, out arg)); if (arg == null) { return(txt); } return(string.Format(txt, arg)); }
// use [TransRequired] not [Required] public override string FormatErrorMessage(string name) { // override ValidationAttribute ITranslatorProvider1 trans = TransValidationAttribute.GetTranslatorProvider(); if (trans != null) { Task <string> task = trans.TranslateAsync(base.ErrorMessageString ?? "The {0} field is required."); task.Wait(); // Wait for async. string errorMsg = task.Result; return(string.Format(errorMsg, name)); } return(base.FormatErrorMessage(name)); }