2010-04-22 6 views
2

저는 다국어로 된 웹 사이트에서 레일즈를 작성하고 있습니다. 응용 프로그램 변환 부분에서는 간단한 I18n gem을 사용하여 메시지와 관련된 모든 것을 처리합니다. 그러나 레일 응용 프로그램과 다국어 콘텐츠, 모델 딜레마

는 모든 콘텐츠는 번역해야하며, 우리는 내가 생각하고 데이터베이스에 저장됩니다 많은 페이지 (기사처럼, 뉴스 등) 지금은

에 대해 얘기 두 가지 접근법 중 하나 :

1. 내가 말하는 페이지 테이블, diff의 내용이 있습니다. 언어, 나는 Pages와 또한 다른 언어 테이블에 속하는 PagesContent라고 불리는 다른 테이블에 그것을 저장할 것이다.

여기의 문제는 본질적으로 no를 복제한다는 것입니다. 필요한 테이블. 장점 : 상자 유효성 검사에서 유연성 :

2. 중복을 건너 뛰려면 해시를 번역이 포함 된 페이지의 콘텐츠 열로 serialize 할 수 있습니다.

여기서 문제는 유효성 검사, 작성하는 데 더 많은 코드 및 새로운 언어를 추가 할 때 유연성이 떨어지는 것입니다. 장점 : 적은 테이블.

다른 아이디어가 있습니까?

답변

3

globalize을 사용하면 어떨까요? 그 모든 것을 쉽게 할 수 있도록 디자인 된 보석입니다.

+0

은 코드를 직접 작성하지 않으려면 좋은 해결책으로 보이고, 결국 모든 것을 번역하기위한 자체 프로세스를 만들었습니다. – dakull

+1

globalize3은 https://github.com/svenfuchs/globalize3에서 사용할 수 있습니다. –