当前位置: 移动技术网 > IT编程>开发语言>.net > Silverlight4 多语言实现的方法

Silverlight4 多语言实现的方法

2017年12月12日  | 移动技术网IT编程  | 我要评论

华康新富网频道,苏记棺材铺txt,退休人员2016年养老金调整方案

1:在项目中新建文件夹“resouce”,然后再该文件夹下面新增资源文件“appstring.resx”,如果创建一个appstring.resx副本,把文件名改为对应的语言名称,

    如appstring.en-us.resx。,并且把appstring.resx的访问修饰符改为public

 

2:打开appstring.resx的cs文件,查看类的访问修饰符是否public,如果不是,则改为public。

3:打开app.xmal文件,添加以下代码,目的是用于其它的页面绑定字符内容的资源文件。

4:然后再其它页面就可以使用这个资源文件了,我这里用了三种语言

5:接下来就是语言切换了,我用的是本地存储的方式来保存用户选择的语言,新建一个类来专门负责读取当前用户选择的语言。

复制代码 代码如下:

public class configure
    {
        static system.globalization.cultureinfo currentculture;
        public static system.globalization.cultureinfo currentculture
        {
            get
            {

                if (currentculture == null)
                {
                    try
                    {
                        system.io.isolatedstorage.isolatedstoragesettings appsetting = system.io.isolatedstorage.isolatedstoragesettings.applicationsettings;
                        if (appsetting.contains("language"))
                        {
                            currentculture = new system.globalization.cultureinfo((string)appsetting["language"]);
                        }
                    }
                    catch (exception e)
                    {
                    }

                }
                if (currentculture == null)
                {
                    currentculture = new system.globalization.cultureinfo("en-us");

                }
                return currentculture;
            }
            set
            {
                currentculture = value;
                system.threading.thread.currentthread.currentculture = currentculture;
                system.threading.thread.currentthread.currentuiculture = currentculture;

                try
                {
                    system.io.isolatedstorage.isolatedstoragesettings appsetting = system.io.isolatedstorage.isolatedstoragesettings.applicationsettings;
                    if (appsetting.contains("language"))
                    {
                        appsetting["language"] = currentculture.name;
                        appsetting.save();
                    }
                    else
                    {
                        appsetting.add("language", currentculture.name);
                    }

                }
                catch (exception e)
                {
                }
            }
        }

    }

一下是“切换”按钮的代码

复制代码 代码如下:

private void button3_click(object sender, routedeventargs e)
        {
            configure.currentculture = new cultureinfo(combobox1.selectionboxitem.tostring());
            //if (configure.currentculture.name == "zh-cn")
            //{
            //    configure.currentculture = new cultureinfo("en-us");
            //}
            //else
            //    configure.currentculture = new cultureinfo("zh-cn");

        }

6:最后是应用程序启动的代码,也就是读取用户保存的语言。在app.xmal.cs文件里,

复制代码 代码如下:

private void application_startup(object sender, startupeventargs e)
        {

            cultureinfo culture = configure.currentculture;
            thread.currentthread.currentuiculture = culture;
            thread.currentthread.currentculture = culture;
            this.rootvisual = new mainpage();
        }

注意:按下切换按钮后要重新登录应用程序才能看到效果,并不是即使切换。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网