如何在 JavaScript 中利用全球化?

问题描述 投票:0回答:2

我在

App_GlobalResources
项目的
asp.net
文件夹中创建了 3 个 resx 文件,以便制作一个多语言网站,正如你所知,它是
key-value
集,一切似乎都很好,在我想在 JavaScript 中使用值的情况下.

如果我在 aspx 文件中使用内联 JavaScript,则可以使用 this 方式或

来完成
alert('<%= GetGlobalResourceObject([ResourceClassName],[ResourceKey]) %>');

或者

<asp:Literal runat="server" Text="<%$ Resources:[ResourceClassName], [ResourceKey] %>"/>

但是我应该如何在无法使用服务器端代码的 JavaScript 文件中实现这一点?

javascript asp.net globalization
2个回答
1
投票

我使用的结构与我们在

ASP.Net
中使用的结构类似,并且我应用 JavaScript 对象,就像
CKEditor
在多语言功能中使用的那样。

假设您有这些文件:

Culture.js
Main.js
Default.aspx

Culture.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": "دسترسی مقدور نیست"
        }
    }

您可以添加任意数量的语言和文化,只需在

language-culture
中使用
resourse.lang['language-culture']
组合使它们能够区分,最后定义一个函数,就像您在 ASP.Net 中使用的那样,命名为
getGlobalResourceObject()

 var getGlobalResourceObject = function (resourceClassName, resourceKey)
{
    return resourse.lang[window.lang][resourceClassName][resourceKey];
}

Main.js

window.lang = "en-US";//Or "fa-IR"
alert(getGlobalResourceObject("message", "deleteConfimation"));

它会弹出一条消息,提示“您确定要删除吗?”如果

window.lang
等于
en-US
。 (我更喜欢在
window.lang
中设置当前文化)。

默认.aspx

Default.aspx
MasterPage
(如果有)中,在
Culture.js
之前加载
Main.js
,如下所示:

<script src="Culture.js"></script>
<script src="Main.js"></script>

0
投票

要查找有关 ASP.NET 中全球化支持的信息,请参阅this Microsoft 页面。 根据页面,ScriptManager可以根据用户的文化下发不同的脚本。

© www.soinside.com 2019 - 2024. All rights reserved.