:image_uid
является идентификатором uniqe для идентификации изображения и поэтому не подходит для перевода. Но если присутствует атрибут :image_name
, то Dragonfly использует это как имя файла.
Если вы хотите иметь другое изображение для каждого языка, потому что вы, например, вставляете текст, вы должны следить за тем, чтобы имя или, более точно, URL-адрес всегда был другим, например. вы можете добавить локаль к URL-адресу: ?locale=en
или назовите свои файлы translation.en.jpg
. Чтобы присвоить имя, вы можете использовать вспомогательные методы @model.image.name
, .basename
и .ext
.
Если вы хотите изменить только имя файла и всегда иметь одно и то же изображение, вам потребуется механизм перезаписи URL-адресов и удалить имя файла перед кешем. В противном случае будут созданы ненужные копии одного и того же изображения, и вы потеряете дисковое пространство и вычислительную мощность.
Используя rack-rewrite
и rack-cache
драгоценные камни, это будет выглядеть примерно так:
require 'dragonfly/rails/images'
Rails.application.middleware.insert_before(Rack::Cache, Rack::Rewrite) do
rewrite %r{/media/([^/]+)/[^?]*(.*)}, '/media/$1$2'
end