2011-08-04 2 views
4

의 enum 다국어를 만들 수 있습니까? 저는 다국어 사이트에서 작업 중이며 일부 열거 형을 사용하고 있으며 이제는 다국어로 열거 형 열거 형을 만들 수 있습니다.우리는 asp.net에서 C#

내 열거 구조는 다음과 같은

public enum abc 
{ 
    [Description{"multilingual text"}] 
    StatucActive = 1 
} 

입니다. 설명에 다국어 텍스트를 쓰고 싶습니다.

답변

1

이 아니 우리가 다국어로 열거을 사용할 수 없습니다하지만 난 다른 옵션이 그 어떤 상황에서는 열거 형처럼 작동하는 리소스 파일을 사용합니다.

리소스 파일을 사용해보고 문제를 해결하십시오 ....

0

열거 형을 변환하는 쉬운 방법은 원하는 각 언어에 대한 값 배열을 만드는 것입니다.

문자열 language1 [] = { "value", "value2"};

문자열 language2 [] = { "기타 값", "기타 값 2"};

문자열 다중 = language2 [enumvalue];

귀하의 enum 값은 귀하의 문자열 배열에 대한 색인이됩니다.

5

당신은 단계를 수행해야합니다

(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 
}