cool
This commit is contained in:
@@ -23,6 +23,10 @@ namespace Net.BITKit.Localization
|
||||
/// </summary>
|
||||
public event Func<string,string,UniTask> OnLanguageChangeAsync;
|
||||
/// <summary>
|
||||
/// 请求本地化Object
|
||||
/// </summary>
|
||||
public event Func<string,object,UniTask<bool>> OnLocalizeAsync;
|
||||
/// <summary>
|
||||
/// 语言更改完成回调,UI和World执行更新
|
||||
/// </summary>
|
||||
public event Action<string,string> OnLanguageChanged;
|
||||
@@ -34,6 +38,7 @@ namespace Net.BITKit.Localization
|
||||
/// <returns></returns>
|
||||
public string GetLocalizedString(string key,string language=null);
|
||||
public UniTask ChangeLanguageAsync(string newLanguage);
|
||||
public UniTask LocalizeAsync(object obj);
|
||||
public IDictionary<string, IDictionary<string, string>> LocalizedStrings { get; }
|
||||
}
|
||||
|
||||
@@ -45,10 +50,21 @@ namespace Net.BITKit.Localization
|
||||
public string CurrentLanguage { get; private set; }
|
||||
|
||||
public event Func<string, string, UniTask> OnLanguageChangeAsync;
|
||||
public event Func<string, object, UniTask<bool>> OnLocalizeAsync;
|
||||
public event Action<string, string> OnLanguageChanged;
|
||||
|
||||
private readonly ILogger<LocalizationService> _logger;
|
||||
|
||||
public async UniTask LocalizeAsync(object obj)
|
||||
{
|
||||
foreach (var func in OnLocalizeAsync.CastAsFunc())
|
||||
{
|
||||
if (await func.Invoke(CurrentLanguage, obj))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IDictionary<string, IDictionary<string, string>> LocalizedStrings { get; } =
|
||||
new Dictionary<string, IDictionary<string, string>>();
|
||||
|
||||
|
Reference in New Issue
Block a user