유료 매크로 프로그램 다운로드
http://ngmsoftware.com/bbs/board.php?bo_table=product_review
엔지엠소프트웨어
엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.
www.ngmsoftware.com
#매크로 #메크로 #매크로프로그램 #엔지엠소프트웨어 #엔지엠에디터 #엔지엠플레이어 #비활성매크로 #하드웨어매크로 #기계식매크로 #마우스광클릭 #키보드매크로 #이미지서치 #이미지매치 #블로그 #카페 #인스타그램 #유튜브 #소셜네트워크 #카카오톡 #텔레그램 #자동화
안녕하세요. 개발자 소심비형입니다. 지금까지 매크로 프로그램을 개발하면서 한국어는 기본이고, 추가로 영어까지 언어 리소스를 만들어 왔습니다. 아마도, 몇번에 걸쳐서 이와 관련된 이야기를 했었던거 같은데요. 간단하게 코딩으로 Current Culture를 변경하면서 테스트를 했습니다. 이번에는 실제로 매크로 에디터에 언어별 버튼을 추가하고 이벤트를 통해서 사용자가 언어를 선택할 수 있도록 개발을 해볼께요.
언어셋 버튼은 아래와 같이 시스템 메뉴에 2개 추가 해두었습니다.
이전 버전인 엔지엠 매크로 6은 언어셋이 3개였습니다. 한국어, 영어, 중국어였는데요. 사실 중국어까지 사용할일이 없기 때문에 이번에는 제외시켰습니다. 그리고, 영어도 솔직히 필요한가 싶기도 하네요.ㅎㅎ; 처음 엔지엠 매크로 3을 만들 당시에는 중국을 비롯해서 영어권에도 마케팅을 하려고 했었어요. 하지만, 혼자서 모든걸 다 하기엔 무리더라고요. 당시에 다니던 회사에 중국 라인 부서가 있어서 같이 해보자고 했었는데... 별 관심이 없어서 결국은 포기했습니다. 중국어를 할줄 아는 개발자여서 중국 홈페이지를 만들어서 판매하면 좋겠다는 생각이었습니다. 하지만, 중국쪽은 법이나 기타 사업자와 같은 다양한 여건들이 한국과는 달라서 제가 혼자서 뭔가 처리하기가 어렵더라고요. 언젠가 기회가 오겠죠.^^
코딩은 크게 어려운 부분이 없습니다. 리본 메뉴에 추가한 버튼에 이벤트 핸들러를 추가하고, 아래와 같이 코딩 해줍니다.
private void SystemLanguage_Click(object? sender, EventArgs e)
{
foreach (KryptonRibbonGroupButton button in ((KryptonRibbonGroupTriple)((IEditor)_client).Ribbon.RibbonTabs[6].Groups[0].Items[0]).Items)
button.Checked = sender.Equals(button);
var systemConfig = Ai.Model.Helper.GetSystemFile();
if ((Ai.Definition.Language)(sender as KryptonRibbonGroupButton).Tag != systemConfig.Language)
{
systemConfig.Language = (Ai.Definition.Language)(sender as KryptonRibbonGroupButton).Tag;
Ai.Api.ModelHelper.Save(systemConfig, Ai.Common.Environment.SystemFullName);
if (MessageBox.Show((Form)_client, _client.ResxMessage.GetString("MessageLanguageChange"), "Information", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
{
System.Windows.Forms.Application.ExitThread();
System.Windows.Forms.Application.Restart();
}
}
}
이 코드로 언어셋이 변경되는건 아닙니다. 어떤 언어셋을 사용할지만 Config 파일에 저장해두고, 응용프로그램을 재실행 해줍니다. 그리고, 응용프로그램이 시작될 때 콘피그 파일을 불러오고 언어셋에 맞게 컬쳐를 변경해주는 방식입니다. 그렇기 때문에 리부팅 없이 시스템에 언어를 적용할수는 없습니다. 못하는건 아니지만, 모든 지역화된 리소스에 접근해야 하고 일일이 다 변환해주는 리소스를 바인딩해야 하는데요. 이게 상당한 노가다 작업입니다. 그래서, 언어셋만 저장해놓고 자동으로 처리되게끔 만드는게 가장 간단하고 좋은 방법입니다.
아래는 Program.cs 파일에서 다국어를 처리하는 방법을 보여줍니다. 중국어는 제외시켰지만, 코드는 일단 남겨 두었습니다. 여기서 핵심 코드는 CurrentUICulture에 사용자가 선택한 로케일의 컬쳐 정보를 넣어주는 것입니다. 이렇게함으로써 프로그램 전체 로케일을 변경할 수 있고, 프로그램은 로케일에 따라 리소스를 불러와서 각각의 텍스트를 처리 해줍니다.
switch (_config.Language)
{
case Ai.Definition.Language.Korean:
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("ko-KR");
break;
case Ai.Definition.Language.English:
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
break;
case Ai.Definition.Language.Chinese:
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
break;
}
이제 정상적으로 동작하는지 테스트 해볼까요? 테스트는 아래 동영상을 참고하세요.
[ 각종 자동화 매크로 및 RPA 프로그램 제작 해드립니다. ]
[ 초보자도 쉽게 따라할 수 있는 기초 학습 강좌 보기 ]
원본 글 보기
http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech
엔지엠소프트웨어
엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.
www.ngmsoftware.com
댓글