static ManualTranslateLanguage SerachAsset() { string languageType = TranslateLog.currentLanguage(); ManualTranslateLanguage language = null; var filePattern = string.Format("{0}.asset", languageType); var files = Directory.GetFiles(Application.dataPath, filePattern, SearchOption.AllDirectories); foreach (string path in files) { string newPath = path.Replace(Application.dataPath, "Assets"); language = (ManualTranslateLanguage)AssetDatabase.LoadAssetAtPath(newPath, typeof(ManualTranslateLanguage)); break; } return(language); }
public static string ManualTranslate(string input) { ManualTranslateLanguage language = SerachAsset(); if (language == null) { return(null); } foreach (var item in language.list) { var match = Regex.Match(input, item.pattern); if (match.Success) { return(Replace(match, item.replaceFormat)); } } return(null); }
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { foreach (string asset in importedAssets) { if (!filePath.Equals(asset)) { continue; } ManualTranslateLanguage data = (ManualTranslateLanguage)AssetDatabase.LoadAssetAtPath(exportPath, typeof(ManualTranslateLanguage)); if (data == null) { data = ScriptableObject.CreateInstance <ManualTranslateLanguage> (); AssetDatabase.CreateAsset((ScriptableObject)data, exportPath); data.hideFlags = HideFlags.NotEditable; } data.list.Clear(); using (FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read)) { IWorkbook book = new HSSFWorkbook(stream); ISheet sheet = book.GetSheetAt(0); for (int i = 1; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); ICell cell = null; ManualTranslateLanguage.Param p = new ManualTranslateLanguage.Param(); cell = row.GetCell(0); p.pattern = (cell == null ? "" : cell.StringCellValue); cell = row.GetCell(1); p.replaceFormat = (cell == null ? "" : cell.StringCellValue); data.list.Add(p); } } ScriptableObject obj = AssetDatabase.LoadAssetAtPath(exportPath, typeof(ScriptableObject)) as ScriptableObject; EditorUtility.SetDirty(obj); } }