Language:

Google Translator WebPart

Language: Deutsch
Programming Language: C#
Published by: Bernd [not registered]
Last Update: 5/4/2006
Views: 882

Description

Bindet die Google Übersetzung als WebPart für ASP.NET 2.0 ein.

Code

1 using System; 2 using System.Net; 3 using System.IO; 4 using System.ComponentModel; 5 using System.Globalization; 6 using System.Resources; 7 using System.Reflection; 8 using System.Web.UI; 9 using System.Web.UI.WebControls; 10 using System.Web.UI.HtmlControls; 11 using System.Xml.Serialization; 12 using Microsoft.SharePoint; 13 using Microsoft.SharePoint.WebPartPages; 14 using Microsoft.SharePoint.Utilities; 15 using Microsoft.SharePoint.WebControls; 16 17 namespace Ch.Ugszrh.Webparts 18 { 19 20 [DefaultProperty("ServiceUrl"), 21 ToolboxData("<{0}:GoogleTranslator runat=server></{0}:GoogleTranslator>"), 22 XmlRoot(Namespace="Ch.Ugszrh.Webparts")] 23 public class GoogleTranslator : WebPart, IDesignTimeHtmlProvider 24 { 25 26 #region Private Properties 27 28 private const string defaultServiceUrl = "http://translate.google.com/translate_t"; 29 private string strServiceUrl=defaultServiceUrl; 30 31 private bool _runAtClient = false; 32 private bool _runTranslation = false; 33 34 HtmlInputButton _mybutton; 35 HtmlTextArea _mytextbox; 36 HtmlSelect _myselect; 37 HtmlTextArea _myresultbox; 38 39 #endregion 40 41 #region Public Properties 42 43 [Browsable(true), 44 ResourcesAttribute( 45 "GoogleTranslatorServiceUrlName", 46 "GoogleTranslatorServiceUrlCategory", 47 "GoogleTranslatorServiceUrlDescription"), 48 Category("Miscellaneous"), 49 DefaultValue(defaultServiceUrl), 50 WebPartStorage(Storage.Shared), 51 FriendlyName("Service Url"), 52 Description("The Google translator Web Page Url"), 53 XmlElement(ElementName="ServiceUrl")] 54 public string ServiceUrl 55 { 56 get 57 { 58 return strServiceUrl; 59 } 60 61 set 62 { 63 strServiceUrl = value; 64 } 65 } 66 67 #endregion 68 69 public void _mybutton_click (object sender, EventArgs e) 70 { 71 _runTranslation = true; 72 } 73 74 protected override void CreateChildControls () 75 { 76 _mytextbox = new HtmlTextArea(); 77 _mytextbox.Cols = 30; 78 _mytextbox.Rows = 5; 79 Controls.Add(_mytextbox); 80 81 _myresultbox = new HtmlTextArea(); 82 _myresultbox.Cols = 30; 83 _myresultbox.Rows = 5; 84 Controls.Add(_myresultbox); 85 86 _mybutton = new HtmlInputButton(); 87 _mybutton.Value = LoadResource("GoogleTranslatorTranslate"); 88 _mybutton.ServerClick += new EventHandler (_mybutton_click); 89 Controls.Add (_mybutton); 90 91 _myselect = new HtmlSelect(); 92 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator01"),"en|de")); 93 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator02"),"en|es")); 94 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator03"),"en|fr")); 95 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator04"),"en|it")); 96 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator05"),"en|pt")); 97 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator06"),"de|en")); 98 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator07"),"de|fr")); 99 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator08"),"es|en")); 100 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator09"),"fr|en")); 101 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator10"),"fr|de")); 102 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator11"),"it|en")); 103 _myselect.Items.Add(new ListItem(LoadResource("GoogleTranslator12"),"pt|en")); 104 _myselect.Items[0].Selected = true; 105 Controls.Add (_myselect); 106 107 } 108 109 public string GetDesignTimeHtml() 110 { 111 return SPEncode.HtmlEncode("This web part renders only in a running sharepoint environment!"); 112 } 113 114 protected override void RenderWebPart(HtmlTextWriter output) 115 { 116 117 EnsureChildControls(); 118 119 if (!_runAtClient) 120 { 121 122 string strOut = ""; 123 _mytextbox.RenderControl(output); 124 output.Write("<BR>"); 125 _myselect.RenderControl(output); 126 _mybutton.RenderControl(output); 127 output.Write("<BR><BR>"); 128 129 if ( this._runTranslation ) 130 { 131 try 132 { 133 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(this.ServiceUrl+"?action=Translate&langpair="+_myselect.Items[_myselect.SelectedIndex].Value+"&hl=en&ie=Unknown&oe=ASCII&text="+SPEncode.HtmlEncode(_mytextbox.Value)); 134 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 135 Stream stream = response.GetResponseStream(); 136 string strHtml = ""; 137 int ch; 138 for(int i = 1; ; i++) 139 { 140 ch = stream.ReadByte(); 141 if (ch == -1) break; 142 strHtml += (char)ch; 143 } 144 response.Close(); 145 strHtml = strHtml.Substring(strHtml.IndexOf("<textarea")); 146 strHtml = strHtml.Substring(strHtml.IndexOf(">")+1,strHtml.IndexOf("</textarea")); 147 _myresultbox.Value = strHtml; 148 output.Write("<b>"+LoadResource("GoogleTranslatorResult")+":</b><BR>"); 149 _myresultbox.RenderControl(output); 150 151 } 152 catch ( Exception e ) 153 { 154 strOut += "<BR><BR><BR>"; 155 strOut += "<BR><b>***ERROR***</b>"; 156 strOut += "<BR><B>Exception:</B> "+e.ToString(); 157 strOut += "<BR><B>Message:</B> "+e.Message; 158 strOut += "<BR><B>Source:</B> "+e.Source; 159 strOut += "<BR><B>StackTrace:</B><BR>"+e.StackTrace; 160 strOut += "<BR><B><FONT color=red>Tip: Please double check WebPart attributes!</B><BR>"; 161 } 162 output.Write(strOut); 163 } 164 } 165 } 166 167 public override ToolPart[] GetToolParts() 168 { 169 ToolPart[] toolparts = new ToolPart[2]; 170 WebPartToolPart wptp = new WebPartToolPart(); 171 CustomPropertyToolPart custom = new CustomPropertyToolPart(); 172 custom.Expand(LoadResource("Category")); 173 toolparts[0] = custom; 174 toolparts[1] = wptp; 175 return toolparts; 176 } 177 178 } 179 180 } 181

No comments avaiable

Add a comment

Name *  

Email (won't be displayed) *    

Website  

Comment *  

Sicherheitscode Security Code *    

RSS