Converts from Ruby's locale to the nearest Facebook's locale
Ruby JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

FB Localizer


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" }

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


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 => ""}
%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 => "{get_fb_locale(I18n.locale)}/all.js#xfbml=1"}
%fb:like{:href => request.url, :layout => "button_count", :show_faces => "true"}


Simply add this gem to your Gemfile...

gem "fb-localizer"

...and execute "bundle".