You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.4 KiB
72 lines
2.4 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.Linq; |
|
using System.Reflection; |
|
using System.Text; |
|
using System.Xml.Serialization; |
|
|
|
namespace ReZero.SuperAPI |
|
{ |
|
internal class TextHandler |
|
{ |
|
/// <summary> |
|
/// Get the common text based on the language. |
|
/// </summary> |
|
/// <param name="cn">The Chinese text.</param> |
|
/// <param name="en">The English text.</param> |
|
/// <returns>The common text.</returns> |
|
public static string GetCommonText(string cn, string en) |
|
{ |
|
var language = App.Language; |
|
switch (language) |
|
{ |
|
case Language.CN: |
|
return cn; |
|
default: |
|
return en; |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// Get the interface category text based on the value. |
|
/// </summary> |
|
/// <param name="value">The value.</param> |
|
/// <returns>The interface category text.</returns> |
|
public static string? GetInterfaceCategoryText(object value) |
|
{ |
|
return GetText(typeof(InterfaceCategoryInitializerProvider), value); |
|
} |
|
|
|
/// <summary> |
|
/// Get the interface list text based on the value. |
|
/// </summary> |
|
/// <param name="value">The value.</param> |
|
/// <returns>The interface list text.</returns> |
|
public static string? GetInterfaceListText(object value) |
|
{ |
|
return GetText(typeof(InterfaceListInitializerProvider), value); |
|
} |
|
|
|
/// <summary> |
|
/// Get the text based on the type and value. |
|
/// </summary> |
|
/// <param name="type">The type.</param> |
|
/// <param name="value">The value.</param> |
|
/// <returns>The text.</returns> |
|
public static string? GetText(Type type, object value) |
|
{ |
|
var language = App.Language; |
|
var fieldInfo = type.GetFields() |
|
.Where(it => it.GetCustomAttribute<ChineseTextAttribute>() != null) |
|
.Where(it => it.GetValue(null)?.ToString() == value?.ToString()) |
|
.FirstOrDefault(); |
|
switch (language) |
|
{ |
|
case Language.CN: |
|
return fieldInfo?.GetCustomAttribute<ChineseTextAttribute>()?.Text; |
|
default: |
|
return fieldInfo?.GetCustomAttribute<EnglishTextAttribute>()?.Text; |
|
} |
|
} |
|
} |
|
}
|
|
|