有几种方法可以实现目标(嵌入式资源、处理程序和 ajax 方法存在各种优点/缺点),但如果您需要在本机文件的基础上执行此操作,您可以使用 here 所述的 ajax 脚本管理器.
简而言之,您可以创建一个基本的本地化脚本,其中包含您需要的任何函数、对象、字符串、foo:
\webresources\scripts\localised\base.js
...然后使用资源命名模式添加您喜欢的任何本地化变体:
\webresources\scripts\localised\base.fr.js
\webresources\scripts\localised\base.en-US.js
...然后在脚本管理器中添加一个引用:
<asp:ScriptManager ID="YourScriptManager" runat="server" EnableScriptLocalization="true">
<Scripts>
<asp:ScriptReference Path="\webresources\scripts\localised\base.js" ResourceUICultures="fr,en-US"/>
</Scripts>
</asp:ScriptManager>
(我不是 100% 确定那里的 CSV 文化列表,但我认为这是正确的)
编辑:用法
所以你可以用
填充 base.js
// Default culture version
var translations = {
hello : "Hello!"
}
...base.fr.js 与:
// En Français
var translations = {
hello : "Bonjour!"
}
..base.en-US.js 与:
// Americanified
var translations = {
hello : "Howdy!"
}
...然后在您的不变代码中简单地使用translations.hello 并获取文化提出的任何内容。
您可以在这些文件中添加整个方法(用于日期计算、格式化或其他)或任何东西。关键是要意识到它们是相互排斥的,因此重要的是它们具有相同的...接口,因为没有更好的词,因此它们可以与消耗它们的任何东西正交。