문득 생각이 나서 퇴근길에 검색하게 된 녀석인데..
Visual Studio에서 정식적으로 지원하는건, "String Table"을 로케일(Locale) 별로 나누는 것이다.
Step 1. resource - String Table 에서 "Insert Copy" 를 한다.
Step 2. 원하는 언어명을 추가한다.
Step 3. 번역한다
접기
아래는 문자열에 대한 rc(resource)파일의 내용이다.
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUTBOX "test 정보(&A)..."
END
#endif // Korean resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Russian resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
#ifdef _WIN32
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#pragma code_page(1251)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUTBOX "test ??(&A)..."
END
#endif // Russian resources
/////////////////////////////////////////////////////////////////////////////
접기
접기
IDS_ABOUTBOX 가 기본적으로 추가되는 문자열이며
아래의 파일에 나와있듯, 101번으로 연결되어 있다.
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by test.rc
//
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDS_ABOUTBOX 101
#define IDD_TEST_DIALOG 102
#define IDR_MAINFRAME 128
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
접기
VS2010 MFC 프로젝트에서는 String Table이 자동생성되지 않았다.
하지만 생성하고 나서는 VC++6과 동일한 방법으로 다국어 테이블을 생성할 수 있다.