c#winform如何实现中英文转换

作者&投稿:良静 (若有异议请与网页底部的电邮联系)
C#如何通过一个按钮实现窗体界面的中英文切换?~

C#可以通过最基础简单的代码实现语言切换,新建一个工程,然后在视图的工具箱工具中,添加控件,通过按钮点击,实现中英文的切换。具体的方法如下:
1.新建工程:工程都是从初始窗体上一点点搭建的,本例为新建空白默认工程;

2.新建后无法往窗体上添加控件,这是由于工具箱没有打开,提供以下两种操作:快捷键:Ctrl + W,X (即为持续按住Ctrl键后,依次按W键和X键);打开菜单栏的“视窗-工具箱”均可唤醒工具箱。取消工具箱显示,直接点击工具箱右上角“关闭”;

3.添加控件:此处用按钮、标签、窗体显示文字切换。通过点击按钮,切换中英文字。

4.添加代码:(个人选择,将待切换文字独立写入一个类,便于移植管理;也可在同一个类中写入文字定义),需定义一个语言标志,用于区分显示语言;按键点击事件中,切换语言标志,切换语言显示;

5.显示效果:运行后,点击按钮,窗体、标签、按钮均切换中英语言。

中英文切换通常做法就是数据替代
两个资源文件,中文.xml,英文.xml。所有的控件名称,tooltip等,都从前面两个资源文件进行取值,然后通过判断语言模式取得对应的xml中的值。当切换语言的时候,界面重新load加载就实现了中英文的切换。

如果你要实现自己写的话你必须有英语词汇库才能实现,

最好如楼上所说调用谷歌的接口来做翻译效果,

下面附上代码

/// <summary>
      /// 翻译方法
      /// </summary>
       /// <param name="textstr">需要翻译的内容</param>
      /// <param name="language">被翻译的语言</param>
      /// <param name="tolanguage">翻译成的语言</param>
      /// <returns></returns>
       public static string GetGoogtextStr(string textstr, string language, string tolanguage)
       {
          
             WebClient web = new WebClient();
               WebHeaderCollection headers = new WebHeaderCollection();
               headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded; charset=utf-8";
               headers[HttpRequestHeader.Referer] = "http://translate.google.cn/";
               web.Headers = headers;
               string text = textstr;
               string url = string.Format("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q={0}&langpair={1}%7C{2}", text, language, tolanguage);
               byte[] bystr = web.DownloadData(url);
               string urldata = GetText(System.Web.HttpUtility.UrlDecode(bystr, Encoding.UTF8));
               return urldata;
      
       }
Hashtable array = new Hashtable();
            array.Add("sq", "阿尔巴尼亚语");
            array.Add("ar", "阿拉伯语");
            array.Add("ga", "爱尔兰语");
            array.Add("et", "爱沙尼亚语");
            array.Add("be", "白俄罗斯语");
            array.Add("bg", "保加利亚语");
            array.Add("is", "冰岛语");
            array.Add("pl", "波兰语");
            array.Add("fa", "波斯语");
            array.Add("af", "布尔文(南非荷兰语)");
            array.Add("da", "丹麦语");
            array.Add("de", "德语");
            array.Add("ru", "俄语");
            array.Add("fr", "法语");
            array.Add("tl", "菲律宾语");
            array.Add("fi", "芬兰语");
            array.Add("ko", "韩语");
            array.Add("nl", "荷兰语");
            array.Add("gl", "加利西亚语");
            array.Add("ca", "加泰罗尼亚语");
            array.Add("cs", "捷克语");
            array.Add("hr", "克罗地亚语");
            array.Add("lv", "拉脱维亚语");
            array.Add("lt", "立陶宛语");
            array.Add("ro", "罗马尼亚语");
            array.Add("mt", "马耳他语");
            array.Add("ms", "马来语");
            array.Add("mk", "马其顿语");
            array.Add("no", "挪威语");
            array.Add("pt", "葡萄牙语");
            array.Add("ja", "日语");
            array.Add("sv", "瑞典语");
            array.Add("sr", "塞尔维亚语");
            array.Add("sk", "斯洛伐克语");
            array.Add("sl", "斯洛文尼亚语");
            array.Add("sw", "斯瓦希里语");
            array.Add("th", "泰语");
            array.Add("tr", "土耳其语");
            array.Add("cy", "威尔士语");
            array.Add("uk", "乌克兰语");
            array.Add("es", "西班牙语");
            array.Add("iw", "希伯来语");
            array.Add("el", "希腊语");
            array.Add("hu", "匈牙利语");
            array.Add("it", "意大利语");
            array.Add("yi", "意第绪语");
            array.Add("hi", "印地语");
            array.Add("id", "印尼语");
            array.Add("en", "英语");
            array.Add("vi", "越南语");
            array.Add("zh", "中文");

语言标志传这些就可以了GetGoogtextStr(textstr, “zh”, "en")//这样就是将中文翻译为英文

调用上面的方法就可以实现简单的翻译了,支持30多种语言

下面是核心接口.

http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q={0}&langpair={1}%7C{2}

{0}:表示被翻译字符

{1}:被翻译字符的语言

{2}:翻译的目标字符


因为是GET提交方式,那么就限定了字符长度,可以说是一大遗憾.



可以调取Google的翻译引擎接口来做

中文转拼音?还是?


广丰县13094691286: C#Winform程序界面怎么实现中英文界面转换 -
厍翔来络: 中英文切换通常做法就是数据替代 两个资源文件,中文.xml,英文.xml.所有的控件名称,tooltip等,都从前面两个资源文件进行取值,然后通过判断语言模式取得对应的xml中的值.当切换语言的时候,界面重新load加载就实现了中英文的切换.

广丰县13094691286: C#WINFORM 自动的日历控件怎么切换中英文? -
厍翔来络: 提供一点思路给楼主吧:使用 InputLanguage.InstalledInputLanguages 可以得到当前安装的所有输入法;使用 InputLanguage.CurrentInputLanguage 可以设置/获取当前激活的输入法;使用 InputLanguage.FromCulture 可以返回指定语言对应的输...

广丰县13094691286: c# WINFORM使用CultureInfo怎么自由切换中英文 -
厍翔来络: 静态资源类根据上下文设置的cultrueInfo的状态来获取 比如zh_CN en 等来找对应的指定静态资源文件中对应的变量 如后缀 test.zh_cn.resx.cs 文件是简体中文 都有变量 nameinfo 测试 后缀是en.resx.cs是英文的 都有变量 nameinfo test 根据当前上下文就可以知道去取哪个文件了

广丰县13094691286: C#如何进行中英文互换?? -
厍翔来络: 首先:新建两个文件,比如:en.resx和zh.resx 在zh.resx里 名称 值 btnSubmitTxt 提交 在en.resx里名称 值 btnSubmitTxt submit 2.如何使用 using System.Globalization; using System.Resources; private CultureInfo culture; culture=CultureInfo....

广丰县13094691286: C# winform中怎么实现当文本框获得焦点时,切换到中文输入法或英文输入法? -
厍翔来络: 使用 InputLanguage.InstalledInputLanguages 可以得到当前安装的所有输入法.使用 InputLanguage.FromCulture 可以返回指定语言对应的输入法对象(这个输入法对象可以用来设置上面的CurrentInputLanguage),比如:InputLanguage.FromCulture(CultureInfo.GetCultureInfo("zh-CN")) 可以返回一个中文输入法对象,而InputLanguage.FromCulture(CultureInfo.GetCultureInfo("en-US")) 则可以返回一个英文输入法对象.

广丰县13094691286: c#桌面开发做一个中英文切换按钮来实现.怎么做.求大神告知 -
厍翔来络: 如果涉及这种多语言的控件或者菜单之类的很多要改的,可以直接用资源文件实现,见http://www.cnblogs.com/greatverve/archive/2010/10/20/csharp-Multi-Language.html 如果很少,那可以直接用代码设置不同语言下的诸如按钮的text属性等等.

广丰县13094691286: C#项目开发中:如何根据输入的中文(英文),翻译成英文(中文). -
厍翔来络: google有个接口,可以实现翻译功能,只不过翻译的东西不成样子,但是总算是可以实现证据翻译.楼主可以试一试http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=要翻译的内容&langpair=en|zh-CN

广丰县13094691286: C# winform的多语言,中英文切换,控件的居中问题 -
厍翔来络: AutoSize属性设置为False TextAlign属性设置为MiddleCenter

广丰县13094691286: C#的Winform中,如何把中文转换为UrlEncode -
厍翔来络: private void button1_Click(object sender, EventArgs e) { string hh= HttpUtility.UrlEncode("dasds宋丹丹"); MessageBox.Show(hh);}右键单击引用 添加引用 添加 System.Web; 这样就不会找不到引用了. winform 默认是没有添加system.web 引用的 ,所以要手动添加,这样就会找得到了.

广丰县13094691286: C#winform程序printPreviewDialog打印预览工具栏是英文,想改成中文.请高手帮忙! -
厍翔来络: 当然可以自定义 ToolStrip toolBar = PrintPreviewDialog1.Controls[1]; 这样就拿到了那个ToolBar 对象, 然后你就可以自己进行操作了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网