public static XElement Translate(string xamlFile) { string translatedWorkflowString = null; using (XamlReader xamlReader = new XamlXmlReader(xamlFile)) { TranslationResults result = ExpressionTranslator.Translate(xamlReader); if (result.Errors.Count == 0) { StringBuilder sb = new StringBuilder(); using (XmlWriter xmlWriter = XmlWriter.Create(sb, new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true })) { using (XamlXmlWriter writer = new XamlXmlWriter(xmlWriter, result.Output.SchemaContext)) { XamlServices.Transform(result.Output, writer); } } translatedWorkflowString = sb.ToString(); } else { throw new InvalidOperationException("Translation errors"); } } return(XElement.Parse(translatedWorkflowString)); }
public void Associate(UntranslatedText key, object ui, InternalTranslationResult translationResult, ParserTranslationContext context, bool saveResultGlobally) { // if just one of the things associated with this job, wants to save it, we shall! SaveResultGlobally = SaveResultGlobally || saveResultGlobally; if (context != null) { Contexts.Add(context); context.Jobs.Add(this); TranslationType |= TranslationType.Token; } else { if (ui != null && !ui.IsSpammingComponent()) { Components.Add(new KeyAnd <object>(key, ui)); } if (translationResult != null) { TranslationResults.Add(new KeyAnd <InternalTranslationResult>(key, translationResult)); } TranslationType |= TranslationType.Full; } }
public ActionResult <List <string> > GetTranslation(string text, string from, string to) { text = DecodeFromBase64(text); TranslationResults results = new TranslationResults(); try { if (from == null) { from = "auto"; } if (to == null) { to = "auto"; } TranslatorService translator = new TranslatorService(text, from, to); results = translator.GetTranslationResult(); } catch (Exception e) { return(BadRequest(e.Message)); } List <string> ret = new List <string>() { results.BaiduResult, results.YoudaoResult, results.TencentResult }; Console.WriteLine(JsonConvert.SerializeObject(ret)); return(ret); }
public TranslationResults GetTranslationResult() { TranslationResults results = new TranslationResults(); TranslatorApi.Models.Baidu.TranslationResult BaiduResult = TranslatorApi.Models.Baidu.Translator.Translate(text, from, to); foreach (string key in BaiduTable.Keys) { if (BaiduTable[key] == BaiduResult.From) { from = key; } if (BaiduTable[key] == BaiduResult.To) { to = key; } } TranslatorApi.Models.Youdao.TranslationResult YoudaoResult = TranslatorApi.Models.Youdao.Translator.Translate(text, YoudaoTable[from], YoudaoTable[to]); TranslatorApi.Models.Tencent.TranslationResult TencentResult = TranslatorApi.Models.Tencent.Translator.Translate(text, TencentTable[from], TencentTable[to]); foreach (TranslatorApi.Models.Baidu.Translation str in BaiduResult.Trans_result) { results.BaiduResult += str.Dst; } foreach (string str in YoudaoResult.translation) { results.YoudaoResult += str; } results.TencentResult = TencentResult.data.target_text; return(results); }
private static string CreateErrorMessage(TranslationResults result) { var stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("Error: Failed to translate workflow with {0} errors", result.Errors.Count); foreach (var error in result.Errors) stringBuilder.AppendFormat("\n Expression: {0}, Message: {1}", error.ExpressionText, error.Message); return stringBuilder.ToString(); }
private static string CreateErrorMessage(TranslationResults result) { var stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("Error: Failed to translate workflow with {0} errors", result.Errors.Count); foreach (var error in result.Errors) { stringBuilder.AppendFormat("\n Expression: {0}, Message: {1}", error.ExpressionText, error.Message); } return(stringBuilder.ToString()); }
public void Associate(object ui, TranslationResult translationResult, ParserTranslationContext context) { if (context != null) { Contexts.Add(context); context.Jobs.Add(this); } else { if (ui != null && !ui.IsSpammingComponent()) { Components.Add(ui); } if (translationResult != null) { TranslationResults.Add(translationResult); } } }
public static XElement TranslateString(string xamlFile) { string translatedWorkflowString = null; using (XamlReader xamlReader = new XamlXmlReader( new StringReader(xamlFile))) { TranslationResults result = ExpressionTranslator.Translate(xamlReader); if (result.Errors.Count == 0) { StringBuilder sb = new StringBuilder(); using (XmlWriter xmlWriter = XmlWriter.Create(sb, new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true })) { using (XamlXmlWriter writer = new XamlXmlWriter(xmlWriter, result.Output.SchemaContext)) { XamlServices.Transform(result.Output, writer); } } translatedWorkflowString = sb.ToString(); } else { string error = "Translation errors"; for (int i = 0; i < result.Errors.Count; i++) { error = error + " :::: [A:" + result.Errors[i].ActivityId + ", Line" + result.Errors[i].StartLine + "] \"" + result.Errors[i].ExpressionText + "\" (" + result.Errors[i].Message + ")"; } throw new InvalidOperationException(error); } } return(XElement.Parse(translatedWorkflowString)); }
// Update is called once per frame void Awake() { instance = this; }