2008-10-10 57 views
1

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

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

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

回答

1

在我的主项目(一个使用PHP和gettext进行翻译的RAD框架)中,我们已经对JavaScript文件进行了很多准备操作,如合并和缩小它们。在这些准备工作中,我们解析gettext标记并将其替换为特定于语言的文本。

结果得到保存为JavaScript文件,并正常包含到HTML中。

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

文件名包含区域设置和用于高速缓存的散列值。

日期和金额值总是从系统格式转换为输出的区域设置格式,反之亦然。

0

要在我们的应用程序中处理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代码将使用此对象来获取翻译文本。