당신이 말했듯이, 현지화 및 국제화 (각각 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"]
}