`

资源文件在国际化中的运用(WinForm)

    博客分类:
  • C#
 
阅读更多

国际化的软件往往需要多种语言资源,如何在C#的WinForm中做到呢?且看以下分解:

1 工程添加资源文件
           资源文件命名方式 [资源文件主题名].[语言区域.].resx   
           例如资源文件主题名为: "Resource1" 。我们准备了 中 英 日 三个语言版本的资源文件,则对应的语言区域分别是 "zh-CN"、"en"、"ja"
            所以我们添加了三个资源文件: Resource1.zh-CN.resx 、Resource1.en.resx、 Resource1.ja.resx

2 添加命名空间(反射、资源、进程、国际化)
          using System.Reflection;
          using System.Resources;
          using System.Threading;
          using System.Globalization;

3 获取资源文件管理器
            ResourceManager rm = new ResourceManager("winGetMsgFromResource.Resource1", Assembly.GetExecutingAssembly());
            资源文件名的构成为 [项目命名空间].[资源文件主题名]

4 获取当前进程的语言区域
            CultureInfo ci = Thread.CurrentThread.CurrentCulture;

5 从资源文件中按项目名获取值
            假定MsgId是资源文件中的项目名
            rm.GetString(MsgId, ci);

6 前台国际化环境的选择(改变当前程序进程中的区域信息的方式达到改变)
            Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-CN");
            Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us");
            Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ja-JP");



实例:一个简单的资源文件访问类

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Resources;
using System.Threading;
using System.Globalization;

namespace winGetMsgFromResource
{
    
class clsMsg
    
{
        
public static string getMsg(string MsgId)
        
{
            ResourceManager rm 
= new ResourceManager("winGetMsgFromResource.Resource1", Assembly.GetExecutingAssembly());
            CultureInfo ci 
= Thread.CurrentThread.CurrentCulture;
            
return rm.GetString(MsgId, ci);
        }


        
public static string getMsg1()
        
{
            
string strOut = string.Empty;
            CultureInfo ci 
= Thread.CurrentThread.CurrentCulture;
            
switch (ci.ToString())
            

                
case "zh-CN":
                    strOut 
= "当前 文化区域 为 中文";
                    
break;
                
case "en-US":
                    strOut 
= "Current Culture is ENGLISH";
                    
break;
                
case "ja-JP":
                    strOut 
= "現在の言葉は 日本語です";
                    
break;
                
default:
                    strOut 
= "others";
                    
break;
            }

            
return strOut;
        }

    }

}

示例工程

winGetMsgFromResource.rar

 

分享到:
评论

相关推荐

    Winfrom资源文件读取

    在Windows Forms(WinForm)开发中,资源文件的读取是一项关键任务,特别是在处理多语言支持时。资源文件允许开发者集中存储应用程序中的文本、图片和其他可本地化的元素,便于进行不同语言版本的切换。本教程将详细...

    基于.net WinForm的文件管理系统

    【基于.NET WinForm的文件管理系统】是一个利用C#或VB.NET等.NET框架开发的桌面应用程序,它模拟了Windows操作系统中的资源管理器功能,允许用户进行基本的文件和文件夹操作。这个系统的核心在于通过WinForm界面与...

    Winform60种ssk皮肤界面文件

    2. 初始化皮肤引擎:在Winform应用程序的主Form的构造函数或Load事件中,调用IrisSkin4的初始化方法,例如`IrisSkinManager.Init(this);`,其中`this`代表当前Form实例。 3. 应用皮肤:为每个需要应用皮肤的控件...

    winform精美样式

    在传统的WinForm应用中,界面通常较为朴素,而通过引入各种精美的样式,开发者可以让程序的外观更加现代化,吸引更多的用户。本文将深入探讨WinForm界面样式的设计与实现,并结合提供的资源进行详细解析。 首先,`...

    winform调用chm文件.txtwinform调用chm文件.txt

    在IT领域,尤其是在软件开发中,WinForms与CHM文件的交互是一个常见且实用的场景。本文将深入探讨如何在Windows Forms(WinForms)应用程序中有效地调用和展示CHM帮助文件,为开发者提供详尽的技术指导。 ### ...

    winform string特性

    在多语言应用中,字符串通常存储在资源文件中。`ResourceManager`类用于加载和访问这些资源,使应用程序可以根据用户首选的语言显示相应的字符串。 7. 字符串与控制台输出 虽然WinForm主要用于图形界面,但调试时...

    winform皮肤 winform皮肤使用

    在.NET框架中,实现WinForm皮肤功能通常需要一个皮肤引擎,如DevExpress、Telerik或ElementHost等。这些皮肤引擎提供了丰富的预设皮肤和自定义皮肤的能力,允许开发者轻松地为WinForm应用添加各种外观。 3. **皮肤...

    winform开发ico图标合集.rar

    7. **资源管理**:为了方便管理和使用这些图标,开发者可以将它们组织到资源文件中,如`.resx`文件,这样在代码中可以轻松访问和更新图标。 总的来说,"winform开发ico图标合集.rar"为Winform开发者提供了丰富的...

    winform 多线程处理数据

    本篇将详细讨论如何在WinForm应用中运用多线程处理数据以及异步更新UI。 1. **什么是多线程?** 在计算机科学中,多线程是指在一个进程中同时执行多个不同的代码段,每个代码段称为一个线程。通过多线程,程序可以...

    C#WinForm皮肤文件

    在.NET框架中,C#(C Sharp)是一种常用的编程语言,尤其在开发Windows桌面应用程序时,WinForms(Windows Forms)是C#中的一个关键...通过灵活运用这些皮肤资源,开发者可以创造出更具个性化的Windows桌面应用程序。

    WinForm_随机分组

    至于压缩包中的"MarkGroup"可能是软件的可执行文件(.exe)或其他相关资源文件,例如配置文件、帮助文档或者图标资源等。如果"MarkGroup.exe"是可执行文件,那么双击运行即可启动这个随机分组软件。 总的来说,...

    WinForm皮肤

    本文将深入探讨WinForm皮肤的使用,包括IrisSkin库的运用,以及如何在C#环境中实现WinForm界面的美化。 首先,让我们关注一下IrisSkin库。IrisSkin是一款强大的Windows Forms皮肤引擎,它支持多种版本的Visual ...

    C#之Winform在线升级工具

    通过计算文件的校验和(如MD5或SHA-1),工具可以在传输过程中检查数据的一致性,防止因网络问题导致的文件损坏。如果校验失败,工具会立即停止传输,保证了升级过程的安全性。 失败回滚是另一个重要的安全特性。当...

    c# Winform中调用Photoshop打开文件

    本文将详细讲解如何在C# Winform应用中调用Photoshop来打开指定的图片文件,以实现图像处理功能的扩展。 首先,要实现这个功能,你需要了解几个关键概念: 1. **COM组件**:Adobe Photoshop提供了COM接口,允许...

    WinForm开发经典图标素材 3870个图标

    在Windows Forms(WinForm)开发中,图标是用户界面(UI)设计不可或缺的一部分,它们能够增强应用程序的视觉吸引力,同时帮助用户快速识别和理解不同功能。"WinForm开发经典图标素材 3870个图标" 提供了一个丰富的...

    c#.rar_c# winform 文件存储_winform

    1. **OpenFileDialog/SaveFileDialog组件**:WinForm中,这两个组件可以让用户选择要打开或保存的文件。它们返回的文件路径可以用于文件操作。 七、异步文件操作 1. **BeginRead/BeginWrite和EndRead/EndWrite**:...

    Quartz 定时WebForm和WinForm使用的dll

    在WebForm环境中,Quartz通常在Global.asax.cs文件的`Application_Start`事件中进行配置和启动,而在WinForm应用中,可以在窗体的`Load`事件或其他适当的初始化时刻进行。 使用Quartz可以实现复杂的定时任务调度,...

    最全的c# winform ssk文件

    在C# WinForm中,开发者使用控件(如Button、TextBox)构建用户界面,并通过事件处理程序来响应用户的操作。SSK库就是这样一个控件,可以通过代码或者设计时拖放到表单上,然后配置其属性来实现不同的键盘皮肤效果...

    C# winform 版通讯录

    通常,一个完整的Winform应用会包含多个源代码文件(.cs),如主窗体、数据库连接类、业务逻辑类等,以及可能的资源文件(如图标、图片等)。然而,由于具体文件细节未给出,我们只能假设“通讯录”包含了所有必要的...

Global site tag (gtag.js) - Google Analytics