ResourceProvider 多语言实现
来源:互联网 发布:mac版农行支付宝 编辑:程序博客网 时间:2024/06/06 13:02
1. 在在web.config定义特定的culture和uiCulture, 如果应用自定义resource prodiver的话, 加上resourceProviderFactoryType的设置:
如:
<globalization culture="en-us" uiCulture="en-us" resourceProviderFactoryType="DBResourceProviderFactory, Common "/>
culture和uiCulture也可以设置成auto, 这样就会取浏览器首选区域设定, DBResourceProviderFactory为provider factory类的命名空间加上类名, Common 则为dll的名字。代码就不作详解!
2. 运行中更改语言类别。对浏览器首选语言区域的检测是在页面什么周期早期, 可以在basepage基类中overirde InitializeCulture, 并且修改Thread.CurrentThread.CurrentUICulture和Thread.CurrentThread.CurrentCulture。 如:
3. 可以在后台也可以在页面上直接调用资源
- 后台方法调用: GetLocalResourceObject 或 GetGlobalResourceObject,
- 直接在页面有两种方法: 隐式和显式, 下面简单说说他们俩的区别。
a. 调用方法不同
显示表达式:
调用全局资源 <asp:Literal id="Literal1" Text="<%$ Resources:riskCommon, ltrRiskStatus %>" runat="server"></asp:Literal>, 其中riskCommon是resource type字段, ltrRiskStatus是resource key
调用本地资源<asp:Literal ID="ltrUserName" runat="server" Text="<%$ Resources:ltrUserName %>"></asp:Literal>
隐式表达式:
调用本地资源<asp:Localize runat="server" Text="Deafult value" meta:resourcekey="lblProviderType"></asp:Localize>
b. 隐式表达式只可以调用本地资源
c. 隐式表达式存储值方式不一样, 在database里面如lblProviderType.text是Text属性的resource key。当然也可以配置其他属性, 如Visible的resource key 是lblProviderType.Visible
d. 隐式表达式是通过resourcereader去取资源的, 也就是说会一次把该resource type下的所有资源一次拿出来, 更有利于性能。而显式表达式是一条一条取的。(通过验证, 隐式表达式还是会一个一个跑一次)
e. 隐式表达式通过resource provider取不到值时会用默认值, 如上例中的Text="Default value", 而显式表达式会有编译错误(有点烦)。
注意:如果只是为了显示值,请使用控件<asp:Localize .., 上面有例子。
- ResourceProvider 多语言实现
- 实现多语言资源
- 多语言的实现
- 程序多语言实现
- 多语言实现详解
- .net多语言实现
- Silverlight实现多语言
- C#实现多语言
- C#实现多语言
- 多语言软件实现
- yii2 多语言实现
- ecshop多语言实现
- javascript多语言实现
- Android多语言实现
- APP实现多语言
- Ambari源码分析之Resource.Type与ResourceProvider对应关系
- 语言的多态实现
- .NET程序实现多语言
- 八个cmd 命令
- EXE的程序图标描述及修改(非PE修改)
- 愈~~
- 北欧神话资料(一)
- onclick ,onserverclick ,onclientclick 的使用 ^_^
- ResourceProvider 多语言实现
- Linux 设备文件
- xhprof安装和使用
- 我的七个建议
- 寻求C#和数据库高手!!!
- 解决TCP网络传输“粘包”问题
- February 2nd Thursday 2010
- 2010年1月,对MP4行业的猜测
- 一些比较特殊的语法