Microsoft Visual Studio International Pack 1.0 SR1

from: http://www.microsoft.com/downloads/details.aspx?FamilyID=44cac7f0-633b-477d-aed2-99aee642fc10&DisplayLang=zh-cn

快速描述

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;
 }

  

posted @   ®Geovin Du Dream Park™  阅读(720)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
< 2009年12月 >
29 30 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 1 2
3 4 5 6 7 8 9
点击右上角即可分享
微信分享提示