とasp.netに列挙多言語を作ることができ、今では私たちは、多言語ごとに論文列挙型を作ることができるという可能性になることができますか?は、我々は、C#
私の列挙型構造は、このような
public enum abc
{
[Description{"multilingual text"}]
StatucActive = 1
}
です。私は説明に多言語のテキストを書いています。
とasp.netに列挙多言語を作ることができ、今では私たちは、多言語ごとに論文列挙型を作ることができるという可能性になることができますか?は、我々は、C#
私の列挙型構造は、このような
public enum abc
{
[Description{"multilingual text"}]
StatucActive = 1
}
です。私は説明に多言語のテキストを書いています。
はありません、我々は多言語として列挙型を使用することはできませんが、私は別のオプションを持っていますいくつかの状況ではenumのように動作するリソースファイルを使用しています。
リソースファイルを試してください。問題が解決します。
列挙を変換する簡単な方法は、あなたが言語ごとに値の配列を作成することです。
文字列language1 [] = {"value"、 "value2"};
文字列language2 [] = {"その他の値"、 "その他の値2"};
文字列multi = 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
}