Files
Fishing2/Assets/Scripts/NBC/Language/Runtime/Lan.cs

108 lines
2.6 KiB
C#

using System.Collections.Generic;
using FairyGUI;
namespace NBC
{
public static class Lan
{
private static LanguageManager _inst;
public static LanguageManager Inst
{
get
{
if (_inst == null)
{
_inst = new LanguageManager();
}
return _inst;
}
}
public static ILanguage Text => Inst.GetLanguageModule((int)LanguageModuleType.Text);
public static string Get(string key)
{
return Text.Get(key);
}
public static string Get(string key, params object[] args)
{
var format = string.Format(Text.Get(key), args);
return format;
}
public static void SetLanguage(this GObject child, string key, params object[] args)
{
if (Text == null) return;
child.lang = key;
var value = Text.Get(key);
if (args != null && args.Length > 0)
{
value = string.Format(value, args);
child.langArgs = args;
}
else
{
child.langArgs = null;
}
if (child is GRichTextField richTextField)
{
richTextField.text = value;
}
else if (child is GButton button)
{
button.title = value;
}
else if (child is GLabel label)
{
label.title = value;
}
else if (child is GTextField gtextField)
{
gtextField.text = value;
}
}
public static void SetLanguageImage(this GObject obj, string key)
{
}
// public static string Get(string key)
// {
// if(Text == null) return key;
// return Text.Get(key);
// }
//
// public static string Get(string key, params object[] args)
// {
// var format = string.Format(Text.Get(key), args);
// return format;
// }
public static string GetLanImagePath(string key)
{
return Inst.GetLanguageModule((int)LanguageModuleType.Image).Get(key);
}
public static string GetLanFontByCurFont(string key)
{
if (key != null)
return Inst.GetLanguageModule((int)LanguageModuleType.Font).Get(key);
return null;
}
}
public enum LanguageModuleType
{
Text = 0,
Image = 1,
Font = 2,
}
}