zoukankan      html  css  js  c++  java
  • Javascript下调用.Net资源文件,实现语言国际化

    大家都知道,要在.Net下实现国际化是很简单的事,只需添加一个 App_GlobalResources 目录和相应的资源文件(.resx),然后就可以直接调用了,如现有一资源文件名为: Admin.resx,其中有一个叫 Title 的键值,这时在页面只需直接使用

    string title = Resources.Admin.Title;


    但如果想在JS里也使用此资源文件,要如何处理呢?其实也很简单,只需使用AJAX调用后台获取资源文件即可,以下就使用jQuery + ASP.NET MVC为例实现在JS下直接调用资源文件的方法(当然你也可以直接使用传统的JS AJAX方法获取)

    先创建获取资源文件的函数:

    代码
        //使用键值方式获取资源文件,其中 category 即资源文件名
        Resource = function (category, key) {
           
    //使用jQuery的 ajax 直接获取相应的资源文件
            var rtnvalue =
            $.ajax({
                type: 
    "POST",
                dataType: 
    "json",
                data: {
                    
    "category": category,
                    
    "key": key
                },
                url: 
    "/GetResource",
                async: 
    false
            }).responseText;
            
    //返回 json 数据
            var rtnvalue = $.parseJSON(rtnvalue);

            
    if (!rtnvalue.MsgType)
                
    return "No Resource File!";
            
    else
                
    return rtnvalue.Content;
        }


    接下来要实现服务器端的代码了:

    代码
    public ActionResult GetResource(FormCollection collection)
    {            
                
    //此为自定义信息返回类,方便返回相应的ajax结果
                Message msg = new Message();

                
    //调用 ResourceManager 以获取相应的资源文件
                ResourceManager rm = (ResourceManager)System.Type.GetType
                    (
    "Resources." + collection["category"]).GetProperty("ResourceManager"
                    BindingFlags.Static 
    | BindingFlags.NonPublic).GetValue(nullnull);
                msg.Content 
    = rm.GetString(collection["key"]) ?? "";
               
                
    //由于我用的是ASP.NET MVC,所以直接使用 Json(obj) 返回即可
                return Json(msg);
    }


     Ok,万事具备啦,现在可以直接调用了,在JS里如要显示以上 Title 的语言,就可以使用以下代码调用:

    alert(Resource("Admin""Title"));
    //or 
    var title = Resource("Admin""Title");


    这样就可以在JS里轻松实现语言国际化效果了!

  • 相关阅读:
    mui 时间选择器和上传图片
    css实现聊天气泡效果
    css总结 -使用display:inline-block,出现元素高度错位
    js DIV延时几秒后消失或显示代码
    js监听textarea 内容的变化,并计算内容的长度c
    生成git的SSH公钥
    IDEA中把普通的Java项目转换成gradle项目
    Idea中自动生成get,set,toString等方法
    IDEA中阿里P3C插件的安装与使用
    IDEA中SonarLint的安装与使用
  • 原文地址:https://www.cnblogs.com/winsonet/p/1779631.html
Copyright © 2011-2022 走看看