Example #1
0
        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);
        }
Example #4
0
        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();
 }
Example #6
0
        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);
                }
            }
        }
Example #8
0
        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));
        }
Example #9
0
 // Update is called once per frame
 void Awake()
 {
     instance = this;
 }