Rails Study(13)I18N API
4 Overview of the I18n API Features
4.1 Looking up Translations
4.1.1 Basic Lookup, Scops and Nested Keys
Translations are looked up by keys which can be both Symbols or Strings.
I18n.t :message
I18n.t 'message'
so I can use this in index.html.erb
<p><%= t 'hello world' %></p>
<p><%= flash[:notice] %></p>
In controller file
flash[:notice] = t 'hello flash'
test:
hello_flash: test God
hello_world: test Hell
hello world: kill them all
hello flash: kill all
en:
hello_flash: Hello God
hello_world: hello Hell
But t 'hello flash' works differently with <%= t 'hello world' %> in erb
in http://localhost:3000
Hello World
translation missing: en.hello flash
but http://localhost:3000?locale=test
kill them all
kill all
4.1.2 Defaults
When a :default option is given, its value will be returned if the translation is missing.
change something in controller
flash[:notice] = t 'hello flash', :default => 'hello flash'
4.1.3 Bulk and Namespace Lookup
4.1.4 "Lazy" Lookup
4.2 Interpolation
4.3 Pluralization
4.4 Setting and Passing a Locale
set the locale at first
I18n.locale = :de
I18n.t :foo
I18n.l Time.now
pass the locale as parameters
I18n.t :foo, :locale => :de
I18n.l Time.now, :locale => :de
I18n.default_locale = :de
5. How to Store your Custom Translations
My yml file will be
en:
date:
formats:
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"
In controller or erb file:
I18n.t 'date.formats.short'
I18n.t 'formats.short', :scope => :date
I18n.t :short, :scope => 'date.formats'
I18n.t :short, :scope => [:date, :formats]
5.1 Translations for Active Record Models
5.1.1 Error Message Scopes
class User < ActiveRecord::Base
validates_presence_of :name
end
looking up order will be:
activerecord.errors.models.[model_name].attributes.[attribute_name]
activerecord.errors.models.[model_name]
activerecord.errors.messages
errors.attributes.[attribute_name]
errors.messages
activerecord.errors.models.user.attributes.name.blank
activerecord.errors.models.user.blank
activerecord.errors.messages.blank
errors.attributes.name.blank
errors.messages.blank
Another example, you might have an Admin model inheriting from User
class Admin < User
validates_presence_of :name
end
activerecord.errors.models.admin.attributes.title.blank
activerecord.errors.models.admin.blank
activerecord.errors.models.user.attributes.title.blank
activerecord.errors.models.user.blank
activerecord.errors.messages.blank
errors.attributes.title.blank
errors.messages.blank
5.1.2 Error Message Interpolation
5.2 Overview of Other Built-In Methods that Provide I18n Support
6. Customize your I18n Setup
6.1 Using Different Backends
we can change the backends
I18n.backend = Globalize::Backend::Static.new
6.2 Using Different Exception Handlers
references:
http://guides.rubyonrails.org/i18n.html
分享到:
相关推荐
rails-i18n, 用于收集 Ruby on Rails i18n 环境数据以及其他有趣的Rails 相关 i18n 内容的存储库 Rails 语言环境数据存储库 中心收集区域设置数据,以便在 ruby 上使用。 gem-安装添加到你的Gemfile:gem 'rails-i18n...
mail_form, 在 Rails 中使用 i18n 验证附件和请求信息,直接从表单发送电子邮件 MailForm Rails 3这个 gem 构建在 ActiveModel 之上,展示如何从 Rails 中提取验证。命名和 i18n,而不需要自己实现。本自述文件指的...
i18n...# You *must* choose GetText or Rails-i18n style checking# If you want GetText-style checkingI18n/GetText: Enabled: trueI18n/RailsI18n: Enabled: false# If you want rails-i18n
适用于JavaScript的Ruby on Rails i18n 该gem通过Rack中间件公开您的JSON序列化翻译,以便将它们与JavaScript结合使用。 安装 此宝石正在开发中,这些步骤可能会更改 # Gemfile gem 'rails-i18n-js', :git => '...
react-i18n 该模块与 gem集成在一起,并作为的包装器构建。 基本设定 安装模块 $ npm install --save i18n-js react-i18n 设置i18n-js 在Gemfile中 gem 'i18n-js' 您认为* .haml :javascript I18n.default...
I18nRouting I18n_routing是Ruby on Rails的插件,可让您轻松地通过版本2.2以后的Rails中包含的I18n api转换路线。 所有必需的信息都可以在Wiki上找到: 如有疑问,请使用i18_routing谷歌论坛: 适用于Rails 2.3、...
I18nTimezones I18n时区-此gem的目的是简单地提供时区转换。 该gem易于与需要i18n时区转换的其他gem结合使用,因此我们可以使用通用的i18n时区转换gem。 如果您要对时区和翻译做任何事情,则无需重新发明轮子并...
百济I18n 这是一个小库,可以在JavaScript上提供Rails I18n的翻译。 从借来的特征: 多元化日期/时间本地化号码本地化语言环境回退资产管道支持还有更多! :)用法安装通过NPM npm install baiji-i18n 运行npm ...
I18nLinter ...只需在Ruby on Rails项目的文件夹中输入i18n_linter ,然后观察可以国际化的字符串即可。 注意:仅报告ruby文件中的字符串。 $ cd my/ruby_on_rails/project $ i18n_linter [options]
您可以使用Gitter与我们聊天:Globalize建立在Ruby on Rails的I18n API上,以将模型转换添加到ActiveRecord模型。 换句话说,一种翻译实际用户生成内容的方法;例如, 您可以使用Gitter与我们聊天:Globalize建立在...
模仿Rails的i18n界面。用法const I18n = require ( '@fiverr/i18n' ) ;const translations = require ( './translations.json' ) ;const i18n = new I18n ( { translations } ) ; 选项类型描述translations 目的...
Ruby-i18n库提供了一套API,让开发者可以方便地在代码中插入国际化文本,并在运行时根据用户设置的语言环境进行动态替换。它支持YAML、JSON等多种数据格式的翻译文件,这些文件通常存储在`config/locales`目录下,...
i18n_tools 使用I18n库在 Rails 和 Ruby 应用程序中查找丢失和未使用的翻译的非常简单的 rake 任务。安装 gem install i18n_tools用法如果您在 Rails 中使用 bundler,请将以下内容添加到您的Gemfile : group :...
devise-i18n, 设计 gem的翻译 devise-i18n 设计"是一种基于warden的Rails 灵活认证方案"。 国际化( aka i18n ) 是一个"计算机软件适应不同语言。区域差异和目标市场技术要求的方法"。在控制器。模型和其他领域中支持...
MailForm库是专门为简化这一过程而设计的,它允许开发者直接从Rails的表单中发送邮件,并且提供了I18n(国际化)支持、验证功能以及添加附件和请求信息的能力。这个库由Plataformatec开发,其最新版本为bd43996。 ...
如果要在没有Rails的情况下使用此库,则只需将i18n添加到Gemfile : gem 'i18n' 然后使用一些翻译和默认语言环境配置I18n: I18n . load_path << Dir [ File . expand_path ( "config/locales" ) + "/*....
i18n-tasks可以与使用ruby 任何项目一起使用(Rails中的默认设置)。 将i18n任务添加到Gemfile中: gem 'i18n-tasks' , '~> 0.9.33' 复制默认: $ cp $( i18n-tasks gem-path ) /templates/config/i18n-tasks....
I18n:Bamboo monkey 修补 Rails I18n 模块,并将强制所有对 I18n.translate (I18n.t) 和 I18n.localize (I18n.l) 的调用返回所有可用语言环境中最长的翻译或本地化值。 出于显而易见的原因(猴子补丁 :anxious_face...
Rails这样做:使用嵌套的yml文件的I18n.t('syntax.with.lots.of.dots')我们这样做: _('Just translate my damn text!')使用简单,平坦的mo / po / yml文件,或者直接从db要使用I18n调用,请添加syntax.with.lots....
引导i18n / l10n Rails API的简单样板 :rocket: 科技栈 滑轨 JBuilder的 全球化 PostgreSQL 规格 :rocket: 如何使用 bundle install rails db:create rails db:migrate rails db:seed rails server 它期望...