Enum이 정의한 언어로 여러 언어에 대응하고 싶어요.

3833 단어 C#다국어
일반적인 다중 언어 대응
다국적 언어의 대응에 대해 말하자면 일반적으로 자원 파일을 정의하고 그 중에서 호출하는 수단을 취한다.
예를 들어 Properties 내의 Resources 와 같습니다.resx에서 다음과 같이 정의합니다.

property.cs
// 日本語用リソースだと”4逓倍”、英語用だと”Multiple 4”
string str = Properties.Resources.Multi4 
모든 언어는 자원 파일을 준비하고 있으며, 전환을 통해str에 저장된 문자열을 변경할 수 있습니다.
다른 한편, Enum으로 자원을 호출하려고 해도 선언할 때 호출할 수 없다.
enum CountType
{
  Multi4,
  Multi2,
  Multi1
}
해결책
따라서 확장 방법을 사용하여 자원 파일에서 다양한 언어의 태그를 호출합니다.
public static string GetName(this CountType e)
{
  switch (e)
  {
     case CountType.Multi4:
       return Properties.Resources.Multi4;
     case CountType.Multi2:
       return Properties.Resources.Multi2;
     case CountType.Multi1:
       return Properties.Resources.Multi1;
     default:
       return "Undefined";
  }
}
사용 시 GetName() 메서드를 호출합니다.
foreach (CountType type in Enum.GetValues(typeof(CountType)))
{
  Combobox.Items.Add(type.GetName());
}
이렇게 하면 일본어로 쓸 수 있다.

컨디션
Visual Studio 2017 Community
.Net Framework 4.6
C#
참고 문헌
WPF 응용의 국제화(다중 언어 대응) 및 실행 중인 동적 언어 전환
WPF Runtime Localization

좋은 웹페이지 즐겨찾기