MonoRail学习笔记二十:资源文件的使用和多语言支持
2007-11-21 22:05
901 查看
-
和ASP.NET一样,MonoRail也可以方便的使用资源文件,以及利用资源文件来实现多语言的支持。
主要是利用了Resource和LocalizationFilter这两个属性,具体使用方法如下:
1、使用资源文件
Controller代码:
[Resource("resx", "TestSiteNVelocity.Controllers.ResourceFile")]
public class ResourcedController : SmartDispatcherController
$resx.testKey
然后再加入ResourceFile.resx和ResourceFile.zh-cn.resx两个资源文件,都包含名称为testKey的键值
那么在中文环境下浏览就会显示ResourceFile.zh-cn.resx里面定义的值,在英文或其他环境下浏览时就会显示ResourceFile.resx里面定义的值
另外还可以使用如下方式:
[Resource("resx", "TestSiteNVelocity.Controllers.ResourceFile", CultureName="zh-cn")]
来强制指定使用中文的资源文件,即ResourceFile.zh-cn.resx
2、结合LocalizationFilter属性实现多语言
Controller代码:
[Resource("resx", "TestSiteNVelocity.Controllers.ResourceFile")]
[LocalizationFilter(Castle.MonoRail.Framework.Filters.RequestStore.Cookie, "locale")]
public class ResourcedController : SmartDispatcherController
vm代码:
$resx.testKey
<form method="post" action="SetLanguage.rails" id="form1">
<select name="langCode" onchange="document.getElementById('form1').submit();">
<option value=""></option>
<option value="zh-cn">中文</option>
<option value="en">English</option>
</select>
</form>
浏览效果如下:
就可以动态的选择语言了
解释:
当选择下拉列表中的一个语言后,调用Controller中的SetLanguage方法,将选择的语言放入cookie中,cookie名为:locale,然后重新进入此页面。进入此页面时由LocalizationFilter属性决定根据cookie中的locale的值来设定当前的本地化。
当然这里LocalizationFilter属性也可以根据Session、Cookie、QueryString、Form、Params中的值来决定本地化
和ASP.NET一样,MonoRail也可以方便的使用资源文件,以及利用资源文件来实现多语言的支持。
主要是利用了Resource和LocalizationFilter这两个属性,具体使用方法如下:
1、使用资源文件
Controller代码:
[Resource("resx", "TestSiteNVelocity.Controllers.ResourceFile")]
public class ResourcedController : SmartDispatcherController
$resx.testKey
然后再加入ResourceFile.resx和ResourceFile.zh-cn.resx两个资源文件,都包含名称为testKey的键值
那么在中文环境下浏览就会显示ResourceFile.zh-cn.resx里面定义的值,在英文或其他环境下浏览时就会显示ResourceFile.resx里面定义的值
另外还可以使用如下方式:
[Resource("resx", "TestSiteNVelocity.Controllers.ResourceFile", CultureName="zh-cn")]
来强制指定使用中文的资源文件,即ResourceFile.zh-cn.resx
2、结合LocalizationFilter属性实现多语言
Controller代码:
[Resource("resx", "TestSiteNVelocity.Controllers.ResourceFile")]
[LocalizationFilter(Castle.MonoRail.Framework.Filters.RequestStore.Cookie, "locale")]
public class ResourcedController : SmartDispatcherController
vm代码:
$resx.testKey
<form method="post" action="SetLanguage.rails" id="form1">
<select name="langCode" onchange="document.getElementById('form1').submit();">
<option value=""></option>
<option value="zh-cn">中文</option>
<option value="en">English</option>
</select>
</form>
浏览效果如下:
就可以动态的选择语言了
解释:
当选择下拉列表中的一个语言后,调用Controller中的SetLanguage方法,将选择的语言放入cookie中,cookie名为:locale,然后重新进入此页面。进入此页面时由LocalizationFilter属性决定根据cookie中的locale的值来设定当前的本地化。
当然这里LocalizationFilter属性也可以根据Session、Cookie、QueryString、Form、Params中的值来决定本地化
相关文章推荐
- MonoRail学习笔记二十:资源文件的使用和多语言支持
- MonoRail学习笔记二十:资源文件的使用和多语言支持
- C语言学习笔记----伊能C语言学习笔记----如何在一个文件中使用另一个文件中定义的变量呢??
- 让asp.net网站支持多语言,使用资源文件
- VS下QT学习笔记-使用.qrc资源文件
- Android 资源文件string.xml 中数组的使用(可支持多语言)
- 让asp.net网站支持多语言,使用资源文件
- VS下QT学习笔记-使用.qrc资源文件
- 让asp.net网站支持多语言,使用资源文件
- 让asp.net网站支持多语言,使用资源文件
- Android 学习笔记4:资源文件的定义和使用
- 汇编语言学习笔记-使用菜单资源
- C#学习笔记(十六):使用打开保存文件对话框
- Android(java)学习笔记214:开源框架的文件上传(只能使用Post)
- Linux 学习笔记 -- 第四部分 Linux 使用着管理 -- 第15章 磁盘配额 (Quota) 与高级文件系统管理
- JSP学习笔记(二)-----使用Tomcat运行JSP文件
- c语言学习笔记二十
- java学习笔记:使用zip api进行文件解压缩以及不解压直接读取指定文件内容
- Windows 8 Metro 学习笔记(二十)--SemanticZoom的使用
- 如何在C#中使用内嵌资源文件(转载学习)