1.重名所有App级模块为Service 2.移除Module中心 移除SingletonManager 3.引入Service Scope Context概念 避免上下文Manager到处引用 4.修复部分bug
760 lines
36 KiB
C#
760 lines
36 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using AlicizaX;
|
|
|
|
namespace AlicizaX.Localization.Runtime
|
|
{
|
|
/// <summary>
|
|
/// 本地化管理器。
|
|
/// </summary>
|
|
[UnityEngine.Scripting.Preserve]
|
|
internal sealed partial class LocalizationService : ServiceBase, ILocalizationService
|
|
{
|
|
private readonly Dictionary<string, string> Dic = new();
|
|
private string _language;
|
|
|
|
public string Language
|
|
{
|
|
get => _language;
|
|
}
|
|
|
|
public void ChangedLanguage(string language)
|
|
{
|
|
if (_language == language) return;
|
|
_language = language;
|
|
LocalizationChangeEvent.Publisher(_language);
|
|
}
|
|
|
|
public void Initialize(string language)
|
|
{
|
|
_language = language;
|
|
Log.Info($"Initializing LocalizationModule :{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 IncreAddLocalizationConfig(GameLocaizationTable table)
|
|
{
|
|
LocalizationLanguage localizationLanguage = table.GetLanguage(_language);
|
|
if (localizationLanguage == null)
|
|
{
|
|
Log.Warning($"Can not Find {_language} Strins ");
|
|
return;
|
|
}
|
|
|
|
foreach (var item in localizationLanguage.Strings)
|
|
{
|
|
Dic.Add(item.Key, item.Value);
|
|
}
|
|
}
|
|
|
|
public void CoverAddLocalizationConfig(GameLocaizationTable table)
|
|
{
|
|
Dic.Clear();
|
|
LocalizationLanguage localizationLanguage = table.GetLanguage(_language);
|
|
if (localizationLanguage == null)
|
|
{
|
|
Log.Warning($"Can not Find {_language} Strins ");
|
|
return;
|
|
}
|
|
|
|
foreach (var item in localizationLanguage.Strings)
|
|
{
|
|
Dic.Add(item.Key, item.Value);
|
|
}
|
|
}
|
|
|
|
protected override void OnInitialize() { }
|
|
|
|
protected override void OnDestroyService()
|
|
{
|
|
Dic.Clear();
|
|
}
|
|
}
|
|
}
|