void ShowExportGUI()
        {
            if (GUILayout.Button("Export"))
            {
                string folderPath = EditorUtility.OpenFolderPanel("Select folder to save to.", "", "");
                if (availableFileFormats[chosenFileFormat] == csvFileEnding)
                {
                    string fullPath = folderPath + "/" + exportFileName + csvFileEnding;
                    CSVParser.Write(fullPath, CSVParser.GetDelimiter(delimiter),
                                    new List <string>(LanguageHandlerEditor.LoadLanguageFile(null, true).Keys), LanguageHandlerEditor.LoadAllLanguageFiles());

                    Debug.Log("Exported CSV file to " + fullPath);
                    this.Close();
                }
                else if (availableFileFormats[chosenFileFormat] == xlsFileEnding)
                {
                    string fullPath = folderPath + "/" + exportFileName + xlsFileEnding;
                    XLSExporter.Write(fullPath, "Languages",
                                      new List <string>(LanguageHandlerEditor.LoadLanguageFile(null, true).Keys), LanguageHandlerEditor.LoadAllLanguageFiles());

                    Debug.Log("Exported XLS file to " + fullPath);
                    this.Close();
                }
                else
                {
                    Debug.LogError("BulkUpdateWindow: Unsupported export format!");
                }
            }
        }
	public static void UpdateLanguageFile(string languageCode, List<List<string>> values)
	{
		Dictionary<string,string> languageItems = null;
		if(FileUtility.Exists(LocalizationWorkspace.LanguageFilePath(languageCode)))
		{
			languageItems = LanguageHandlerEditor.LoadLanguageFile(languageCode, false);
		}
		else
		{
			languageItems = new Dictionary<string, string>();
		}
		
		int updatedKeys = 0;
		foreach (List<string> row in values)
		{
			if (row.Count != 2)
			{
				continue;
			}
			string key = row[0].TrimStart('\r', '\n').TrimEnd('\r', '\n').Trim();
			string value = row[1];

			if (!languageItems.ContainsKey(key))
			{
				continue;
			}

			languageItems[key] = value;
			updatedKeys++;
		}

		LanguageHandlerEditor.SaveLanguageFile(languageItems, LocalizationWorkspace.LanguageFilePath(languageCode));
		Debug.Log("Updated language:" + languageCode + ", Keys updated:" + updatedKeys);
	}
        void ExportToXLS(string chosenExportFolder)
        {
            string name = chosenCulture.englishName + " - " + chosenCulture.languageCode + xlsFileEnding;

            XLSExporter.Write(chosenExportFolder + "/" + name, chosenCulture.englishName,
                              LanguageHandlerEditor.LoadLanguageFile(chosenCulture.languageCode, false));
        }
	/// <summary>
	/// Creates a new language
	/// </summary>
	/// <param name="languageName">The language code of the language to create</param>
	/// <param name="fromFile">Base language values to create a language from where each list of strings is a row.</param>
	public static void CreateNewLanguage(string languageName, List<List<string>> fromFile = null)
	{
		Dictionary<string,string> rootValues = LanguageHandlerEditor.LoadLanguageFile(null, true);
		
		//Copy the keys over to the new language
		Dictionary<string,string> baseDictionary = new Dictionary<string, string>();
		foreach(KeyValuePair<string, string> keyPair in rootValues)
		{
			baseDictionary.Add(keyPair.Key, "");
		}

		if (fromFile != null)
		{
			foreach (var row in fromFile)
			{
				if (row.Count != 2)
				{
					Debug.LogError("The CSV file is not in the correct format.");
					break;
				}
				baseDictionary[row[0]] = row[1];
			}
		}
		
		//Save the new language file
		SaveLanguageFile(baseDictionary, LocalizationWorkspace.LanguageFilePath(languageName));
	}