在ASP.NET 2.0中实现多语言界面的方法

1、跟以前一样做界面,只是注意,把所有需要有多语言界面的文字都用label来做

2、做完以后,在Solution Explorer里选中这个文件,选Tools->Generate Local Resource

3、你会发现生成了一个目录,App_LocalResources;这个目录里多了一个resx的文件。比如你的aspx文件是default.aspx,它就会生成一个叫做default.aspx.resx的文件。

4、打开这个文件看看,原来在label中的那些文字都跑到这里来了

5、打开原来的aspx文件看看source,会发现源码变了:
以下为引用的内容:

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default2" title="Untitled Page" Culture="auto" meta:resourcekey="PageResource1" UICulture="auto" %>

…………

<asp:Localize ID="Localize1" runat="server" meta:resourcekey="Localize1Resource1"></asp:Localize>


6、注意这里:meta:resourcekey="PageResource1" 和meta:resourcekey="Localize1Resource1" 这就表示这里的文字是从资源中读取的。

7、OK现在来做另一种语言的资源文件。很简单,copy Default.aspx.resx再paste一下,然后rename为Default.aspx.fr-fr.resx注意fr-fr是你要做的语言的名字。大家如果看dvdrip的话,应该觉得这跟字幕文件很像吧?

8、有人说我怎么知道那个语言叫什么名字呢?很简单,打开ie,tools->internet options -> languages -> add,方框中间的就是了。

9、现在开始编辑其他资源的文字。打开Default.aspx.fr-fr.resx,对照着原来的内容,把里面的内容改成法语的。

10、到此为止,我们就完成了第一阶段。ASP.Net会根据用户的语言偏好来选择显示的语言。把IE里的设置改一下,在我们刚说过的地方改成fr-fr,打开这一页看看?如果是法语,恭喜你。如果不是,回头重做……

伊图教程网[www.etoow.com]
http://www.etoow.com/html/2008-03/1205045165.html


11、OK,下一步,我们要允许用户选择自己的语言,而不是自动。我们会用cookie存取用户的选择。在Application级别,我们读取这个cookie并设置适当的culture和uiculture。当然,第一次进来的时候,我们还是要读取浏览器的设置,这个可以从Request.UserLanguages中获得。
以下为引用的内容:

  Private SupportedLanguages As String() = {"en-us", "fr-fr"}

  Public Const LANGUAGE_COOKIE_NAME As String = "UserLanguage"

  Sub Application_AcquireRequestState(ByVal sender As Object, ByVal e As EventArgs)

    Dim languageCookie As HttpCookie = Request.Cookies(LANGUAGE_COOKIE_NAME)

    Dim language As String = String.Empty

    If (languageCookie Is Nothing) Then

      Dim userLanguages As String() = Request.UserLanguages Www^Chinaz^com

      Dim index As Integer

      For i As Integer = 0 To userLanguages.Length - 1

        index = Array.IndexOf(SupportedLanguages, userLanguages(i))

        If index >= 0 Then

          language = SupportedLanguages(index)

Exit For

        End If

      Next

      If language = String.Empty Then _

        language = SupportedLanguages(0)

      Response.Cookies.Add(New HttpCookie(LANGUAGE_COOKIE_NAME, language))

    Else

      language = languageCookie.Value

    End If

    Dim culture As CultureInfo = New CultureInfo(language)

    System.Threading.Thread.CurrentThread.CurrentUICulture = culture

End Sub

12、然后我们要有一页让用户选择语言,比如我们用两个button来做。在点击这个button之后,我们要设置这个cookie为适当的语言:


伊图教程网[www.etoow.com]
http://www.etoow.com/html/2008-03/1205045165-1.html

以下为引用的内容:


  Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click

    SetLanguage("fr-fr")

  End Sub

  Protected Sub SetLanguage(ByVal language As String)

    Response.Cookies(Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = language

    Dim culture As CultureInfo = New CultureInfo(language)

    System.Threading.Thread.CurrentThread.CurrentUICulture = culture

    Server.Transfer(Request.Path)

End Sub

注意最后的Server.Transfer(Request.Path) ,这是为了重新读取这一页,这样这一页也会显示新选择的语言。

13、最后我们要去掉ASP.Net的自动选择。从Default.aspx中去除:

Culture="auto" UICulture="auto"

14、打开来看一看吧! 
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计,皆可应用在项目、毕业设计、课程设计、期末/期/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值