Sidslog

Февраль 28, 2010

Интернационализация rails-2.3 приложения с использованием плагина Translate routes

Filed under: Uncategorized — Метки: , , , , , — sidslog @ 8:31 пп

Про встроенный модуль i18n можно почитать здесь, на rails-i18n.org или по-русски здесь

Я бы хотел обратить ваше внимание на плагин Translate Routes, который позволяет без лишних телодвижений настроить модуль интернационализации rails приложения.Сам плагин и описание к нему можно найти здесь – http://github.com/raul/translate_routes. На страничке http://github.com/raul/translate_routes_demo можно посмотреть пример приложения, использующего этот плагин.

Установка:

Вариант 1.
1) Скачиваем плагин в папку /vendor/plugins.
2) В папке /config/locales создаем YAML файлы с требуемыми локалями. Например, ru.yml.
3) Добавляем в конец файла /config/environmet.rb строку вида ActionController::Routing::Translator.i18n.
4) В application_controller.rb добавляем фильтр before_filter :set_locale_from_url

Вариант 2.
1) Скачиваем плагин в папку /vendor/plugins
2) В папке /config/locales создаем YAML файл i18n-routes.yml. В нем храним локали для всех языков.
3) В конец файла /config/environmet.rb строку ActionController::Routing::Translator.translate_from_file('config','i18n-routes.yml')
4) В application_controller.rb добавляем фильтр before_filter :set_locale_from_url

Теперь по ссылкам вида domen.com/ru/controller... будем доступна русская локаль, а по domen.com/controller... локаль по умолчанию. Локаль по умолчанию – en, поменять ее можно в файле environment.rb (config.i18n.default_locale).

Код для получения текущего значения локали и переключения для view:

<div id=“locale-switch”>

<strong><%= I18n.t ‘current_locale’ %>: <%= I18n.locale.to_s %></strong> |

<%= I18n.locale == ‘es’ ? link_to(‘en’, :locale => ‘en’) : link_to(‘es’, :locale => ‘es’) %>

</div>

Theme: Silver is the New Black. Блог на WordPress.com.

Follow

Get every new post delivered to your Inbox.