国际化(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 739the problem of the implementati ... -
12.3 the status feed
2011-10-30 15:34 8061. we need to get all the micro ... -
12.2 a working follow button with Ajax
2011-10-29 18:10 8781. in the last chapter, in the ... -
12.2 a web interface for following and followers.
2011-10-28 22:14 8381.before we do the UI, we need ... -
12. following user, 12.1 relationship model
2011-10-18 14:29 7041. we need to use a relationshi ... -
11.3 manipulating microposts.
2011-10-17 15:31 8591. since all micropost actions ... -
11.2 show microposts.
2011-10-17 12:01 6481. add test to test the new use ... -
11.1 user micropost -- a micropost model.
2011-10-17 10:43 10641. we will first generate a mic ... -
10.4 destroying users.
2011-10-16 15:47 690in this chapter, we will add de ... -
10.3 showing users list
2011-10-15 20:41 732in this chapter, we will do use ... -
10.2 protect pages.
2011-10-15 15:11 605again, we will start from TD ... -
10.1 updating users.
2011-10-14 18:30 6631. git checkout -b updating-use ... -
9.4 sign out
2011-10-13 15:21 683whew!!!, last chapter is a long ... -
9.3 sign in success.
2011-10-12 15:39 6831. we will first finish the cre ... -
9.1 about flash.now[:error] vs flash[:error]
2011-10-12 15:37 672There’s a subtle difference ... -
9.2 sign in failure
2011-10-12 12:19 605start from TDD!!! 1. requir ... -
9.1 sessions
2011-10-12 10:00 612a 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 675in integration test, you can te ...
相关推荐
vue-i18n-工具vue多语言自动生成工具轻松对Vue组件进行国际化处理,自动生成多语言配置文件,并通过百度翻译进行自动翻译演示cd ./samplenode ./scripts/i18n.js生成格式处理前< template> < div xss=removed> 基本...
| | | | 内联注释悬停和直接动作一站式管理所有翻译和从代码中提取翻译报告缺少的翻译机器翻译JSON和YAML的注释一般特征支持多根工作区支持远程开发支持众多流行的框架支持当然,将i18n用于扩展本身。 :globe_...
中间件,它根据URL中的语言前缀使用I18n::setLocale()设置语言环境,并在访问站点根目录时提供重定向到具有语言前缀的适当URL。 用于检索存储在数据库而不是po / mo文件中的翻译消息的类。 用于自动翻译验证消息...
可视化编辑i18n多语言翻译程序,以一个默认语言为基础,可以切换各个语言输入翻译。这样部署后把它交给翻译人员可以节省开发人员大量时间!
多语言自动翻译组件(webpack loader) 环境 vue nuxt i18n 用法 直接在源文件中写中文,组件会自动把中文部分替换成占位符,同时生成语言文件。 targetLangs包含zh_Hant_HK则自动生成繁体中文版本翻译 配置说明: ...
Nuxt i18n投资组合模板多国语言 :globe_showing_Americas: 开发人员的投资组合模板。灯塔得分: 桌面 移动的桌面视图:行动检视:特征 :check_mark_button: 国际化 :globe_with_meridians: :check_mark_button: 移动...
Haml :: I18n ::提取器 更新:有关更新,请参阅 从haml模板中提取可能要翻译的字符串以进行I18n翻译。 替换文本,创建yaml文件,做所有您认为宏可以解决的事情,但最终并没有真正节省那么多时间。 自动消除这种...
项目需要支持多语言,我们需要提取出项目中使用的静态文本,使用语言包进行管理, 当切换语言设置的时候,可以自动切换整个项目的文字显示。 发现Vue项目中有对应的组件 vue-i18n ,而且对项目的代码修改不大,于是...
与svelte-i18n ( )集成 重新导向去做 网站范例 更好的文档 更多例子安装npm i -s elderjs-plugin-i18n # or yarn add elderjs-plugin-i18n设定档安装后,打开elder.config.js并通过在插件对象中添加“ elder-...
不要对这个扩展抱有太多期望,按原样使用或改进并向我发送拉取请求:-)特性: 需要时自动下载语言环境文件。 使用消息作为翻译键。 默认情况下,它接受语言为英语。 可以替换消息中的参数。 缓存加载的 json lang ...
借助对丢失内容的后备支持,自动url相对化和强大的SEO工具,Polyglot允许任何多语言的jekyll博客专注于内容,而不会产生麻烦。为什么? Jekyll不为多语言博客提供本地支持。 该插件是根据建模的,我喜欢它的实现,...
了解如何使用Vue i18n创建多语言网站和Vue.js应用程序。 Vue i18n是Vue.js的官方国际化库,可以与任何新的或现有Vue.js应用程序很好地集成。 乍一看,国际化可能是艰巨而艰巨的。 那就是如果您没有合适的工具来...
用法i18n-verify是一组rake任务: rake i18n:find_key查找密钥rake i18n:is_complete用于检查翻译是否完成rake i18n:duplicates对于任何给定的语言环境而言,查找具有多个翻译的键的rake i18n:duplicates项rake i18n...
html多语言切换demo,直接双击,保证可用,翻译反应迅速,不像别的插件,如i18n国际化插件,翻译卡半天,文件里写了三种语言demo,哪怕是小白一看都明白。
特征即时语言切换-无需重新加载页面自动翻译页面的动态部分(例如,通过AJAX加载或通过jQuery添加) 跨页面的语言持久性,并通过cookie重新加载(需要js-cookie.js插件) 支持正则表达式搜索/替换非基于令牌的翻译...
该演示通过四个步骤显示了如何轻松地将应用程序变为多语言 :grinning_face_with_smiling_eyes: 。 请参阅Demo部分以获取更多信息。 内容 产品特点 。 使用构建器 ,开发人员可以配置 ,其中包含key - value对,...
具有多种翻译(多语言) 轻松做到所有这些:) 为什么不使用组件来显示翻译的文本? 组件方法看起来不错,并且与其余的React应用程序保持一致。 但是,如果您需要在道具中传递翻译后的文本,则无论如何都需要一个...
目前,我尚未从事任何多语言项目的工作,但我可以继续进行此工作。 v2将是一个纯npm(非流星专用)软件包。 谢谢大家大家多年的支持! 流星消息格式(v2) 支持MessageFormat i18n,采用流星方式。 轻松React性地...
轻松将您的盖茨比网站翻译成多种语言。 特征 与无缝集成-一个强大的React国际化框架。 代码拆分。 分别加载每个页面的翻译。 基于由提供的用户的首选语言的自动重定向。 在单个页面组件中支持多语言url路由。 您...
特征:自动检测浏览器语言根据任何语言自动检测复数规则具有多个键的动态翻译访问json转换文件中的深层嵌套键好的!但是它如何工作? JSON格式创建您的JSON转换文件。用双下划线将动态值__dynamicValue__ : __...