86 lines
2.5 KiB
C#
86 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Serialization;
|
|
|
|
namespace AlicizaX.Localization.Editor
|
|
{
|
|
[AlicizaX.Editor.Setting.FilePath("ProjectSettings/LocalizationConfiguration.asset")]
|
|
public class LocalizationConfiguration : AlicizaX.Editor.Setting.ScriptableSingleton<LocalizationConfiguration>
|
|
{
|
|
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}";
|
|
|
|
[SerializeField] internal string generateScriptCodeFirstConfig;
|
|
[SerializeField] internal string generateLanguageTypesNamespace = string.Empty;
|
|
[SerializeField] internal string generateLanguageTypesTemplate = DefaultLanguageTypesTemplate;
|
|
|
|
[SerializeField] private List<string> LanguageTypes = new List<string>()
|
|
{
|
|
/// <summary>
|
|
/// 简体中文。
|
|
/// </summary>
|
|
"ChineseSimplified",
|
|
|
|
/// <summary>
|
|
/// 英语。
|
|
/// </summary>
|
|
"English",
|
|
|
|
/// <summary>
|
|
/// 日语。
|
|
/// </summary>
|
|
"Japanese",
|
|
|
|
/// <summary>
|
|
/// 俄语。
|
|
/// </summary>
|
|
"Russian",
|
|
};
|
|
|
|
[SerializeField] private string _genLangaugeTypePath = "Assets/LanguageTypes.cs";
|
|
|
|
public IReadOnlyList<string> LanguageTypeNames => LanguageTypes;
|
|
public string GenerateScriptCodeFirstConfig => generateScriptCodeFirstConfig;
|
|
public string GenerateLanguageTypesNamespace => generateLanguageTypesNamespace;
|
|
public string GenerateLanguageTypesTemplate => string.IsNullOrEmpty(generateLanguageTypesTemplate) ? DefaultLanguageTypesTemplate : generateLanguageTypesTemplate;
|
|
|
|
public static string DefaultTemplate => DefaultLanguageTypesTemplate;
|
|
}
|
|
}
|