0

대부분 JSON 응답 및 jQuery 아약스 콜백을 사용하여 API와 유사한 웹 사이트를 만들고 있습니다. JSON에서 컨트롤러 작업을 통해 모든 텍스트를 보내지 않고 응답하려면 내 애셋에 I18n을 사용하고 싶습니다. 자산은 정적이기 때문에 각 언어의 버전을 사전 처리 컴파일 한 다음 데이터베이스의 사용자 언어 설정에 따라 버전을 제공해야합니다.Ruby on Rails - 자산에서 I18n

현재 어떻게 접근해야하는지 모르겠습니다. js 파일을 만들고 javascript로 모든 I18n 변수를 정의한 다음 javascript_include_tag으로 올바른 파일을로드하십시오. 그런 식으로 모든 사용자에게 완전한 언어 파일에 대한 액세스 권한을 부여하고 JSON 응답 만 사용하여 내 앱을 너무 열어 놓은 것처럼 느낍니다. 자산에서 I18n을 사용하는 방법이 있습니까? 그리고 어떻게 개별적으로 프리 컴파일하고 제공합니까?

+0

상기 봐 [i18n-를 타고 js] (https://github.com/fnando/i18n-js) gem – Stefan

+0

@Stefan 내가 올바르게 이해한다면, 보석이 기본적으로하는 일은 내가 피하고 싶다는 것입니다. 모든 I18n 번역을 하나의 .js 파일에 제공하십시오. 사용자가 모든 번역을 한 번에 액세스하고 복사하는 것을 원하지 않습니다. 하지만 주위에 다른 방법이 없다면 대안이 될 수 있다고 생각합니다. – Nikom

답변

-1

솔직히 말하면 나는 전체적인 생각을 갖지 못했습니다. 그러나 그것은 당신을 위해 유용 할 수있다 : 당신이 그런 식으로 당신의 js 파일을 국제화를 정의 할 수 있습니다 :

보기/example.html.erb

<%= javascript_tag do %> window.variable = '<%= j t('variable') %>'; <% end -%>

+0

그는 액션/뷰에서 문자열을 렌더링하고 싶지 않다고 말했습니다. JS를 전혀 사용하지 않고 JSON (즉, AJAX 요청)을 사용합니다. 불행히도, 레일 4에서이 문제는 여전히 좋은 해결책으로 보이지 않습니다. http://stackoverflow.com/questions/9310044/rails-i18n-of-css-file에는 CSS 애셋을위한 멋진 솔루션 (해킹?)이 있습니다. – AnoE