language
This commit is contained in:
@@ -22,28 +22,13 @@ namespace NBF
|
||||
ExcelToJsonWindow.GenConfig(false);
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
// [MenuItem("构建/配置表/读取")]
|
||||
// public static void Read()
|
||||
// {
|
||||
// var assets = EditorUtils.GetOrCreateAsset<ConfigAssets>(ConfigAssets.SavePath);
|
||||
//
|
||||
// var path = Path.Combine(Application.dataPath, "Resources/config", "Input.json");
|
||||
// var json = File.ReadAllText(path);
|
||||
//
|
||||
// JsonUtility.FromJsonOverwrite(json, assets);
|
||||
// EditorUtility.SetDirty(assets);
|
||||
// AssetDatabase.SaveAssets(); // 保存更改
|
||||
// AssetDatabase.Refresh();
|
||||
// }
|
||||
|
||||
// [MenuItem("构建/配置表/转json")]
|
||||
// public static void GenJson()
|
||||
// {
|
||||
// CfgAssets cfgAssets = AssetDatabase.LoadAssetAtPath<CfgAssets>("Assets/Resources/config/CfgAssets.asset");
|
||||
// var json = JsonUtility.ToJson(cfgAssets);
|
||||
// File.WriteAllText(Path.Combine(Application.dataPath, "Resources/config", "Input.json"), json);
|
||||
// // CfgAssets cfgAssets = Resources.Load<CfgAssets>("config/CfgAssets");
|
||||
// }
|
||||
[MenuItem("构建/配置表/导多语言")]
|
||||
public static void BuildLanguage()
|
||||
{
|
||||
ExcelToJsonWindow.GenLanguage();
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
#region 生成脚本
|
||||
|
||||
|
||||
3
Assets/Scripts/Configs/Language.meta
Normal file
3
Assets/Scripts/Configs/Language.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a74bb7a59dd4f689beec3add0e7c8c6
|
||||
timeCreated: 1749097649
|
||||
@@ -6,6 +6,7 @@ using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using ExcelDataReader;
|
||||
using NBC;
|
||||
using Newtonsoft.Json;
|
||||
@@ -18,12 +19,15 @@ namespace NBF
|
||||
{
|
||||
public static class ExcelToJsonWindow
|
||||
{
|
||||
#region 生成配置表
|
||||
|
||||
public static void GenConfig(bool showMessageBox = true)
|
||||
{
|
||||
CfgEditorUtil.GenConfigScripts();
|
||||
GenConfig(Application.dataPath + "/../Config", showMessageBox);
|
||||
}
|
||||
|
||||
|
||||
public static void GenConfig(string path, bool showMessageBox = false)
|
||||
{
|
||||
List<string> list = new List<string>();
|
||||
@@ -54,7 +58,6 @@ namespace NBF
|
||||
|
||||
private static void BuildAsset()
|
||||
{
|
||||
//Application.dataPath
|
||||
var json = JsonConvert.SerializeObject(AllJsonData, Formatting.Indented, new JsonSerializerSettings
|
||||
{
|
||||
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
|
||||
@@ -80,21 +83,10 @@ namespace NBF
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 将路径中的所有反斜杠转换为正斜杠
|
||||
// string normalizedAbsolutePath = savePath.Replace("\\", "/");
|
||||
// string normalizedDataPath = Application.dataPath.Replace("\\", "/");
|
||||
|
||||
// string relativePath = normalizedAbsolutePath.Replace(normalizedDataPath, "");
|
||||
|
||||
// ConfigAssets.SavePath
|
||||
// var relativePath = "Assets/ResRaw/config/ConfigAssets.asset";
|
||||
//$"Assets/Resources/Config/ConfigAssets.asset";
|
||||
var relativePath = ConfigAssets.SavePath;
|
||||
|
||||
var asset = EditorUtils.GetOrCreateAsset<ConfigAssets>(relativePath);
|
||||
|
||||
|
||||
var types = Reflection.GetAllNonAbstractDerivedTypes<ConfigBase>();
|
||||
foreach (var type in types)
|
||||
{
|
||||
@@ -115,6 +107,48 @@ namespace NBF
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 生成多语言
|
||||
|
||||
public static void GenLanguage()
|
||||
{
|
||||
var path = Application.dataPath + "/../Config/language";
|
||||
|
||||
List<string> list = new List<string>();
|
||||
|
||||
GetFiles(path, fileList: ref list);
|
||||
|
||||
AllJsonData.Clear();
|
||||
Stopwatch s = Stopwatch.StartNew();
|
||||
|
||||
ReadExcel(list.ToArray());
|
||||
|
||||
var savePath = Path.Combine(Application.dataPath, "Resources/config/language.json");
|
||||
|
||||
BuildJson(savePath);
|
||||
|
||||
s.Stop();
|
||||
|
||||
Debug.Log($"导多语言完成,耗时{(s.ElapsedMilliseconds / 1000f):.00}秒");
|
||||
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
private static void BuildJson(string savaPath)
|
||||
{
|
||||
var json = JsonConvert.SerializeObject(AllJsonData, Formatting.Indented, new JsonSerializerSettings
|
||||
{
|
||||
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
|
||||
});
|
||||
SaveJson(savaPath, json);
|
||||
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 文件读写
|
||||
|
||||
private static void GetFiles(string path, ref List<string> fileList)
|
||||
@@ -136,8 +170,25 @@ namespace NBF
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
private static void SaveJson(string jsonPath, string json)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (File.Exists(jsonPath))
|
||||
{
|
||||
File.Delete(jsonPath);
|
||||
}
|
||||
|
||||
File.WriteAllBytes(jsonPath, Encoding.UTF8.GetBytes(json));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// Console.WriteLine(e);
|
||||
// throw;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Excel读取
|
||||
|
||||
|
||||
@@ -13,7 +13,12 @@ namespace NBC
|
||||
public class LanguageConst
|
||||
{
|
||||
public const string LanguageSaveKey = "LanguageSaveKey";
|
||||
|
||||
|
||||
//简体中文、繁体中文、英语、日语、韩语、泰语、越南语、法语、德语、葡萄牙与、西班牙语、俄语、波兰语、荷兰语、
|
||||
|
||||
|
||||
//土耳其语、意大利语、印度尼西亚语
|
||||
|
||||
/// <summary>
|
||||
/// 自定义语言和名字映射关系
|
||||
/// </summary>
|
||||
@@ -22,39 +27,71 @@ namespace NBC
|
||||
{
|
||||
{
|
||||
SystemLanguage.English,
|
||||
new LanguageInfo() { Language = SystemLanguage.English, Name = "", Code = "en" }
|
||||
new LanguageInfo() { Language = SystemLanguage.English, Name = "English", Code = "en" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.ChineseSimplified,
|
||||
new LanguageInfo() { Language = SystemLanguage.ChineseSimplified, Name = "", Code = "zh-CN" }
|
||||
new LanguageInfo() { Language = SystemLanguage.ChineseSimplified, Name = "简体中文", Code = "zh-CN" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.ChineseTraditional,
|
||||
new LanguageInfo() { Language = SystemLanguage.ChineseTraditional, Name = "", Code = "zh-TW" }
|
||||
new LanguageInfo() { Language = SystemLanguage.ChineseTraditional, Name = "繁體中文", Code = "zh-TW" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Japanese,
|
||||
new LanguageInfo() { Language = SystemLanguage.Japanese, Name = "", Code = "jp" }
|
||||
new LanguageInfo() { Language = SystemLanguage.Japanese, Name = "日本語", Code = "ja" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Korean,
|
||||
new LanguageInfo() { Language = SystemLanguage.Korean, Name = "", Code = "kr" }
|
||||
new LanguageInfo() { Language = SystemLanguage.Korean, Name = "한국어", Code = "ko" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.French,
|
||||
new LanguageInfo() { Language = SystemLanguage.French, Name = "", Code = "fr" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Russian,
|
||||
new LanguageInfo() { Language = SystemLanguage.Russian, Name = "", Code = "fr" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Spanish,
|
||||
new LanguageInfo() { Language = SystemLanguage.Spanish, Name = "", Code = "fr" }
|
||||
SystemLanguage.Thai,
|
||||
new LanguageInfo() { Language = SystemLanguage.Thai, Name = "ไทย", Code = "th" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Vietnamese,
|
||||
new LanguageInfo() { Language = SystemLanguage.Vietnamese, Name = "", Code = "fr" }
|
||||
new LanguageInfo() { Language = SystemLanguage.Vietnamese, Name = "Tiếng Việt", Code = "vi" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.German,
|
||||
new LanguageInfo() { Language = SystemLanguage.German, Name = "Deutsch", Code = "de" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.French,
|
||||
new LanguageInfo() { Language = SystemLanguage.French, Name = "Français", Code = "fr" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Russian,
|
||||
new LanguageInfo() { Language = SystemLanguage.Russian, Name = "Русский", Code = "ru" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Spanish,
|
||||
new LanguageInfo() { Language = SystemLanguage.Spanish, Name = "Español", Code = "es" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Portuguese,
|
||||
new LanguageInfo() { Language = SystemLanguage.Portuguese, Name = "Português", Code = "pt" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Polish,
|
||||
new LanguageInfo() { Language = SystemLanguage.Polish, Name = "Polski", Code = "pl" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Dutch,
|
||||
new LanguageInfo() { Language = SystemLanguage.Dutch, Name = "Nederlands", Code = "nl" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Turkish,
|
||||
new LanguageInfo() { Language = SystemLanguage.Turkish, Name = "Türkçe", Code = "tr" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Indonesian,
|
||||
new LanguageInfo() { Language = SystemLanguage.Indonesian, Name = "Bahasa Indonesia", Code = "id" }
|
||||
},
|
||||
{
|
||||
SystemLanguage.Italian,
|
||||
new LanguageInfo() { Language = SystemLanguage.Italian, Name = "Italiano", Code = "it" }
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user