首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何本地化带资源的非嵌入式javascript文件?

如何本地化带资源的非嵌入式javascript文件?
EN

Stack Overflow用户
提问于 2010-09-03 16:17:48
回答 1查看 520关注 0票数 0

在我的项目中,有嵌入式和非嵌入式的javascript代码。我像下面这样做了嵌入式代码的本地化,它工作了。

代码语言:javascript
运行
复制
CN.DEFAULT_CONFIG = {
    strings : {
        year: '<%=GetGlobalResourceObject("Resource", "YEAR") %>'

... ..。

但是,这种方法不适用于非嵌入式javascript代码。我如何为他们做本地化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-03 16:45:45

有几种方法可以实现这一目标(嵌入式资源、处理程序和ajax方法各有优缺点),但如果需要在本机文件基础上实现这一点,可以使用here中描述的ajax脚本管理器。

简而言之,您可以创建一个基本的本地化脚本,其中包含您需要的任何函数、对象、字符串和foo:

代码语言:javascript
运行
复制
\webresources\scripts\localised\base.js

...then使用资源命名模式添加您喜欢的任何本地化变体:

代码语言:javascript
运行
复制
\webresources\scripts\localised\base.fr.js
\webresources\scripts\localised\base.en-US.js

...then在脚本管理器中添加一个引用,如下:

代码语言:javascript
运行
复制
<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

代码语言:javascript
运行
复制
// Default culture version
var translations = {
  hello : "Hello!"
}

...base.fr.js具有以下特性:

代码语言:javascript
运行
复制
// En Français
var translations = {
  hello : "Bonjour!"
}

..base.en-US.js具有:

代码语言:javascript
运行
复制
// Americanified
var translations = {
  hello : "Howdy!"
}

然后,...and只需在您的不变代码中使用translations.hello,就可以获得该文化产生的任何结果。

您可以在这些文件中添加完整的方法(用于日期计算、格式化或其他任何内容)或任何内容。关键是要意识到它们是彼此独占的,因此它们拥有相同的...接口,因为缺少更好的词,所以它们可以与任何消耗它们的东西正交。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3634050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档