ASP.Net:使用Javascript和AJAX访问多语言网站的方法

本文关键字:语言 网站 方法 访问 AJAX Net 使用 Javascript ASP | 更新日期: 2023-09-27 17:48:53

我们最近完成了英文和法文的ASP.Net网站的第一阶段。我们使用资源文件来存储特定语言的字符串,但由于该网站大量使用ASP.Net AJAX和javascript,我们设置了一个解决方案,通过ASP.Net管道传递正确的文件,在那里我们可以捕获"令牌",并用从资源文件中提取的适当文本替换它们。

这是我参与的第二个面临这些挑战的项目,第一个项目将文本字符串存储在数据库中,而不是ASP.Net AJAX,它使用了原型库附带的AJAX工具,并将所有Javascript放入aspx文件中,以便在退出时替换令牌。

我想知道的是,有没有其他人遇到过类似的情况?你采取了什么方法?吸取了什么教训?您是如何处理国际化日期格式之类的问题的?

ASP.Net:使用Javascript和AJAX访问多语言网站的方法

在我的主项目(一个使用PHP和gettext进行翻译的RAD框架)中,我们已经在javascript文件上做了很多准备操作,比如合并和缩小它们。在这个准备过程中,我们解析gettext标记,并用特定语言的文本替换它们。

结果保存为javascript文件,并正常包含在html中。

<script scr="var/scripts/en_GB-76909c49e9222ec2bb2f45e0a3c8baef80deb665.js"></script>

文件名包含区域设置和用于缓存的哈希值。

日期和货币值在输出时总是从系统格式转换为Locale格式,反之亦然。

为了在我们的应用程序中处理il8n,我们动态创建了一个JavaScript文件(基于我们感兴趣的语言环境),其中包含密钥和翻译,例如

LOCALISATIONS = {
    'util.date.day.long': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
    'util.date.day.short': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
    ...
};

其他JavaScript代码将使用此对象来获取翻译后的文本。