`
raisun_1988
  • 浏览: 117910 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多

 

-

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

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

[Resource("resx","TestSiteNVelocity.Controllers.ResourceFile")]
publicclassResourcedController:SmartDispatcherController
{
publicvoidGetResources()
{
}

}
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")]
publicclassResourcedController:SmartDispatcherController
{
publicvoidGetResources()
{
}


publicvoidSetLanguage(StringlangCode)
{
Response.CreateCookie(
"locale",langCode);

RedirectToAction(
"GetResources");
}

}

vm代码:
$resx.testKey

<formmethod="post"action="SetLanguage.rails"id="form1">
<selectname="langCode"onchange="document.getElementById('form1').submit();">
<optionvalue=""></option>
<optionvalue="zh-cn">中文</option>
<optionvalue="en">English</option>
</select>
</form>

浏览效果如下:

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

 

 

欢迎加入:http://www.itpob.cn/bbs

 

 

分享到:
评论

相关推荐

    MonoRail基础学习文档和实例

    本资源包含“MonoRail基础学习文档”和“实例”,旨在帮助初学者快速入门并深入理解MonoRail的使用。 首先,让我们详细了解 MonoRail 的核心概念: 1. **Controller**:在MonoRail中,Controller是处理用户请求的...

    MonoRail 上传文件 整合FCK

    MonoRail是.NET平台上的一款轻量级的Web应用框架,它为开发者提供了强大的MVC(Model-View-Controller)模式支持,旨在提供比ASP.NET更灵活、更可扩展的开发环境。在 MonoRail 中实现文件上传功能,特别是整合...

    MonoRail例子(入门篇)

    确保你的项目配置正确,支持ASP.NET和MonoRail框架。 2. **创建Controller**:在项目中创建一个新的类,继承自`Castle.MonoRail.Framework.Controller`。这个类将包含处理用户请求的方法,这些方法通常被称为动作...

    monorail::monorail:单轨电车| 网络设计系统

    :monorail: 单轨| 网络设计系统Monorail for React帮助开发人员执行。 这些组件由SimSpace的工程师和UX设计师的核心团队开发,可实现可靠的开发工作流程,以构建美观且功能强大的Web项目。快速开始将Monorail添加到...

    monorail项目-文件管理-MvcFileManage.rar

    《Monorail项目中的文件管理:MvcFileManage深入解析》 在软件开发中,文件管理是不可或缺的一部分,尤其是在Web应用程序中。Monorail项目,作为一个轻量级的.NET MVC框架,为开发者提供了一种高效、灵活的方式来...

    monorail的小例子

    总的来说,尽管Monorrail已经被ASP.NET MVC框架所取代,但它仍是一个学习MVC模式和.NET Web开发的宝贵资源。通过深入理解Monorail,开发者可以更好地理解现代Web框架的设计原则,这将有助于他们在使用其他类似框架...

    学习资料monorail

    然而,由于提供的信息较少,无法确定此处“学习资料monorail”具体指的是哪个方面,因此我将从Monorail的多个可能含义来展开讨论。 首先,如果Monorail是指一种编程框架,最知名的可能是 Castle Monorail,这是一个...

    MonoRail .net

    MonoRail支持多种视图引擎,如NVelocity或NHaml,允许开发者使用模板语言编写动态页面。 4. **模型(Models)**: 模型包含业务逻辑和数据,它们是应用程序的核心。在MonoRail中,模型类可以直接与数据库交互,或者...

    ShoppingCart-MonoRail.rar

    《MonoRail:构建高效Web应用的框架探索》 MonoRail,这个名字在IT行业中或许并不如ASP.NET那样耳熟能详,但它却是.NET平台上的一个强大且灵活的Web应用程序框架。"ShoppingCart-MonoRail.rar"这个压缩包,包含了对...

    Monorail PaginationHelper.CreateCustomPage 自定义分页

    ### Monorail PaginationHelper.CreateCustomPage ...综上所述,`PaginationHelper.CreateCustomPage`为Monorail框架下的分页提供了强大的支持,通过对该方法的理解与运用,可以极大地提高Web应用的性能与用户体验。

    MonoRail 实体类生成器

    在压缩包中的"实体类生成器"文件,可能包含了生成器的源代码、配置文件、使用说明文档等,开发者可以对其进行定制或二次开发,以满足更具体的需求。了解并熟练使用这类工具,对于提升MonoRail项目的开发效率具有重要...

    kirby-vue3-starterkit:with带Vue 3和Kirby的SPA

    Kirby + Vue.js入门套件带有Vue 3和Kirby的SPA:友好的SEO,自动路由,支持多语言的功能等等! Kirby + Vue.js入门套件主要特征 :motorway: 自动路由 :magnifying_glass_tilted_left: SEO友好:元标记 :globe_with_...

    MonoRail+IBatisNet +Velocity

    MonoRail、IBatisNet 和 Velocity 是三个在C#开发中常用的技术框架,它们分别用于不同的领域,但在实际项目中常被结合使用以构建高效、灵活的Web应用。下面将详细介绍这三个技术及其组合使用的要点。 **MonoRail** ...

    monorail简单例子

    Monorail,中文常被称为“单轨框架”,是.NET平台上的一款轻量级Web应用程序...在深入学习Monorail时,你还会发现它对测试驱动开发(TDD)友好,支持依赖注入(DI)以及插件架构,这些都是它成为开发者选择的重要因素。

    monorail的过滤器

    你可以通过查看和分析这些文件来深入了解如何在Monorail项目中实际使用和配置过滤器。 总的来说,Monorail的过滤器机制提供了强大的功能,可以帮助开发者在不侵入业务逻辑的情况下增强应用程序的功能和安全性。通过...

    ibatisnet+monorail+vs2010

    通过学习和实践这个"ibatisnet+monorail+vs2010"项目,开发者可以深入理解如何在.NET环境中集成和使用这些技术,提高Web开发技能。同时,这个实例也展示了如何在一个现代化的开发环境中实现灵活的数据访问和高效的...

    MonoRailSample.rar

    MonoRail学习笔记一:一个小例子 随着微软放出消息,准备发布MVC的框架,各种议论纷至沓来。 以前用java、jsp对它的MVC结构、集中控制印象特别深刻,自从用了.NET后,虽然webform的控件很好用,总感觉有点怪怪的 ...

    MonoRail入门实例

    本教程将引导你逐步了解MonoRail的基本概念和使用方法,包括filter、home、rescue、routing和layout这五个关键部分。 1. **MonoRail框架介绍** MonoRail是由Castle Project开发的,它借鉴了Ruby on Rails的设计...

    RAILS::monorail:RAILS 和 :man’s_shoe::hammer:鞋匠

    它们可用于使用任何长的、最好是高质量的序列(例如来自另一个基因组草图的 scaftigs/contigs)来构建和完成高质量的基因组草图组装。 它们都依赖于准确的长 DNA 序列来修补现有基因组组装草案中的空白。 Cobbler...

Global site tag (gtag.js) - Google Analytics