多语言设置界面逻辑
This commit is contained in:
@@ -53,12 +53,11 @@ namespace NBF.Setting
|
||||
public ISettings Root { get; private set; }
|
||||
|
||||
|
||||
|
||||
public void Initialize(ISettings root)
|
||||
{
|
||||
Root = root;
|
||||
OnInitialize();
|
||||
Load();
|
||||
OnInitialize();
|
||||
Apply();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,21 +3,10 @@ using UnityEngine;
|
||||
|
||||
namespace NBF.Setting
|
||||
{
|
||||
public enum SettingLanguage
|
||||
{
|
||||
English = 10,
|
||||
French = 14,
|
||||
Japanese = 22,
|
||||
Korean = 23,
|
||||
Russian = 30,
|
||||
ChineseSimplified = 40,
|
||||
ChineseTraditional = 41,
|
||||
}
|
||||
|
||||
[Sort(100)]
|
||||
public class LanguageSetting : MultiOption<SettingLanguage>
|
||||
public class LanguageSetting : MultiOption<int>
|
||||
{
|
||||
private SettingLanguage _defaultLanguage;
|
||||
private int _defaultLanguage;
|
||||
public override string Name => "Language";
|
||||
public override string Group => SettingsDef.Group.Language;
|
||||
|
||||
@@ -27,11 +16,38 @@ namespace NBF.Setting
|
||||
|
||||
protected override void OnInitialize()
|
||||
{
|
||||
_defaultLanguage = (SettingLanguage)Application.systemLanguage;
|
||||
var list = LanguageConst.LanguageList;
|
||||
var systemLanguage = Application.systemLanguage;
|
||||
var systemIndex = list.FindIndex(t => t.Language == systemLanguage);
|
||||
if (systemIndex < 0)
|
||||
{
|
||||
systemIndex = 0;
|
||||
}
|
||||
|
||||
_defaultLanguage = (int)Lan.Inst.GetCurrentLanguage();
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
var lang = list[i];
|
||||
AddOption(lang.Name, i);
|
||||
}
|
||||
|
||||
_defaultLanguage = systemIndex;
|
||||
var current = GetValue();
|
||||
if (current < 0 || current >= LanguageConst.LanguageList.Count)
|
||||
{
|
||||
SetValue(_defaultLanguage);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnApply()
|
||||
{
|
||||
var lang = LanguageConst.LanguageList[GetValue()];
|
||||
Lan.Inst.UseLanguage(lang.Language);
|
||||
}
|
||||
|
||||
// public override string GetDisplayString()
|
||||
// {
|
||||
// return ((SystemLanguage)GetValue()).ToString();
|
||||
// }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user