许多网站都采用国际化进行页面文章加载和转换,本人认为如果没有必要可以不进行文件的国际化,如果文件太大了,容易造成资源文件的读写速度太慢。下面就具体针对文件的国际化总结的一些方法:(大同小异),aspx
第1 步: App_GlobalResources 文件添加资源文件,文件名称asoruce1
第2 步:<asp:TextBox ID="TextBox1" runat="server" Text="<%$ Resources:asoruce1, Msg1 %>"></asp:TextBox> 取资源文件
当然这个是针对服务器控件,如果是普通hmtl控件,只能通过其他方式获取 ((string)base.GetGlobalResourceObject("XYZResource", "Key")
第3步:
资源文件的引进采用的3种模式:
1) 通过在每个页面里的Page节指定
<%@ Page Culture="en-us" UICulture="en-us" %>
如上所设,该页将使用en-us的语言设置。
注意:这只是个概要式写法,实际的页面中的Page一般都包含更多的属性。
2)通过在Web.Config里的globalization节指定
<system.web>
<globalization Culture="en-us" UICulture="en-us" />
< /system.web>
3)当然还有一种就是通过编程动态切换语言设置啦,这也是实际项目中经常用到的方式
打开Default.aspx,切换到[源]视图,添加如下代码
<a href="?currentculture=zh-cn">中文(中国)</a>
<a href="?currentculture=en-us">English(USA)</a>
(当然这个变量对应的值还可以可以放在其他地方,比如缓存中)
打开Default.aspx.cs,添加如下代码
String s;
protected override void InitializeCulture()
{
s = Request.QueryString["currentculture"];
if (!String.IsNullOrEmpty(s))
{
//UICulture - 决定了采用哪一种本地化资源,也就是使用哪种语言
//Culture - 决定各种数据类型是如何组织,如数字与日期
Thread.CurrentThread.CurrentUICulture = new CultureInfo(s);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(s);
}
}
记得添上这个引用
using System.Threading;
using System.Globalization;
4.部分知识补充:
1>国际化JS文件中的文字,这个一般采用的思路有两种:A>通过读取隐藏表单中的值 B>通过后台写一个方法,JS调用这个方法通过传递key,动态生成国际化变量文字,本人建议后一种比较实用
2>国际页面文字,对于普通的html控件,我们采取的方法也是有两种:A>通过定义大量变量,前台引用这些变量 B>后台写一个方法,通过传递参数进行调用,同样本人建议采用后面一种
5. js中setInterval和setTimeout:
setTimeOut:隔多久执行一次,执行完成后就完事;
setInterval:过多久执行一次,反复进行的动作;
6.<span> 用单标记居然不好用 IE解析都失败,必须用<span> something </span>