[英]Can we make enum multilingual in asp.net with c#
我正在使用多语言网站,并且我使用了一些枚举,现在我们可以根据多语言制作这些枚举?
我的枚举结构是
public enum abc
{
[Description{"multilingual text"}]
StatucActive = 1
}
像这样。 我想在描述中写多语言文字。
你应该按照以下步骤:
(1)准备资源文件,例如resource.en-US.resx
/ resource.zh-CN.resx
/ resource.zh-CN.resx
每个资源文件都有键和值,它们的键在文件之间是相同的,值在语言上是不同的。
(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
}
不,我们不能使用枚举作为多语言,但我有一个替代选项,使用资源文件,它在某些情况下像枚举一样工作。
请尝试资源文件,它将解决您的问题....
翻译枚举的简单方法是为您想要的每种语言创建一个值数组。
String language1 [] = {“value”,“value2”};
String language2 [] = {“other value”,“other value2”};
String multi = language2 [enumvalue];
您的枚举值将成为您的字符串翻译数组的索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.