2013-03-06 3 views

답변

2

4,4.5 당신은 데이터베이스에 번역 된 값을 가질 필요가있다.

언어가 거의없고 변경되지 않으면 각 언어 (NameEn, NameEs, NameFr 등)에 대한 열을 추가 할 수 있습니다. Kinda는 정규화 규칙에 어긋나지 만 삶을 편하게 만듭니다.

Localize 
- Field 
- Locale 
- Translation 

그런 다음 범주 이름에 대한 세 기록, 각 언어에 대해 하나있을 것입니다 :

다른 DB 접근 방식은 모든 번역을 유지하는 테이블이하는 것입니다. 필드 및 로케일별로 테이블을 쿼리하기 만하면됩니다.

+0

나는 그것이 좋은 방법이 아니라고 생각합니다. 하지만 고마워. 모든 리소스를 한 곳에서 관리하고 싶습니다. 일부는 데이터베이스에 있고 일부는 리소스 파일에 있습니다. 그것은 복잡합니다. 그리고 나는 그것이 사용하기 쉽지 않다라고 생각한다. 예를 들어 각 값에 대해 리소스 파일을 사용하기 위해 무엇을 말할 수 있습니까? 기본 시스템을 사용하여 프로그래밍 방식으로이 작업을 수행하려면 어떻게해야합니까? –

1

아주 일반적인 접근 방식은 현지화가 필요한 열이 적어도 하나있는 각 테이블에 대해 별도의 변환 테이블을 만들어 데이터베이스를 통해 현지화하는 것입니다. 이것이 우리 프로젝트에서 주로하는 일입니다. 데이터베이스 데이터 -> DB에서 지역화하십시오. View/UI strings -> resx 파일에서 현지화하십시오.

여기이 대답을 살펴보십시오 : Good database table design for storing localized versions of data

편집 : 실제로 번역 항목이 할 필요가 없습니다 그래서 우리가 일반적으로 원래의 테이블에서 "기본"언어를 저장하는 링크는 달리.

예를 들어 "Category"테이블에 Id 및 Name 열이 있으면 해당 번역 테이블 "Categories_Translation"에 CategoryId, LanguageCode, Name_Tx 열이 포함될 수 있습니다. 반면 Name_Tx에는 "Name" ".