Существует два вида интернализации (т.е. перевода) рельсоприложений:

  1. Перевод заголовков, названий полей и всего статического, что имеется в виде. Для этих целей удобно использовать I18n, который включен в рельсы начиная с версии 2.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
Локализацией оказывается называется интернализация времени, дат и всего чего с этим связано.

Один комментарий to “Internalization, I18n, localization”

  1. JavaAxe Says:

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

Leave a Reply

Нам помогают
Дружественные сайты: