2 using System.Collections.Generic;
4 using Microsoft.VisualBasic;
5 using System.Globalization;
6 using Lugens.Passer.Macro.Bing.net.bing.api;
8 namespace Lugens.Passer.Macro.Bing
10 public class TranslationMacro : IMacro
12 const string AppId = "A01584CB8A078CEF40EF61C013A6EC87F144870E";
14 event MacroEventHandler macroCompletedEvent;
16 event MacroEventHandler IMacro.OnMacroCompleted
18 add { macroCompletedEvent += value; }
19 remove { macroCompletedEvent -= value; }
24 return "Lugens.Passer.Macro.Bing.PopupTranslation";
27 public MacroType Type()
29 return MacroType.InOutPopup;
39 return "PopupBingTranslation";
42 public string Summary()
47 public string Description()
49 return new StringBuilder()
50 .Append("引数:0~1個").Append(Environment.NewLine)
54 public string Execute(string str, string[] args)
60 public void ExecuteAsync(string str, string[] args)
62 using (BingService service = new BingService())
66 SearchRequest request = BuildRequest(str);
68 // Send the request; display the response.
69 service.SearchCompleted += OnSearchCompleted;
70 service.SearchAsync(request);
71 //SearchResponse response = service.Search(request);
72 //s = DisplayResponse(response);
74 catch (System.Web.Services.Protocols.SoapException)
76 // A SOAP Exception was thrown. Display error details.
78 catch (System.Net.WebException)
80 // An exception occurred while accessing the network.
85 static SearchRequest BuildRequest(string str)
87 SearchRequest request = new SearchRequest();
89 // Common request fields (required)
90 request.AppId = AppId;
92 request.Sources = new SourceType[] { SourceType.Translation };
94 // SourceType-specific fields (required)
95 request.Translation = new TranslationRequest();
96 request.Translation.SourceLanguage = "en";
97 request.Translation.TargetLanguage = "ja";
99 // Common request fields (optional)
100 request.Version = "2.2";
105 static string DisplayResponse(SearchResponse response)
107 StringBuilder sb = new StringBuilder();
108 // Display the results header.
109 Console.WriteLine("Bing API Version " + response.Version);
110 Console.WriteLine("Translation results for " + response.Query.SearchTerms);
113 // Display the Translation results.
114 foreach (TranslationResult result in response.Translation.Results)
116 sb.Append(result.TranslatedTerm);
118 return sb.ToString();
123 using (BingService service = new BingService())
127 SearchRequest request = new SearchRequest();
128 request.AppId = AppId;
129 request.Query = "test";
130 request.Sources = new SourceType[] { SourceType.Translation };
131 request.Translation = new TranslationRequest();
132 request.Translation.SourceLanguage = "en";
133 request.Translation.TargetLanguage = "ja";
134 request.Version = "2.2";
135 service.Search(request);
137 catch (System.Web.Services.Protocols.SoapException)
141 catch (System.Net.WebException)
149 public void OnSearchCompleted(object sender, SearchCompletedEventArgs e)
151 string s = DisplayResponse(e.Result);
152 if (macroCompletedEvent != null)
153 macroCompletedEvent(s);