国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

在ASP.Net 2.0中實(shí)現(xiàn)多語言界面的方法

2024-07-10 13:10:43
字體:
供稿:網(wǎng)友

1.     跟以前一樣做界面,只是注意,把所有需要有多語言界面的文字都用label來做

2.     做完以后,在solution explorer里選中這個文件,選tools->generate local resource

3.     你會發(fā)現(xiàn)生成了一個目錄,app_localresources;這個目錄里多了一個resx的文件。比如你的aspx文件是default.aspx,它就會生成一個叫做default.aspx.resx的文件。

4.     打開這個文件看看,原來在label中的那些文字都跑到這里來了

5.     打開原來的aspx文件看看source,會發(fā)現(xiàn)源碼變了:

<%@ 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現(xiàn)在來做另一種語言的資源文件。很簡單,copy default.aspx.resx再paste一下,然后rename為default.aspx.fr-fr.resx注意fr-fr是你要做的語言的名字。大家如果看dvdrip的話,應(yīng)該覺得這跟字幕文件很像吧?

8.     有人說我怎么知道那個語言叫什么名字呢?很簡單,打開ie,tools->internet options -> languages -> add,方框中間的就是了。

9.     現(xiàn)在開始編輯其他資源的文字。打開default.aspx.fr-fr.resx,對照著原來的內(nèi)容,把里面的內(nèi)容改成法語的。

10. 到此為止,我們就完成了第一階段。asp.net會根據(jù)用戶的語言偏好來選擇顯示的語言。把ie里的設(shè)置改一下,在我們剛說過的地方改成fr-fr,打開這一頁看看?如果是法語,恭喜你。如果不是,回頭重做……

11. ok,下一步,我們要允許用戶選擇自己的語言,而不是自動。我們會用cookie存取用戶的選擇。在application級別,我們讀取這個cookie并設(shè)置適當(dāng)?shù)腸ulture和uiculture。當(dāng)然,第一次進(jìn)來的時候,我們還是要讀取瀏覽器的設(shè)置,這個可以從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

            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來做。在點(diǎn)擊這個button之后,我們要設(shè)置這個cookie為適當(dāng)?shù)恼Z言:

    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. 打開來看一看吧!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邵阳县| 三亚市| 仙游县| 县级市| 塔城市| 揭东县| 长葛市| 南投县| 蓬莱市| 井研县| 门源| 仙游县| 成武县| 建德市| 清新县| 团风县| 资中县| 英吉沙县| 五常市| 托里县| 荔浦县| 东乌珠穆沁旗| 长沙县| 蒙山县| 察隅县| 合阳县| 东台市| 冕宁县| 凤城市| 华蓥市| 绥滨县| 华亭县| 西安市| 礼泉县| 富锦市| 凤翔县| 蒙阴县| 成都市| 青海省| 襄垣县| 开江县|