【问题标题】:ASP.Net: Approaches to multilingual websites with Javascript and AJAXASP.Net:使用 Javascript 和 AJAX 处理多语言网站的方法
【发布时间】:2010-09-16 12:23:54
【问题描述】:

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

这是我参与的第二个遇到此类挑战的项目,第一个项目将文本字符串存储在数据库中,它使用 Prototype 附带的 AJAX 工具而不是 ASP.Net AJAX库并将所有 Javascript 放入 aspx 文件中,以便在退出时可以替换标记。

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

【问题讨论】:

    标签: c# asp.net javascript ajax internationalization


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-05
        • 2010-09-16
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 2016-09-07
        • 1970-01-01
        • 2015-01-06
        相关资源
        最近更新 更多