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