I18n ruby-приложенийI18n ruby-приложений
Ситник Андрей
Санкт-Петербург, апрель 2009
Меня зовут Андрей Ситник
andrey@sitnik.ru, sitnik.ru
Разработчик R18n
r18n.rubyforge.org
О чём речь
L10n, localization, локализация
перевод приложения на другой язык и
адаптация к другой культуре (формат даты,
чисел и т. д.)
I18n, internationalization, интернационализция
техническая возможность локализовать
программу
Из чего состоит
● Перевод данных
●
Перевод интерфейса
●
Локализация дат и чисел
США:
Россия:
Индия:
1,000,000.00
1 000 000,00
10,00,000,00
библиотека
приложение
Зачем
● MVCT: вынос всего текста в отдельный файл
●
Расширение аудитории
●
Родной язык всё равно комфортнее
● Наш ответ глобализации
Как. Rails. 1
●
Поставить gem russian
●
Выставить язык пользователя:
class ApplicationController < …
…
before_filter :set_locale
def set_locale
I18n.locale = params[:locale]
end
end
●
См. ещё полезные gem’ы: rails-i18n.org/wiki
Как. Rails. 2
config/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-r18n
merb_r18n
r18n-desktop
r18n-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.com
github.com/newsdesk/translate
launchpad.net
Главное
I18n — это просто, весело и полезно.
Вопросы?
Rails i18n:
R18n:
rails-i18n.org
r18n.rubyforge.org

I18n ruby-приложений

  • 1.
    I18n ruby-приложенийI18n ruby-приложений СитникАндрей Санкт-Петербург, апрель 2009
  • 2.
    Меня зовут АндрейСитник andrey@sitnik.ru, sitnik.ru Разработчик R18n r18n.rubyforge.org
  • 3.
    О чём речь L10n,localization, локализация перевод приложения на другой язык и адаптация к другой культуре (формат даты, чисел и т. д.) I18n, internationalization, интернационализция техническая возможность локализовать программу
  • 4.
    Из чего состоит ●Перевод данных ● Перевод интерфейса ● Локализация дат и чисел США: Россия: Индия: 1,000,000.00 1 000 000,00 10,00,000,00 библиотека приложение
  • 5.
    Зачем ● MVCT: выносвсего текста в отдельный файл ● Расширение аудитории ● Родной язык всё равно комфортнее ● Наш ответ глобализации
  • 6.
    Как. Rails. 1 ● Поставитьgem russian ● Выставить язык пользователя: class ApplicationController < … … before_filter :set_locale def set_locale I18n.locale = params[:locale] end end ● См. ещё полезные gem’ы: rails-i18n.org/wiki
  • 7.
    Как. Rails. 2 config/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 %>
  • 8.
    Как. Ruby. 1 Установитеgem Sinatra: Merb: Desktop: Я сам: sinatra-r18n merb_r18n r18n-desktop r18n-core Всё сразу работает «из коробки». Нужно особая настройка — gem r18n-core.
  • 9.
    Как. 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 %>
  • 10.
    Советы разработчикам ● Динамическаявёрстка. Текст на разных языках имеет разную длину. ● Язык в адресе страницы: /ru/post/super ● Список других языков в виде ссылок, а не выпадающего списка
  • 11.
    Советы i18n-гикам ● Дляиврита и арабского желательно менять направление индикаторов и положение меню ● Используйте веб-сервисы для перевода 99translations.com github.com/newsdesk/translate launchpad.net
  • 12.
    Главное I18n — этопросто, весело и полезно.
  • 13.