com.alicizax.unity.framework/Editor/Localization/LocalizationConfiguration.cs

86 lines
2.5 KiB
C#
Raw Normal View History

2025-09-23 19:27:17 +08:00
using System;
2025-09-23 12:04:39 +08:00
using System.Collections.Generic;
using UnityEngine;
2025-09-23 19:27:17 +08:00
using UnityEngine.Serialization;
2025-09-23 12:04:39 +08:00
namespace AlicizaX.Localization.Editor
{
[AlicizaX.Editor.Setting.FilePath("ProjectSettings/LocalizationConfiguration.asset")]
2025-09-23 19:27:17 +08:00
public class LocalizationConfiguration : AlicizaX.Editor.Setting.ScriptableSingleton<LocalizationConfiguration>
2025-09-23 12:04:39 +08:00
{
2026-04-17 13:01:42 +08:00
private const string DefaultLanguageTypesTemplate =
@"using System.Collections.Generic;
{NAMESPACE_START}/// <summary>
/// AutoGenerate
/// </summary>
public static class LanguageTypes
{
{LANGUAGE_CONSTANTS}
public static readonly IReadOnlyList<string> Languages = new List<string>
{
{LANGUAGE_LIST}
};
public static string IndexToString(int index)
{
if (index < 0 || index >= Languages.Count) return ""Unknown"";
return Languages[index];
}
public static int StringToIndex(string s)
{
int index = -1;
for (int i = 0; i < Languages.Count; i++)
{
if (Languages[i] == s)
{
index = i;
break;
}
}
return index;
}
}
{NAMESPACE_END}";
2025-09-25 11:11:19 +08:00
[SerializeField] internal string generateScriptCodeFirstConfig;
2026-04-17 13:01:42 +08:00
[SerializeField] internal string generateLanguageTypesNamespace = string.Empty;
[SerializeField] internal string generateLanguageTypesTemplate = DefaultLanguageTypesTemplate;
2025-09-25 11:11:19 +08:00
2025-09-23 12:04:39 +08:00
[SerializeField] private List<string> LanguageTypes = new List<string>()
{
/// <summary>
/// 简体中文。
/// </summary>
"ChineseSimplified",
/// <summary>
/// 英语。
/// </summary>
"English",
/// <summary>
/// 日语。
/// </summary>
"Japanese",
/// <summary>
/// 俄语。
/// </summary>
"Russian",
};
2025-09-23 19:27:17 +08:00
[SerializeField] private string _genLangaugeTypePath = "Assets/LanguageTypes.cs";
2025-09-23 12:04:39 +08:00
public IReadOnlyList<string> LanguageTypeNames => LanguageTypes;
2025-09-25 11:11:19 +08:00
public string GenerateScriptCodeFirstConfig => generateScriptCodeFirstConfig;
2026-04-17 13:01:42 +08:00
public string GenerateLanguageTypesNamespace => generateLanguageTypesNamespace;
public string GenerateLanguageTypesTemplate => string.IsNullOrEmpty(generateLanguageTypesTemplate) ? DefaultLanguageTypesTemplate : generateLanguageTypesTemplate;
public static string DefaultTemplate => DefaultLanguageTypesTemplate;
2025-09-23 12:04:39 +08:00
}
}