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

13
I18n ruby-приложений I18n ruby-приложений Ситник Андрей Санкт-Петербург, апрель 2009

Upload: andrey-sitnik

Post on 05-Jul-2015

1.930 views

Category:

Technology


2 download

DESCRIPTION

Как и зачем делать переводить ваше приложение на несколько языков на примере Rails и R18n.

TRANSCRIPT

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

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

Ситник АндрейСанкт-Петербург, апрель 2009

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

Меня зовут Андрей Ситник[email protected], sitnik.ru

Разработчик R18nr18n.rubyforge.org

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

О чём речь

L10n, localization, локализацияперевод приложения на другой язык и адаптация к другой культуре (формат даты, чисел и т. д.)

I18n, internationalization, интернационализциятехническая возможность локализовать программу

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

Из чего состоит● Перевод данных● Перевод интерфейса● Локализация дат и чисел

США:Россия:Индия:

1,000,000.001 000 000,0010,00,000,00

библиотека

приложение

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

Зачем● MVCT: вынос всего текста в отдельный файл● Расширение аудитории● Родной язык всё равно комфортнее● Наш ответ глобализации

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

Как. Rails. 1● Поставить gem russian● Выставить язык пользователя:

class ApplicationController < … … before_filter :set_locale def set_locale I18n.locale = params[:locale] endend

● См. ещё полезные gem’ы: rails-i18n.org/wiki

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

Как. 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 %>

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

Как. Ruby. 1

Установите gem

Sinatra:Merb:

Desktop:Я сам:

sinatra-r18nmerb_r18nr18n-desktopr18n-core

Всё сразу работает «из коробки».Нужно особая настройка — gem r18n-core.

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

Как. 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 %>

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

Советы разработчикам● Динамическая вёрстка. Текст на разных

языках имеет разную длину.● Язык в адресе страницы: /ru/post/super● Список других языков в виде ссылок, а не

выпадающего списка

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

Советы i18n-гикам● Для иврита и арабского желательно менять

направление индикаторов и положение меню

● Используйте веб-сервисы для перевода99translations.comgithub.com/newsdesk/translatelaunchpad.net

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

Главное

I18n — это просто, весело и полезно.

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

Вопросы?

Rails i18n:R18n:

rails-i18n.orgr18n.rubyforge.org