FB Localizer

Description

Facebook Localizer is a simple gem which converts from Ruby's locale to the nearest Facebook's locale. Ruby's locales only include the language information (not the region), but Facebook does. Also, Facebook supports only a subset of all languages in the world.

So, if we want to add a localized "I like it" button into our web page, we need a tool to convert from one to the other.

Note: a more complex algorithm on planning which is the nearest locale is planned.

Build Status

Priority locales

FB-Localizer has, from version 0.1.3, the ability to allow the user to set priorities to certain locales.

If you try to convert "en" (for English) to a Facebook-compatible locale, you will find out that many are available: Pirate, Upside down, United States, and Great Britain. With this priority-locales feature you can indicate FB-Localizer to, in case of having English ("en") to translate, use directly, for example, the English's Great Britain locale.

Just create an initializer in app/initializers/, and set something like:

FbLocalizer.configure do |config|
  config.priorized = { :en => "en_GB" }
end

The format of the priorized locales is a hash. For each record in the hash,

  • The key is the symbol for the locale, e.g :en or :es
  • The value is your priorized Facebook locale for it, e.g. "en_US" for :en or "es_ES" for :es

Nevertheless, FB-Localizer itself has default locales for a ruby locale. The complete list is:

  • United States' english
  • Spain's spanish
  • Portugal's portuguese
  • Simplified chinese

The complete list of Facebook locales is in a XML provided by Facebook itself: complete list of Facebook locales

Usage

Let's see an example. Say you have a little HAML snippet which loads Facebook's "I like it" script and shows one. Instead of hardcoding the locale, as in here:

%script{:src => "http://connect.facebook.net/en_US/all.js#xfbml=1"}
%fb:like{:href => request.url, :layout => "button_count", :show_faces => "true"}

You can use this gem to automatically get the adequate extended locale from the current locale (example, from "en" to "en_US" or from "ca" to "ca_ES"):

%script{:src => "http://connect.facebook.net/#{get_fb_locale(I18n.locale)}/all.js#xfbml=1"}
%fb:like{:href => request.url, :layout => "button_count", :show_faces => "true"}

Installation

Simply add this gem to your Gemfile...

...
gem "fb-localizer"
...

...and execute "bundle".