汉字的一些关注点,Microsoft Visual Studio International Feature Pack 2.0 数值到大写的转化,汉字翻译成日文韩文,文本框内容的对其,etc

来源:互联网 发布:怎么打理淘宝加盟店 编辑:程序博客网 时间:2024/06/05 08:01

   Visual Studio International Feature Pack 2.0 是对 1.0 版本( 1.0版的产品名是 Microsoft Visual Studio International Pack 1.0 SR1)的扩展,包含一组控件和类库,设计用来帮助.NET开发人员创建国际化程序。

  • Chinese Text Alignment Class Library andTextBox Controls 包含支持简体中文文本对齐的WinForm 和 WPF 的TextBox控件,以及供帮助开发人员很容易地按中文文本对齐显示字符串的一个类库。
  • Chinese AutoComplete Class Library and TextBox Controls包含支持感知简体中文和繁体中文输入法并自动完成的WinForm 和 WPF 的TextBox控件,以及供开发人员很容易地向标准控件添加感知输入法并自动完成功能的一个类库。
  • Korean AutoComplete Class Library and ComboBox Controls 包含支持感知韩语输入法并自动完成的WinForm 和WPF 的ComboBox控件, 以及供开发人员很容易地向标准控件添加感知输入法并自动完成功能的一个类库。
  • Numeric Formatting Class Library 包含支持五种语言的数字格式化成文字的类, 2.0 版支持格式化阿拉伯数字为阿拉伯文字。
  • Yomigana Framework 包含了类库和控件
    • 类库:
      • 通用目的的一些类,用泛型实现对一个可枚举的类型注音。
      • 特殊目的的一些类,用以上泛型实现对一个字符串用某种类型中注音。
      • 特殊目的的一些StringAnnotation 类,用以上泛型实现对一个字符串用字符串注音,包括解析和格式化功能。
      • 一个比较器类,使用以上类实现比较字符串。
      • 一个实现了 IEnumerable <string> 的数据结构,把一个字符串分成枚举的字符串段,的数据结构,把一个字符串分成枚举的字符串段,并用 IEnumerator <string> 输出。
    • 控件:
      • 加强的Ajax/WPF/WinForm textboxes 用来根据用户的输入捕获读音。
      • 一个加强的使用Ruby标签的ASP.NET Label。
      • 使用示例代码
      • ————————————————————————
using System;
using Microsoft.International.Formatters;
using System.Globalization;

namespace HanZiToPinYinAndNumberToHanZi2._0
{
    /// <summary>
    /// 工具类
    /// </summary>
    public class AndersUntils
    {
        /// <summary>
        /// 数字转化成汉字
        /// 911转化的还是有问题(玖佰拾壹)
        /// 正确的应为(玖佰壹拾壹)
        /// 原因是这个类库中有一行处理整数十这一位时过虑掉了10这种情况,呵呵
        /// </summary>
        /// <param name="number"></param>
        public static void ConvertNumberToHanZi(double number)
        {
            Console.WriteLine("开始转化..........");

            string strConvertResult = "";

            //1.0的写法(小数点后两位而且没有四舍五入机制)
            EastAsiaNumericFormatter eastAsiaNumericFormatter = new EastAsiaNumericFormatter();
            strConvertResult = string.Format(new EastAsiaNumericFormatter(), "{0:Lc}", number);

            //2.0的写法(小数点后面三位有了四舍五入的机制)
            strConvertResult = InternationalNumericFormatter.FormatWithCulture("L", number, null, new CultureInfo("zh-CHS"));

            Console.WriteLine("数字" + number.ToString() + "的大写形式为:" + strConvertResult);

            Console.WriteLine("处理结束,按任意键退出程序.....");
            Console.ReadLine();
        }
    }

    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            // 处理数字和汉字之间的转化
             AndersUntils.ConvertNumberToHanZi(789111.23456789);

            // textBox的对齐方式的控制(个人认为没嘛特别之处)
            // Application.Run(new Form1());

            // 测试自感应程序的的应用
           // Application.Run(new Form3());

            // 自动翻译(日文的还差强人意,韩文的就翻译不出来了)
            // Application.Run(new Form4());

        }
    }
}