Exemplo n.º 1
0
	/// <summary> Deletes the language. </summary>
	public static void DeleteLanguage(SmartCultureInfo cultureInfo)
	{
		string filePath = LocalizationWorkspace.LanguageFilePath(cultureInfo.languageCode);
		if(FileUtility.Exists(filePath))
		{
			FileUtility.Delete(filePath);
			FileUtility.Delete(filePath + LocalizationWorkspace.metaFileEnding);
		}
		//The text file
		filePath = LocalizationWorkspace.ResourcesFolderFilePath() + "/" + LocalizationWorkspace.rootLanguageName + "." + cultureInfo.languageCode + LocalizationWorkspace.txtFileEnding;
		if(FileUtility.Exists(filePath))
		{
			FileUtility.Delete(filePath);
			FileUtility.Delete(filePath + LocalizationWorkspace.metaFileEnding);
		}
		
		//The assets directory
		filePath = LocalizationWorkspace.LanguageRuntimeFolderPath(cultureInfo.languageCode);
		if(Directory.Exists(filePath))
		{
			Directory.Delete(filePath + "/", true);
			FileUtility.Delete(filePath + LocalizationWorkspace.metaFileEnding);
		}

		SmartCultureInfoCollection allCultures = SmartCultureInfoEx.Deserialize(LocalizationWorkspace.CultureInfoCollectionFilePath());
		LanguageHandlerEditor.CheckAndSaveAvailableLanguages(allCultures);
		AssetDatabase.Refresh();
	}
Exemplo n.º 2
0
	/// <summary>
	/// Loads the parsed language file.(without the type identifiers)
	/// </summary>
	public static Dictionary<string, LocalizedObject> LoadParsedLanguageFile(string languageCode, bool isRoot)
	{
		string fileContents = string.Empty;
		string filePath = null;

		if(isRoot)
		{
			filePath = LocalizationWorkspace.ResourcesFolderFilePath() + "/" + 
				LocalizationWorkspace.rootLanguageName + LocalizationWorkspace.txtFileEnding;
		}
		else
		{
			filePath = LocalizationWorkspace.ResourcesFolderFilePath() + "/" + 
					LocalizationWorkspace.rootLanguageName + "." + languageCode + LocalizationWorkspace.txtFileEnding;
		}
					
		if(!FileUtility.ReadFromFile(filePath, out fileContents))
		{
			Debug.LogError("Failed to read language from file - " + filePath);
		}

	
		var loadedLanguageDB = LanguageParser.LoadLanguage(fileContents);
		
		return new Dictionary<string,LocalizedObject>(loadedLanguageDB);	
	}
Exemplo n.º 3
0
        /// <summary>
        /// Checks .resx files and converts them into text assets that can be used at runtime
        /// </summary>
        public static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
        {
            //Only use this if there's a localization system created
            if (!LocalizationWorkspace.Exists())
            {
                return;
            }

            foreach (string asset in importedAssets)
            {
                if (asset.EndsWith(LocalizationWorkspace.resXFileEnding))
                {
                    string newFileName = LocalizationWorkspace.ResourcesFolderFilePath() + "/" + Path.GetFileNameWithoutExtension(asset) + LocalizationWorkspace.txtFileEnding;

                    if (!DirectoryUtility.CheckAndCreate(LocalizationWorkspace.ResourcesFolderFilePath()))
                    {
                        return;
                    }

                    //Delete the file if it already exists
                    if (FileUtility.Exists(newFileName))
                    {
                        FileUtility.Delete(newFileName);
                    }

                    string fileData = "";
                    using (StreamReader reader = new StreamReader(asset))
                    {
                        fileData = reader.ReadToEnd();
                    }


                    FileUtility.WriteToFile(newFileName, fileData);

                    SmartCultureInfoCollection allCultures = SmartCultureInfoEx.Deserialize(LocalizationWorkspace.CultureInfoCollectionFilePath());
                    LanguageHandlerEditor.CheckAndSaveAvailableLanguages(allCultures);

                    AssetDatabase.Refresh(ImportAssetOptions.Default);
                }
            }
        }