C#簡單的國際化


1、新建一個資源文件夾,並在資源文件夾新建中英問的資源文件,如圖:

2、中英文資源文檔添加資源,如圖:

3、Program.cs中添加根據系統語言確定中英文,這里默認為英文:

using Internationalization.Resources;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Internationalization
{
    static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            ///國際化代碼
            CultureInfo language = new CultureInfo("en-US");//設置默認為英語
            Language.LocRM = new System.Resources.ResourceManager("Internationalization.Resources.ResourceEN", typeof(ResourceEN).Assembly);
            if (Thread.CurrentThread.CurrentCulture.Name.ToUpper().Contains("ZH") || Thread.CurrentThread.CurrentUICulture.Name.ToUpper().Contains("ZH"))
            {
                language = new CultureInfo("zh-CN");
                Language.LocRM = new System.Resources.ResourceManager("Internationalization.Resources.ResourceZH", typeof(ResourceZH).Assembly);
            }
            Thread.CurrentThread.CurrentCulture = language;
            Thread.CurrentThread.CurrentUICulture = language;
            Application.CurrentCulture = language;


            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

4、語言本地化(實例化)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Resources;
using System.Text;
using System.Threading.Tasks;

namespace Internationalization
{
    class Language
    {
        public static ResourceManager LocRM; //語言本地化
    }
}

5、測試一下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Internationalization
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            label_Name.Text = Language.LocRM.GetString("Name");
            tB_Name.Text = Language.LocRM.GetString("Sex");
        }
    }
}

6、大功告成,展示結果(這里兩種結果都展示一下)

7、這里已經實現了中英文,但是細心的朋友們發現了,這里的UI排版布局不一樣,這就涉及到另一種國際化了,咳咳,別急,且聽頻道慢慢道來:

打開Form1的屬性找到Language屬性,這里第一項就是默認選項,你可以選擇英語或者中文,然后在下面布局,你會發現存在同樣的控件,可以布局完全不一樣。

好了,今天就到這里,希望能幫助大家。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM