Лучший подход для рельсов 3 I18n - PullRequest
3 голосов
/ 11 мая 2010

У меня есть страница с брендами, тегами, комментариями и продуктами. Время выходить на международный уровень и у меня есть вопрос о том, как настроить I18n.

Я прочитал кое-что о Интернализации и даже попробовал гем глобализации 1 год назад, но я все еще не знаю, как справиться с этим. Я перевожу статический текст на мою веб-страницу, используя красивый I18n.translate () метод хранения каждого статического и полустатического текста в другом файле .yml. Эта проблема приходит, когда пытаешься отслеживать отношения в зависимости от языка.

Прежде чем приступить к решению проблемы, я покажу вам свою схему / модели базы данных. Обратите внимание, что ни одна из моделей еще не имеет переменной локали.


Модели и схемы


Продукт

принадлежит_: категория
has_many: теги
has_many: теги,: through =>: теги
has_many: комментарии

  • имя: строка
  • Описание: Текст

Комментарий

принадлежит_продукту:: counter_cache => true

  • автор: строка
  • Комментарий: Текст

Марка

has_many: продукты

  • имя: строка

Tagging

own_to: tag
принадлежат: продукт

Tag

has_many: теги
has_many: products,: through =>: теги

  • имя: строка

Проблемы


  • перевод полей
    Чтобы перевести отдельные поля, такие как название тега или описание продукта, можно использовать гем globalize2 с отдельной таблицей перевода или любой другой драгоценный камень с той же функцией.

  • comments_count
    Comments_count для продуктов покажет общую сумму комментариев, а не для конкретного языка.

  • теги / теги
    При выполнении product.first.tags будут показаны все теги независимо от текущей локали. Одним из решений этой проблемы может быть быть положить поле языка в таблице тегов, но я думаю, там это плагины или гемы для этого?

  • Фирменное наименование является международным и не меняется в зависимости от языка.

Мне нужен совет от кого-то, кто знает, как правильно обращаться с приложениями I18n, и вопрос прост: как решить вышеуказанные проблемы? Все ответы приветствуются.

1 Ответ

1 голос
/ 18 мая 2010

Я использую puret http://github.com/jo/puret для перевода данных. Хороший плагин работает хорошо, но у меня есть некоторые еще не решенные проблемы при сохранении вложенных моделей с переведенными полями.

Другие альтернативы, которые сейчас не работают с Rails 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...