localizer 多语言版本

http://NLocalizer.codeplex.com/

https://github.com/ravibpatel/NLocalizer

https://www.codeproject.com/Articles/79397/Localization-process-by-using-resource-files-in-NE

https://github.com/ccollie/snowflake-net

https://github.com/SeriousM/WPFLocalizationExtension

https://github.com/ostumpf/visuallocalizer

https://wpflocalizeextension.codeplex.com/

https://www.codeproject.com/Articles/334820/Using-Globalization-and-Localization-in-ASP-NET

https://github.com/xwiz/localizer

https://www.codeproject.com/articles/19622/localizer

https://www.codeproject.com/articles/299436/wpf-localization-for-dummies

https://github.com/geffzhang/NanoFabric  微服务

https://github.com/TomPallister/Ocelot

https://github.com/tencent

https://github.com/brpc/brpc

 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using NLocalizer;

namespace NLocalizer.Example
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void OpenFileMenu_Click(object sender, EventArgs e)
        {
            OpenFileDialog.ShowDialog();
        }

        private void SaveFileMenu_Click(object sender, EventArgs e)
        {
            SaveFileDialog.ShowDialog();
        }

        private void BrowseFolderMenu_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog.ShowDialog();
        }

        private void ExampleFontMenu_Click(object sender, EventArgs e)
        {
            FontDialog.ShowDialog();
        }

        private void SelectColorMenu_Click(object sender, EventArgs e)
        {
            ColorDialog.ShowDialog();
        }
        /// <summary>
        /// 顯示窗口 涂聚文
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TestFormMenu_Click(object sender, EventArgs e)
        {
            using (TestForm form = new TestForm())
            {
                try
                {
                    Translator.Translate(form);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, Messages.TitleError, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                form.ShowDialog();
            }
        }
        /// <summary>
        /// 改變顯示標題
        /// </summary>
        private void FillLanguagesMenu()
        {

            foreach (KeyValuePair<string, TranslationClasses> lang in Translator.Translation)
            {

                bool found = false;
                foreach (object item in LanguagesMenu.DropDownItems)
                {
                    if (item is ToolStripMenuItem && ((ToolStripMenuItem)item).Text == lang.Key)
                    {
                        found = true;
                    }
                }
                if (found == false)
                {
                    //MessageBox.Show(lang.Key);
                    if (lang.Key.ToString() == "SimplifiedChinese")
                    {
                        ToolStripMenuItem it = new ToolStripMenuItem();
                        it.Text = "简体中文";
                        it.Name = lang.Key;
                        LanguagesMenu.DropDownItems.Add(it);
                        //LanguagesMenu.DropDownItems.Add(lang.Key);
                    }
                    else if (lang.Key.ToString() == "TraditionalChinese")
                    {
                        ToolStripMenuItem it = new ToolStripMenuItem();
                        it.Text = "繁体中文";
                        it.Name = lang.Key;
                        LanguagesMenu.DropDownItems.Add(it);
                    }
                    else
                    {
                        LanguagesMenu.DropDownItems.Add(lang.Key);
                    }
                }
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LoadLanguagesMenu_Click(object sender, EventArgs e)
        {
            try
            {
                Translator.Translate(this);
                FillLanguagesMenu();
                LanguageLabel.Text = Translator.Translation.CurrentLanguage;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Messages.TitleError, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// 設置顯示的語言版本
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LanguagesMenu_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            string lng = e.ClickedItem.Text;
            if (lng == "简体中文")
                lng = "SimplifiedChinese";
            if (lng == "繁体中文")
                lng = "TraditionalChinese";
            if (Translator.Translation.Exists(lng))
                try
                {
                    //if (e.ClickedItem.Text == "中文")
                    //{
                    //    Translator.Translation.CurrentLanguage = "Chinese";
                    //}
                    //else
                    //{ 
                    //    Translator.Translation.CurrentLanguage = e.ClickedItem.Text; 
                    //}
                    Translator.Translation.CurrentLanguage = lng;
                    LanguageLabel.Text = Translator.Translation.CurrentLanguage;
                    Translator.Translate(this);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, Messages.TitleError, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MessageBoxMenu_Click(object sender, EventArgs e)
        {
            MessageBox.Show(Messages.HelloWorld, Messages.TitleInformation, 
                MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_Shown(object sender, EventArgs e)
        {
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MainForm_Load(object sender, EventArgs e)
        {
            LoadLanguagesMenu_Click(sender, e);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void showdataformToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (DataDetailForm form = new DataDetailForm())
            {
                try
                {
                    Translator.Translate(form);//控件要設置public

                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, Messages.TitleError, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                form.ShowDialog();
            }
        }
    }
}

  

posted @ 2017-09-05 15:21  ®Geovin Du Dream Park™  阅读(372)  评论(0)    收藏  举报