1:将页面内所有的文本用一个
Literal的server控件包起来;
2:对图片的处理:HTML的<img>标签在传src时在中间加一个在CS里定义的全局变量来确实图片来源文件夹
Sample:
Html
码
<
img
src='../test/<%=IMGURL %>/button_add.gif' onclick='javascript:alert("");' id=bbb/>
CS
码
public
partial class _Default : PageBase
{
public string IMGURL ;
protected void Page_Load(object sender, EventArgs e)
{
IMGURL = this.GetIMGURL();
}
}
PageBase
码
Public String GetIMGURL()
{
String returnURL =
“
en-US
”
;
string
thisURL= Request.UserLanguages[0].ToString();
if (thisURL == "en-US")
{
returnURL = "EN"; //EN
是项目里面一个EN的英文图片文件夹
}
else if(thisURL == "zh-cn")
{
returnURL = "CN";//CN
是项目里面一个CN的中文图片文件夹
}
}
Server
的图片或图片按钮
在后台CS用赋值的方法ImageUrl赋图片地址,只是在中间加一个 GetIMGURL()返回的图片文件的名称
3
:
在页面设计视图下
VS.NET 2005
菜单-
Tools
-
Generate Local Resource
,所产生的资源文件将会放在
/App_LocalResources
下面
就会生成一个相对应的关联本地化的资源文件,里面定义了页面所有的服务器控件的本地化资源,在里面可以修改它的值,这只是一个文字(如中文)的版本,如要建其它的版本复制一个刚才的资源,再粘贴在
Generate Local Resource
里面改名
;
如
:
Default.aspx.en-US.resx
等等
,
再将里面的值改成你需要的语言
区域性名称
|
区域性标识符
|
语言
-
国家
/
地区
|
zh-CN
|
0x0804
|
中文
-
中国
|
zh-TW
|
0x0404
|
中文
-
台湾
|
zh-CHS
|
0x0004
|
简体中文
|
zh-CHT
|
0x7C04
|
繁体中文
|
en
|
0x0009
|
英语
|
en-US
|
0x0409
|
英语
-
美国
|
en-GB
|
0x0809
|
英语
-
英国
|
uz-UZ-Cyrl
|
0x0843
|
乌兹别克语(西里尔语)
-
乌兹别克斯坦
|
uz-UZ-Latn
|
0x0443
|
乌兹别克语(拉丁)
-
乌兹别克斯坦
|
4 :JavaScript
里中文字和有文字图片的解决方法
解决
js
里一个麻烦的问题
,
共同调用一个
JS
文件,文件里有一个全局的变量
var Lanflag
,再在页面的开始处定义一个隐藏控件专门作为语言控制的
flag
,并在这个控件下将这个值赋给
Lanflag;
页面所的
JS
,返回文本的地方都要先对
Lanflag
进行判断,来决定使用哪种语言
;
<
asp
:
TextBox
ID=tag runat=server Text="<%$ Resources:ALLflag %>" ></asp:TextBox>//CSS
隐藏
<script language=javascript>
Lanflag
= document.getElementById(
“
tag
”
).value;</script>
或者,在
head
里面定义
lanflag =
<%
=ALLflag %>//Allflag
是cs里面的全局变量 Allflag = GetIMGURL()
5 CS
时面返回到页面的文本
对response.write等返回的文本需要通过全局变量Allflag = GetIMGURL()来判断输出文本;
6
关于datagrid的header的两种改法:
1:
将header变成模板列 文字用Literal包住
2:
<asp:BoundField DataField="ID" ControlStyle-Width="20" HeaderText = "colum1" meta:resourcekey="bfIDResource" /> bfIDResource
为在资源文件里定义
6:这里再补充一点:
关于<system.web>
<globalization uiCulture="zh-CN" culture="zh-CN"/>
<globalization uiCulture="zh-CN" culture="zh-CN"/>
这句话要生效必须在IE选项->常规的语言那里清空语言,不然会按IE设置
关于.net多语言实现(全球化)的参考文章:
上述只是本人择优选择的一种方案,如大家有更好的方法,欢迎提出来讨论;
--Mathew 2008-2-25