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.
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
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"}
Simply add this gem to your Gemfile...
...
gem "fb-localizer"
...
...and execute "bundle".