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);
        }
Example #3
0
    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);
        }
    }