惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
S
SegmentFault 最新的问题
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
DataBreaches.Net
F
Fortinet All Blogs
TaoSecurity Blog
TaoSecurity Blog
D
Docker
C
Cybersecurity and Infrastructure Security Agency CISA
K
Kaspersky official blog
宝玉的分享
宝玉的分享
腾讯CDC
Google Online Security Blog
Google Online Security Blog
Recorded Future
Recorded Future
T
The Exploit Database - CXSecurity.com
T
The Blog of Author Tim Ferriss
V
V2EX
S
Securelist
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Y
Y Combinator Blog
P
Proofpoint News Feed
T
Tor Project blog
AWS News Blog
AWS News Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Last Watchdog
The Last Watchdog
博客园 - 聂微东
T
Threat Research - Cisco Blogs
B
Blog
Attack and Defense Labs
Attack and Defense Labs
L
Lohrmann on Cybersecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
N
News and Events Feed by Topic
博客园 - 司徒正美
H
Help Net Security
C
Cisco Blogs
C
Check Point Blog
S
Secure Thoughts

博客园 - Steven Xiao

asp.net接收API Post Json数据为空要注意的事项 解决Asp.net 程序在 IIS 5.1 上运行不支持转换Decimal类型小数点的问题 - Steven Xiao 把XML 文件转换为 String 字符串 - Steven Xiao C#语言规范 3.0 版 分享DotNetBar控件制作office 2007风格界面的视频教程(winform office 2007 风格) XMLHttpRequest对象 SQL 2005实现单表分页的查询语句 分享实现web用户控件调用.aspx页面里的方法(从而达到访问母页面中控件的目的) 软件开发者面试百问 分享一个DotNetBar做的三层架构的winForm程序 分享一个不错的js提示信息代码(tooltips) - Steven Xiao - 博客园 dropdownlist实现树型结构的栏目信息 asp.net 2.0实现多语言(一) 一个封装的在后台弹出JS Alert消息和JS confirm信息以及跳转到指定的页面 一个小小的WEB程序源代码 網絡收藏: 弹出窗口总结 - Steven Xiao gridview 实现全选和反选--补充 收藏的 sql经典语句 ---来自网上 ASP.NET button控件样式
asp.net 2.0实现多语言(二)
Steven Xiao · 2008-07-12 · via 博客园 - Steven Xiao

在上一篇文章中基本上已实现了网站的多语言功能了,但是网站上的图片,CSS样式文件怎么利用资料文件来实现呢?

1.我们接着上一篇文章中建立的项目继续做,新建一个test2.aspx文件,同时新建一个images文件夹和style文件夹.
在images文件夹下放两张图片: loading.gif 和loading_en.gif  . 在style文件夹下建两个CSS样式表文件: CSS.css 和CSS_en.css

CSS.css文件的样式代码为:

body
{
    font-family: Arial @宋体 font-size:12px;
   
}

#maindiv
{
    margin: 20px;
    padding: 10px;
    height: 200px;
    width: 200px;
    border: solid 5px #C0C0C0;
    text-align: center;
    background-color: Olive;
}

CSS_en.css文件样式代码为:

body
{
    font-family: Arial Verdana;
    font-size: 12px;
}


#maindiv
{
    margin: 20px;
    padding: 10px;
    height: 200px;
    width: 200px;
    border: solid 5px #C0C0C0;
    text-align: center;
    background-color: gray;
}

2.新一个命名为BaseLanguage.cs的类,并设置这类继承: System.Web.UI.Page ,代码如下:


    public class BaseLanguage : System.Web.UI.Page
    {
        protected override void InitializeCulture()
        {
            string culture = Request.QueryString["curlanguage"];
            if (!String.IsNullOrEmpty(culture))
            {
                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture);
                System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(culture);
            }
        }

    }

因为上面的这段代码是每个页面都必须要有的,所以这里把分给写到一个专门的类中,并继承System.Web.UI.Page,然后每个页面再继承这个类就可以了

整个项目的文件结构如下图所示:

3.打开test2.aspx文件,在head中加入

<head runat="server">
    <title>asp.net 2.0实现多语言</title>
    
    <link href="style/CSS.css" rel="stylesheet" type="text/css" id="link"  runat="server"/>
   
</head>

这里我给<link>,添加了runat="server" id="link",就把link作为了一个服务器控件了,在后台可以引用
同时body中的代码如下:

<body>
    <form id="form1" runat="server">
   <center>
        <div id="maindiv">
            <br />
            <a href="?curlanguage=zh-cn">中文</a> &nbsp;
             <a href="?curlanguage=en-us">英文</a>
            <br />
            <br />
            国家:&nbsp;<asp:Literal ID="ltlcountry" runat="server"></asp:Literal>
            <br />
            城市:&nbsp;<asp:Literal ID="ltlcity" runat="server"></asp:Literal>
           
             <br />
            <br />
            国家2:&nbsp;<asp:Literal ID="ltlcountry2" runat="server"></asp:Literal>
            <br />
            城市2:&nbsp;<asp:Literal ID="ltlcity2" runat="server"></asp:Literal>
            <br />
            <br />
            <br />
            <br />
            <img runat="server" id="imgLoading" alt="" src="~/images/loading.gif" />
            
        </div>
    </center>
    </form>
</body>

//注意加个img标签,runat="server"

4.打开资源文件,添加一个名称为loadingImg和pagestyle的资源项:如下图所示

5. 打开test2.aspx.cs文件,把它继承"

System.Web.UI.Page" 改成继承 "BaseLanguage"类
代码如下所示:


    public partial class Test2 : BaseLanguage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                link.Href = Resources.language.pagestyle.ToString();   //页面的样式文件设置
                imgLoading.Src = Resources.language.loadingImg.ToString();   //图片的路径

                ltlcountry.Text = Resources.language.country.ToString();
                ltlcity.Text = Resources.language.city.ToString();

                ltlcountry2.Text = (string)GetGlobalResourceObject("language", "country");
                ltlcity2.Text = (string)GetGlobalResourceObject("language", "city");

            }
        }
    }

6.build下整个项目,F5浏览下 test2.aspx 的 效果:图片和样式都有改变

7.最后 如何让我网站自动根据用户端的浏览器语言设置来自动显示相应的呢?
  1)打开web.config文件, 在system.web节中间加上globalization配置节,如下代码:
<system.web>
.......

<globalization culture="auto" uiCulture="auto" requestEncoding="UTF-8" responseEncoding="UTF-8"/>
    </system.web>

   2)打开IE浏览器,工具-->Internet选项-->常规-->语言  ,来设置浏览器的语言项,为里我把英语(美国)移到最上面 .如下图所示:

点"确定",关了浏览器,然后再重新浏览 test2.aspx.在我们没有点击"英文"就自动显示英文了.

整个项目的源文件下载: 
/Files/xiaoxijin/MulitLanguage.rar