如何实现可本地化的javascript?

如何实现可本地化的javascript?,javascript,localization,Javascript,Localization,我有一个web应用程序,它使用了大量的javascript,像往常一样,代码本身中会向用户显示大量的文本常量 您认为使其本地化的最佳方法是什么? 我知道我需要从代码中去掉这些字符串,并用常量替换它们,这些常量将被定义到一些外部位置 对于服务器端,ASP.Net提供了一些非常简洁的功能来处理此问题。 用Javascript做这件事最好的方法是什么 我最好的想法是,创建一个JS文件,其中包含站点JS的所有字符串常量(对于每种语言,我会有不同的副本),然后在每个页面上,我首先包括这个脚本,然后再包括所

我有一个web应用程序,它使用了大量的javascript,像往常一样,代码本身中会向用户显示大量的文本常量

您认为使其本地化的最佳方法是什么?
我知道我需要从代码中去掉这些字符串,并用常量替换它们,这些常量将被定义到一些外部位置

对于服务器端,ASP.Net提供了一些非常简洁的功能来处理此问题。
用Javascript做这件事最好的方法是什么

我最好的想法是,创建一个JS文件,其中包含站点JS的所有字符串常量(对于每种语言,我会有不同的副本),然后在每个页面上,我首先包括这个脚本,然后再包括所有其他脚本。
这似乎是最集中的方式,也浪费了最少的带宽

还有其他更好的方法吗


谢谢

有一个,但我没有用过。

有一个,但我没有用过。

你的方法听起来不错

如果您有大量的字符串,并且担心文件的庞大性,您可能需要考虑一个脚本,该脚本通过连接代码JavaScript和本地JavaScript,然后应用类似于./P>之类的方法,为每个语言创建一个JavaScript文件。


您将在发布上浪费一些CPU周期,但可以节省一些往返时间…

您的方法听起来不错

如果您有大量的字符串,并且担心文件的庞大性,您可能需要考虑一个脚本,该脚本通过连接代码JavaScript和本地JavaScript,然后应用类似于./P>之类的方法,为每个语言创建一个JavaScript文件。


您将在发布上浪费一些CPU周期,但可以节省一些往返时间…

您的方法很有意义。详情:

我在一个对象中有每种语言的字符串

本地化={“猫”:“聊天”,“狗”:“简”}

然后在代码中:

本地化[“猫”]


键和数组表示法(而不是更常见的对象点表示法)的引用是为了避免与JavaScript保留字发生冲突。

您的方法很有意义。详情:

我在一个对象中有每种语言的字符串

本地化={“猫”:“聊天”,“狗”:“简”}

然后在代码中:

本地化[“猫”]

键和数组表示法(而不是更常见的对象点表示法)的引用是为了避免与JavaScript保留字发生冲突。

以下是我们(在ASP.net中)的做法,与您提到的内容大致相同: 1) 创建了两个javascript文件:一个定义了站点所需的所有javascript函数/DOM操作,另一个名为Messages.js:定义了需要本地化的所有字符串文本,如var ALERT_MSG=“ALERT message in english”

2) 创建了Messages.js的不同版本,我们支持的每个语言环境都有一个版本,并对字符串进行了本地化。本地化的js文件使用messages.locale.js命名约定命名(例如messages.fr-fr.js)

3) 在“ScriptManager”中包含js文件,并为Messages.js文件提供ResourceUICultures:这可以确保在html输出中嵌入正确的本地化文件(如果您不使用ASP.net,则可以通过执行区域性嗅探并包含适当的js文件来构建此基本功能)

4) 瞧

下面是我们(在ASP.net中)是如何做到这一点的,与您提到的内容大致相同: 1) 创建了两个javascript文件:一个定义了站点所需的所有javascript函数/DOM操作,另一个名为Messages.js:定义了需要本地化的所有字符串文本,如var ALERT_MSG=“ALERT message in english”

2) 创建了Messages.js的不同版本,我们支持的每个语言环境都有一个版本,并对字符串进行了本地化。本地化的js文件使用messages.locale.js命名约定命名(例如messages.fr-fr.js)

3) 在“ScriptManager”中包含js文件,并为Messages.js文件提供ResourceUICultures:这可以确保在html输出中嵌入正确的本地化文件(如果您不使用ASP.net,则可以通过执行区域性嗅探并包含适当的js文件来构建此基本功能)


4) 瞧

有一个用于本地化JavaScript应用程序的库:

字符串存储在JSON文件中,就像其他人所建议的那样,但它还有一些特性:

它可以进行参数替换,支持性别(巧妙的他/她处理)、数字(巧妙的复数处理,包括具有多个复数形式的语言)以及某些语言所需的自定义语法规则


唯一的要求是jQuery。

有一个用于本地化JavaScript应用程序的库:

字符串存储在JSON文件中,就像其他人所建议的那样,但它还有一些特性:

它可以进行参数替换,支持性别(巧妙的他/她处理)、数字(巧妙的复数处理,包括具有多个复数形式的语言)以及某些语言所需的自定义语法规则


唯一的要求是jQuery。

我已经用上面提到的方法本地化了一个非常非常大的站点,效果很好。易于更新,所有内容都被缓存,等等。我和你们一样感兴趣的是看是否有更好的方法。我不明白“多语言”是如何被“本地化”取代的。这听起来像是一个市场营销人员使用他们的替代措辞机器来调整句子的持久性,以最大限度地提高同步性。我已经用你上面提到的确切方法对一个非常非常大的网站进行了本地化,效果很好。很容易更新,所有东西都被缓存,等等。我和你们一样感兴趣的是看看是否有更好的方法。我不知道怎么做