Author: mkrueger
Date: 2007-07-19 13:46:27 -0400 (Thu, 19 Jul 2007)
New Revision: 82309

Modified:
   trunk/monodevelop/Extras/MonoDevelop.Gettext/ChangeLog
   
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs
   
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs
   
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationService.cs
Log:
* MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs,
  MonoDevelop.Gettext/TranslationService.cs,
  MonoDevelop.Gettext/TranslationProject.cs: New Translations are now
  containing a list of all translation strings.

Modified: trunk/monodevelop/Extras/MonoDevelop.Gettext/ChangeLog
===================================================================
--- trunk/monodevelop/Extras/MonoDevelop.Gettext/ChangeLog      2007-07-19 
17:35:02 UTC (rev 82308)
+++ trunk/monodevelop/Extras/MonoDevelop.Gettext/ChangeLog      2007-07-19 
17:46:27 UTC (rev 82309)
@@ -1,5 +1,12 @@
 2007-07-19  Mike Krüger <[EMAIL PROTECTED]> 
 
+       * MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs,
+         MonoDevelop.Gettext/TranslationService.cs,
+         MonoDevelop.Gettext/TranslationProject.cs: New Translations are now
+         containing a list of all translation strings.
+
+2007-07-19  Mike Krüger <[EMAIL PROTECTED]> 
+
        * MonoDevelop.Gettext.NodeBuilders/TranslationNodeBuilder.cs,
          MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs,
          MonoDevelop.Gettext/TranslationProject.cs: Translations can now be

Modified: 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs
      2007-07-19 17:35:02 UTC (rev 82308)
+++ 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationProject.cs
      2007-07-19 17:46:27 UTC (rev 82309)
@@ -113,35 +113,41 @@
                        }
                }
                
-               public void AddTranslationStrings (string fileName, 
List<TranslationProject.MatchLocation> matches)
+               
+               public void AddTranslationStrings (Translation translation, 
string fileName, List<TranslationProject.MatchLocation> matches)
                {
                        string relativeFileName = 
MonoDevelop.Core.Runtime.FileService.AbsoluteToRelativePath 
(this.BaseDirectory, fileName);
-                       foreach (Translation translation in this.Translations) {
-                               string poFileName = GetFileName (translation);
-                               Catalog catalog = new Catalog (poFileName);
-                               
-                               foreach (CatalogEntry entry in catalog) {
-                                       foreach (string reference in 
entry.References) {
-                                               if (reference.StartsWith 
(relativeFileName + ":"))
-                                                       entry.RemoveReference 
(reference);
-                                       }
+                       string poFileName = GetFileName (translation);
+                       Catalog catalog = new Catalog (poFileName);
+                       
+                       foreach (CatalogEntry entry in catalog) {
+                               foreach (string reference in entry.References) {
+                                       if (reference.StartsWith 
(relativeFileName + ":"))
+                                               entry.RemoveReference 
(reference);
                                }
-                               
-                               foreach (MatchLocation match in matches) {
-                                       CatalogEntry entry = catalog.FindItem 
(match.OriginalString);
-                                       if (entry == null) {
-                                               entry = new CatalogEntry 
(catalog, match.OriginalString, match.OriginalPluralString);
-                                               if (!String.IsNullOrEmpty 
(match.OriginalPluralString))
-                                                       entry.SetTranslations 
(new string[] {"", ""});
-                                               catalog.AddItem (entry);
-                                       }
-                                       entry.AddReference (relativeFileName + 
":" + match.Line);
+                       }
+                       
+                       foreach (MatchLocation match in matches) {
+                               CatalogEntry entry = catalog.FindItem 
(match.OriginalString);
+                               if (entry == null) {
+                                       entry = new CatalogEntry (catalog, 
match.OriginalString, match.OriginalPluralString);
+                                       if (!String.IsNullOrEmpty 
(match.OriginalPluralString))
+                                               entry.SetTranslations (new 
string[] {"", ""});
+                                       catalog.AddItem (entry);
                                }
-                               
-                               catalog.Save (poFileName);
+                               entry.AddReference (relativeFileName + ":" + 
match.Line);
                        }
+                       
+                       catalog.Save (poFileName);
                }
                
+               public void AddTranslationStrings (string fileName, 
List<TranslationProject.MatchLocation> matches)
+               {
+                       foreach (Translation translation in this.Translations) {
+                               AddTranslationStrings (translation, fileName, 
matches);
+                       }
+               }
+               
                public void AddNewTranslation (string isoCode, IProgressMonitor 
monitor)
                {
                        try {
@@ -159,16 +165,23 @@
                        }
                }
                
+               public Translation GetTranslation (string isoCode)
+               {
+                       foreach (Translation translation in this.translations) {
+                               if (translation.IsoCode == isoCode) 
+                                       return translation;
+                       }
+                       return null;
+               }
+               
                public void RemoveTranslation (string isoCode)
                {
-                       for (int i = 0; i < this.translations.Count; i++) { 
-                               if (translations[i].IsoCode == isoCode) {
-                                       translations.RemoveAt (i);
-                                       OnTranslationRemoved (EventArgs.Empty);
-                                       break;
-                               }
+                       Translation translation = GetTranslation (isoCode);
+                       if (translation != null) {
+                               this.translations.Remove (translation);
+                               OnTranslationRemoved (EventArgs.Empty);
+                               isDirty = true;
                        }
-                       isDirty = true;
                }
                
                public override IConfiguration CreateConfiguration (string name)

Modified: 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationService.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationService.cs
      2007-07-19 17:35:02 UTC (rev 82308)
+++ 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext/TranslationService.cs
      2007-07-19 17:46:27 UTC (rev 82309)
@@ -125,20 +125,26 @@
                        }
                }
                
-               static void FileChangedInProject (object sender, 
ProjectFileEventArgs e)
+               public static void UpdateTranslation (TranslationProject 
translationProject, string fileName, string isoCode)
                {
-                       TranslationProject translationProject = 
GetTranslationProject (e.Project);
-                       if (translationProject == null)
-                               return;
-                       switch (Path.GetExtension (e.ProjectFile.FilePath)) {
+                       switch (Path.GetExtension (fileName)) {
                        case ".xml":
-                               UpdateXmlTranslations (translationProject, 
e.ProjectFile.FilePath);
+                               UpdateXmlTranslations (translationProject, 
fileName);
                                break;
                        default:
-                               UpdateTranslations (translationProject, 
e.ProjectFile.FilePath);
+                               UpdateTranslations (translationProject, 
fileName);
                                break;
                        }
+               }
+               
+               static void FileChangedInProject (object sender, 
ProjectFileEventArgs e)
+               {
+                       TranslationProject translationProject = 
GetTranslationProject (e.Project);
+                       if (translationProject == null)
+                               return;
                        
+                       UpdateTranslation (translationProject, 
e.ProjectFile.FilePath, null);
+                       
                        ProjectFile steticFile = e.Project.GetProjectFile 
(Path.Combine (e.Project.BaseDirectory, "gtk-gui/gui.stetic"));
                        if (steticFile != null) 
                                UpdateSteticTranslations (translationProject, 
steticFile.FilePath);

Modified: 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs
      2007-07-19 17:35:02 UTC (rev 82308)
+++ 
trunk/monodevelop/Extras/MonoDevelop.Gettext/MonoDevelop.Gettext.NodeBuilders/TranslationProjectNodeBuilder.cs
      2007-07-19 17:46:27 UTC (rev 82309)
@@ -164,6 +164,12 @@
                                                
                                                using (IProgressMonitor monitor 
= IdeApp.Workbench.ProgressMonitors.GetOutputProgressMonitor (monitorTitle, 
"md-package", true, true)) {
                                                        
project.AddNewTranslation (language, monitor);
+                                                       
+                                                       foreach (Project p in 
project.ParentCombine.GetAllProjects ()) {
+                                                               foreach 
(ProjectFile file in p.ProjectFiles) {
+                                                                       
TranslationService.UpdateTranslation (project, file.FilePath, language);
+                                                               }
+                                                       }
                                                }
                                        }
                                        

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to