From 11501b815222ff338931189275b600318cb2491b Mon Sep 17 00:00:00 2001 From: JKlingen Date: Wed, 19 Sep 2012 21:53:17 +0000 Subject: [PATCH] LanguageEditor now saves html snippet for homepage when saving a language_website_*.xml file git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@2071 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4 --- .../EntriesEditorWindow.xaml.cs | 40 +++++++++++++++---- .../GreenshotLanguageEditor.csproj | 1 + .../template-homepage.html.part | 22 ++++++++++ 3 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 GreenshotLanguageEditor/template-homepage.html.part diff --git a/GreenshotLanguageEditor/EntriesEditorWindow.xaml.cs b/GreenshotLanguageEditor/EntriesEditorWindow.xaml.cs index 78f437787..1a4daa67a 100644 --- a/GreenshotLanguageEditor/EntriesEditorWindow.xaml.cs +++ b/GreenshotLanguageEditor/EntriesEditorWindow.xaml.cs @@ -31,6 +31,7 @@ using System.Windows.Input; using System.Windows.Media; using System.Collections.ObjectModel; using System.ComponentModel; +using System.Reflection; using System.Text.RegularExpressions; using System.Xml; @@ -50,11 +51,11 @@ namespace GreenshotLanguageEditor { } public event PropertyChangedEventHandler PropertyChanged; - private void NotifyPropertyChanged(String info) { - if (PropertyChanged != null) { - PropertyChanged(this, new PropertyChangedEventArgs(info)); - } - } + private void NotifyPropertyChanged(String info) { + if (PropertyChanged != null) { + PropertyChanged(this, new PropertyChangedEventArgs(info)); + } + } // maybe refactor this encapsulating column related info bool unsavedChangesInLanguage1 = false; @@ -172,6 +173,10 @@ namespace GreenshotLanguageEditor { CreateXML(editedFile.FilePath, targetColumn); + if(editedFile.FileName.Contains("website")) { + CreateHTML(editedFile.FilePath, targetColumn); + } + if(targetColumn == 1) unsavedChangesInLanguage1 = false; else if(targetColumn == 2) unsavedChangesInLanguage2 = false; } @@ -257,12 +262,9 @@ namespace GreenshotLanguageEditor { } public void CreateXML(string savePath, int targetColumn) { - LanguageFile langfile = targetColumn == 1 ? LanguageFile1 : LanguageFile2; - ICollectionView view = (ICollectionView)LanguageGrid.ItemsSource; IList entries = (IList)view.SourceCollection; - List sortList = new List(entries); sortList.Sort(compareEntryKeys); @@ -292,6 +294,28 @@ namespace GreenshotLanguageEditor { } } + public void CreateHTML(string savePath, int targetColumn) { + LanguageFile langfile = targetColumn == 1 ? LanguageFile1 : LanguageFile2; + ICollectionView view = (ICollectionView)LanguageGrid.ItemsSource; + IList entries = (IList)view.SourceCollection; + + string tmp; + using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("GreenshotLanguageEditor.template-homepage.html.part")) { + using (StreamReader reader = new StreamReader(stream)) { + tmp = reader.ReadToEnd(); + foreach(LanguageEntry e in entries) { + string entryString = targetColumn == 1 ? e.Entry1 : e.Entry2; + tmp = tmp.Replace("${"+e.Key+"}", entryString); + } + } + } + FileInfo fi = new FileInfo(savePath.Replace("xml","html.part")); + FileStream fs = fi.Open(FileMode.OpenOrCreate); + byte[] barr = Encoding.GetEncoding("UTF-8").GetBytes(tmp); + fs.Write(barr,0, barr.Length); + fs.Close(); + } + private int compareEntryKeys(LanguageEntry a, LanguageEntry b) { return a.Key.CompareTo(b.Key); } diff --git a/GreenshotLanguageEditor/GreenshotLanguageEditor.csproj b/GreenshotLanguageEditor/GreenshotLanguageEditor.csproj index d937888f0..e2398c1a0 100644 --- a/GreenshotLanguageEditor/GreenshotLanguageEditor.csproj +++ b/GreenshotLanguageEditor/GreenshotLanguageEditor.csproj @@ -96,6 +96,7 @@ + Always diff --git a/GreenshotLanguageEditor/template-homepage.html.part b/GreenshotLanguageEditor/template-homepage.html.part new file mode 100644 index 000000000..261f77b2a --- /dev/null +++ b/GreenshotLanguageEditor/template-homepage.html.part @@ -0,0 +1,22 @@ +
+ +

${home_whatis}

+

${home_whatis_intro}

+

+${home_whatis_create} ${home_whatis_edit} ${home_whatis_send} ${home_whatis_more} +

+

${home_whatis_usage}

+ +
+
+ +

${home_seemore}

+

${home_seemore_screenshots}

+ +${home_downloads} + +

${home_opensource}

+

${home_opensource_gpl}

+

${home_opensource_donate}

+ +
\ No newline at end of file