A simple approach to content translation for RefineryCMS.
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
script/plugin install git://github.com/unixcharles/refinerycms-translations.git
Copy the migration file
rake refinerycms:translation:install
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.