의 enum 다국어를 만들 수 있습니까? 저는 다국어 사이트에서 작업 중이며 일부 열거 형을 사용하고 있으며 이제는 다국어로 열거 형 열거 형을 만들 수 있습니다.우리는 asp.net에서 C#
내 열거 구조는 다음과 같은
public enum abc
{
[Description{"multilingual text"}]
StatucActive = 1
}
입니다. 설명에 다국어 텍스트를 쓰고 싶습니다.
의 enum 다국어를 만들 수 있습니까? 저는 다국어 사이트에서 작업 중이며 일부 열거 형을 사용하고 있으며 이제는 다국어로 열거 형 열거 형을 만들 수 있습니다.우리는 asp.net에서 C#
내 열거 구조는 다음과 같은
public enum abc
{
[Description{"multilingual text"}]
StatucActive = 1
}
입니다. 설명에 다국어 텍스트를 쓰고 싶습니다.
이 아니 우리가 다국어로 열거을 사용할 수 없습니다하지만 난 다른 옵션이 그 어떤 상황에서는 열거 형처럼 작동하는 리소스 파일을 사용합니다.
리소스 파일을 사용해보고 문제를 해결하십시오 ....
열거 형을 변환하는 쉬운 방법은 원하는 각 언어에 대한 값 배열을 만드는 것입니다.
문자열 language1 [] = { "value", "value2"};
문자열 language2 [] = { "기타 값", "기타 값 2"};
문자열 다중 = language2 [enumvalue];
귀하의 enum 값은 귀하의 문자열 배열에 대한 색인이됩니다.
당신은 단계를 수행해야합니다
(1) 준비 리소스 파일을 예를 들어, resource.en-US.resx
/resource.zh-CN.resx
/etc. 각 리소스 파일에는 키와 값이 있으며 키는 파일간에 동일하며 값은 언어마다 다릅니다.
(2)이 같은 자신의 DescriptionAttribute
, 무엇인가를 정의
public class LocalDescriptionAttribute : DescriptionAttribute
{
public string ResourceKey { get; set; }
public string CultureCode { get; set; }
//you can set a default value of CultureCode
//so that you needn't set it everywhere
public override string Description
{
get
{
//core of this attribute
//first find the corresponding resource file by CultureCode
//and then get the description text by the ResourceKey
}
}
}
사용법 :
public enum MyTexts
{
[LocalDescription(CultureCode="zh-CN", ResourceKey="Title")]
Title = 0,
[LocalDescription(ResourceKey="Status")] //default CultureCode
Status = 1
}