WPF 多语言国际化设置-Github源码

WPF 多语言国际化设置

1.先看效果

默认显示中文
WPF 多语言国际化设置-Github源码_第1张图片
快捷设置切换到英文
WPF 多语言国际化设置-Github源码_第2张图片

2. 说下实现思路

软件开发90%的工作都是写库调库,首先考虑调用系统API实现功能,如果系统自带的实现不了,再考虑自己写。

假设,系统没有多语言的设计,那么,从零怎么开发?

A.准备一个Excel文档,

Key en-US zh-CN
Close Close 关闭
Open Open

B.系统初始化的时候,把这个表作为list,缓存到内存里

C.切换语言的时候,查找对应的语言对应的Key的值

D.搞定

3.官方做法

A-通过.Net框架实现语言的切换

public static class LanguageTool
{
    public static string AppCurrentLanguage { get; set; }

    public static Dictionary KeyValues { get; set; }

    public static void SetLanguage(string key)
    {
        var resource = Application.Current.Resources.MergedDictionaries
            .FirstOrDefault(t => t.Source != null &&
             t.Source.OriginalString != null &&
             t.Source.OriginalString.Contains(key));

        if (resource != null)
            Application.Current.Resources.MergedDictionaries.Remove(resource);

        Application.Current.Resources.MergedDictionaries.Add(resource);

        Dictionary keyValues = new Dictionary();

        foreach (DictionaryEntry item in resource)
            keyValues.Add(item.Key.ToString(), item.Value.ToString());

        AppCurrentLanguage = key;
        KeyValues = keyValues;

        Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(key);
    }
}

B.准备多语言资源字典

英文字典




    Hello WPFIndustry !__FeiyaoAuto

    ViewA
    DialogsView  
    ViewC 
    TestEventView
    TestShowMsg  
    TestFileOper

    Cur Language
    ConfirmLan
    Skin
    SaveSetting


    
    BuildDefaultData"
    LoadJson"
    SaveJson"
    ClearJson"


中文字典



    WPFPrism工业自动化启蒙版祝你扬帆起航!__FeiyaoAuto

    界面A
    对话框
    界面C
    测试Eventew
    显示Msg
    文件操作r

    当前语言
    确认语言
    主题
    保存设置
    
    
    
    生成默认数据"
    加载Json文件"
    保存Json文件"
    清空Json文件"


C.把资源集成到框架 App.xaml



    
    
    

D.使用资源

使用动态资源 —>DynamicResource


E.语言切换

4.详见代码

Github地址

你可能感兴趣的:(WPF,MVVM,上位机开发,开发语言,wpf)