您的位置:首页 > Web前端

Dynamics 365(online) V9.0 new features for developers(三:Web 资源本地化)

2018-01-27 21:30 609 查看
    本篇是9.0版本针对开发者新变化系列的第三篇,介绍9.0版本新加的web资源的本地化支持,这个其实也是9.0 new features之一,但为何不放在new features系列里而放在new features for developers系列里,因为本篇要讲的内容和上一篇的web资源的依懒性有关,所以索性就放在了new features for developers系列了。
    CRM一直是支持多语言的,但它的多语言也只是针对系统的自有功能和字段标签等,针对客制化的脚本或者html中的内容是无法做到多语言支持的,举个最简单的例子,销售订单上的一个提交按钮,提交后会有个提交成功的提示,拿中英文双语来说,目前的做法是判断登录用户的语言是2052还是1033,然后决定是提示显示"提交成功"还是"Submit Success",那如果语言一多就是灾难了。
     那9.0版本新增的web资源类型"字符串resx"就能很好的解决这个问题,具体如何解决的呢,咱一起来看下。
     首先我们需要新建一个resx的文件,打开visual studio,add一个new item,搜索resource file



     点击右下方的add之后会打开像下图这样的一个键值对的框,我属于本示例中用到的Title和对应的中文Value"展示Resx示例",以及另外个英文的Value"ShowResxDemo",注意这里一种语言是一个文件(本示例是两个文件对应2052中文1033英文),当然一种语言你也可以搞多个文件。



    建完文件后我们回到CRM的web resource,新建一个类型是"字符串RESX"的文件,并上传我们刚才在visual studio中新建的resx文件,注意web资源的命名格式,名称点语言id点resx,查看下面两张图,名称要保持一致,因为后面讲代码调用的时候会用到。





   前期准备工作做完了,下面准开始使用了,打开我们的js文件,添加依赖项(这块不理解,请移步上一篇),这块查看的是resx的web资源,别再默认的javascript的web资源里找,找到后添加上



    我们在语言代码那列就能清晰的看到对应的语言



    然后再看下代码,注意下前面我说过的名称,此处传的名称值是new_resxdemo,和我上面对应下
function GetResourceString(webResourceName, key) {
return Xrm.Utility.getResourceString(webResourceName, key);
}

function TestFax(executionContext)
{

var Title= GetResourceString("new_resxdemo", "Title");
alert(Title);
}
   最后看下效果,当用户语言是中文时提示中文,当用户语言是英文时切换英文(其他语言同理),只要一个GetResourceString方法就搞定了,不再需要以前的根据登录用户语言id来判断了。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: