2012-06-12 2 views
0

다른 모델을 사용하여 다른 언어로 이미지를 만들 수 있으므로 모델의 image_uid 속성을 i18n 시도하고 있습니다. 나는 globalize3와 잠자리를 사용하고 있습니다.세계화와 잠자리 사용

문제는 전혀 작동하지 않는다는 것입니다. 일반적으로 스페인어 이미지 (내 응용 프로그램의 기본 로케일)를 업로드하지만 다른 로케일에서는 작동하지 않습니다. 나는 어떤 오류나 흔적도 얻지 못한다. 단지 작동하지 않는다.

모델

은 매우 간단합니다 :

image_accessor :image 
translates :image_uid 

어떤 생각?

답변

0

:image_uid은 이미지를 식별하기위한 고유 식별자이므로 번역에 적합하지 않습니다. 그러나 :image_name 속성이있는 경우 Dragonfly는이를 파일 이름으로 사용합니다.

예를 들어 텍스트를 삽입했기 때문에 모든 언어에 다른 이미지를 사용하려면 이름이나 더 정확하게는 항상 URL이 다른 것을주의해야합니다. 로케일을 URL에 추가 할 수 있습니다 (?locale=en). 또는 파일의 이름을 translation.en.jpg으로 지정할 수 있습니다. 이름을 할당하려면 도우미 메서드 @model.image.name, .basename.ext을 사용할 수 있습니다.

파일 이름 만 변경하고 항상 동일한 이미지가 제공되도록하려면 URL 다시 쓰기 엔진이 필요하며 캐시 전에 파일 이름을 제거하십시오. 그렇지 않으면 동일한 이미지의 불필요한 사본이 만들어지며 디스크 공간과 처리 능력이 낭비됩니다.

require 'dragonfly/rails/images' 

Rails.application.middleware.insert_before(Rack::Cache, Rack::Rewrite) do 
    rewrite %r{/media/([^/]+)/[^?]*(.*)}, '/media/$1$2' 
end 
:

이 그 같이 보일 것 rack-rewriterack-cache 보석을 사용하여