c#winform如何实现中英文转换
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的翻译引擎接口来做
中文转拼音?还是?
厍翔来络: 中英文切换通常做法就是数据替代 两个资源文件,中文.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 对象, 然后你就可以自己进行操作了.