2011-12-10 4 views
1

나는 새로운 프로젝트를 시작하려고하는데 어떤 충고가 필요하다.레일에있는 다국어 콘텐츠

예를 들어 "게시물"이있는 "페이지"라는 모델이있는 경우 - 새 게시물을 만들 때 언어를 두 개 이상 저장할 수 있습니다. 클릭 할 때 언어로 된 게시물 만 표시하려면 어떻게해야합니까? - 상단에 깃발 아이콘.

저는 18K에 대해서 많이 읽었습니다. 그러나 이해 했으니까요. 오류와 같은 정적 메시지를 번역하고 싶다면 어떻게 할 수 있습니까?

누군가가 주어진 전략을 깨끗한 방법으로 설명 할 수 있기를 바랍니다.

감사합니다.

답변

1

당신이 말했듯이, 현지화 및 국제화 (각각 l10n 및 i18n으로 약칭 함)는 일반적으로 콘텐츠가 아닌 소프트웨어 제품 자체의 현지화를 나타냅니다.

콘텐츠를 여러 언어로 관리하는 방법에는 여러 가지 전략이 있으며, 달성하려는 목표에 크게 좌우됩니다. 다국어 블로그를 운영한다고 가정 해보십시오. 그러나 일부 콘텐츠는 국제 시청자와 관련이 없으므로 영어 버전을 제공하고 싶지 않습니다 (영어가 모국어가 아니라고 가정).하지만 요점은 분명합니다.

이제 블로그의 영문 버전에 해당 블로그 게시물을 표시하지 않는 것이 좋습니다. 따라서, 나는

Post { 
    "_id" : ObjectId('...'), 
    "PostGroupId: ObjectId('...'), 
    "Title" : "A Blog Post Title", 
    "Text" : "<h1>Lorem ipsum</h1> lots of text", 
    "Language" : "en", 
    "Published" : // and so on... 
} 

이제 쉽게 주어진 언어의 모든 또는 특정 게시물에 대해 조회 할 수 있습니다 좋을 것 : db.Posts.find({"language" : "en"}).sort({"Published" : -1});

필요에 따라, 당신은에 게시물 그룹화 개체를 추가 할 수 있습니다 비정규 화 된 데이터를 사용하여 게시물의 번역을 명시 적으로 서로 연관시킵니다.

PostGroup 
{ 
    "_id" : ObjectId('...'), 
    // ... 

    "Posts" : [{"lang" : "en", "id" : ObjectId('...')}, 
      {"lang" : "de", "id" : ObjectId('...')} ] 
    // -- or simpler -- 
    "AvailableLanguages" : ["en", "it", "fr"] 
}