mirror of
https://github.com/LorisYounger/VPet.git
synced 2024-08-30 18:42:36 +00:00
为字体和主题支持翻译
This commit is contained in:
parent
07196d20e9
commit
86f30dcc7b
@ -1,4 +1,5 @@
|
|||||||
using LinePutScript;
|
using LinePutScript;
|
||||||
|
using LinePutScript.Localization.WPF;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
|
||||||
@ -9,6 +10,22 @@ namespace VPet_Simulator.Windows.Interface
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class Theme
|
public class Theme
|
||||||
{
|
{
|
||||||
|
private string transname = null;
|
||||||
|
/// <summary>
|
||||||
|
/// 名字 (翻译)
|
||||||
|
/// </summary>
|
||||||
|
public string TranslateName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (transname == null)
|
||||||
|
{
|
||||||
|
transname = LocalizeCore.Translate(Name);
|
||||||
|
}
|
||||||
|
return transname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public string Name;
|
public string Name;
|
||||||
public string xName;
|
public string xName;
|
||||||
public string Image;
|
public string Image;
|
||||||
@ -31,7 +48,25 @@ namespace VPet_Simulator.Windows.Interface
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class IFont
|
public class IFont
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 字体名字
|
||||||
|
/// </summary>
|
||||||
public string Name;
|
public string Name;
|
||||||
|
private string transname = null;
|
||||||
|
/// <summary>
|
||||||
|
/// 名字 (翻译)
|
||||||
|
/// </summary>
|
||||||
|
public string TranslateName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (transname == null)
|
||||||
|
{
|
||||||
|
transname = LocalizeCore.Translate(Name);
|
||||||
|
}
|
||||||
|
return transname;
|
||||||
|
}
|
||||||
|
}
|
||||||
public string Path;
|
public string Path;
|
||||||
public IFont(FileInfo path)
|
public IFont(FileInfo path)
|
||||||
{
|
{
|
||||||
|
@ -283,53 +283,53 @@ namespace VPet_Simulator.Windows
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
var path = tmpfi.Name;
|
var path = tmpfi.Name;
|
||||||
if (LoadedDLL.Contains(path))
|
if (LoadedDLL.Contains(path))
|
||||||
continue;
|
|
||||||
LoadedDLL.Add(path);
|
|
||||||
X509Certificate2 certificate;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
certificate = new X509Certificate2(tmpfi.FullName);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
certificate = null;
|
|
||||||
}
|
|
||||||
if (certificate != null)
|
|
||||||
{
|
|
||||||
if (certificate.Subject == "CN=\"Shenzhen Lingban Computer Technology Co., Ltd.\", O=\"Shenzhen Lingban Computer Technology Co., Ltd.\", L=Shenzhen, S=Guangdong Province, C=CN, SERIALNUMBER=91440300MA5H8REU3K, OID.2.5.4.15=Private Organization, OID.1.3.6.1.4.1.311.60.2.1.1=Shenzhen, OID.1.3.6.1.4.1.311.60.2.1.2=Guangdong Province, OID.1.3.6.1.4.1.311.60.2.1.3=CN"
|
|
||||||
&& certificate.Issuer == "CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1, O=\"DigiCert, Inc.\", C=US")
|
|
||||||
{//LBGame 信任的证书
|
|
||||||
if (authtype != "FAIL")
|
|
||||||
authtype = "[认证]".Translate();
|
|
||||||
}
|
|
||||||
else if (!(certificate.Subject.Contains("Microsoft Corporation") &&
|
|
||||||
certificate.Issuer.Contains("Microsoft Corporation")) && !IsPassMOD(mw))
|
|
||||||
{//不是通过模组,不加载
|
|
||||||
SuccessLoad = false;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
LoadedDLL.Add(path);
|
||||||
}
|
X509Certificate2 certificate;
|
||||||
else
|
try
|
||||||
{
|
|
||||||
authtype = "FAIL";
|
|
||||||
if (!IsPassMOD(mw))
|
|
||||||
{//不是通过模组,不加载
|
|
||||||
SuccessLoad = false;
|
|
||||||
Author = modlps.FindSub("author").Info.Split('[').First();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Assembly dll = Assembly.LoadFrom(tmpfi.FullName);
|
|
||||||
var v = dll.GetExportedTypes();
|
|
||||||
foreach (Type exportedType in v)
|
|
||||||
{
|
|
||||||
if (exportedType.BaseType == typeof(MainPlugin))
|
|
||||||
{
|
{
|
||||||
mw.Plugins.Add((MainPlugin)Activator.CreateInstance(exportedType, mw));
|
certificate = new X509Certificate2(tmpfi.FullName);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
certificate = null;
|
||||||
|
}
|
||||||
|
if (certificate != null)
|
||||||
|
{
|
||||||
|
if (certificate.Subject == "CN=\"Shenzhen Lingban Computer Technology Co., Ltd.\", O=\"Shenzhen Lingban Computer Technology Co., Ltd.\", L=Shenzhen, S=Guangdong Province, C=CN, SERIALNUMBER=91440300MA5H8REU3K, OID.2.5.4.15=Private Organization, OID.1.3.6.1.4.1.311.60.2.1.1=Shenzhen, OID.1.3.6.1.4.1.311.60.2.1.2=Guangdong Province, OID.1.3.6.1.4.1.311.60.2.1.3=CN"
|
||||||
|
&& certificate.Issuer == "CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1, O=\"DigiCert, Inc.\", C=US")
|
||||||
|
{//LBGame 信任的证书
|
||||||
|
if (authtype != "FAIL")
|
||||||
|
authtype = "[认证]".Translate();
|
||||||
|
}
|
||||||
|
else if (!(certificate.Issuer.Contains("Microsoft Corporation") || certificate.Issuer.Contains(".NET Foundation Projects"))
|
||||||
|
&& !IsPassMOD(mw))
|
||||||
|
{//不是通过模组,不加载
|
||||||
|
SuccessLoad = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
authtype = "FAIL";
|
||||||
|
if (!IsPassMOD(mw))
|
||||||
|
{//不是通过模组,不加载
|
||||||
|
SuccessLoad = false;
|
||||||
|
Author = modlps.FindSub("author").Info.Split('[').First();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Assembly dll = Assembly.LoadFrom(tmpfi.FullName);
|
||||||
|
var v = dll.GetExportedTypes();
|
||||||
|
foreach (Type exportedType in v)
|
||||||
|
{
|
||||||
|
if (exportedType.BaseType == typeof(MainPlugin))
|
||||||
|
{
|
||||||
|
mw.Plugins.Add((MainPlugin)Activator.CreateInstance(exportedType, mw));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#if !DEBUG5
|
#if !DEBUG5
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -96,7 +96,7 @@ namespace VPet_Simulator.Windows
|
|||||||
/// <param name="themename">主题名称</param>
|
/// <param name="themename">主题名称</param>
|
||||||
public void LoadTheme(string themename)
|
public void LoadTheme(string themename)
|
||||||
{
|
{
|
||||||
Theme ctheme = Themes.Find(x => x.Name == themename || x.xName == themename);
|
Theme ctheme = Themes.Find(x => x.xName == themename);
|
||||||
if (ctheme == null)
|
if (ctheme == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -152,8 +152,9 @@ namespace VPet_Simulator.Windows
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Application.Current.Resources["MainFont"] = cfont.Font;
|
var font = cfont.Font;
|
||||||
Panuon.WPF.UI.GlobalSettings.Setting.FontFamily = cfont.Font;
|
Application.Current.Resources["MainFont"] = font;
|
||||||
|
Panuon.WPF.UI.GlobalSettings.Setting.FontFamily = font;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Food> Foods { get; } = new List<Food>();
|
public List<Food> Foods { get; } = new List<Food>();
|
||||||
|
@ -145,16 +145,16 @@ namespace VPet_Simulator.Windows
|
|||||||
|
|
||||||
foreach (var v in mw.Fonts)
|
foreach (var v in mw.Fonts)
|
||||||
{
|
{
|
||||||
FontBox.Items.Add(v.Name);
|
FontBox.Items.Add(v.TranslateName);
|
||||||
}
|
}
|
||||||
FontBox.SelectedItem = mw.Set.Font;
|
FontBox.SelectedIndex = mw.Fonts.FindIndex(x => x.Name == mw.Set.Font);
|
||||||
|
|
||||||
foreach (var v in mw.Themes)
|
foreach (var v in mw.Themes)
|
||||||
{
|
{
|
||||||
ThemeBox.Items.Add(v.Name);
|
ThemeBox.Items.Add(v.TranslateName);
|
||||||
}
|
}
|
||||||
if (mw.Theme != null)
|
if (mw.Theme != null)
|
||||||
ThemeBox.SelectedItem = mw.Theme.Name;
|
ThemeBox.SelectedItem = mw.Theme.TranslateName;
|
||||||
|
|
||||||
VoiceCatchSilder.Value = mw.Set.MusicCatch;
|
VoiceCatchSilder.Value = mw.Set.MusicCatch;
|
||||||
VoiceMaxSilder.Value = mw.Set.MusicMax;
|
VoiceMaxSilder.Value = mw.Set.MusicMax;
|
||||||
@ -487,8 +487,7 @@ namespace VPet_Simulator.Windows
|
|||||||
{
|
{
|
||||||
if (!AllowChange)
|
if (!AllowChange)
|
||||||
return;
|
return;
|
||||||
string str = (string)(ThemeBox.SelectedItem);
|
mw.LoadTheme(mw.Themes[ThemeBox.SelectedIndex].xName);
|
||||||
mw.LoadTheme(str);
|
|
||||||
mw.Set.Theme = mw.Theme.xName;
|
mw.Set.Theme = mw.Theme.xName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -496,7 +495,7 @@ namespace VPet_Simulator.Windows
|
|||||||
{
|
{
|
||||||
if (!AllowChange)
|
if (!AllowChange)
|
||||||
return;
|
return;
|
||||||
string str = (string)(FontBox.SelectedItem);
|
string str = mw.Fonts[FontBox.SelectedIndex].Name;
|
||||||
mw.LoadFont(str);
|
mw.LoadFont(str);
|
||||||
mw.Set.Font = str;
|
mw.Set.Font = str;
|
||||||
}
|
}
|
||||||
|
@ -68,3 +68,11 @@ theme#Theme:|
|
|||||||
详细内容信息#Details:|
|
详细内容信息#Details:|
|
||||||
详细描述\reg:报错详细信息#Details\reg:Error details:|
|
详细描述\reg:报错详细信息#Details\reg:Error details:|
|
||||||
是否上传当前游戏存档#Do you want to upload the current game archive?:|
|
是否上传当前游戏存档#Do you want to upload the current game archive?:|
|
||||||
|
Alibaba PuHuiTi Regular#Alibaba PuHuiTi Regular:|
|
||||||
|
HarmonyOS Sans#HarmonyOS Sans:|
|
||||||
|
MiSans Regular#MiSans Regular:|
|
||||||
|
OPPOSans R#OPPOSans R:|
|
||||||
|
凤凰点阵体 12px#Phoenix 12px:|
|
||||||
|
得意黑#DeYi Black:|
|
||||||
|
原版默认#Original Default:|
|
||||||
|
混色紫#Mixed Purple:|
|
||||||
|
@ -68,3 +68,11 @@ theme#主题:|
|
|||||||
详细内容信息#详细内容信息:|
|
详细内容信息#详细内容信息:|
|
||||||
详细描述\reg:报错详细信息#详细描述\reg:报错详细信息:|
|
详细描述\reg:报错详细信息#详细描述\reg:报错详细信息:|
|
||||||
是否上传当前游戏存档#是否上传当前游戏存档:|
|
是否上传当前游戏存档#是否上传当前游戏存档:|
|
||||||
|
Alibaba PuHuiTi Regular#Alibaba PuHuiTi Regular:|
|
||||||
|
HarmonyOS Sans#HarmonyOS Sans:|
|
||||||
|
MiSans Regular#MiSans Regular:|
|
||||||
|
OPPOSans R#OPPOSans R:|
|
||||||
|
凤凰点阵体 12px#凤凰点阵体 12px:|
|
||||||
|
得意黑#得意黑:|
|
||||||
|
原版默认#原版默认:|
|
||||||
|
混色紫#混色紫:|
|
||||||
|
@ -68,3 +68,11 @@ theme#主題:|
|
|||||||
详细内容信息#詳細內容信息:|
|
详细内容信息#詳細內容信息:|
|
||||||
详细描述\reg:报错详细信息#詳細描述\reg:報錯詳細信息:|
|
详细描述\reg:报错详细信息#詳細描述\reg:報錯詳細信息:|
|
||||||
是否上传当前游戏存档#是否上傳目前遊戲存檔:|
|
是否上传当前游戏存档#是否上傳目前遊戲存檔:|
|
||||||
|
Alibaba PuHuiTi Regular#Alibaba PuHuiTi Regular:|
|
||||||
|
HarmonyOS Sans#HarmonyOS Sans:|
|
||||||
|
MiSans Regular#MiSans Regular:|
|
||||||
|
OPPOSans R#OPPOSans R:|
|
||||||
|
凤凰点阵体 12px#鳳凰點陣體 12px:|
|
||||||
|
得意黑#得意黑:|
|
||||||
|
原版默认#原版默認:|
|
||||||
|
混色紫#混色紫:|
|
Loading…
Reference in New Issue
Block a user