我采取了完全不同的方法。
我想让我的 Javascript 文件所需的资源字符串成为我的 resx 文件的一部分。
我的资源文件中以js开头的每个键都必须在 Javascript 中可用。
在 global.asax 中,在 Application_OnStart 中,我为所有支持的语言即时构建 Javascript 文件。因为这只发生在应用程序的开始,所以它是否需要几秒钟并不重要。
好处:
- 所有翻译都集中在一个地方(在您用于 .NET 应用程序(C# 或 VB)的 rex 文件中,也用于您的 Javascript 代码
- 始终保持最新
- 非常快,因为我们将使用变量来获取翻译
构建 Javascript 文件很容易。遍历所有 resx 文件中的所有键值对。只需选择以 开头的键即可_js_
。将键值对保存在 Javascript 文件中。
因此,如果 resx 文件 (languageSupport_es.resx) 中的键值对是 '_js_Hello'、'Hola',我会在我的 Javascript 文件 (languageSupport_es.js) 中写入var Hello = 'Hola';
如果当前语言是西班牙语,那么alert(Hello)
会给你“Hola”。
我现在唯一需要注意的是,在我的其他 Javascript 文件之前加载正确的“语言 Javascript 文件”。因此,如果语言是西班牙语,我只首先包含我的“西班牙语 Javascript 文件”(languageSupport_es.js)。
容易吗?如果有人感兴趣,我可以展示一些示例代码...