/// <summary> /// Creates a new workspace. Returns false if a workspace already exists /// </summary> /// <returns>If the creation was a success.</returns> public static bool Create() { if (Exists()) { return(false); } if (DirectoryUtility.Create(WorkspaceFolderPath())) { if (!DirectoryUtility.Create(AutoGeneratedFolderPath())) { return(false); } if (!DirectoryUtility.Create(ResourcesFolderFilePath())) { return(false); } if (!DirectoryUtility.Create(DataFolderPath())) { return(false); } if (!DirectoryUtility.Create(LanguageDataFolderPath())) { return(false); } if (!GenerateCultureInfoCollection()) { return(false); } LanguageHandlerEditor.CreateRootResourceFile(); AssetDatabase.Refresh(); return(true); } return(false); }
/// <summary> /// Generates the SmartCultureInfoCollection xml with all the available language infos and keeps any difference in old data /// as well. /// </summary> /// <returns>If the operation was successful</returns> public static bool GenerateCultureInfoCollection(SmartCultureInfoCollection previousCollection) { if (!DirectoryUtility.Create(CultureInfoDataFolderPath())) { return(false); } SmartCultureInfoCollection availableCultures = new SmartCultureInfoCollection(); availableCultures.version = SmartCultureInfoCollection.LatestVersion; if (previousCollection != null) { //Add all cultures from the previous collection in case any one of them were custom made foreach (var cultureInfo in previousCollection.cultureInfos) { availableCultures.AddCultureInfo(cultureInfo); } } //Get all the cultures from Microsofts CultureInfo in the System.Globalization namespace CultureInfo[] cultureInfos = CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures); foreach (var cultureInfo in cultureInfos) { if (availableCultures.FindCulture(cultureInfo.Name) == null) { availableCultures.AddCultureInfo(new SmartCultureInfo(cultureInfo.Name, cultureInfo.EnglishName, cultureInfo.NativeName, cultureInfo.TextInfo.IsRightToLeft)); } } foreach (var cultureInfo in ExtraCultureInfos) { if (availableCultures.FindCulture(cultureInfo) == null) { availableCultures.AddCultureInfo(new SmartCultureInfo(cultureInfo.languageCode, cultureInfo.englishName, cultureInfo.nativeName, cultureInfo.isRightToLeft)); } } availableCultures.Serialize(CultureInfoCollectionFilePath()); return(true); }