你可以创建支持双向语言的 Web 应用程序。并且 ASP.NET 应用程序还会要求你在创建它们来允许单一代码基础的双向支持时注意几种需要考虑的事项。
Web 应用程序中的对象名称
如果你的 Microsoft Windows 副本已经配置了适当的语言,那么你就可以使用一种双向语言来创建 ASP.NET Web 页面。但是,如果该应用程序将被没有进行适当语言配置的用户所访问,那么名称就无法正确地被处理。
例如,如果你使用阿拉伯文的名称创建了 ASP.NET Web 页面,那么没有安装 Windows 阿拉伯文语言包的用户就无法输入这些名称也无法正确地显示该页面。因此,在 Web 应用程序中,你应该使用能够在所有计算机中正确被处理的文字来对元素进行命名。
文化支持
文化和 UI 文化设定会检测应用程序应该如何操作本地化的资源值。然而文化和 UI 文化的支持对于作为任何一种其他语言的双向语言来说应该是相同的。关于文化值设定的详细信息,请参考:[实践:设置 ASP.NET Web 页面全局化的文化和 UI 文化]。
编码
因为 ASP.NET 会把所有的文字都当作 Unicode 来进行处理,所以它天生就是支持双向语言的。你可以有选择地把编码选项设置成用来与浏览器交换信息的特定编码并且这些编码将会应用到应用程序中的文件。如果要这样做,你就需要在应用程序的 Web.config 文件中设置 globalization 元素的 responseEncoding、requestEncoding,和 fileEncoding 特性。在默认时,这些特性都被设置成 UTF-8 编码,从而支持了双向语言。更多信息请参考:[实践:设置 ASP.NET Web 页面全局化的编码]。
从右到左的阅读支持
在创建 Web 窗体页面的时候,你可以设置 dir(方向)特性。通过使用 dir 特性可以指定你是否需要页面使用从左到右还是从右到左的阅读顺序。但是,这需要等到用户的浏览器实现了适当的动作才会生效。更多信息请参考:[实践:使用 HTML 标记来显示全局化中从右到左的文字]。
ASP.NET Web 服务器控件
HTML 和 ASP.NET 服务器控件都支持 Unicode 和双向语言。例如,控件和文字输入控件(比如 TextBox 控件)都能够支持从右到左的阅读顺序,让你输入阿拉伯文或者希伯来文。而 Calendar 控件则支持本地化的日历(比如阿拉伯语的 Hijri)和双向文字。
但是有些控件在使用了双向语言的时候仍然会存在一些问题。详细信息请参考:[双向应用程序中的 ASP.NET Web 控件]。