Multilang Webites: где хранить список языков? - PullRequest
0 голосов
/ 03 мая 2011

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

Интересно, как лучше всего это реализовать.Создайте полный язык модели с чем-то вроде этого:

Class Language
    has_many :article
end
Class Article
    belongs_to :language
end

Или жестко закодируйте его непосредственно в поле таблицы статей с константой для перечисления всех доступных языков.(Главным образом, чтобы показать это в раскрывающемся списке):

LANG_LIST = {:en => 'english', :de => 'german', :fr => 'french' ...}

Два варианта работы, но какой путь рельсов лучший и самый чистый в обслуживании?

Спасибо за ваше мнение!

1 Ответ

1 голос
/ 03 мая 2011

Вы можете просто создать языковой атрибут в модели товара для хранения информации, вашего второго варианта может быть достаточно.

Я думаю, что языковая модель была бы просто слишком большой без реальной выгоды.

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

Если вы хотите придерживаться модели, помните, что вы можете использовать помощник делегата, чтобы сделать вещи прозрачными для вашей языковой модели. Таким образом, вместо article.language.locale вы можете напрямую вызвать article.language_locale (очень тонкий, но важный шаблон проектирования).

Многие вещи, которые вы можете сделать, но я, вероятно, сделаю это просто с модулем здесь.

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