5

나는 내 사이트를 국제화하려고하고 있는데, 한 가지는 다른 언어에 대해 다른 글꼴 크기를 사용하는 것입니다. 또한 일부 텍스트 이미지도 교체해야합니다.레일스 CSS 파일의 I18n

이 작업을 수행하는 유일한 방법은 추가 로캘 별 CSS 파일을 공용 폴더에두고 내보기의 로캘에 따라로드하는 것입니다. 이렇게하면 자산 파이프 라인이 특정 CSS 파일을 컴파일하는 것을 방지 할 수 있습니다. 그러나 이것을 할 수있는 더 좋은 방법이 있을지 궁금합니다.

답변

11

조직의 가장 좋은 방법은 현지화에 특정한 다른 스타일 시트를 사용하고, 로캘을 기반으로 렌더링 할 스타일 시트를 레이아웃에 설정하는 것입니다.

로컬 특정 스타일 만 넣으면됩니다. 생각해 보면로드 시간에 영향을 미치지 않습니다. 글꼴 크기를 변경한다고 생각하기 때문입니다. OP에서

UPDATE : 같은 fr.sass로,

  • 내가 app/assets/stylesheets
  • 나는 내 특정 스타일 시트를 로케일 넣어 아래 locales 디렉토리를 생성 : 여기

    내가이 작업을 위해 구성한 것입니다

  • layouts/application.html.erb에 CSS 파일을 참조하도록 조건을 설정했습니다. <% if I18n.locale != :en %> <%= stylesheet_link_tag "locales/" + I18n.locale.to_s %> <% end %>
  • I 설정의 I 내가 application.css로 컴파일 할 자산을 화이트리스트입니다 config/application.rb

config.assets.precompile += 'locales/*.css'

참고 규칙을 사전은 컴파일, 그래서 로케일 고유의 스타일은 application.css로받지 않습니다 .

+0

나를. – ericraio

2

html 로캘의 로캘 별 클래스 특성을 사용할 수도 있습니다. 나는 그것이 당신이 원하는 것을 성취하는 더 좋고/더 쉬운 방법이라고 생각합니다. CSS를 공개하는 것은 그렇게 좋지 않습니다.

4

나는 Onno에 동의합니다. 나는 매우 간단한 변경이 필요하므로이 답변에 설명 된대로 나는 언어 태그로 로케일을 추가 : https://stackoverflow.com/a/11577356/1822977

HTML :

<html lang="<%= I18n.locale || 'en' %>"> 

말대꾸 : 꽤 좋아 보인다

body { 
    font-family:verdana,arial,helvetica,sans-serif; 
    html[lang="jp"] & { 
     font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif; 
    } 
}