2012-10-17 6 views
1

다른 언어 섹션에있는 한 RC 파일에 중복 리소스 (즉 동일한 리소스 식별자)가있을 수 있습니다. 예를 들어RC 파일의 다른 언어 섹션에있는 동일한 리소스 식별자. 왜 가능합니까?

이 내 rc 파일에서 오류없이 컴파일 :

#define IDS_STRING_001 10001 

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT 
STRINGTABLE 
BEGIN 
    IDS_STRING_001 "English" 
END 

LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT 
STRINGTABLE 
BEGIN 
    IDS_STRING_001 "Japanese" 
END 

왜 이런 일이 가능 할까? 지역화 된 리소스를 보유하기 위해 별도의 DLL을 사용하는 대신 지역화의 대체 방법으로 사용할 예정입니까?

+0

예, 문자열 리소스가 언어, ID/이름 순으로 식별되기 때문에 그렇습니다. 이렇게하면로드되는 언어 리소스에 관계없이 동일한 ID/이름을 사용하여 문자열을로드 할 수 있으므로 각 언어마다 다른 코드를 작성할 필요가 없습니다. –

답변

2

네, 이것은 응용 프로그램의 현지화를 수행하는 한 가지 방법입니다. this link에서 :

이 방법 뒤에 주요 아이디어는 모든 대상 언어에 대한 모든 지역화 된 리소스를 포함하는 리소스 전용 DLL을 생성, 소스 코드에서 리소스를 분리하는 것입니다. 동일한 자원 ID의 여러 사본이 서로 다른 언어 태그로 RC 파일에 정의됩니다. 아래 샘플에서는 문자열 ID IDS_ENUMSTRTEST가 프랑스어와 영어로 정의되어 있습니다.