A simple approach to content translation for [RefineryCMS](refinerycms.org).
Features:
-
Mark string or block as translatable in you view, key-value * locale.
-
Let the end-user translate from Refinery backend
-
On the first request that need translation, locale for every language is created
-
You can define translated string to be edited with text_field or WYMeditor in the backend.
-
Translation are cached
-
When the content change, the translation is marked as out-dated to ease site maintenance.
Install the plugin
Add this line to your Gemfile:
For the latest version use
gem 'refinerycms-translations', :git => 'git@github.com:seasonlabs/refinerycms-translations.git'
For stable version
gem 'refinerycms-translations', '~> 0.3'
Install the gem
bundle install
Copy the migration file
rails generate refinerycms_translations
Run the migration
rake db:migrate
Make sure you have correctly set the following setting in Refinery: ‘i18n_frontend_translation_locales’, ‘i18n_translation_default_frontend_locale’
Given the following code in you view:
<h1><%= RefinerySetting.site_name %></h1>;
You can do:
<h1><%= Translation.for_string('site name', RefinerySetting.site_name) %></h1>;
Or for more complex text:
<div id='footer'> <p>Please give us a call! 1-877-555-1234</p> <p>Copyright 2010 - Your Company Name</p>; </div>
Using a block:
<div id='footer'> <% Translate.for_block('footer') do %> <p>Please give us a call! 1-877-555-1234</p> <p>Copyright 2010 - Your Company Name</p> <% end %> </div>
Note: for_string and for_block both take the option “wym” argument to edit the translation with the WYM editor. for_block default to true, for_string default to false.
Based on code from github.com/unixcharles