2010-03-24 3 views
1

우리의 응용 프로그램에는 데이터 항목 모음이 있으며 각 항목에는 DisplayedName 속성이 있습니다. 이 속성은 현지화되어야합니다. 즉 사용자가 선택한 언어로 표시되어야합니다. 따라서 다른 속성 인 DisplayedNameResourceKeyDisplayedName 속성에 의해 반환되어야하는 리소스를 지정합니다.현지화 : 사용자가 컴파일하지 않고 사용자 지정 리소스를 정의하도록 허용하는 방법?

public string DisplayedName 
{ 
    get 
    { 
     return MyResources.ResourceManager.GetObject(this.DisplayedNameResourceKey); 
    } 
} 

public string DisplayedNameResourceKey 
{ 
    get; 
    set; 
} 

지금 문제는 다음과 같습니다 : 사용자는 더 정확하게 DisplayedNameResourceKeyDisplayedName, 또는 포함하여 이러한 항목을 편집 할 수 있어야한다

은 간단한 코드에서이 같은 것을 의미한다. 그리고 이것뿐만 아니라, 사용자는 어떻게해서든지 그가 참조 할 수있는 새로운 자원을 정의 할 수 있어야합니다. 즉, 미리 정의 된 리소스 집합 (일반적으로 사용되는 일부 이름)에서 선택하거나 사용자가 지역화해야하는 사용자 지정 리소스를 정의 할 수 있습니다.

그러나 사용자는 런타임에 컴파일하지 않고 MyResources에 사용자 정의 자원을 추가 할 수 없습니다. 따라서 다른 접근법이 필요합니다. 이는 대개 사용자에게 친숙하지 않아도됩니다 (예 : UI가 필요하지 않음). 이는 일반적으로 Google 서비스 엔지니어가 수행하기 때문에 가능합니다.

리소스 키 쌍과 해당 번역이 들어있는 txt 또는 csv 파일을 사용하려고 생각했습니다. 미리 정의 된 위치에 모든 언어에 대해 별도의 파일이 존재합니다. 그러나 저는 그 아이디어에 만족하지 않습니다. 왜냐하면 자원을 해결하기위한 많은 노력이 필요하기 때문입니다.

누구나 그런 상황에 대한 좋은 접근 방법을 알고 있습니까?

답변

0

리소스를 데이터베이스에 저장하는 것을 고려해 볼 수 있습니다. 이 방법으로, 당신은 그것을 상당히 동적이고 빠르게 유지합니다.

예. 3 열의 테이블 : 리소스 키, 언어, 메시지. 빠른 검색을 위해 리소스 키와 언어 열에 복합 인덱스를 만들어야합니다.

+0

답변 해 주셔서 감사합니다. 불행히도, 우리의 소프트웨어는 지금까지 데이터베이스 기능을 포함하지 않습니다. 그리고 저는이 특별한 목적을 위해서만이 기능을 소개 할 것이라고 생각하지 않습니다. 어쩌면 나는 원래 게시물에 미안하다고 언급 했어야했다. – gehho

관련 문제