none
异常的国际化? RRS feed

  • 问题

  • 我在开发一套带有国际化的应用程序,由于使用的是WPF,所以UI的国际化很容易实现。
    但是整个应用程序架构中,BLL层做异常处理,可能捕获各种异常,现在framework是中文版,但是用户使用英文版面,当然希望Exception.Message是英文内容。怎么去实现呢?
    据我的了解,.net framework是有语言包的,但是如何切换Message的内容呢?

    另一种方式就是用户处理后显示,但是用户不可能处理所有的异常,有些时候图方便还是将原始的异常信息返回。

    请教,如何实现异常的国际化?


    Sonny.Lin
    2011年7月13日 13:58

答案

  • 你好,

    据我所知,异常的Message的值是根据CurrentUICulture来决定的。

    如果操作系统的地区选项是中国(可在控制面板里调整),那么默认的CurrentUICulture就会是中文的。这时如果安装了.NET Framework的中文语言包,那么就是显示对应的中文的异常的Message。

    你也可以手动更改CurrentUICulture.

        public App()
        {
          Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-cn");
        }
    


    Min Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已建议为答案 elegantluo 2011年7月15日 6:22
    • 已标记为答案 qing2000 2011年7月17日 8:14
    2011年7月15日 5:40
    版主