MonoRail学习笔记二十:资源文件的使用和多语言支持

简介:
-

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

1、使用资源文件
Controller代码:

    [Resource( " resx " " TestSiteNVelocity.Controllers.ResourceFile " )]
    
public   class  ResourcedController : SmartDispatcherController
    
{
        
public void GetResources()
        
{
        }

    }
Resource属性第一个参数resx是用来在vm中使用的,第二个参数指定要使用的资源文件的名称,这个例子中使用的是程序集 TestSiteNVelocity.Controllers中的ResourceFile文件。

vm代码:
$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
    
{
        
public void GetResources()
        
{
        }


        
public void SetLanguage(String langCode)
        
{
            Response.CreateCookie(
"locale", langCode);

            RedirectToAction(
"GetResources");
        }

    }

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属性也可以根据SessionCookieQueryStringFormParams中的值来决定本地化
 



   本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/11/21/967369.html,如需转载请自行联系原作者


目录
打赏
0
0
0
0
52
分享
相关文章
|
11月前
|
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
187 0
基于小程序的英语学习交流平台+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的英语学习交流平台+springboot+vue.js附带文章和源代码设计说明文档ppt
63 2
用于日语词汇学习的微信小程序+springboot+vue.js附带文章和源代码设计说明文档ppt
用于日语词汇学习的微信小程序+springboot+vue.js附带文章和源代码设计说明文档ppt
109 0
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
【Uniapp 专栏】Uniapp 的多语言支持功能详解
【5月更文挑战第14天】Uniapp是一款跨平台开发框架,提供强大多语言支持,助力开发者轻松构建支持多种语言的应用,提升用户体验和市场拓展。其特点包括灵活的语言管理、跨平台一致性。通过语言文件存储内容,切换机制让用户自由切换。注重翻译准确性和文化适应性,集成到页面和组件中,同时关注性能优化。面对翻译不一致和更新及时性等问题,Uniapp将持续发展和完善,为全球化应用开发提供强有力支持。
445 3
【Uniapp 专栏】Uniapp 的多语言支持功能详解
基于springboot+vue.js的基于java的教学辅助平台附带文章和源代码设计说明文档ppt
基于springboot+vue.js的基于java的教学辅助平台附带文章和源代码设计说明文档ppt
83 10
小程序插画共享平台ssm+vue.js附带文章和源代码设计说明文档ppt
小程序插画共享平台ssm+vue.js附带文章和源代码设计说明文档ppt
53 1
【Unity实战】实现强大通用易扩展的对话系统(附项目源码)
【Unity实战】实现强大通用易扩展的对话系统(附项目源码)(2023/12/26补充更新)
578 0
基于ssm+vue.js+uniapp小程序的少儿编程在线培训系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的少儿编程在线培训系统附带文章和源代码设计说明文档ppt
60 0

热门文章

最新文章