Microsoft Visual Studio International Pack 1.0 SR1
快速描述
Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。SR1 包含对 Japanese Kana Conversion Library 和 Japanese Yomi Auto-Completion Library 中软件缺陷的修正。
概述
Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。 该软件包1.0版提供下面七个组件以增强.NET Framework对全球化软件应用开发的支持。
- East Asia Numeric Formatting Library - 支持将小写的数字字符串格式化成简体中文,繁体中文,日文和韩文的大写数字字符串。
- Japanese Kana Conversion Library - 支持将日文假名(Kana)转化为另一种日文字符。
- Japanese Text Alignment Library - 支持日文特有的一种对齐格式。
- Japanese Yomi Auto-Completion Library - 类库支持感知日文输入法的输入自动完成和一个文本框控件的示例。
- Korean Auto Complete TextBox Control - 支持韩文输入法的智能感知和输入自动完成的文本框控件。
- Simplified Chinese Pin-Yin Conversion Library - 支持获取简体中文字符的常用属性比如拼音,多音字,同音字,笔画数。
- Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool - 支持简繁体中文之间的转换。该组件还包含一个Visual Studio集成开发环境中的插件(Add-in)支持简繁体中文资源文件之间的转换。
发布的SR1中修正了 Japanese Kana Conversion Library 和 Japanese Yomi Auto-Completion Library 中的软件缺陷, 其他库中没有改动。
系统要求
- 支持的操作系统: Windows Server 2003 R2 (32-Bit x86); Windows Vista Service Pack 1; Windows XP Service Pack 3
- 所需软件: Microsoft Visual Studio 2005 或者 Microsoft Visual Studio 2008, Microsoft .NET Framework 2.0, Microsoft Office 2007 (使用Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool 进行简繁体中文之间的转换时需要安装该组件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.InteropServices; using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter; using Microsoft.International.Converters.PinYinConverter; using Microsoft.International.Formatters; using System.Globalization; /* * Microsoft Visual Studio International Feature Pack 2.0 https://www.microsoft.com/zh-cn/download/details.aspx?id=18970 * C:\Program Files\Microsoft Visual Studio International Feature Pack 2.0\ * Microsoft Visual Studio International Pack 1.0 SR1 * https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=15251 * 安裝的位置: * C:\Program Files\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library(拼音)下 * C:\Program Files\Microsoft Visual Studio International Pack\Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool(繁简互转) * C:\Program Files\Microsoft Visual Studio International Pack\East Asia Numeric Formatting Library */ namespace Geovin.Du.Commn { /// <summary> /// 2017-05-11 /// </summary> public class InternationalChangeChinese { /// <summary> /// 汉字转化为拼音 /// </summary> /// <param name="str">汉字</param> /// <returns>全拼</returns> public static string GetPinyin( string str) { string r = string .Empty; foreach ( char obj in str) { try { ChineseChar chineseChar = new ChineseChar(obj); string t = chineseChar.Pinyins[0].ToString(); r += t.Substring(0, t.Length - 1); } catch { r += obj.ToString(); } } return r; } /// <summary> /// 汉字转化为拼音首字母 /// </summary> /// <param name="str">汉字</param> /// <returns>首字母</returns> public static string GetFirstPinyin( string str) { string r = string .Empty; foreach ( char obj in str) { try { ChineseChar chineseChar = new ChineseChar(obj); string t = chineseChar.Pinyins[0].ToString(); r += t.Substring(0, 1); } catch { r += obj.ToString(); } } return r; } /// <summary> /// 简体转换为繁体 /// </summary> /// <param name="str">简体字</param> /// <returns>繁体字</returns> public static string GetTraditional( string str) { string r = string .Empty; r = ChineseConverter.Convert(str, ChineseConversionDirection.SimplifiedToTraditional); return r; } /// <summary> /// 繁体转换为简体 /// </summary> /// <param name="str">繁体字</param> /// <returns>简体字</returns> public static string GetSimplified( string str) { string r = string .Empty; r = ChineseConverter.Convert(str, ChineseConversionDirection.TraditionalToSimplified); return r; } /// <summary> /// 将数字转换为小写(十二亿三千四百五十六万七千八百九十点四五) /// </summary> /// <param name="s"></param> /// <returns></returns> public static string GetSimplifiedNumber( decimal iNum) { return string .Format( new Microsoft.International.Formatters.EastAsiaNumericFormatter(), "{0:Ln}" , iNum); } /// <summary> /// 将数字转换为大写简体中文(拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾点肆伍) /// /// </summary> /// <param name="s"></param> /// <returns></returns> public static string GetTraditionalNumber( decimal iNum) { return string .Format( new Microsoft.International.Formatters.EastAsiaNumericFormatter(), "{0:L}" , iNum); } /// <summary> /// 将数字转换为货币(拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾点肆伍) /// </summary> /// <param name="s"></param> /// <returns></returns> public static string GetCurrencyNumber( decimal iNum) { return string .Format( new Microsoft.International.Formatters.EastAsiaNumericFormatter(), "{0:Lc}" , iNum); } /// <summary> /// /// </summary> /// <param name="s"></param> /// <returns></returns> public static string GetChineseTraditionalNumber( decimal iNum) { return Microsoft.International.Formatters.EastAsiaNumericFormatter.FormatWithCulture( "L" , iNum, null , new CultureInfo( "zh-TW" )); } /// <summary> /// /// </summary> /// <param name="iNum"></param> /// <returns></returns> public static string GetChineseSimplifiedNumber( decimal iNum) { return Microsoft.International.Formatters.EastAsiaNumericFormatter.FormatWithCulture( "L" , iNum, null , new CultureInfo( "zh-CN" )); } /// <summary> /// 日文 /// </summary> /// <param name="iNum"></param> /// <returns></returns> public static string GetJapaneseNumber( decimal iNum) { return Microsoft.International.Formatters.EastAsiaNumericFormatter.FormatWithCulture( "L" , iNum, null , new CultureInfo( "Ja" )); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | using System; using System.Collections.Generic; using System.Linq; using System.Text; //添加 Microsoft Visual Basic.NET Runtime 引用。 using Microsoft.VisualBasic; using System.IO; using System.Runtime.InteropServices; namespace Geovin.Du.Commn { /// <summary> /// VB 繁简换 /// 2017-05-11 /// </summary> public class VBChangeChinese { /// <summary> /// 中文字符工具类 /// </summary> private const int LOCALE_SYSTEM_DEFAULT = 0x0800; private const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000; private const int LCMAP_TRADITIONAL_CHINESE = 0x04000000; [DllImport( "kernel32" , CharSet = CharSet.Auto, SetLastError = true )] private static extern int LCMapString( int Locale, int dwMapFlags, string lpSrcStr, int cchSrc, [Out] string lpDestStr, int cchDest); /// <summary> /// 将字符转换成简体中文 /// </summary> /// <param name="source">输入要转换的字符串</param> /// <returns>转换完成后的字符串</returns> public static string ToSimplified( string source) { String target = new String( ' ' , source.Length); int ret = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_SIMPLIFIED_CHINESE, source, source.Length, target, source.Length); return target; } /// <summary> /// 讲字符转换为繁体中文 /// </summary> /// <param name="source">输入要转换的字符串</param> /// <returns>转换完成后的字符串</returns> public static string ToTraditional( string source) { String target = new String( ' ' , source.Length); int ret = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_TRADITIONAL_CHINESE, source, source.Length, target, source.Length); return target; } /// <summary> /// 将字符串转换为简体中文 /// </summary> public static string ToSimplifiedChinese( string s) { return Strings.StrConv(s, VbStrConv.SimplifiedChinese, 0); } /// <summary> /// 将字符串转换为繁体中文 /// </summary> public static string ToTraditionalChinese( string s) { return Strings.StrConv(s, VbStrConv.TraditionalChinese, 0); } /// <summary> /// 半角转全角 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string ToWide( string s) { return Strings.StrConv(s, VbStrConv.Wide, 0); // 半角转全角 } /// <summary> /// 全角转半角 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string ToNarrow( string s) { return Strings.StrConv(s, VbStrConv.Narrow, 0); // 全角转半角 } /// <summary> /// 首字母大写 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string ToProperCase( string s) { return Strings.StrConv(s, VbStrConv.ProperCase, 0); // 首字母大写 } /// <summary> /// 将文件转换为简体中文 /// </summary> /// <param name="filename">源文件名</param> /// <param name="outFilename">目标文件名</param> public static void ToSimplifiedChinese( string filename, string outFilename) { StreamReader r = new StreamReader(filename, Encoding.GetEncoding( "gb2312" )); StreamWriter w = new StreamWriter(outFilename, false , Encoding.GetEncoding( "gb2312" )); try { w.Write(Strings.StrConv(r.ReadToEnd(), VbStrConv.SimplifiedChinese, 0)); w.Flush(); } finally { w.Close(); r.Close(); } } /// <summary> /// 将文件转换为繁体中文 /// </summary> /// <param name="filename">源文件名</param> /// <param name="outFilename">目标文件名</param> public static void ToTraditionalChinese( string filename, string outFilename) { StreamReader r = new StreamReader(filename, Encoding.GetEncoding( "gb2312" )); StreamWriter w = new StreamWriter(outFilename, false , Encoding.GetEncoding( "gb2312" )); try { w.Write(Strings.StrConv(r.ReadToEnd(), VbStrConv.TraditionalChinese, 0)); w.Flush(); } finally { w.Close(); r.Close(); } } /// <summary> /// 简体转繁体 /// </summary> /// <param name="converText">转换内容</param> /// <returns>繁体</returns> public static string ConvertBig5( string converText) { converText = Microsoft.VisualBasic.Strings.StrConv(converText, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, new System.Globalization.CultureInfo( "zh-cn" ).LCID); Encoding eBig5 = Encoding.GetEncoding(950); byte [] bBig5 = eBig5.GetBytes(converText); converText = eBig5.GetString(bBig5); return converText; } /// <summary> /// 繁体转简体 /// </summary> /// <param name="converText">转换内容</param> /// <returns>简体</returns> public static string ConvertGb2312( string converText) { converText = Microsoft.VisualBasic.Strings.StrConv(converText, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, new System.Globalization.CultureInfo( "zh-cn" ).LCID); Encoding eGb2312 = Encoding.GetEncoding(936); byte [] gb2312 = eGb2312.GetBytes(converText); converText = eGb2312.GetString(gb2312); return converText; } /// <summary> /// 将繁体乱码转繁体(已经是big5编码,在数据传输的过程中,被转成了UTF8,导致乱码) /// </summary> /// <param name="o">big5乱码</param> /// <param name="isConvert">是否要转换</param> /// <returns></returns> public static string ConvertBig5( object o, bool isConvert) { if (o == null ) return string .Empty; if (!isConvert) return o.ToString(); string result = o.ToString(); try { byte [] buffer = Encoding.Default.GetBytes(o.ToString()); result = Encoding.GetEncoding( "big5" ).GetString(buffer); } catch (Exception ex) { ex.Message.ToString(); } return result; } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | /// <summary> /// 所有拼音 MENG1 的汉字第几声调的 /// </summary> /// <param name="pinyin">MENG1</param> /// <param name="strout">輸所有字的字符串</param> /// <returns></returns> public static List< string > GetPinyins( string pinyin, out string strout) { //ChineseChar.GetStrokeNumber('孟')); 筆畫數 StringBuilder s = new StringBuilder(); List< string > str = new List< string >(); char [] chineseChars = ChineseChar.GetChars(pinyin); foreach ( char cstr in chineseChars) { str.Add(cstr.ToString()); s.Append(cstr.ToString()); } strout=s.ToString(); return str; } /// <summary> /// 是否是多音字的所有拼音 /// </summary> /// <param name="word">孟</param> /// <returns></returns> public static List< string > GetPinyinmore( char word) { List< string > more = new List< string >(); ChineseChar chineseChar = new ChineseChar(word); if (chineseChar.IsPolyphone) //是否多音字 { ReadOnlyCollection< string > pinyin = chineseChar.Pinyins; foreach ( string pin in pinyin) { more.Add(pin); } } return more; } |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!