C# 中英文切换

本文详细介绍了如何在WPF和Winform中实现中英文切换,包括创建不同语言的资源文件、在App.xaml和控件中引用资源,以及在代码中动态改变语言并管理资源。
摘要由CSDN通过智能技术生成

中英文切换

1. WPF中英文切换

首先,在资源Resources中创建en-us.xaml和zh-cn.xaml两个文件。
zh-cn.xaml:

<s:String x:Key="Msg1">确定</s:String>
<s:String x:Key="Msg2">调试</s:String>

en-us.xaml:

<s:String x:Key="Msg1">OK</s:String>
<s:String x:Key="Msg2">Debug</s:String>

然后,在App.xaml中配置如下:

<Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Resources/en-us.xaml"></ResourceDictionary>
                <ResourceDictionary Source="Resources/zh-cn.xaml"></ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

控件

Content="{DynamicResource Msg32}"

代码

strTaskName = this.FindResource("Msg32").ToString();

最后,在代码中添加:

 if (Language == "CN")
{
    requestedCulture = @"Resources/zh-cn.xaml";
    ChangeLanguage(requestedCulture,out errMsg);
}
else
{
    requestedCulture = @"Resources/en-us.xaml";
    ChangeLanguage(requestedCulture,out errMsg);
}

private void ChangeLanguage(string requestedCulture,out string errMsg)
{
    errMsg = "";
    try
    { 
        List<ResourceDictionary> dictionaryList = new List<ResourceDictionary>();
        foreach (ResourceDictionary dictionary in System.Windows.Application.Current.Resources.MergedDictionaries)
        {
            dictionaryList.Add(dictionary);
        }
           
        foreach (ResourceDictionary r in dictionaryList)
        {
            if (r.Source.OriginalString == requestedCulture)
            {
                System.Windows.Application.Current.Resources.MergedDictionaries.Remove(r);
                System.Windows.Application.Current.Resources.MergedDictionaries.Add(r);
                break;
            }
        }
    }
    catch (Exception ex)
    {
        errMsg ="ChangeLanguage error:" + ex.Message;
    }
}

2. Winform中英文切换

控件
首先,将窗体的属性Localizable设置为True,Language为默认,设置控件名称(例如:button1的text设置为【确认】)。
然后,设置窗体的属性Language为English,设置控件的英文名称(例如:button1的text设置为【OK】)。
在这里插入图片描述

此时,窗体下自动生成form1.en.resx和form1.resx的文件。
在这里插入图片描述

最后,在代码中添加:

if (Language != "CN")
{
    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
}

代码
form1.en.resx:
Msg1 OK
在这里插入图片描述

form1.resx:
Msg1 确定
在这里插入图片描述

Using System.Resources;
...
ResourceManager rm=new ResourceManager(typeof(Form1));
string a=rm.GetString("Msg1");
  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: c是英文字母表中的第三个字母,也是精神衍生出的第三个运输标记。 在音乐领域,C代表着C大调,是十二个基本音调中的一个。C大调常被认为是一个清澈明亮的音调,常见于各种音乐作品中。 在计算机编程中,C是一种通用的编程语言,被广泛应用于系统软件、嵌入式软件以及各种高性能应用。C语言以其简洁、高效和强大的功能而闻名,许多计算机科学领域的经典算法和数据结构都是用C语言实现的。 C还可以代表一些其他的概念,例如在化学中,C是碳元素的化学符号,是生命存在的基础。在数学中,C可以表示复数。 此外,在电影中,C也是一个常见的评级等级。C级电影是指适合任何年龄观看的电影,没有限制。这类电影通常是家庭友好的,不会包含暴力、色情或恐怖元素。 总而言之,C作为一个字母或符号,它在不同领域代表着不同的概念和含义。它无处不在,无论是在音乐、计算机编程、化学还是其他领域中,C都扮演着重要的角色。 ### 回答2: c是英文字母表中的第三个字母,也是计算机科学中常用的一个字母。 在计算机科学中,c是一种编程语言的名称。C语言是一种广泛使用的高级编程语言,它具有高效、可移植和强大的特点。C语言是Unix操作系统和其他操作系统的开发语言,它也被广泛用于开发底层系统软件和嵌入式系统。 C语言具有简洁、灵活和高效的特点,它是其他很多编程语言的基础。C语言提供了丰富的内置函数和库,开发者可以利用这些函数和库来实现各种功能。C语言的语法相对简单,使用者只需要掌握基本的语法规则和数据类型即可进行编程。 C语言在计算机科学领域的应用非常广泛。它被用于开发各种类型的软件,如操作系统、编译器、数据库和网络应用等。C语言还被用于开发游戏、图形界面和嵌入式系统等领域。 总而言之,c是英文字母表中的一个字母,并且在计算机科学领域中是一种重要的编程语言。它具有高效、可移植和灵活的特点,并被广泛用于开发各种类型的软件和系统。 ### 回答3: 不好意思,您的问题实在是太过于简洁了,无法理解你想要询问的是什么。可以麻烦您提供更多的背景信息或者问题内容吗?这样我才能更好地回答您的问题。谢谢!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值