国际化(i18n)是rails2.2引入的新的特征,这一节我们演示如何使用他使你的网站自动具有多种语言。
当用户注册的时候,我们想使他们可以选择使用哪种语言,在此,我们让他们可以选择english 还是 wookieespeak。
我们使用Restful Authentication plugin来作为我们的用户管理模块。然后,在他的注册页面,我们添加一个field到User模型,叫做language,而且有一个dropdown field让用户可以选择他们喜欢的语言。
具体步骤如下:
ruby script/plugin install git://github.com/technoweenie/restful-authentication.git
ruby script/generate authenticated user sessions
第一步是安装插件,
第二步是生成文件,user是model的名称,这一步也会创建两个controller, 一个users,一个sessions。
搞定,现在我们可以打开注册页面了,
http://127.0.0.1:3000/signup (为什么有这个route呢,自己去看config/routes.rb把)
我们需要给我们的user模型增加一个字段叫做lang,然后往user的new view中增加一个select box,让用户注册新用户的时候,可以选择语言。
首先在后台,ruby script/generate migration add_lang_col, 添加一个migration, 然后编辑这个migration:
然后在后台运行, rake db:migration, 在数据库中的users表中添加这个字段。
然后就要编辑new.html.erb, 添加如下代码:
搞定,现在刷新我们的http://127.0.0.1:3000/signup, 就可以看到selectbox了。
2. 下面我们将要具体实现多语言的内部逻辑了
首先如果你使用的rails2.2 以上的版本,去config目录下面找locales文件夹,我们的网站要支持的各种语言的文件都将放在这里。每一种语言的文本都会存储在一个ymal文件中,现在已经有了一个en.ymal文件范本了。
要支持多种语言,我们首先要复制我们要翻译的语言到en.yml 文件。
下面就要创建wk版本yaml文件了:
当用户注册的时候,我们想使他们可以选择使用哪种语言,在此,我们让他们可以选择english 还是 wookieespeak。
我们使用Restful Authentication plugin来作为我们的用户管理模块。然后,在他的注册页面,我们添加一个field到User模型,叫做language,而且有一个dropdown field让用户可以选择他们喜欢的语言。
具体步骤如下:
ruby script/plugin install git://github.com/technoweenie/restful-authentication.git
ruby script/generate authenticated user sessions
第一步是安装插件,
第二步是生成文件,user是model的名称,这一步也会创建两个controller, 一个users,一个sessions。
搞定,现在我们可以打开注册页面了,
http://127.0.0.1:3000/signup (为什么有这个route呢,自己去看config/routes.rb把)
我们需要给我们的user模型增加一个字段叫做lang,然后往user的new view中增加一个select box,让用户注册新用户的时候,可以选择语言。
首先在后台,ruby script/generate migration add_lang_col, 添加一个migration, 然后编辑这个migration:
def self.up add_column :users, :lang, :string end def self.down remove_column :users, :lang end
然后在后台运行, rake db:migration, 在数据库中的users表中添加这个字段。
然后就要编辑new.html.erb, 添加如下代码:
<p><%= f.label :lang, "Language" %> <%= f.select :lang, [['English', 'en'], ['Wookieespeak', 'wk']] %></p>
搞定,现在刷新我们的http://127.0.0.1:3000/signup, 就可以看到selectbox了。
2. 下面我们将要具体实现多语言的内部逻辑了
首先如果你使用的rails2.2 以上的版本,去config目录下面找locales文件夹,我们的网站要支持的各种语言的文件都将放在这里。每一种语言的文本都会存储在一个ymal文件中,现在已经有了一个en.ymal文件范本了。
要支持多种语言,我们首先要复制我们要翻译的语言到en.yml 文件。
en: welcome: title: "Welcome" paragraph: "Thank you for visiting our store." products: title: "Products" releaser: "Released"
下面就要创建wk版本yaml文件了:
welcome: title: "Wyah" paragraph: "Wyaaaa, ruh, ruh, huwaa, muaa." products: title: "Mauhwaa" released: "Ruhha"
发表评论
-
12.3.3 scaling issue of the status feed
2011-10-30 17:54 801the problem of the implementati ... -
12.3 the status feed
2011-10-30 15:34 8501. we need to get all the micro ... -
12.2 a working follow button with Ajax
2011-10-29 18:10 9041. in the last chapter, in the ... -
12.2 a web interface for following and followers.
2011-10-28 22:14 8691.before we do the UI, we need ... -
12. following user, 12.1 relationship model
2011-10-18 14:29 7371. we need to use a relationshi ... -
11.3 manipulating microposts.
2011-10-17 15:31 8861. since all micropost actions ... -
11.2 show microposts.
2011-10-17 12:01 6941. add test to test the new use ... -
11.1 user micropost -- a micropost model.
2011-10-17 10:43 10951. we will first generate a mic ... -
10.4 destroying users.
2011-10-16 15:47 725in this chapter, we will add de ... -
10.3 showing users list
2011-10-15 20:41 762in this chapter, we will do use ... -
10.2 protect pages.
2011-10-15 15:11 645again, we will start from TD ... -
10.1 updating users.
2011-10-14 18:30 6971. git checkout -b updating-use ... -
9.4 sign out
2011-10-13 15:21 724whew!!!, last chapter is a long ... -
9.3 sign in success.
2011-10-12 15:39 7371. we will first finish the cre ... -
9.1 about flash.now[:error] vs flash[:error]
2011-10-12 15:37 714There’s a subtle difference ... -
9.2 sign in failure
2011-10-12 12:19 653start from TDD!!! 1. requir ... -
9.1 sessions
2011-10-12 10:00 640a session is a semi-permanent c ... -
what test framework should you use?
2011-10-11 16:56 0for integration test, i have no ... -
what test framework should you use?
2011-10-11 16:56 0<p>for integration test, ... -
8.4 rspec integration tests
2011-10-11 16:53 707in integration test, you can te ...
相关推荐
这个压缩包“vue项目中基于i18n的多语言的中文提取与写入的工具.zip”似乎包含了一个名为“i18n-collect-cli-master”的项目,它可能是一个命令行工具,用于帮助Vue项目自动收集和管理中文翻译。 Vue-i18n 工作原理...
总结来说,jQuery i18n Properties Minified 1.0.9.js是一款强大且实用的前端国际化工具,它简化了多语言网站的开发流程,提高了用户体验,是现代Web应用中不可或缺的一部分。对于那些致力于打造全球化网站的开发者...
国际化(i18n)是软件开发中的一个重要概念,它指的是使软件能够适应不同语言和地区的过程。这个术语“i18n”是由“internationalization”这个单词的首字母和中间的18个字母组成的,意在简洁地表示这个复杂的主题。在...
《jQuery i18n Properties 1.0.9:实现多语言支持的关键库》 在Web开发中,为用户提供多语言支持是至关重要的,尤其是在全球化的互联网环境中。jQuery i18n Properties 1.0.9 是一个专门针对这一需求而设计的...
通过结合SpringBoot框架和i18n(国际化)技术,我们可以实现错误信息的多语言支持,让错误信息能够适应不同的用户群体。 首先,让我们来深入理解SpringBoot。SpringBoot是Spring框架的一个子项目,它简化了创建独立...
前端国际化插件i18n是为了解决网站或应用在多语言环境下展示内容的问题。在互联网全球化的大背景下,为了满足不同国家和地区用户的语言需求,前端开发者需要将应用的文本内容进行本地化处理,这就是“国际化”(i18n...
总结来说,jQuery.i18n.properties 插件与 ASP.NET 结合,为开发者提供了方便的前端国际化解决方案,使多语言网站的开发变得更加高效。通过合理地组织资源文件,设置好回调函数,以及实现语言切换机制,就能轻松实现...
Koa-i18n 是一个专为 Koa 框架设计的轻量级国际化中间件,它基于 i18n-2 库,旨在帮助开发者快速、方便地在前端应用中实现多语言支持。在开发面向全球用户的 web 应用时,提供多种语言版本是非常重要的,Koa-i18n ...
"i18n_jquery.zip"这个压缩包,提供了一个基于jQuery的i18n解决方案示例,它能够帮助开发者轻松地将网站或应用程序翻译成多种语言,以适应不同地区的用户需求。本文将详细介绍jQuery_i18n的原理和应用。 首先,i18n...
《CocosCreator与Layabox的多语言i18n工具应用详解》 在游戏开发领域,为了满足全球玩家的需求,支持多语言是至关重要的。CocosCreator和Layabox作为流行的2D游戏开发引擎,提供了强大的开发工具,但默认情况下并不...
Java i18n(Internationalization,国际化)是Java平台提供的一种强大的支持多语言环境的机制。这个技术使得软件能够根据用户的地区和语言习惯进行本地化显示。在Java中,i18n通常通过资源包(Resource Bundle)来...
Vue.js的国际化插件——Vue-i18n是前端开发者在构建多语言应用时不可...解压“前端项目-vue-i18n.zip”,深入学习“vue-i18n-master”中的示例代码,将帮助你更好地理解和运用Vue-i18n,为你的多语言前端项目带来便利。
《jQuery i18n Properties: 实现多语言功能的开源脚本详解》 在Web开发中,为了满足全球用户的需求,网站和应用通常需要提供多语言支持。这涉及到国际化(i18n)和本地化(l10n)的过程。jQuery i18n properties...
I18n则是一个用于处理多语言支持的框架,它允许开发者轻松地为应用程序添加不同语言的支持。 **1. Flutter基础知识** Flutter的核心是其声明式UI框架,它允许开发者通过Dart语言创建丰富的、高性能的用户界面。GetX...
Angular 国际化(i18n)是 Angular 框架提供的一项功能,它使得开发者能够轻松地构建多语言应用,以适应全球化的市场需求。在本文中,我们将深入探讨 Angular i18n 的核心概念、工作原理以及如何在实际项目中实现这一...
优雅集成i18n实现国际化信息返回是SpringBoot框架中一个重要的功能,它使得应用程序能够支持多语言环境,为全球用户提供更加友好的交互体验。在SpringBoot中,i18n(Internationalization)通常通过资源文件来实现,...
Spring Boot的国际化(i18n)功能使得开发者可以轻松地为应用程序提供多语言支持,以便用户可以根据他们的偏好选择不同的语言界面。以下是对这个主题的详细讲解。 首先,我们需要了解i18n这个术语,它是...
在 Python 中,gettext 模块是用于处理多语言支持的标准库,它遵循 GNU gettext 工具的规范。这个教程将教你如何结合使用 wxPython 和 gettext 来创建能够支持多种语言的应用程序。 首先,了解基本概念:国际化通常...
总的来说,jQuery i18n Properties 是一个强大且易用的前端国际化解决方案,它极大地简化了多语言应用的开发流程,使开发者能专注于业务逻辑,而不是语言处理的复杂性。通过合理的配置和使用,开发者可以快速地实现...
SpringMvc的i18n功能通过配置MessageSource、LocaleResolver和Interceptor来实现多语言支持,为开发者提供了极大的便利。只需维护好资源文件,就能轻松构建全球化Web应用。在实际项目中,可以根据需求调整配置,以...