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

vic0228發表於2018-01-27

    本篇是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來判斷了。








相關文章