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.
10. Советы разработчикам
● Динамическая вёрстка. Текст на разных
языках имеет разную длину.
● Язык в адресе страницы: /ru/post/super
●
Список других языков в виде ссылок, а не
выпадающего списка
11. Советы i18n-гикам
● Для иврита и арабского желательно менять
направление индикаторов и положение
меню
● Используйте веб-сервисы для перевода
99translations.com
github.com/newsdesk/translate
launchpad.net