和ASP.NET一样,MonoRail也可以方便的使用资源文件,以及利用资源文件来实现多语言的支持。
主要是利用了Resource和LocalizationFilter这两个属性,具体使用方法如下:
1、使用资源文件
Controller代码:











vm代码:

那么在中文环境下浏览就会显示ResourceFile.zh-cn.resx里面定义的值,在英文或其他环境下浏览时就会显示ResourceFile.resx里面定义的值
另外还可以使用如下方式:


2、结合LocalizationFilter属性实现多语言
Controller代码:































浏览效果如下:
就可以动态的选择语言了
解释:
当选择下拉列表中的一个语言后,调用Controller中的SetLanguage方法,将选择的语言放入cookie中,cookie名为:locale,然后重新进入此页面。进入此页面时由LocalizationFilter属性决定根据cookie中的locale的值来设定当前的本地化。
当然这里LocalizationFilter属性也可以根据Session、Cookie、QueryString、Form、Params中的值来决定本地化