Lola - A simple collection of languages names and abbreviations for Ruby

The idea is to provide a single library for all language naming concerns, and unify them under a consistent API.

Installation

gem install lola

If you’re in Rails 3, put this in your Gemfile:

gem 'lola'

Get a list of all countries

Lola.languages => [, ['English', 'EN'], , ['Spanish', 'ES'], ]
Lola.languages(:locale => 'es') => [, ['Inglés', 'EN'], , ['Español', 'ES'], ]

Abbreviation handling

Lola.language_name('EN') => 'English'
Lola.language_code('Spanish') => 'ES'

Default Language

Methods that take a language code argument will use the default language if none is provided. The default default language is ‘EN’. You can change it to any language code:

Lola.default_language = 'DE'

Excluding Languages

Languages to exclude are specified as an array of language codes:

Lola.excluded_languages = [ 'MR', 'PS', 'TI', ... ]

Adding Priority Languages

It can be useful to show a few languages first in the list, before any others. This can be done like so:

Lola.priority_languages = %w(EN ES DE FR)

Localization

You can switch between different localizations of the languages list, by setting the locale value (default is :en):

Lola.default_locale = :es

Methods that return language names also take an optional options hash as the last argument, which can be use to override the default locale for a single call:

Lola.language_name('EN') => 'English'
Lola.language_name('EN', :locale => :es) => 'Inglés'

Currently included localizations are: English (:en), Spanish (:es)

Rails view helpers

Lola ships with replacements for language_select. Usage is simple:

<%= form_for @address do |f| %>
  <%= f.label :language, "Language" %> 
  <%= f.language_select(:language, "EN") %>
  <%= submit_tag "Create" %>
<% end %>

Changelog

See CHANGELOG.md

Development notes

The plugin does not require rubygems anywhere in the test or libraries, so if you are having trouble with load errors running the tests, prepend your command with RUBYOPT=rubygems. More info.

Contributing to Lola

  • Check out the latest master to make sure the feature hasn’t been implemented or the bug hasn’t been fixed yet

  • Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it

  • Fork the project

  • Start a feature/bugfix branch

  • Commit and push until you are happy with your contribution

  • Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Credits

Thanks to Jim Benton and all the team behind Carmen.