Merb R18n
A plugin for the Merb framework that provides i18n support to translate your site in several languages.
It is just a wrap for R18n core library. See R18n documentation for more information.
Features
-
It has special support for countries with two official languages. If there isn’t translation in user locale, it will be found in locales, which user may know (not only in default locale). For example, many people in Belarus can understand Russian, and locale has information about it.
-
It can format numbers and time to the rules of the user locale, translate month and week days name and give other locale information.
-
It has translation for commons words, like “OK”, “Cancel”, etc.
-
It storage translation in rich YAML format. You can put procedures and pluralization (“1 comment”, “5 comments”) in your translation.
How To
Merb App
-
Add merb_r18n to your merb application in
config/dependencies.rb
:dependency 'merb_r18n'
-
Add route to set locale manually in your
config/router.rb
. For example set available translations:Merb::Router.prepare do match('(/:locale)', :locale => /(en|ru)/) do # Your application routers. default_routes end end
You may use another way, just set :locale param.
-
Create translations file in
app/i18n/
. For exampleapp/i18n/en.yml
:post: add: Add post edit: Edit %1 comments: !!pl 0: No comments 1: One comment n: %1 comments
-
Use translation messages in view. For example:
<%= link_to i18n.post.add, 'posts/add' %> <%= link_to i18n.post.edit(post.title), "posts/edit/#{@post.id}" %> <%= link_to i18n.delete, "posts/delete/#{@post.id}" %> <h1><%= i18n.comments(@post.comments.size) %></h1>
-
Print localized time and numbers. For example:
<%= i18n.l @post.created_at, :date %>
-
Print available translations:
<ul> <% i18n.translations.each_pair do |locale, title| %> <li><a href="/<%= locale %>/"><%= title %></a></li> <% end %> </ul>
Merb Slice
-
Add merb_r18n to your merb slice in
lib/YOUR_SLICE.rb
:dependency 'merb_r18n'
-
Create translations file in
app/i18n/
. For exampleapp/i18n/en.yml
:post: add: Add post edit: Edit %1 comments: !!pl 0: No comments 1: One comment n: %1 comments
-
Use translation messages in view. For example:
<h1><%= i18n.comments(@post.comments.size) %></h1>
-
Print localized time and numbers. For example:
<%= i18n.l @post.created_at, :date %>
-
In host application you can override translations. Just create files in
app/i18n/
in application root. For exampleapp/i18n/en.yml
:post: add: Write your idea
License
R18n is licensed under the GNU Lesser General Public License version 3. You can read it in LICENSE file or in www.gnu.org/licenses/lgpl.html.
Author
Andrey “A.I.” Sitnik <[email protected]>