[英]Can we make enum multilingual in asp.net with c#
I am working on multilingual site and in which i used some enum and now it can be possible that we can make theses enum as per multilingual? 我正在使用多语言网站,并且我使用了一些枚举,现在我们可以根据多语言制作这些枚举?
My enum structure is 我的枚举结构是
public enum abc
{
[Description{"multilingual text"}]
StatucActive = 1
}
like this. 像这样。 i want to write multilingual text in description.
我想在描述中写多语言文字。
You should follow the steps: 你应该按照以下步骤:
(1) prepare the resource files eg resource.en-US.resx
/ resource.zh-CN.resx
/etc. (1)准备资源文件,例如
resource.en-US.resx
/ resource.zh-CN.resx
/ resource.zh-CN.resx
Each resource file has keys and values, their keys are the same between files, values are different in languages. 每个资源文件都有键和值,它们的键在文件之间是相同的,值在语言上是不同的。
(2) define your own DescriptionAttribute
, something like this: (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
}
}
}
The usage: 用法:
public enum MyTexts
{
[LocalDescription(CultureCode="zh-CN", ResourceKey="Title")]
Title = 0,
[LocalDescription(ResourceKey="Status")] //default CultureCode
Status = 1
}
No we can't use enum as a multilingual but i have an alternate option that is use resource file it working like an enum in some situations. 不,我们不能使用枚举作为多语言,但我有一个替代选项,使用资源文件,它在某些情况下像枚举一样工作。
please try resource file and it will solve your problem.... 请尝试资源文件,它将解决您的问题....
An easy way to translate an enumerated would be to create an array of values for each language you want. 翻译枚举的简单方法是为您想要的每种语言创建一个值数组。
String language1[] = {"value","value2"}; String language1 [] = {“value”,“value2”};
String language2[] = {"other value","other value2"}; String language2 [] = {“other value”,“other value2”};
String multi = language2[enumvalue]; String multi = language2 [enumvalue];
Your enum value become the index to your string array of translations. 您的枚举值将成为您的字符串翻译数组的索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.