738 lines
35 KiB
C#
738 lines
35 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using AlicizaX;
|
|
|
|
namespace AlicizaX.Localization.Runtime
|
|
{
|
|
/// <summary>
|
|
/// 本地化管理器。
|
|
/// </summary>
|
|
[UnityEngine.Scripting.Preserve]
|
|
internal sealed partial class LocalizationModule : ILocalizationModule
|
|
{
|
|
private readonly Dictionary<string, string> Dic = new();
|
|
private Language _language;
|
|
|
|
public Language Language
|
|
{
|
|
get => _language;
|
|
}
|
|
|
|
public void ChangedLanguage(Language language)
|
|
{
|
|
if (_language == language) return;
|
|
_language = language;
|
|
LocalizationChangeEvent.Publisher(_language);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据字典主键获取字典内容字符串。
|
|
/// </summary>
|
|
/// <param name="key">字典主键。</param>
|
|
/// <returns>要获取的字典内容字符串。</returns>
|
|
public string GetString(string key)
|
|
{
|
|
var value = GetRawString(key);
|
|
if (value == null)
|
|
{
|
|
return Utility.Text.Format("<NoKey>{0}", key);
|
|
}
|
|
|
|
return value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据字典主键获取字典内容字符串。
|
|
/// </summary>
|
|
/// <param name="key">字典主键。</param>
|
|
/// <param name="args">参数列表.</param>
|
|
/// <returns>要获取的字典内容字符串。</returns>
|
|
public string GetString(string key, params object[] args)
|
|
{
|
|
var value = GetRawString(key);
|
|
if (value == null)
|
|
{
|
|
return Utility.Text.Format("<NoKey>{0}", key);
|
|
}
|
|
|
|
return Utility.Text.Format(value, args);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据字典主键获取字典内容字符串。
|
|
/// </summary>
|
|
/// <typeparam name="T">字典参数的类型。</typeparam>
|
|
/// <param name="key">字典主键。</param>
|
|
/// <param name="arg">字典参数。</param>
|
|
/// <returns>要获取的字典内容字符串。</returns>
|
|
public string GetString<T>(string key, T arg)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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)
|
|
{
|
|
var 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);
|
|
}
|
|
}
|
|
|
|
public string GetRawString(string key)
|
|
{
|
|
if (Dic.TryGetValue(key, out string value))
|
|
{
|
|
return value;
|
|
}
|
|
|
|
return key;
|
|
}
|
|
|
|
public void AddLocalizationConfig(Dictionary<string, string> config)
|
|
{
|
|
foreach (var item in config)
|
|
{
|
|
Dic.TryAdd(item.Key, item.Value);
|
|
}
|
|
}
|
|
|
|
void IModule.Dispose()
|
|
{
|
|
Dic.Clear();
|
|
}
|
|
|
|
void IModuleAwake.Awake()
|
|
{
|
|
#if UNITY_EDITOR
|
|
_language = (Language)UnityEditor.EditorPrefs.GetInt(LocalizationComponent.PrefsKey, 1);
|
|
#else
|
|
_language = AppBuilderSetting.Instance.Language;
|
|
#endif
|
|
}
|
|
}
|
|
}
|