diff options
author | Lluis Sanchez <lluis@novell.com> | 2007-11-17 18:50:03 +0300 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2007-11-17 18:50:03 +0300 |
commit | 9169cef20a6f45664d3e4c2d5ac8afb90b1ec9c9 (patch) | |
tree | a637b5bbff5e9b84b819336d03f9efb49d0da7e1 /Mono.Addins/Mono.Addins.Description/AddinDescription.cs | |
parent | 87d1a76b8595bd41037d8dda9688c505733c4004 (diff) |
* Mono.Addins.Localization, Mono.Addins.Localization/GettextDomain.cs,
Mono.Addins.Localization/IAddinLocalizer.cs,
Mono.Addins.Localization/NullLocalizer.cs,
Mono.Addins.Localization/StringTableLocalizer.cs,
Mono.Addins.Localization/StringResourceLocalizer.cs,
Mono.Addins.Localization/IAddinLocalizerFactory.cs,
Mono.Addins.Localization/GettextLocalizer.cs, Mono.Addins.mdp,
Mono.Addins/RuntimeAddin.cs, Mono.Addins/ExtensionTree.cs,
Mono.Addins/NodeAttributeAttribute.cs, Mono.Addins/AddinManager.cs,
Mono.Addins/ExtensionNode.cs, Mono.Addins/AddinLocalizer.cs,
Makefile.am, Mono.Addins.Description/NodeTypeAttribute.cs,
Mono.Addins.Description/AddinDescription.cs,
Mono.Addins.Description/ExtensionNodeType.cs: Implemented support
for add-in localization.
* Mono.Addins/NodeElement.cs,
Mono.Addins.Description/ExtensionNodeDescriptionCollection.cs:
Added ChildNodes property to NodeElement.
svn path=/trunk/mono-addins/; revision=89845
Diffstat (limited to 'Mono.Addins/Mono.Addins.Description/AddinDescription.cs')
-rw-r--r-- | Mono.Addins/Mono.Addins.Description/AddinDescription.cs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/Mono.Addins/Mono.Addins.Description/AddinDescription.cs b/Mono.Addins/Mono.Addins.Description/AddinDescription.cs index b15f52d..2ffc008 100644 --- a/Mono.Addins/Mono.Addins.Description/AddinDescription.cs +++ b/Mono.Addins/Mono.Addins.Description/AddinDescription.cs @@ -68,6 +68,7 @@ namespace Mono.Addins.Description ExtensionNodeSetCollection nodeSets; ConditionTypeDescriptionCollection conditionTypes; ExtensionPointCollection extensionPoints; + ExtensionNodeDescription localizer; object[] fileInfo; internal static BinaryXmlTypeMap typeMap; @@ -278,6 +279,11 @@ namespace Mono.Addins.Description } } + public ExtensionNodeDescription Localizer { + get { return localizer; } + set { localizer = value; } + } + public ExtensionPoint AddExtensionPoint (string path) { ExtensionPoint ep = new ExtensionPoint (); @@ -467,7 +473,16 @@ namespace Mono.Addins.Description elem.SetAttribute ("category", category); else elem.RemoveAttribute ("category"); - + + if (localizer == null || localizer.Element == null) { + // Remove old element if it exists + XmlElement oldLoc = (XmlElement) elem.SelectSingleNode ("Localizer"); + if (oldLoc != null) + elem.RemoveChild (oldLoc); + } + if (localizer != null) + localizer.SaveXml (elem); + if (mainModule != null) { mainModule.Element = elem; mainModule.SaveXml (elem); @@ -525,6 +540,10 @@ namespace Mono.Addins.Description s = elem.GetAttribute ("defaultEnabled"); config.defaultEnabled = s.Length == 0 || s == "true" || s == "yes"; + XmlElement localizerElem = (XmlElement) elem.SelectSingleNode ("Localizer"); + if (localizerElem != null) + config.localizer = new ExtensionNodeDescription (localizerElem); + if (config.id.Length > 0) config.hasUserId = true; @@ -596,6 +615,10 @@ namespace Mono.Addins.Description } } + if (localizer != null && localizer.GetAttribute ("type").Length == 0) { + errors.Add ("The attribute 'type' in the Location element is required."); + } + return errors; } @@ -658,6 +681,7 @@ namespace Mono.Addins.Description writer.WriteValue ("ExtensionPoints", ExtensionPoints); writer.WriteValue ("ConditionTypes", ConditionTypes); writer.WriteValue ("FilesInfo", fileInfo); + writer.WriteValue ("Localizer", localizer); } void IBinaryXmlElement.Read (BinaryXmlReader reader) @@ -684,6 +708,7 @@ namespace Mono.Addins.Description extensionPoints = (ExtensionPointCollection) reader.ReadValue ("ExtensionPoints", new ExtensionPointCollection (this)); conditionTypes = (ConditionTypeDescriptionCollection) reader.ReadValue ("ConditionTypes", new ConditionTypeDescriptionCollection (this)); fileInfo = (object[]) reader.ReadValue ("FilesInfo", null); + localizer = (ExtensionNodeDescription) reader.ReadValue ("Localizer"); if (mainModule != null) mainModule.SetParent (this); |