最近幾天空閒時間比較多,就研究abp的多語言,abp是基於介面的依賴注入,有很多思想與方法都很好,需自己深入體會與應用,轉化成自己的思想應用於實踐。
本篇介紹基於 開源demo modulezerosampleproject,多語言分為兩部分,基於後台的cs**和前台的js。
資源檔案定義分為web端和嵌入dll層
基於dll層的資源檔案需設定檔案屬性為嵌入,否則發布後找不到資源檔案。
基於web端的初始化方法
//嵌入dll的初始化方法 abp是命名空間,localization.sources.abpxmlsource是檔案路徑。add/remove localization sources here
configuration.localization.sources.add(
newxmllocalizationsource(
modulezerosampleprojectconsts.localizationsourcename,
"~/localization/modulezerosampleproject")));
configuration.localization.sources.add(多語言的使用第一步是初始化,只能指定了資源檔名稱才能正常解析與使用,newdictionarybasedlocalizationsource(
abpconsts.localizationsourcename,
newxmlembeddedfilelocalizationdictionaryprovider(
assembly.getexecutingassembly(),
"abp.localization.sources.abpxmlsource
")));
cotroller 初始化方法,建立cotroller基類 modulezerosampleprojectcontrollerbase,在建構函式新增 資源路徑
publicview codeabstract
class
modulezerosampleprojectcontrollerbase : abpcontroller
}
publicview codeclass
}
前端js部分初始化,一空要引用abp.js 在abp.js裡定義了資源初始化的相關方法
abp.localization = abp.localization || {};view codeabp.localization.localize = function (key, sourcename)
var value = source[key];
if (value == undefined)
var copiedarguments = array.prototype.slice.call(arguments, 0);
copiedarguments.splice(1, 1);
copiedarguments[0] = value;
};abp.localization.getsource = function (sourcename) ;
};abp.localization.iscurrentculture = function (name) ;
abp.localization.defaultsourcename = undefined;
abp.localization.abpweb = abp.localization.getsource('abpweb');
通過如何方法可以讀取資源檔案
<前端載入的資源檔案都**於js 動態生成script
>
$(function
() ;
alert(localize(
'role_isdefault
'))
//xml當中定義的字段
})
script
>
引用上面的js檔案會生成如下 內容
views 介面也可以通過如下方法顯示多語言,l 方法位於如下命名空間 abp.web.mvc.views.abpwebviewpage
軟體多語言
locale是指特定於某個國家或地區的一組設定,包括字符集,數字 貨幣 時間和日期的格式等。在windows中,每個locale可以用乙個32位數字表示,記作lcid。在winnt.h中可以看到lcid的組成。它的高16位表示字元的排序方法,一般為0。在它的低16位中,低10位是primary la...
多語言切換
專案中應用到了多語言切換,鞏固一下。貼上 大家一起學習。廢話不多說直接上 1 新增多語言 在res values 下預設有個strings,需要多種語言就來建立幾個strings,values右鍵 new 乙個 values res file file name 就是strings director...
Qt 筆記 多語言
1 使用命令 lupdate no obsolete main.pro 作用 將main.pro檔案內的所有源程式檔案中的被tr 包裝的字串打包成.ts檔案,此檔案可以使用qt的qt linguist開啟並翻譯 2 使用命令 lrelease main.pro 作用 通過.ts檔案生成.qm檔案,此...