如果此 Javascript 直接在 ASPX 页面上,那么您应该能够使用以下语法访问全局资源对象:
PersonalReportLink.innerHTML = '<%= GetGlobalResourceObject("languagetext","PersonalReportFrench") %>';
但是,在尝试本地化嵌套在 javascript 文件中的字符串时,您可能会遇到问题。如果这不起作用,那么您可能需要以稍微复杂的方式本地化 Javascript。
您可以使用 ScriptManager 的 EnableScriptLocalization 属性将 Javascript 文件用作资源。
将以下内容添加到需要该资源的任何页面:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true" EnableScriptLocalization="true">
<Scripts>
<asp:ScriptReference Path="~/scriptResources.js" ResourceUICultures="fr-FR,de-DE" />
</Scripts>
</asp:ScriptManager>
这里要注意的重要事项是脚本文件的路径、和中的文化ResourceUICultures="fr-FR,de-DE"
列表EnableScriptGlobalization="true"
。
接下来,将一个名为 scriptResources.js 的 JS 文件添加到您的项目中,并使用默认语言的资源填充它:
var PersonalReportFrench = 'My English text';
var resourceTwo = 'More English text';
然后为本地化字符串添加另一个 JS 文件scriptResources.fr-FR.js
:
var PersonalReportFrench = 'Mon texte Français';
var resourceTwo = 'Texte plus Français';
现在,只要将Thread.CurrentThread.CurrentCulture
其设置为正确的文化并且它与脚本文件名和ResourceUICultures
属性中的语言环境匹配,ScriptManager 将加载正确的 JS 文件,您可以像这样在 JS 中使用变量:
PersonalReportLink.innerHTML = PersonalReportFrench;