New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sinatra-r18n

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sinatra-r18n

  • 5.0.2
  • Rubygems
  • Socket score

Version published
Maintainers
2
Created
Source

Sinatra R18n Plugin

Cirrus CI - Base Branch Build Status Codecov branch Code Climate Depfu License Gem

Sinatra extension which provides i18n support to translate your web application.

It is a wrapper for R18n core library. See R18n documentation for more information.

Features

  • Nice Ruby-style syntax.
  • Filters.
  • Flexible locales.
  • Custom translations loaders.
  • Translation support for any classes.
  • Time and number localization.
  • Several user language support.

How To

  1. Create translations dir ./i18n/.

  2. Add file with translation to ./i18n/ with language code in file name (for example, en.yml for English or en-us.yml USA English dialect). For example, ./i18n/en.yml:

    post:
      friends: Post only for friends
      tags: Post tags are %1
    
    comments: !!pl
      0: No comments
      1: One comment
      n: '%1 comments'
    
    html: !!html
      <b>Don't escape HTML</b>
    
  3. Add R18n to your Sinatra application:

    require 'sinatra/r18n'
    

    If your application inherits from Sinatra::Base also add:

    class YourApp < Sinatra::Base
      register Sinatra::R18n
      set :root, __dir__
    
  4. Add locale to your URLs. For example:

    get '/:locale/posts/:id' do
      @post = Post.find(params[:id])
      haml :post
    end
    

    Or save locale in session, when user change it:

    before do
      session[:locale] = params[:locale] if params[:locale]
    end
    

    Warning: such hooks have to be before register Sinatra::R18n since R18n version 5 has no more lazy evaluation and initializes immediately. See #3 or specs / test application.

  5. Use translation messages in views. For example in HAML:

    %p= t.post.friends
    %p= t.post.tags(@post.tags.join(', '))
    
    %h2= t.comments(@post.comments.size)
    
  6. Print localized time and numbers. For example:

    l @post.created_at, :human
    
  7. Print available translations. For example in HAML:

    %ul
      - r18n.available_locales.each do |locale|
        %li
          %a( href="/#{locale.code}/" )= locale.title
    

Configuration

You can change default locale and translations dir:

R18n::I18n.default = 'ru'
R18n.default_places { './translations' }

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-3.0.html.

Author

Andrey “A.I.” Sitnik andrey@sitnik.ru

FAQs

Package last updated on 02 Apr 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc