многоязычный mongodb mongomapper - PullRequest
1 голос
/ 30 июня 2010

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

например, поля категории автомобиля - {имя: длина, единица измерения: мм}, {имя: вес, единица измерения: кг}.

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

Я мог бы поместить их в строку:

например, поля категории автомобиля - {en-name: длина, cn-name: ....., de-name: ....., единица измерения: мм}

Есть ли лучший способ?

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

Любая помощь или идеи?

Спасибо, Рик

Ответы [ 2 ]

1 голос
/ 30 июня 2010

Лучший способ - поместить переводы в файлы локалей (в config / locales /). Например (английский язык):

en:
  categories:
    car:
      length: Length

А потом что-то подобное при отображении названия поля:

I18n.t("categories.#{category.name}.#{field_name}")

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

0 голосов
/ 17 февраля 2011

Перевод модели довольно прост в MongoDB.

Вот суть, которая использует собственный тип MongoMapper для прозрачной обработки локализации: https://gist.github.com/828114

Ваша LocalizedString будет выглядеть как

name: {  
   en: '...',
   cn: '...',
   de: '...'
}

Пользовательский тип просто сохраняет / возвращает значение для текущего I18n.locale

...