[+] LocalizationModule

[+] LocalizationModule
This commit is contained in:
ALEXTANG
2023-04-19 17:09:07 +08:00
parent 6192b99bb1
commit c4a6efc1ca
17 changed files with 2294 additions and 5 deletions

View File

@@ -1,6 +1,4 @@
using System;
using TEngine;
using TEngine.Localization;
using TEngine;
using YooAsset;
using ProcedureOwner = TEngine.IFsm<TEngine.IProcedureManager>;

View File

@@ -0,0 +1,56 @@
using UnityEditor;
namespace TEngine.Editor.Inspector
{
[CustomEditor(typeof(LocalizationModule))]
internal sealed class LocalizationModuleInspector : GameFrameworkInspector
{
private HelperInfo<LocalizationHelperBase> m_LocalizationHelperInfo = new HelperInfo<LocalizationHelperBase>("Localization");
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
serializedObject.Update();
LocalizationModule t = (LocalizationModule)target;
EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
{
m_LocalizationHelperInfo.Draw();
}
EditorGUI.EndDisabledGroup();
if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject))
{
EditorGUILayout.LabelField("Language", t.Language.ToString());
EditorGUILayout.LabelField("System Language", t.SystemLanguage.ToString());
EditorGUILayout.LabelField("Dictionary Count", t.DictionaryCount.ToString());
}
serializedObject.ApplyModifiedProperties();
Repaint();
}
protected override void OnCompileComplete()
{
base.OnCompileComplete();
RefreshTypeNames();
}
private void OnEnable()
{
m_LocalizationHelperInfo.Init(serializedObject);
RefreshTypeNames();
}
private void RefreshTypeNames()
{
m_LocalizationHelperInfo.Refresh();
serializedObject.ApplyModifiedProperties();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1886d664f9344745b7bca0786434076d
timeCreated: 1681895173

View File

@@ -0,0 +1,197 @@
using System;
using System.IO;
using System.Text;
using UnityEngine;
namespace TEngine
{
/// <summary>
/// 默认本地化辅助器。
/// </summary>
public class DefaultLocalizationHelper : LocalizationHelperBase
{
private static readonly string[] ColumnSplitSeparator = new string[] { "\t" };
private const int ColumnCount = 4;
private ResourceModule m_ResourceModule = null;
/// <summary>
/// 获取系统语言。
/// </summary>
public override Language SystemLanguage
{
get
{
switch (Application.systemLanguage)
{
case UnityEngine.SystemLanguage.Afrikaans: return Language.Afrikaans;
case UnityEngine.SystemLanguage.Arabic: return Language.Arabic;
case UnityEngine.SystemLanguage.Basque: return Language.Basque;
case UnityEngine.SystemLanguage.Belarusian: return Language.Belarusian;
case UnityEngine.SystemLanguage.Bulgarian: return Language.Bulgarian;
case UnityEngine.SystemLanguage.Catalan: return Language.Catalan;
case UnityEngine.SystemLanguage.Chinese: return Language.ChineseSimplified;
case UnityEngine.SystemLanguage.ChineseSimplified: return Language.ChineseSimplified;
case UnityEngine.SystemLanguage.ChineseTraditional: return Language.ChineseTraditional;
case UnityEngine.SystemLanguage.Czech: return Language.Czech;
case UnityEngine.SystemLanguage.Danish: return Language.Danish;
case UnityEngine.SystemLanguage.Dutch: return Language.Dutch;
case UnityEngine.SystemLanguage.English: return Language.English;
case UnityEngine.SystemLanguage.Estonian: return Language.Estonian;
case UnityEngine.SystemLanguage.Faroese: return Language.Faroese;
case UnityEngine.SystemLanguage.Finnish: return Language.Finnish;
case UnityEngine.SystemLanguage.French: return Language.French;
case UnityEngine.SystemLanguage.German: return Language.German;
case UnityEngine.SystemLanguage.Greek: return Language.Greek;
case UnityEngine.SystemLanguage.Hebrew: return Language.Hebrew;
case UnityEngine.SystemLanguage.Hungarian: return Language.Hungarian;
case UnityEngine.SystemLanguage.Icelandic: return Language.Icelandic;
case UnityEngine.SystemLanguage.Indonesian: return Language.Indonesian;
case UnityEngine.SystemLanguage.Italian: return Language.Italian;
case UnityEngine.SystemLanguage.Japanese: return Language.Japanese;
case UnityEngine.SystemLanguage.Korean: return Language.Korean;
case UnityEngine.SystemLanguage.Latvian: return Language.Latvian;
case UnityEngine.SystemLanguage.Lithuanian: return Language.Lithuanian;
case UnityEngine.SystemLanguage.Norwegian: return Language.Norwegian;
case UnityEngine.SystemLanguage.Polish: return Language.Polish;
case UnityEngine.SystemLanguage.Portuguese: return Language.PortuguesePortugal;
case UnityEngine.SystemLanguage.Romanian: return Language.Romanian;
case UnityEngine.SystemLanguage.Russian: return Language.Russian;
case UnityEngine.SystemLanguage.SerboCroatian: return Language.SerboCroatian;
case UnityEngine.SystemLanguage.Slovak: return Language.Slovak;
case UnityEngine.SystemLanguage.Slovenian: return Language.Slovenian;
case UnityEngine.SystemLanguage.Spanish: return Language.Spanish;
case UnityEngine.SystemLanguage.Swedish: return Language.Swedish;
case UnityEngine.SystemLanguage.Thai: return Language.Thai;
case UnityEngine.SystemLanguage.Turkish: return Language.Turkish;
case UnityEngine.SystemLanguage.Ukrainian: return Language.Ukrainian;
case UnityEngine.SystemLanguage.Unknown: return Language.Unspecified;
case UnityEngine.SystemLanguage.Vietnamese: return Language.Vietnamese;
default: return Language.Unspecified;
}
}
}
/// <summary>
/// 读取字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryAssetName">字典资源名称。</param>
/// <param name="dictionaryAsset">字典资源。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否读取字典成功。</returns>
public override bool ReadData(ILocalizationManager localizationManager, string dictionaryAssetName, object dictionaryAsset, object userData)
{
TextAsset dictionaryTextAsset = dictionaryAsset as TextAsset;
if (dictionaryTextAsset != null)
{
return true;
}
Log.Warning("Dictionary asset '{0}' is invalid.", dictionaryAssetName);
return false;
}
/// <summary>
/// 解析字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryString">要解析的字典字符串。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否解析字典成功。</returns>
public override bool ParseData(ILocalizationManager localizationManager, string dictionaryString, object userData)
{
try
{
int position = 0;
while (dictionaryString.ReadLine(ref position) is { } dictionaryLineString)
{
if (dictionaryLineString[0] == '#')
{
continue;
}
string[] splitLine = dictionaryLineString.Split(ColumnSplitSeparator, StringSplitOptions.None);
if (splitLine.Length != ColumnCount)
{
Log.Warning("Can not parse dictionary line string '{0}' which column count is invalid.", dictionaryLineString);
return false;
}
string dictionaryKey = splitLine[1];
string dictionaryValue = splitLine[3];
if (!localizationManager.AddRawString(dictionaryKey, dictionaryValue))
{
Log.Warning("Can not add raw string with dictionary key '{0}' which may be invalid or duplicate.", dictionaryKey);
return false;
}
}
return true;
}
catch (Exception exception)
{
Log.Warning("Can not parse dictionary string with exception '{0}'.", exception);
return false;
}
}
/// <summary>
/// 解析字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryBytes">要解析的字典二进制流。</param>
/// <param name="startIndex">字典二进制流的起始位置。</param>
/// <param name="length">字典二进制流的长度。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否解析字典成功。</returns>
public override bool ParseData(ILocalizationManager localizationManager, byte[] dictionaryBytes, int startIndex, int length, object userData)
{
try
{
using (MemoryStream memoryStream = new MemoryStream(dictionaryBytes, startIndex, length, false))
{
using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
{
while (binaryReader.BaseStream.Position < binaryReader.BaseStream.Length)
{
string dictionaryKey = binaryReader.ReadString();
string dictionaryValue = binaryReader.ReadString();
if (!localizationManager.AddRawString(dictionaryKey, dictionaryValue))
{
Log.Warning("Can not add raw string with dictionary key '{0}' which may be invalid or duplicate.", dictionaryKey);
return false;
}
}
}
}
return true;
}
catch (Exception exception)
{
Log.Warning("Can not parse dictionary bytes with exception '{0}'.", exception);
return false;
}
}
/// <summary>
/// 释放字典资源。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryAsset">要释放的字典资源。</param>
public override void ReleaseDataAsset(ILocalizationManager localizationManager, object dictionaryAsset)
{
}
private void Start()
{
m_ResourceModule = GameEntry.GetModule<ResourceModule>();
if (m_ResourceModule == null)
{
Log.Fatal("Resource component is invalid.");
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b69c074d153b41c99c25df7314599299
timeCreated: 1681894549

View File

@@ -0,0 +1,16 @@
namespace TEngine
{
/// <summary>
/// 本地化辅助器接口。
/// </summary>
public interface ILocalizationHelper
{
/// <summary>
/// 获取系统语言。
/// </summary>
Language SystemLanguage
{
get;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: df6453894ad04aa4a525dc3d44506780
timeCreated: 1681892003

View File

@@ -0,0 +1,477 @@
namespace TEngine
{
/// <summary>
/// 本地化管理器接口。
/// </summary>
public interface ILocalizationManager
{
/// <summary>
/// 获取或设置本地化语言。
/// </summary>
Language Language
{
get;
set;
}
/// <summary>
/// 获取系统语言。
/// </summary>
Language SystemLanguage
{
get;
}
/// <summary>
/// 获取字典数量。
/// </summary>
int DictionaryCount
{
get;
}
/// <summary>
/// 设置资源管理器。
/// </summary>
/// <param name="resourceManager">资源管理器。</param>
void SetResourceManager(IResourceManager resourceManager);
/// <summary>
/// 设置本地化辅助器。
/// </summary>
/// <param name="localizationHelper">本地化辅助器。</param>
void SetLocalizationHelper(ILocalizationHelper localizationHelper);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString(string key);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T">字典参数的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg">字典参数。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T>(string key, T arg);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2>(string key, T1 arg1, T2 arg2);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3>(string key, T1 arg1, T2 arg2, T3 arg3);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <typeparam name="T16">字典参数 16 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <param name="arg16">字典参数 16。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16);
/// <summary>
/// 是否存在字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否存在字典。</returns>
bool HasRawString(string key);
/// <summary>
/// 根据字典主键获取字典值。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>字典值。</returns>
string GetRawString(string key);
/// <summary>
/// 根据字典值取主键。
/// </summary>
/// <param name="value">字典值</param>
/// <returns></returns>
string GetKey(string value);
/// <summary>
/// 增加字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <param name="value">字典内容。</param>
/// <returns>是否增加字典成功。</returns>
bool AddRawString(string key, string value);
/// <summary>
/// 移除字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否移除字典成功。</returns>
bool RemoveRawString(string key);
/// <summary>
/// 清空所有字典。
/// </summary>
void RemoveAllRawStrings();
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 632a6e2e7fd74b3bb4db2293092df904
timeCreated: 1681892003

View File

@@ -1,4 +1,4 @@
namespace TEngine.Localization
namespace TEngine
{
/// <summary>
/// 本地化语言。

View File

@@ -0,0 +1,52 @@
using UnityEngine;
namespace TEngine
{
/// <summary>
/// 本地化辅助器基类。
/// </summary>
public abstract class LocalizationHelperBase : MonoBehaviour, ILocalizationHelper
{
/// <summary>
/// 获取系统语言。
/// </summary>
public abstract Language SystemLanguage { get; }
/// <summary>
/// 读取字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryAssetName">字典资源名称。</param>
/// <param name="dictionaryAsset">字典资源。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否读取字典成功。</returns>
public abstract bool ReadData(ILocalizationManager localizationManager, string dictionaryAssetName, object dictionaryAsset, object userData);
/// <summary>
/// 解析字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryString">要解析的字典字符串。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否解析字典成功。</returns>
public abstract bool ParseData(ILocalizationManager localizationManager, string dictionaryString, object userData);
/// <summary>
/// 解析字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryBytes">要解析的字典二进制流。</param>
/// <param name="startIndex">字典二进制流的起始位置。</param>
/// <param name="length">字典二进制流的长度。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否解析字典成功。</returns>
public abstract bool ParseData(ILocalizationManager localizationManager, byte[] dictionaryBytes, int startIndex, int length, object userData);
/// <summary>
/// 释放字典资源。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryAsset">要释放的字典资源。</param>
public abstract void ReleaseDataAsset(ILocalizationManager localizationManager, object dictionaryAsset);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5421e747a0504b168542c877c61c24b8
timeCreated: 1681894135

View File

@@ -0,0 +1,875 @@
using System;
using System.Collections.Generic;
namespace TEngine
{
/// <summary>
/// 本地化管理器。
/// </summary>
internal sealed partial class LocalizationManager : GameFrameworkModule, ILocalizationManager
{
private readonly Dictionary<string, string> m_Dictionary;
private IResourceManager m_ResourceManager;
private ILocalizationHelper m_LocalizationHelper;
private Language m_Language;
/// <summary>
/// 初始化本地化管理器的新实例。
/// </summary>
public LocalizationManager()
{
m_Dictionary = new Dictionary<string, string>(StringComparer.Ordinal);
m_LocalizationHelper = null;
m_Language = Language.Unspecified;
}
/// <summary>
/// 获取或设置本地化语言。
/// </summary>
public Language Language
{
get
{
return m_Language;
}
set
{
if (value == Language.Unspecified)
{
throw new GameFrameworkException("Language is invalid.");
}
m_Language = value;
}
}
/// <summary>
/// 获取系统语言。
/// </summary>
public Language SystemLanguage
{
get
{
if (m_LocalizationHelper == null)
{
throw new GameFrameworkException("You must set localization helper first.");
}
return m_LocalizationHelper.SystemLanguage;
}
}
/// <summary>
/// 获取字典数量。
/// </summary>
public int DictionaryCount
{
get
{
return m_Dictionary.Count;
}
}
/// <summary>
/// 本地化管理器轮询。
/// </summary>
/// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param>
/// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param>
internal override void Update(float elapseSeconds, float realElapseSeconds)
{
}
/// <summary>
/// 关闭并清理本地化管理器。
/// </summary>
internal override void Shutdown()
{
}
/// <summary>
/// 设置资源管理器。
/// </summary>
/// <param name="resourceManager">资源管理器。</param>
public void SetResourceManager(IResourceManager resourceManager)
{
m_ResourceManager = resourceManager;
}
/// <summary>
/// 设置本地化辅助器。
/// </summary>
/// <param name="localizationHelper">本地化辅助器。</param>
public void SetLocalizationHelper(ILocalizationHelper localizationHelper)
{
if (localizationHelper == null)
{
throw new GameFrameworkException("Localization helper is invalid.");
}
m_LocalizationHelper = localizationHelper;
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString(string key)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
return value;
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T">字典参数的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg">字典参数。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T>(string key, T arg)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3}", key, value, arg, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2>(string key, T1 arg1, T2 arg2)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4}", key, value, arg1, arg2, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3>(string key, T1 arg1, T2 arg2, T3 arg3)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5}", key, value, arg1, arg2, arg3, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6}", key, value, arg1, arg2, arg3, arg4, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7}", key, value, arg1, arg2, arg3, arg4, arg5, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
}
catch (Exception exception)
{
string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
return Utility.Text.Format("<Error>{0},{1},{2},{3}", key, value, args, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
}
catch (Exception exception)
{
string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
return Utility.Text.Format("<Error>{0},{1},{2},{3}", key, value, args, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <typeparam name="T16">字典参数 16 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <param name="arg16">字典参数 16。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
}
catch (Exception exception)
{
string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
return Utility.Text.Format("<Error>{0},{1},{2},{3}", key, value, args, exception);
}
}
/// <summary>
/// 根据字典值取主键。
/// </summary>
/// <param name="value">字典值</param>
/// <returns></returns>
public string GetKey(string value)
{
if (string.IsNullOrEmpty(value))
{
return string.Empty;
}
foreach (var item in m_Dictionary)
{
if (item.Value == value)
{
return item.Key;
}
}
return string.Empty;
}
/// <summary>
/// 是否存在字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否存在字典。</returns>
public bool HasRawString(string key)
{
if (string.IsNullOrEmpty(key))
{
throw new GameFrameworkException("Key is invalid.");
}
return m_Dictionary.ContainsKey(key);
}
/// <summary>
/// 根据字典主键获取字典值。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>字典值。</returns>
public string GetRawString(string key)
{
if (string.IsNullOrEmpty(key))
{
throw new GameFrameworkException("Key is invalid.");
}
string value = null;
if (m_Dictionary.TryGetValue(key, out value))
{
return value;
}
return null;
}
/// <summary>
/// 增加字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <param name="value">字典内容。</param>
/// <returns>是否增加字典成功。</returns>
public bool AddRawString(string key, string value)
{
if (string.IsNullOrEmpty(key))
{
throw new GameFrameworkException("Key is invalid.");
}
if (m_Dictionary.ContainsKey(key))
{
return false;
}
m_Dictionary.Add(key, value ?? string.Empty);
return true;
}
/// <summary>
/// 移除字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否移除字典成功。</returns>
public bool RemoveRawString(string key)
{
if (string.IsNullOrEmpty(key))
{
throw new GameFrameworkException("Key is invalid.");
}
return m_Dictionary.Remove(key);
}
/// <summary>
/// 清空所有字典。
/// </summary>
public void RemoveAllRawStrings()
{
m_Dictionary.Clear();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 777d2d6055cc4068b2256ffa91dbefe1
timeCreated: 1681892090

View File

@@ -0,0 +1,598 @@
using UnityEngine;
using YooAsset;
namespace TEngine
{
/// <summary>
/// 本地化组件。
/// </summary>
[DisallowMultipleComponent]
public sealed class LocalizationModule : GameFrameworkModuleBase
{
private const int DefaultPriority = 0;
private ILocalizationManager m_LocalizationManager = null;
[SerializeField]
private string m_LocalizationHelperTypeName = "TEngine.DefaultLocalizationHelper";
[SerializeField]
private LocalizationHelperBase m_CustomLocalizationHelper = null;
/// <summary>
/// 获取或设置本地化语言。
/// </summary>
public Language Language
{
get
{
return m_LocalizationManager.Language;
}
set
{
m_LocalizationManager.Language = value;
}
}
/// <summary>
/// 获取系统语言。
/// </summary>
public Language SystemLanguage
{
get
{
return m_LocalizationManager.SystemLanguage;
}
}
/// <summary>
/// 获取字典数量。
/// </summary>
public int DictionaryCount
{
get
{
return m_LocalizationManager.DictionaryCount;
}
}
/// <summary>
/// 游戏框架组件初始化。
/// </summary>
protected override void Awake()
{
base.Awake();
m_LocalizationManager = GameFrameworkEntry.GetModule<ILocalizationManager>();
if (m_LocalizationManager == null)
{
Log.Fatal("Localization manager is invalid.");
}
}
private void Start()
{
RootModule rootModule = GameEntry.GetModule<RootModule>();
if (rootModule == null)
{
Log.Fatal("Base component is invalid.");
return;
}
ResourceModule resourceModule = GameEntry.GetModule<ResourceModule>();
if (resourceModule == null)
{
Log.Fatal("Base component is invalid.");
return;
}
m_LocalizationManager.SetResourceManager(GameFrameworkEntry.GetModule<IResourceManager>());
LocalizationHelperBase localizationHelper = Helper.CreateHelper(m_LocalizationHelperTypeName, m_CustomLocalizationHelper);
if (localizationHelper == null)
{
Log.Error("Can not create localization helper.");
return;
}
localizationHelper.name = "Localization Helper";
Transform transform = localizationHelper.transform;
transform.SetParent(this.transform);
transform.localScale = Vector3.one;
m_LocalizationManager.SetLocalizationHelper(localizationHelper);
m_LocalizationManager.Language = resourceModule.playMode == EPlayMode.EditorSimulateMode && rootModule.EditorLanguage != Language.Unspecified
? rootModule.EditorLanguage : m_LocalizationManager.SystemLanguage;
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString(string key)
{
return m_LocalizationManager.GetString(key);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T">字典参数的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg">字典参数。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T>(string key, T arg)
{
return m_LocalizationManager.GetString(key, arg);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2>(string key, T1 arg1, T2 arg2)
{
return m_LocalizationManager.GetString(key, arg1, arg2);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3>(string key, T1 arg1, T2 arg2, T3 arg3)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <typeparam name="T16">字典参数 16 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <param name="arg16">字典参数 16。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
}
/// <summary>
/// 是否存在字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否存在字典。</returns>
public bool HasRawString(string key)
{
return m_LocalizationManager.HasRawString(key);
}
/// <summary>
/// 根据字典主键获取字典值。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>字典值。</returns>
public string GetRawString(string key)
{
return m_LocalizationManager.GetRawString(key);
}
/// <summary>
/// 根据字典值取主键。
/// </summary>
/// <param name="value">字典值</param>
/// <returns></returns>
public string GetKey(string value)
{
return m_LocalizationManager.GetKey(value);
}
/// <summary>
/// 移除字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否移除字典成功。</returns>
public bool RemoveRawString(string key)
{
return m_LocalizationManager.RemoveRawString(key);
}
/// <summary>
/// 清空所有字典。
/// </summary>
public void RemoveAllRawStrings()
{
m_LocalizationManager.RemoveAllRawStrings();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1a3ccdd8df93488782ad0f5f240bece9
timeCreated: 1681893590

View File

@@ -1,6 +1,5 @@
using System;
using UnityEngine;
using TEngine.Localization;
namespace TEngine
{