Internalization, I18n, localization
Апрель 2, 2010
Существует два вида интернализации (т.е. перевода) рельсоприложений:
- Перевод заголовков, названий полей и всего статического, что имеется в виде. Для этих целей удобно использовать I18n, который включен в рельсы начиная с версии 2.2 (Мувик в тему!)
- Перевод данных из базы, для которого на данный момент нету встроенного решения может осуществляться несколькими путями.
К примеру у нас имеется таблица страниц с названием и контентом (title, content). Вот стратегии которые предлагает нам AWDWR(3ed):- Иметь различные таблицы для различных языков
| pages_en | pages_ru | - В таблице иметь дополнительный столбец с указанием локали, таким образом делать несколько записей каждого из продуктов с различными локалями
| id | title | content | locale |
| 1 | заголовок | контент | ru |
| 2 | smth | text | en | - В таблице иметь дополнительные столбцы с каждым из полей в различных локалях
| id | title_en | title_ru | content_en | content_ru | - То, что называется четвертой нормальной формой
Подробнее здесь
Кстати я в итоге и воспользовался этим способом, а плагин translatable_columns помог мне в этом. Уиии!
- Иметь различные таблицы для различных языков
PS
Локализацией оказывается называется интернализация времени, дат и всего чего с этим связано.

Май 23rd, 2010 at 4:53 пп
вообще в САБе я реализовал еще одну темку (правда не на руби). При загрузке приложения из файла читается и запихивается в хэш значения (где ключ нужное значение на латинице, а значение это то, что нужно получить по ключу, т.е. достоверное на нужном языке значение )ключ=значение. потом при необходимости из оператвы берется нужное значение. Если нужного значения не находилось, то ключ и подставлялся, а в аут выводилось ключ + «=» чтобы потом удобно было вставлять в файл интернализации.