Impossible is nothing

记录在sharepoint工作中的经验

博客园 首页 新随笔 联系 订阅 管理

    以前很少接触多语言的系统,公司里有个比较不错的portal项目, 我看了有实现多语言的功能, 了解了下它的基本原理:利用资源文件保存不同的语言内容;例如中文一个资源文件, 英文一个资源文件, 日文...;

    具体如何架构的属于商业秘密;

 

    于是自己写了一个最基本,最简单的功能;根据该原理可自己扩充~~~~;

 

    忘了补充一下, 该功能在VS2003下开发, 或许在VS2005下不能通过。

 

1.   新建一个WebApplication, 然后在根目录新建两个资源文件:MultiLang.en-us.resx 和 MultiLang.zh-cn.resx。 目录结构如下:

 

 

2.  Default.aspx的Html如下:

            <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 360px; POSITION: absolute; TOP: 160px" cellSpacing="1"
                cellPadding
="1" width="400" border="1">
                
<TR>
                    
<TD align="center" colSpan="2"><FONT face="宋体">
                            
<asp:Label id="LabTitle" runat="server" /></FONT></TD>
                
</TR>
                
<TR>
                    
<TD></TD>
                    
<TD></TD>
                
</TR>
                
<TR>
                    
<TD>
                        
<asp:Label id="LabUserName" runat="server" /></TD>
                    
<TD>
                        
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox></TD>
                
</TR>
                
<TR>
                    
<TD></TD>
                    
<TD></TD>
                
</TR>
                
<TR>
                    
<TD>
                        
<asp:Label id="LabPassword" runat="server" /></TD>
                    
<TD>
                        
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox></TD>
                
</TR>
                
<TR>
                    
<TD></TD>
                    
<TD></TD>
                
</TR>
                
<TR>
                    
<TD></TD>
                    
<TD>
                        
<asp:Button id="BtnSubmit" runat="server"></asp:Button>&nbsp;&nbsp;
                        
<asp:Button id="BtnCancel" runat="server"></asp:Button></TD>
                
</TR>
                
<TR>
                    
<TD></TD>
                    
<TD></TD>
                
</TR>
            
</TABLE>

 

3.   CS 文件代码:
导入命名空间:

using System.Threading;
using System.Reflection;
using System.Resources;
using System.Globalization;

            userLan = Request.UserLanguages[0].ToString();

            
try
            
{
                Thread.CurrentThread.CurrentUICulture 
= new CultureInfo(userLan);
            }

            
catch
            
{
                Thread.CurrentThread.CurrentUICulture 
= new CultureInfo("en-us");
            }


            ResourceManager myResource 
= new ResourceManager("ResourceProject.MultiLang",Assembly.GetExecutingAssembly());

            
this.LabTitle.Text = myResource.GetString("@LabTitle");
            
this.LabUserName.Text = myResource.GetString("@LabUserName");
            
this.LabPassword.Text = myResource.GetString("@LabPassword");
            
this.BtnSubmit.Text = myResource.GetString("@BtnSubmit");
            
this.BtnCancel.Text = myResource.GetString("@BtnCancel");

 

4.  MultiLang.en-us 文件内容:

 

5.  MultiLang.zh-cn文件内容:

 

6.  最后的效果:

英文界面:

中文界面:

 

说明及注意:
   // 资源文件的命名规则: 文件名.语言代码.resx.
   // 实例化规则:   项目namespace.文件名.
   // 资源文件只能放在根目录下.

 

项目文件下载

posted on 2008-07-24 16:38  Lordan  阅读(862)  评论(0)    收藏  举报