복붙노트

[RUBY-ON-RAILS] 레일 : 데이터베이스에 저장 번역

RUBY-ON-RAILS

레일 : 데이터베이스에 저장 번역

내 데이터베이스에 내 번역을 저장하기위한 국제화 기본 레일을 확장 할 수있는 플러그인 / 보석 솔루션을 찾고 있었다. 어쩌면 내가 잘못 검색어를 사용하지만, 모든 I의 FOUND 백엔드를 변경하면 실제로 가능하고, 내 자신의 백엔드를 작성하는 방법을 descripes이 블로그 항목 것으로, 정보이었다.

그것은 상상하기 어려운, 모든 사람이 자신의 번역이 YML-파일에 저장되거나 모든 개발자가 자신의 백엔드를 썼다가 가진 밖으로 애플 리케이션을 레일 것을!

당신은 이것에 대한 작업 솔루션을 아십니까? YML에서 여러 텍스트를 저장하는 것은 정말 날을 얻는다! ;)

감사합니다 접견,

해결법

  1. ==============================

    1.국제화가 내장되어 지원 번역 백엔드로 데이터베이스를 사용하는.

    국제화가 내장되어 지원 번역 백엔드로 데이터베이스를 사용하는.

    마이그레이션이 코드를 사용하여 테이블 만들기 :

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

    그런 다음 추가 이니셜 라이저에서 설정 / 초기화 / 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
    ...
    

    국제화 0.5.0으로 나는 그들이 그 자체가 보석의에 ... 내가 그 보석이라는 것을 잊지이 코드를 이동 믿습니다.

  2. ==============================

    2.나는 마침내 내가 스벤 Fuchs의의 도움으로 무엇을 찾고 있었다 발견 :

    나는 마침내 내가 스벤 Fuchs의의 도움으로 무엇을 찾고 있었다 발견 :

    딜런 Stamat에 의해이 아주 멋진 플러그인은 이름을 표시하고 추가로 캐싱을 처리 정확히 않습니다!

    스벤은 국제화의 현재 지점은 액티브뿐만 아니라 백엔드 제공 active_record / 있다고 언급 :

    이 주제에 대한 몇 가지 논의는 구글의 국제화 사용자 그룹에서 진행됩니다 :

    문제는, 씨 국제화 스벤 Fuchs의 덕분에 해결! ;)

  3. ==============================

    3.당신은 http://github.com/joshmh/globalize2/tree/master을 시도 할 수도 있습니다

    당신은 http://github.com/joshmh/globalize2/tree/master을 시도 할 수도 있습니다

  4. ==============================

    4.우리는 fast_gettext과 좋은 경험을했다

    우리는 fast_gettext과 좋은 경험을했다

    그것은 웹을 통해 번역을 할 수있는 컨트롤러와 함께 제공되는 DB 백업 백엔드 있습니다. 캐싱이 내장되어, 우리가 부팅 번역의 모든 코드를 사전로드로했다 (비록 그것이 훨씬 더 빨리 다음 그들을 하나씩 캐싱 수).

  5. from https://stackoverflow.com/questions/1346939/rails-store-translations-in-database by cc-by-sa and MIT license