Нужны ли повторные переводы для одинаковых строк в Globalize3? - PullRequest
1 голос
/ 18 января 2012

Я надеялся использовать Globalize3 для перевода моделей в проект, который я строю.Однако, пробуя это, похоже, что каждая модель, скажем, Post вроде:

class Post < ActiveRecord::Base
    translates :title, :body
end

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

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

Я что-то неправильно понял или это действительно так, как работает Globalize3?Если так, то это действительно звучит так, как будто подходит, когда строки уникальны, как в блоге.

Есть ли еще один драгоценный камень, который делает то, что мне нужно?

Спасибо за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

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

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

Я бы не стал этого делать, и я не знаю ни одного драгоценного камня для вашего сценария. Вместо этого я бы сделал следующее:

Вместо этого сохраняйте значения RGB и в контроллере преобразуйте их в названия цветов. Затем вы можете перевести это с помощью модуля Rails i18n.

Или как вариант выше, вы используете имена цветов в качестве ключей i18n, например t("color.#{car.color.parameterize}"), а в en.yml есть

en:
  color:
    dark-blue: 'Dark Blue'
0 голосов
/ 29 февраля 2012

Эту проблему вы не можете легко избежать, если переводимые строки являются «стандартными», вы можете воспользоваться решением, предложенным lulalala (смоделируйте эту информацию).

У меня была похожая проблема (нев Rails, но это то же самое), и мы «исправили» это с помощью задачи, которая периодически и автоматически копирует переводы для дублированного контента.

...