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

推荐订阅源

F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
C
Check Point Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
The Hacker News
The Hacker News
L
LINUX DO - 热门话题
T
Tenable Blog
Hugging Face - Blog
Hugging Face - Blog
Google Online Security Blog
Google Online Security Blog
博客园 - Franky
P
Proofpoint News Feed
H
Hacker News: Front Page
P
Privacy & Cybersecurity Law Blog
月光博客
月光博客
P
Proofpoint News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
博客园_首页
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CERT Recently Published Vulnerability Notes
Forbes - Security
Forbes - Security
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
博客园 - 叶小钗
T
Threat Research - Cisco Blogs
aimingoo的专栏
aimingoo的专栏
D
Darknet – Hacking Tools, Hacker News & Cyber Security
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Hacker News - Newest:
Hacker News - Newest: "LLM"
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
O
OpenAI News
G
Google Developers Blog
Martin Fowler
Martin Fowler
罗磊的独立博客
S
SegmentFault 最新的问题
T
Tor Project blog
量子位

博客园 - sig556

微信小程序开发需要注意的30个坑 数字证书制作及程序集签名 JAVA和android 环境配置 硬盘安装win2003 MongoDb使用 配置 Win7 和 IIS7 以支持WCF WCF X.509证书验证 IIS+PHP ,apache+Php架设 - sig556 - 博客园 Ubuntu Server学习笔记 FCKeditor 上传自动重命名、按月创建文件夹和基本操作 [转] 软件测试计划模板 web测试的一些经验分享 软件测试流程实施方案 一些常用的正则表达式 - sig556 - 博客园 项目开发过程文档 SharpZipLib使用示例 PostSharp - Lightweight Aspect-Oriented System 需求管理工具DOORS介绍 [转] B/S 系统界面设计规范
ASP.net国际化--页面可以选择输出语言 - sig556 - 博客园
sig556 · 2010-07-05 · via 博客园 - sig556

国际化(internationalization)是让我们所写的程序,有多语言显示,有点象见什么人说什么话的味

道,呵呵!
下面是一个例子:
第一步:
新建一个Website,在这个工程中添加一个类,继承 System.Web.UI.Page,主要代码如下:

  protected override void InitializeCulture()
    {
        if (Request.Cookies["Language"] != null && Request.Cookies["Language"].Value !=

null && Request.Cookies["Language"].Value != "")
        {
          setCulture();
        }
        else
        { //设置Cookie
          Response.Cookies["Language"].Value =
            (Request.Headers["accept-language"].Split(",".ToCharArray())[0]);
          Response.Cookies["Language"].Expires = DateTime.Now.AddDays(1000);
          setCulture();
        }
        base.InitializeCulture();
    }
    private void setCulture()
   {
       try
       {
         String selectedLanguage = Request.Cookies["Language"].Value;
         UICulture = selectedLanguage;
         Culture = selectedLanguage;

         System.Threading.Thread.CurrentThread.CurrentCulture =
           System.Globalization.CultureInfo.CreateSpecificCulture(selectedLanguage);
         System.Threading.Thread.CurrentThread.CurrentUICulture = new
           System.Globalization.CultureInfo(selectedLanguage);
       }
       catch
       {
         Response.Cookies.Clear();
       }
   }

第二步:添加一个WebPage 主要代码如下:

protected void Page_Load(object sender, EventArgs e)
   {  
       Response.Cookies["Language"].Value = Request["Language"];
       Response.Cookies["Language"].Expires = DateTime.Now.AddDays(1000);  
       Response.Redirect(Server.UrlDecode(Request["url"]));
   }
第三步:
添加要显示国际化的页面:
  注意:这个页面要继承我们第一步写的那个类
主要代码:

<asp: Label ID="Label1" runat="server" Text="<%$ Resources:ResourceGlobal,test%>"></asp:

Label>
另外我们还要在此页做国际化测试,所以还要添加一个DropdownList,做为选择显示语言

<asp: DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"

OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp: ListItem Text="English Version" Value="en-US"></asp: ListItem>
<asp: ListItem Text="中 文 版" Value="zh-CN"></asp: ListItem>
</asp: DropDownList>
同时在代码文件添加如下代码:

protected void Page_Load(object sender, EventArgs e)
   {

       if (!Page.IsPostBack)
       {
         if (Request.Cookies["Language"] == null || Request.Cookies["Language"].Value ==

"")
         {
           foreach (ListItem li in DropDownList1.Items)
           {
               if (li.Value == "")
                 li.Selected = true;
           }
         }
         else
         {
           foreach (ListItem li in DropDownList1.Items)
           {
               if (li.Value.ToLower() == Request.Cookies["Language"].Value.ToLower())
                 li.Selected = true;
           }
         }
       }

   }
   protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
   {
       Response.Redirect("~/ChangeLanguage.aspx?Language=" + DropDownList1.SelectedValue +

"&url=" + Server.UrlEncode(Request.Url.PathAndQuery), true);

   }
第四步:添加资源文件ResourceGlobal.resx和ResourceGlobal.en.resx呵呵,这里,只做中英文测试,

所以只做2个了,如果显示其它语言,请自行添加。
在资源文件里一定要添加一个test键值,这是个测试数据啊。
呵呵OK了,现在可以浏览测试了。

好东西,再给大家分享常用言语代号:
zh-cn 简体中文
zh-tw 繁体中文
da-dk 丹麦语
nl-nl 荷兰语
en-us 英语
fi-fi 芬兰语
fr-fr 法语
de-de 德语
it-it 意大利语
ja-jp 日语
ko-kr 朝鲜语
nb-no 挪威语
pt-br 葡萄牙语
es-es 西班牙语
es-us 西班牙语(美国)
sv-se 瑞典语