i18n ruby-приложений
DESCRIPTION
Как и зачем делать переводить ваше приложение на несколько языков на примере Rails и R18n.TRANSCRIPT
I18n ruby-приложенийI18n ruby-приложений
Ситник АндрейСанкт-Петербург, апрель 2009
Меня зовут Андрей Ситник[email protected], sitnik.ru
Разработчик R18nr18n.rubyforge.org
О чём речь
L10n, localization, локализацияперевод приложения на другой язык и адаптация к другой культуре (формат даты, чисел и т. д.)
I18n, internationalization, интернационализциятехническая возможность локализовать программу
Из чего состоит● Перевод данных● Перевод интерфейса● Локализация дат и чисел
США:Россия:Индия:
1,000,000.001 000 000,0010,00,000,00
библиотека
приложение
Зачем● MVCT: вынос всего текста в отдельный файл● Расширение аудитории● Родной язык всё равно комфортнее● Наш ответ глобализации
Как. Rails. 1● Поставить gem russian● Выставить язык пользователя:
class ApplicationController < … … before_filter :set_locale def set_locale I18n.locale = params[:locale] endend
● См. ещё полезные gem’ы: rails-i18n.org/wiki
Как. Rails. 2config/locales/ru.yml
ru: post: name: Заметка {{name}} comments: one: Один комментарий few: {{count}} комментария other: {{count}} комментариев
app/views/post/index.html.erb
<%= t 'post.name', :name => @name %><%= t 'post.comments', :count => @count %><%= l @created_at %>
Как. Ruby. 1
Установите gem
Sinatra:Merb:
Desktop:Я сам:
sinatra-r18nmerb_r18nr18n-desktopr18n-core
Всё сразу работает «из коробки».Нужно особая настройка — gem r18n-core.
Как. Ruby. 2
i18n/ru.yml
post: name: Заметка %1 comments: !!pl 1: Один комментарий 2: %1 комментария n: %1 комментариев
views/post.html.erb
<%= i18n.post.name(@name) %><%= i18n.post.comments(@count) %><%= i18n.l @created_at %>
Советы разработчикам● Динамическая вёрстка. Текст на разных
языках имеет разную длину.● Язык в адресе страницы: /ru/post/super● Список других языков в виде ссылок, а не
выпадающего списка
Советы i18n-гикам● Для иврита и арабского желательно менять
направление индикаторов и положение меню
● Используйте веб-сервисы для перевода99translations.comgithub.com/newsdesk/translatelaunchpad.net
Главное
I18n — это просто, весело и полезно.
Вопросы?
Rails i18n:R18n:
rails-i18n.orgr18n.rubyforge.org