문제

변환을 내 데이터베이스에 저장하기 위해 기본 레일 i18N을 확장하기 위해 플러그인/GEM 솔루션을 찾고있었습니다. 어쩌면 나는 잘못된 검색어를 사용했지만, 내가 찾은 것은 정보만으로도 백엔드를 변경하는 것이 실제로 가능하다는 것입니다. 블로그 항목 내 자신의 백엔드를 작성하는 방법을 설명합니다.

YML 파일에 번역을 저장하거나 모든 개발자가 자신의 백엔드를 썼다는 것은 모든 레일 앱이 거기에있는 것을 상상하기 어렵습니다!

이것에 대한 작동 솔루션을 알고 있습니까? YML에 멀티 라인 텍스트를 저장하면 정말로 나를 실망시킵니다! ;)

감사하고 인사,

도움이 되었습니까?

해결책

I18N은 데이터베이스를 번역 백엔드로 사용하는 것을 지원합니다.

마이그레이션 에서이 코드를 사용하여 테이블을 만듭니다.

   create_table :translations do |t|
     t.string :locale
     t.string :key
     t.text   :value
     t.text   :interpolations
     t.boolean :is_proc, :default => false
   end

그런 다음 config/initializers/i18n.rb에서 내용과 함께 이니셜 라이저를 추가하십시오.

   I18n.backend = I18n::Backend::ActiveRecord.new

그리고 마지막 ... 테이블에 번역을 넣습니다. 같은 것 :

locale key      value
en     Cool     Cool
es     Cool     Frio
en     nav.Home home
es     nav.Home casa
...

i18n 0.5.0 기준으로 나는 그들이이 코드를 자신의 보석으로 옮겼다고 생각합니다 ... 나는 그 보석이 무엇인지 잊어 버렸습니다.

다른 팁

나는 마침내 내가 Sven Fuchs의 도움으로 내가 찾고 있던 것을 발견했다.

http://github.com/dylanz/i18n_backend_database/tree/master

Dylan Stamat 의이 멋진 플러그인은 이름이 나타내는 것을 정확하게 수행하고 캐싱을 추가로 처리합니다!

Sven은 또한 I18N/Active_Record의 현재 지점이 ActivereCord 백엔드를 제공한다고 언급했습니다.

http://github.com/svenfuchs/i18n/blob/active_record/lib/i18n/backend/active_record.rb

이 주제에 대한 일부 토론은 Goolge i18N 사용자 그룹에서 진행됩니다.

http://groups.google.com/group/rails-i18n/browse_thread/thread/6b7ba3c401890a7e

Mr 덕분에 문제가 해결되었습니다 i18n Sven Fuchs! ;)

시도하고 싶을 수도 있습니다 http://github.com/joshmh/globalize2/tree/master

우리는 좋은 경험을했습니다 fast_gettext

웹을 통해 번역을 수행 할 컨트롤러와 함께 제공되는 DB 지원 백엔드가 있습니다. 캐싱은 내장되어 있지만 부팅의 모든 변환을 사전로드해야했습니다 (캐싱과 함께 일대일 단위로 얻을 수 있습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top