[英]How to utilize globalization in JavaScript?
我在asp.net
項目的App_GlobalResources
文件夾中創建了 3 個 resx 文件,以便創建一個多語言網站,正如您所知,它是一種key-value
集,在我想在 JavaScript 中使用值的其他情況下,一切似乎都很好。
如果我在 aspx 文件中使用內聯 JavaScript,則可以使用這種方式或
alert('<%= GetGlobalResourceObject([ResourceClassName],[ResourceKey]) %>');
或者
<asp:Literal runat="server" Text="<%$ Resources:[ResourceClassName], [ResourceKey] %>"/>
但是我應該如何在無法使用服務器端代碼的 JavaScript 文件中實現這一點?
我使用的結構類似於我們在ASP.Net
使用的結構,並且我應用了 JavaScript 對象,就像CKEditor
在多語言功能中使用的一樣。
想象一下你有這些文件:
Culture.js
Main.js
Default.aspx
文化.js
像這樣放置與翻譯相關的所有單詞和短語:
if (typeof resource == "undefined") {
resource = {}// = new Object();
resource.lang = {};
}
//English language, United States culture
resource.lang['en-US'] = {
"lable": {
"clickHere": "Click here",
"enterYourName": "Enter your name"
},
"message": {
"deleteConfimation": "Are You sure you want to delete?",
"accessIsDenied": "Access is denied"
}
}
//Farsi language, Iran culture
resource.lang['fa-IR'] = {
"lable": {
"clickHere": "اینجا کلیک کنید",
"enterYourName": "نام خود را وارد کنید"
},
"message": {
"deleteConfimation": "آیا از حذف این مورد اطمینان دارید؟",
"accessIsDenied": "دسترسی مقدور نیست"
}
}
您可以添加任意數量的語言和文化,只需在resourse.lang['language-culture']
使用language-culture
組合來區分它們,最后定義一個與您在 ASP.Net 中使用的名為getGlobalResourceObject()
var getGlobalResourceObject = function (resourceClassName, resourceKey)
{
return resourse.lang[window.lang][resourceClassName][resourceKey];
}
主程序
window.lang = "en-US";//Or "fa-IR"
alert(getGlobalResourceObject("message", "deleteConfimation"));
它會提示一條消息“您確定要刪除嗎?” 如果window.lang
等於en-US
。 (我更喜歡在window.lang
設置當前文化)。
默認.aspx
在Default.aspx
或MasterPage
如果有)中,在Main.js
之前加載Culture.js
,如下所示:
<script src="Culture.js"></script>
<script src="Main.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.