ABP 初探 之 多語言

2022-02-07 02:00:00 字數 2326 閱讀 2831

最近幾天空閒時間比較多,就研究abp的多語言,abp是基於介面的依賴注入,有很多思想與方法都很好,需自己深入體會與應用,轉化成自己的思想應用於實踐。

本篇介紹基於 開源demo modulezerosampleproject,多語言分為兩部分,基於後台的cs**和前台的js。

資源檔案定義分為web端和嵌入dll層

基於dll層的資源檔案需設定檔案屬性為嵌入,否則發布後找不到資源檔案。

基於web端的初始化方法

//

add/remove localization sources here

configuration.localization.sources.add(

newxmllocalizationsource(

modulezerosampleprojectconsts.localizationsourcename,

"~/localization/modulezerosampleproject")));

嵌入dll的初始化方法 abp是命名空間,localization.sources.abpxmlsource是檔案路徑。

configuration.localization.sources.add(

newdictionarybasedlocalizationsource(

abpconsts.localizationsourcename,

newxmlembeddedfilelocalizationdictionaryprovider(

assembly.getexecutingassembly(),

"abp.localization.sources.abpxmlsource

")));

多語言的使用第一步是初始化,只能指定了資源檔名稱才能正常解析與使用,

cotroller 初始化方法,建立cotroller基類 modulezerosampleprojectcontrollerbase,在建構函式新增 資源路徑

public

abstract

class

modulezerosampleprojectcontrollerbase : abpcontroller

}

view code

public

class

}

view code

前端js部分初始化,一空要引用abp.js 在abp.js裡定義了資源初始化的相關方法

abp.localization = abp.localization || {};

abp.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');

view code

通過如何方法可以讀取資源檔案

<

script

>

$(function

() ;

alert(localize(

'role_isdefault

'))

//xml當中定義的字段

})

script

>

前端載入的資源檔案都**於js 動態生成

引用上面的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檔案,此...