[mapguide-commits] r6996 - in trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI: . Capability Commands CoordinateSystem CrossConnection Exceptions Expression Feature Internal Mapping ObjectModels Properties Resource Resource/Comparison Resource/Conversion Resource/Validation Schema SchemaOverrides Serialization Services Tile

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Sep 10 09:47:44 PDT 2012


Author: jng
Date: 2012-09-10 09:47:43 -0700 (Mon, 10 Sep 2012)
New Revision: 6996

Modified:
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ArgumentParser.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Capability/ConnectionCapabilities.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/FeatureManipulationCommandImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/IGetFdoCacheInfo.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ConnectionProviderRegistry.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ActualCoordinateSystem.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystem.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCategory.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ISimpleTransform.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CredentialWriter.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceMigrator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceRebaser.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Enums.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Exceptions/NestedExceptionMessageProcessor.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Expression/ExpressionEngine.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/MutableRecordBase.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/PropertyValue.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/RecordBase.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/IServerConnection.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Internal/FixedWKTReader.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/Collections.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/MapSelection.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapGroup.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapLayer.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinitionInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/CommonTypes.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSource.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSourceInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/Envelope.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/IFdoSpatialContext.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcFactory.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedure.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedureInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ObjectFactory.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayout.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceList.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefFactory.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/UnmanagedDataList.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/UntypedResource.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WatermarkInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayout.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayoutInterfaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Platform.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Comparison/DiffEngine.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Comparison/TextFile.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/IResourceConverter.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResourceValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceContentVersionChecker.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceIdentifier.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceTypeDescriptor.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ApplicationDefinitionValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLayerDefinitionValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLoadProcedureValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseMapDefinitionValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseSymbolDefinitionValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseWebLayoutValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/DrawingSourceValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/PrintLayoutValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolDefinitionValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolLibraryValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/WebLayoutValidator.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/DataPropertyDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/FeatureSchema.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/FeatureSourceDescription.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/GeometricPropertyDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/PropertyDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/RasterPropertyDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/XmlNamespaces.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/ConfigurationDocument.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/GdalConfigurationDocument.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/GdalRasterItem.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcConfigurationDocument.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcTableItem.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/RasterWmsItem.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/WmsConfigurationDocument.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/WmsLayerDefinition.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinaryDeserializer.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinarySerializer.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Services/IMappingService.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Tile/BatchSettings.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Tile/RenderThread.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utf8XmlWriter.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs
   trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs
Log:
#2110: Localization review of OSGeo.MapGuide.MaestroAPI

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ArgumentParser.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ArgumentParser.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ArgumentParser.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -46,11 +46,11 @@
 
             foreach (var arg in args)
             {
-                if (arg.Length > 0 && arg[0] == '-')
+                if (arg.Length > 0 && arg[0] == '-') //NOXLATE
                 {
                     string name = arg.Substring(1);
                     string value = string.Empty;
-                    var cidx = arg.IndexOf(':');
+                    var cidx = arg.IndexOf(':'); //NOXLATE
 
                     if (cidx >= 0)
                     {
@@ -109,21 +109,21 @@
         /// <summary>
         /// The name of the API provider
         /// </summary>
-        public const string Provider = "Provider";
+        public const string Provider = "Provider"; //NOXLATE
 
         /// <summary>
         /// The session id
         /// </summary>
-        public const string Session = "SessionId";
+        public const string Session = "SessionId"; //NOXLATE
 
         /// <summary>
         /// The username
         /// </summary>
-        public const string Username = "Username";
+        public const string Username = "Username"; //NOXLATE
 
         /// <summary>
         /// The password
         /// </summary>
-        public const string Password = "Password";
+        public const string Password = "Password"; //NOXLATE
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Capability/ConnectionCapabilities.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Capability/ConnectionCapabilities.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Capability/ConnectionCapabilities.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -256,7 +256,7 @@
         /// <returns></returns>
         public virtual bool IsSupportedResourceType(string resourceType)
         {
-            Check.NotEmpty(resourceType, "resourceType");
+            Check.NotEmpty(resourceType, "resourceType"); //NOXLATE
             var ver = _parent.SiteVersion;
             var rt = (ResourceTypes)Enum.Parse(typeof(ResourceTypes), resourceType);
             switch (rt)

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -217,31 +217,31 @@
             int current = 0;
 
             string root = shpl.RootPath;
-            if (!root.EndsWith("/"))
-                root += "/";
+            if (!root.EndsWith("/")) //NOXLATE
+                root += "/"; //NOXLATE
 
             string sdp = shpl.SpatialDataSourcesPath;
             string lp = shpl.LayersPath;
 
             if (!string.IsNullOrEmpty(sdp))
             {
-                if (!sdp.EndsWith("/"))
-                    sdp += "/";
+                if (!sdp.EndsWith("/")) //NOXLATE
+                    sdp += "/"; //NOXLATE
             }
 
             if (!string.IsNullOrEmpty(lp))
             {
-                if (!lp.EndsWith("/"))
-                    lp += "/";
+                if (!lp.EndsWith("/")) //NOXLATE
+                    lp += "/"; //NOXLATE
             }
 
             string fsRoot = (string.IsNullOrEmpty(sdp) ? root : sdp) + shpl.SpatialDataSourcesFolder;
             string layerRoot = (string.IsNullOrEmpty(lp) ? root : lp) + shpl.LayersFolder;
 
-            if (!fsRoot.EndsWith("/"))
-                fsRoot += "/";
-            if (!layerRoot.EndsWith("/"))
-                layerRoot += "/";
+            if (!fsRoot.EndsWith("/")) //NOXLATE
+                fsRoot += "/"; //NOXLATE
+            if (!layerRoot.EndsWith("/")) //NOXLATE
+                layerRoot += "/"; //NOXLATE
 
             List<string> resToUpdate = new List<string>();
             if (shpl.ResourceId != null)
@@ -261,12 +261,12 @@
                 if (!extraFiles.ContainsKey(shp))
                     extraFiles[shp] = new List<string>();
                 //we want to preserve casing for everything before the extension
-                string prefix = shp.Substring(0, shp.LastIndexOf(".") + 1);
-                extraFiles[shp].Add(prefix + "shx");
-                extraFiles[shp].Add(prefix + "dbf");
-                extraFiles[shp].Add(prefix + "idx");
-                extraFiles[shp].Add(prefix + "prj");
-                extraFiles[shp].Add(prefix + "cpg");
+                string prefix = shp.Substring(0, shp.LastIndexOf(".") + 1); //NOXLATE
+                extraFiles[shp].Add(prefix + "shx"); //NOXLATE
+                extraFiles[shp].Add(prefix + "dbf"); //NOXLATE
+                extraFiles[shp].Add(prefix + "idx"); //NOXLATE
+                extraFiles[shp].Add(prefix + "prj"); //NOXLATE
+                extraFiles[shp].Add(prefix + "cpg"); //NOXLATE
 
                 //TODO: Are we missing anything else?
             }
@@ -279,8 +279,8 @@
                     string resName = System.IO.Path.GetFileNameWithoutExtension(file);
                     string dataName = System.IO.Path.GetFileName(file);
 
-                    string fsId = fsRoot + resName + ".FeatureSource";
-                    string lyrId = layerRoot + resName + ".LayerDefinition";
+                    string fsId = fsRoot + resName + ".FeatureSource"; //NOXLATE
+                    string lyrId = layerRoot + resName + ".LayerDefinition"; //NOXLATE
 
                     if (shpl.GenerateSpatialDataSources)
                     {
@@ -297,13 +297,13 @@
 
                             //Step 1: Create feature source document
                             var conp = new NameValueCollection();
-                            conp["DefaultFileLocation"] = "%MG_DATA_FILE_PATH%" + dataName;
-                            var fs = ObjectFactory.CreateFeatureSource(this.Parent, "OSGeo.SHP", conp);
+                            conp["DefaultFileLocation"] = StringConstants.MgDataFilePath + dataName; //NOXLATE
+                            var fs = ObjectFactory.CreateFeatureSource(this.Parent, "OSGeo.SHP", conp); //NOXLATE
                             fs.ResourceID = fsId;
 
                             this.Parent.ResourceService.SaveResource(fs);
                             resCreatedOrUpdated.Add(fsId);
-                            cb(this, new LengthyOperationProgressArgs("Created: " + fsId, current));
+                            cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateCreated, fsId), current));
 
                             //TODO: When the infrastructure is available to us (ie. A portable .net FDO/MG Feature Service API wrapper)
                             //Maybe then we can actually implement the generalization and conversion properties. Until then, we skip
@@ -312,7 +312,7 @@
                             //Step 2: Load resource data for document
                             this.Parent.ResourceService.SetResourceData(fsId, dataName, ResourceDataType.File, System.IO.File.OpenRead(file));
 
-                            cb(this, new LengthyOperationProgressArgs("Loaded: " + file, current));
+                            cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateLoaded, file), current));
 
                             //Load supplementary files
                             foreach (string extraFile in extraFiles[file])
@@ -321,7 +321,7 @@
                                 if (System.IO.File.Exists(extraFile))
                                 {
                                     this.Parent.ResourceService.SetResourceData(fsId, dn, ResourceDataType.File, System.IO.File.OpenRead(extraFile));
-                                    cb(this, new LengthyOperationProgressArgs("Loaded: " + extraFile, current));
+                                    cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateLoaded, extraFile), current));
                                 }
                             }
 
@@ -329,7 +329,7 @@
                             string result = this.Parent.FeatureService.TestConnection(fsId);
 
                             //LocalNativeConnection returns this string, so I'm assuming this is the "success" result
-                            if (result == "No errors" || result.ToLower() == "true")
+                            if (result == "No errors" || result.ToLower() == "true") //NOXLATE
                             {
                                 //Step 4: Test to see if default cs needs to be specified
                                 FdoSpatialContextList spatialContexts = this.Parent.FeatureService.GetSpatialContextInfo(fsId, false);
@@ -339,7 +339,7 @@
                                     //If there is no prj file, we can just upload one with the specified WKT
                                     foreach (var resd in fs.EnumerateResourceData())
                                     {
-                                        if (resd.Name == resName + ".prj")
+                                        if (resd.Name == resName + ".prj") //NOXLATE
                                         {
                                             hasPrj = true;
                                             break;
@@ -353,8 +353,8 @@
 
                                         using (var fsr = System.IO.File.OpenRead(tmp))
                                         {
-                                            fs.SetResourceData(resName + ".prj", ResourceDataType.File, fsr);
-                                            cb(this, new LengthyOperationProgressArgs("Uploaded: " + resName + ".prj", current));
+                                            fs.SetResourceData(resName + ".prj", ResourceDataType.File, fsr); //NOXLATE
+                                            cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateUploadedPrj, resName), current));
                                         }
 
                                         try
@@ -368,14 +368,14 @@
                                         //Register the default CS from the load procedure
                                         fs.AddSpatialContextOverride(new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.SpatialContextType()
                                         {
-                                            Name = "Default",
+                                            Name = "Default", //NOXLATE
                                             CoordinateSystem = shpl.CoordinateSystem
                                         });
 
                                         //Update this feature source
                                         this.Parent.ResourceService.SaveResource(fs);
 
-                                        cb(this, new LengthyOperationProgressArgs("Set default spatial context for: " + fsId, current));
+                                        cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateSetSpatialContext, fsId), current));
                                     }
                                     else if (spatialContexts.SpatialContext.Count == 1) //Case 3: One spatial context with blank WKT. Override it using the SupplementalContextInfo
                                     {
@@ -392,7 +392,7 @@
                                             //Update this feature source
                                             this.Parent.ResourceService.SaveResource(fs);
 
-                                            cb(this, new LengthyOperationProgressArgs("Set default spatial context for: " + fsId, current));
+                                            cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateSetSpatialContext, fsId), current));
                                         }
                                     }
                                 }
@@ -481,7 +481,7 @@
 
                                 this.Parent.ResourceService.SaveResource(ld);
                                 resCreatedOrUpdated.Add(lyrId);
-                                cb(this, new LengthyOperationProgressArgs("Created: " + lyrId, current));
+                                cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateCreated, lyrId), current));
                             }
                         }
                     }
@@ -489,7 +489,7 @@
                 }
                 else
                 {
-                    cb(this, new LengthyOperationProgressArgs("File not found: " + file, current));
+                    cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateFileNotFound, file), current));
                 }
 
                 //This file is now fully processed, so increment progress
@@ -497,7 +497,7 @@
 
                 if (success)
                 {
-                    cb(this, new LengthyOperationProgressArgs("Success: " + file, current));
+                    cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateSuccess, file), current));
                 }
             }
 
@@ -513,31 +513,31 @@
             int current = 0;
 
             string root = proc.RootPath;
-            if (!root.EndsWith("/"))
-                root += "/";
+            if (!root.EndsWith("/")) //NOXLATE
+                root += "/"; //NOXLATE
 
             string sdp = proc.SpatialDataSourcesPath;
             string lp = proc.LayersPath;
 
             if (!string.IsNullOrEmpty(sdp))
             {
-                if (!sdp.EndsWith("/"))
-                    sdp += "/";
+                if (!sdp.EndsWith("/")) //NOXLATE
+                    sdp += "/"; //NOXLATE
             }
 
             if (!string.IsNullOrEmpty(lp))
             {
-                if (!lp.EndsWith("/"))
-                    lp += "/";
+                if (!lp.EndsWith("/")) //NOXLATE
+                    lp += "/"; //NOXLATE
             }
 
             string fsRoot = (string.IsNullOrEmpty(sdp) ? root : sdp) + proc.SpatialDataSourcesFolder;
             string layerRoot = (string.IsNullOrEmpty(lp) ? root : lp) + proc.LayersFolder;
 
-            if (!fsRoot.EndsWith("/"))
-                fsRoot += "/";
-            if (!layerRoot.EndsWith("/"))
-                layerRoot += "/";
+            if (!fsRoot.EndsWith("/")) //NOXLATE
+                fsRoot += "/"; //NOXLATE
+            if (!layerRoot.EndsWith("/")) //NOXLATE
+                layerRoot += "/"; //NOXLATE
 
             List<string> resToUpdate = new List<string>();
             if (proc.ResourceId != null && proc.ResourceId.Count > 0)
@@ -560,9 +560,9 @@
 
                     string resName = System.IO.Path.GetFileNameWithoutExtension(file);
                     string dataName = System.IO.Path.GetFileName(file);
-                    string dsId = fsRoot + resName + ".DrawingSource";
-                    string fsId = fsRoot + resName + ".FeatureSource";
-                    string lyrId = layerRoot + resName + ".LayerDefinition";
+                    string dsId = fsRoot + resName + ".DrawingSource"; //NOXLATE
+                    string fsId = fsRoot + resName + ".FeatureSource"; //NOXLATE
+                    string lyrId = layerRoot + resName + ".LayerDefinition"; //NOXLATE
 
                     if (proc.GenerateSpatialDataSources)
                     {
@@ -584,11 +584,11 @@
                                 ds.ResourceID = dsId;
                                 this.Parent.ResourceService.SaveResource(ds);
                                 resCreatedOrUpdated.Add(dsId);
-                                cb(this, new LengthyOperationProgressArgs("Created: " + dsId, current));
+                                cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateCreated, dsId), current));
 
                                 //Step 2: Load resource data for document
                                 this.Parent.ResourceService.SetResourceData(dsId, dataName, ResourceDataType.File, System.IO.File.OpenRead(file));
-                                cb(this, new LengthyOperationProgressArgs("Loaded: " + file, current));
+                                cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateLoaded, file), current));
 
                                 var dwSvc = (IDrawingService)Parent.GetService((int)ServiceType.Drawing);
                                 var list = dwSvc.EnumerateDrawingSections(dsId);
@@ -617,22 +617,22 @@
                                 // 4. If no spatial contexts are detected, assign a default one from the load procedure and save the modified feature source.
 
                                 //Step 1: Create feature source document
-                                string provider = "OSGeo.SDF";
+                                string provider = "OSGeo.SDF"; //NOXLATE
 
                                 switch (proc.Type)
                                 {
                                     case LoadType.Sqlite:
-                                        provider = "OSGeo.SQLite";
+                                        provider = "OSGeo.SQLite"; //NOXLATE
                                         break;
                                 }
                                 var conp = new NameValueCollection();
-                                conp["File"] = "%MG_DATA_FILE_PATH%" + dataName;
+                                conp["File"] = StringConstants.MgDataFilePath + dataName;
                                 var fs = ObjectFactory.CreateFeatureSource(this.Parent, provider, conp);
                                 fs.ResourceID = fsId;
 
                                 this.Parent.ResourceService.SaveResource(fs);
                                 resCreatedOrUpdated.Add(fsId);
-                                cb(this, new LengthyOperationProgressArgs("Created: " + fsId, current));
+                                cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateCreated, fsId), current));
 
                                 //TODO: When the infrastructure is available to us (ie. A portable .net FDO/MG Feature Service API wrapper)
                                 //Maybe then we can actually implement the generalization and duplicate record handling properties. Until then, we skip
@@ -641,13 +641,13 @@
                                 //Step 2: Load resource data for document
                                 this.Parent.ResourceService.SetResourceData(fsId, dataName, ResourceDataType.File, System.IO.File.OpenRead(file));
 
-                                cb(this, new LengthyOperationProgressArgs("Loaded: " + file, current));
+                                cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateCreated, file), current));
 
                                 //Step 3: Test to make sure we're all good so far
                                 string result = this.Parent.FeatureService.TestConnection(fsId);
 
                                 //LocalNativeConnection returns this string, so I'm assuming this is the "success" result
-                                if (result == "No errors" || result.ToLower() == "true")
+                                if (result == "No errors" || result.ToLower() == "true") //NOXLATE
                                 {
                                     //Step 4: Test to see if default cs needs to be specified
                                     FdoSpatialContextList spatialContexts = this.Parent.FeatureService.GetSpatialContextInfo(fsId, false);
@@ -659,14 +659,14 @@
                                             //Register the default CS from the load procedure
                                             fs.AddSpatialContextOverride(new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.SpatialContextType()
                                             {
-                                                Name = "Default",
+                                                Name = "Default", //NOXLATE
                                                 CoordinateSystem = proc.CoordinateSystem
                                             });
 
                                             //Update this feature source
                                             this.Parent.ResourceService.SaveResource(fs);
 
-                                            cb(this, new LengthyOperationProgressArgs("Set default spatial context for: " + fsId, current));
+                                            cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateSetSpatialContext, fsId), current));
                                         }
                                         else if (spatialContexts.SpatialContext.Count == 1) //Case 2: One spatial context, but its WKT is blank. Override using SupplementalContextInfo
                                         {
@@ -683,7 +683,7 @@
                                                 //Update this feature source
                                                 this.Parent.ResourceService.SaveResource(fs);
 
-                                                cb(this, new LengthyOperationProgressArgs("Set default spatial context for: " + fsId, current));
+                                                cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateSetSpatialContext, fsId), current));
                                             }
                                         }
                                     }
@@ -720,7 +720,7 @@
 
                                     this.Parent.ResourceService.SaveResource(ld);
                                     resCreatedOrUpdated.Add(lyrId);
-                                    cb(this, new LengthyOperationProgressArgs("Created: " + lyrId, current));
+                                    cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateCreated, lyrId), current));
                                 }
                             }
                             else
@@ -803,7 +803,7 @@
 
                                         this.Parent.ResourceService.SaveResource(ld);
                                         resCreatedOrUpdated.Add(lyrId);
-                                        cb(this, new LengthyOperationProgressArgs("Created: " + lyrId, current));
+                                        cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateCreated, lyrId), current));
                                     }
                                 }
                             }
@@ -813,7 +813,7 @@
                 }
                 else
                 {
-                    cb(this, new LengthyOperationProgressArgs("File not found: " + file, current));
+                    cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateFileNotFound, file), current));
                 }
 
                 //This file is now fully processed, so increment progress
@@ -821,7 +821,7 @@
 
                 if (success)
                 {
-                    cb(this, new LengthyOperationProgressArgs("File processed: " + file, current));
+                    cb(this, new LengthyOperationProgressArgs(string.Format(Properties.Resources.TemplateFileProcessed, file), current));
                 }
             }
             return resCreatedOrUpdated.ToArray();

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/FeatureManipulationCommandImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/FeatureManipulationCommandImpl.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/FeatureManipulationCommandImpl.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -109,9 +109,9 @@
         {
             base.ValidateCoreParams();
             if (string.IsNullOrEmpty(this.FeatureSourceId))
-                throw new InvalidOperationException("No feature source id specified"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoFeatureSourceIdSpecified);
             if (string.IsNullOrEmpty(this.ClassName))
-                throw new InvalidOperationException("No class name specified"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoFeatureSourceIdSpecified);
         }
     }
 
@@ -155,7 +155,7 @@
             {
                 base.ValidateParams();
                 if (this.RecordToInsert == null)
-                    throw new InvalidOperationException("Nothing to insert"); //LOCALIZEME
+                    throw new InvalidOperationException(Properties.Resources.ErrorNothingToInsert);
 
                 this.ExecuteInternal(); 
             }
@@ -217,7 +217,7 @@
         {
             base.ValidateParams();
             if (this.ValuesToUpdate == null)
-                throw new InvalidOperationException("No values specified for updating"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoValuesSpecifiedForUpdating);
 
             return ExecuteInternal();
         }
@@ -307,9 +307,9 @@
         {
             base.ValidateCoreParams();
             if (string.IsNullOrEmpty(this.FeatureSourceId))
-                throw new InvalidOperationException("Empty feature source id"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorEmptyFeatureSourceId);
             if (this.Schema == null)
-                throw new InvalidOperationException("No schema specified to apply"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoSchemaSpecifiedToApply);
 
             this.ExecuteInternal();
         }
@@ -387,19 +387,19 @@
         {
             this.ValidateCoreParams();
             if (string.IsNullOrEmpty(this.FeatureSourceId))
-                throw new InvalidOperationException("No feature source id specified"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoFeatureSourceIdSpecified);
             if (string.IsNullOrEmpty(this.CoordinateSystemWkt))
-                throw new InvalidOperationException("No coordinate system WKT specified"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoCoordinateSystemWktSpecified);
             if (this.Extent == null && this.ExtentType != OSGeo.MapGuide.ObjectModels.Common.FdoSpatialContextListSpatialContextExtentType.Dynamic)
-                throw new InvalidOperationException("No extent specified for static extent type"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoExtentSpecifiedForStaticType);
             if (string.IsNullOrEmpty(this.FileName))
-                throw new InvalidOperationException("No file name specified"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoFileNameSpecified);
             if (string.IsNullOrEmpty(this.Name))
-                throw new InvalidOperationException("No spatial context name specified. This is the name that should be referred to by any spatial context associations in your feature schema");
+                throw new InvalidOperationException(Properties.Resources.ErrorNoSpatialContextNameSpecified);
             if (string.IsNullOrEmpty(this.Provider))
-                throw new InvalidOperationException("No provider specified"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoProviderSpecified);
             if (this.Schema == null)
-                throw new InvalidOperationException("No schema specified"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorNoSchemaSpecified);
             this.ExecuteInternal();
         }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/IGetFdoCacheInfo.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/IGetFdoCacheInfo.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/IGetFdoCacheInfo.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -53,7 +53,7 @@
     /// <summary>
     /// Represents the cache status of FDO connections currently managed by the MapGuide Server
     /// </summary>
-    [XmlRoot(ElementName = "FdoCacheInformation")]
+    [XmlRoot(ElementName = "FdoCacheInformation")] //NOXLATE
     public class FdoCacheInfo
     {
         private static XmlSerializer smSerializer;
@@ -88,16 +88,16 @@
         /// <value>
         /// The configuration.
         /// </value>
-        [XmlElement(ElementName = "ConfigurationSettings")]
-        [DisplayName("Configuration Settings")]
+        [XmlElement(ElementName = "ConfigurationSettings")] //NOXLATE
+        [DisplayName("Configuration Settings")] //NOXLATE
         public ConfigurationSettings Configuration { get; set; }
 
 
         /// <summary>
         /// Gets an array of cache status of connections for each provider
         /// </summary>
-        [XmlElement(ElementName = "Provider")]
-        [DisplayName("Cached FDO Providers")]
+        [XmlElement(ElementName = "Provider")] //NOXLATE
+        [DisplayName("Cached FDO Providers")] //NOXLATE
         public CachedProviderInfo[] Providers { get; set; }
     }
 
@@ -112,7 +112,7 @@
         /// Gets the feature source
         /// </summary>
         [XmlElement]
-        [DisplayName("Feature Source")]
+        [DisplayName("Feature Source")] //NOXLATE
         public string Name { get; set; }
 
         /// <summary>
@@ -161,7 +161,7 @@
         /// <summary>
         /// Gets the feature source
         /// </summary>
-        [XmlElement(ElementName = "Name")]
+        [XmlElement(ElementName = "Name")] //NOXLATE
         public string FeatureSourceId { get; set; }
 
         /// <summary>
@@ -197,8 +197,8 @@
         /// <summary>
         /// Gets an array of cached connections using this provider
         /// </summary>
-        [XmlElement(ElementName = "CachedFdoConnection")]
-        [DisplayName("Cached Feature Sources")]
+        [XmlElement(ElementName = "CachedFdoConnection")] //NOXLATE
+        [DisplayName("Cached Feature Sources")] //NOXLATE
         public CachedFdoConnection[] CachedFdoConnections { get; set; }
     }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ConnectionProviderRegistry.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ConnectionProviderRegistry.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ConnectionProviderRegistry.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -122,7 +122,7 @@
     /// </example>
     public sealed class ConnectionProviderRegistry
     {
-        const string PROVIDER_CONFIG = "ConnectionProviders.xml";
+        const string PROVIDER_CONFIG = "ConnectionProviders.xml"; //NOXLATE
 
         static Dictionary<string, ConnectionFactoryMethod> _ctors;
         static List<ConnectionProviderEntry> _providers;
@@ -142,13 +142,13 @@
             XmlDocument doc = new XmlDocument();
             doc.Load(path);
 
-            XmlNodeList providers = doc.SelectNodes("//ConnectionProviderRegistry/ConnectionProvider");
+            XmlNodeList providers = doc.SelectNodes("//ConnectionProviderRegistry/ConnectionProvider"); //NOXLATE
             foreach (XmlNode prov in providers)
             {
-                string name = prov["Name"].InnerText.ToUpper();
-                string desc = prov["Description"].InnerText;
-                string dll = prov["Assembly"].InnerText;
-                string type = prov["Type"].InnerText;
+                string name = prov["Name"].InnerText.ToUpper(); //NOXLATE
+                string desc = prov["Description"].InnerText; //NOXLATE
+                string dll = prov["Assembly"].InnerText; //NOXLATE
+                string type = prov["Type"].InnerText; //NOXLATE
 
                 if (!System.IO.Path.IsPathRooted(dll))
                     dll = System.IO.Path.Combine(_dllRoot, dll);
@@ -210,7 +210,7 @@
         {
             string name = entry.Name.ToUpper();
             if (_ctors.ContainsKey(name))
-                throw new ArgumentException("Provider already registered: " + entry.Name);
+                throw new ArgumentException(string.Format(Properties.Resources.ErrorProviderAlreadyRegistered, entry.Name));
 
             _ctors[name] = method;
             _providers.Add(entry);
@@ -226,11 +226,11 @@
         {
             string name = provider.ToUpper();
             if (!_ctors.ContainsKey(name))
-                throw new ArgumentException("Provider not registered: " + provider);
+                throw new ArgumentException(string.Format(Properties.Resources.ErrorProviderNotRegistered, provider));
 
             ConnectionProviderEntry prv = FindProvider(provider);
             if (prv != null && !prv.IsMultiPlatform && Platform.IsRunningOnMono)
-                throw new NotSupportedException("The specified provider is not usable in your operating system");
+                throw new NotSupportedException(string.Format(Properties.Resources.ErrorProviderNotUsableForYourPlatform, provider));
 
             ConnectionFactoryMethod method = _ctors[name];
 
@@ -248,11 +248,11 @@
         {
             string name = provider.ToUpper();
             if (!_ctors.ContainsKey(name))
-                throw new ArgumentException("Provider not registered: " + provider);
+                throw new ArgumentException(string.Format(Properties.Resources.ErrorProviderNotRegistered, provider));
 
             ConnectionProviderEntry prv = FindProvider(provider);
             if (prv != null && !prv.IsMultiPlatform && Platform.IsRunningOnMono)
-                throw new NotSupportedException("The specified provider is not usable in your operating system");
+                throw new NotSupportedException(string.Format(Properties.Resources.ErrorProviderNotUsableForYourPlatform, provider));
 
             var method = _ctors[name];
             return method(connInitParams);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ActualCoordinateSystem.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ActualCoordinateSystem.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ActualCoordinateSystem.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -32,28 +32,16 @@
     internal class ActualCoordinateSystem : MeterBasedCoordinateSystem
     {
         private ICoordinateTransformation m_transform;
-        private const string XY_M = "LOCAL_CS[\"Non-Earth (Meter)\",LOCAL_DATUM[\"Local Datum\",0],UNIT[\"Meter\", 1],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]]";
+        private const string XY_M = "LOCAL_CS[\"Non-Earth (Meter)\",LOCAL_DATUM[\"Local Datum\",0],UNIT[\"Meter\", 1],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH]]"; //NOXLATE
 
         internal ActualCoordinateSystem(ICoordinateSystem coordinateSystem)
         {
             if (coordinateSystem == null)
-                throw new ArgumentNullException("coordinateSystem");
+                throw new ArgumentNullException("coordinateSystem"); //NOXLATE
 
             CoordinateTransformationFactory f = new CoordinateTransformationFactory();
             CoordinateSystemFactory cf = new CoordinateSystemFactory();
 
-            /*Topology.CoordinateSystems.ICoordinateSystem local = cf.CreateLocalCoordinateSystem(
-                "Non-Earth (Meter)",
-                cf.CreateLocalDatum("Local Datum", Topology.CoordinateSystems.DatumType.VD_Normal),
-                new Topology.CoordinateSystems.LinearUnit(1.0, "Meter", "", 0, "", "", ""),
-                new List<Topology.CoordinateSystems.AxisInfo>(new Topology.CoordinateSystems.AxisInfo[] {
-                    new Topology.CoordinateSystems.AxisInfo("X", Topology.CoordinateSystems.AxisOrientationEnum.East),
-                    new Topology.CoordinateSystems.AxisInfo("Y", Topology.CoordinateSystems.AxisOrientationEnum.North)
-                })
-            );
-
-            string s = cf.ToString();*/
-
             m_transform = f.CreateFromCoordinateSystems(coordinateSystem, cf.CreateFromWkt(XY_M));
         }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystem.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystem.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystem.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -102,86 +102,86 @@
         /// Gets or sets the code.
         /// </summary>
         /// <value>The code.</value>
-		public string Code 
-		{ 
-			get { return m_code; } 
-			set { m_code = value; }
-		}
+        public string Code 
+        { 
+            get { return m_code; } 
+            set { m_code = value; }
+        }
         /// <summary>
         /// Gets or sets the description.
         /// </summary>
         /// <value>The description.</value>
-		public string Description 
-		{ 
-			get { return m_description; } 
-			set { m_description = value; }
-		}
+        public string Description 
+        { 
+            get { return m_description; } 
+            set { m_description = value; }
+        }
         /// <summary>
         /// Gets the projection.
         /// </summary>
         /// <value>The projection.</value>
-		public string Projection { get { return m_projection; } }
+        public string Projection { get { return m_projection; } }
         /// <summary>
         /// Gets the projection description.
         /// </summary>
         /// <value>The projection description.</value>
-		public string ProjectionDescription { get { return m_projectionDescription; } }
+        public string ProjectionDescription { get { return m_projectionDescription; } }
         /// <summary>
         /// Gets the datum.
         /// </summary>
         /// <value>The datum.</value>
-		public string Datum { get { return m_datum; } }
+        public string Datum { get { return m_datum; } }
         /// <summary>
         /// Gets the datum description.
         /// </summary>
         /// <value>The datum description.</value>
-		public string DatumDescription { get { return m_datumDescription; } }
+        public string DatumDescription { get { return m_datumDescription; } }
         /// <summary>
         /// Gets the ellipsoid.
         /// </summary>
         /// <value>The ellipsoid.</value>
-		public string Ellipsoid { get { return m_ellipsoid; } }
+        public string Ellipsoid { get { return m_ellipsoid; } }
         /// <summary>
         /// Gets the ellipsoid description.
         /// </summary>
         /// <value>The ellipsoid description.</value>
-		public string EllipsoidDescription { get { return m_ellipsoidDescription; } }
+        public string EllipsoidDescription { get { return m_ellipsoidDescription; } }
 
         /// <summary>
         /// Gets or sets the WKT.
         /// </summary>
         /// <value>The WKT.</value>
-		public string WKT 
-		{
-			get 
-			{
-				if (m_wkt == null)
-					m_wkt = m_parent.Parent.ConvertCoordinateSystemCodeToWkt(m_code);
-				return m_wkt;
-			}
-			set
-			{
-				m_wkt = value;
-			}
-		}
+        public string WKT 
+        {
+            get 
+            {
+                if (m_wkt == null)
+                    m_wkt = m_parent.Parent.ConvertCoordinateSystemCodeToWkt(m_code);
+                return m_wkt;
+            }
+            set
+            {
+                m_wkt = value;
+            }
+        }
 
         /// <summary>
         /// Gets the EPSG code
         /// </summary>
         /// <value>The EPSG code.</value>
-		public string EPSG 
-		{
-			get 
-			{
-				if (m_epsg == null)
-					if (m_code.StartsWith("EPSG:"))
-						m_epsg = m_code.Substring(5);
-					else
-						m_epsg = m_parent.Parent.ConvertWktToEpsgCode(m_parent.Parent.ConvertCoordinateSystemCodeToWkt(m_code));
+        public string EPSG 
+        {
+            get 
+            {
+                if (m_epsg == null)
+                    if (m_code.StartsWith("EPSG:")) //NOXLATE
+                        m_epsg = m_code.Substring(5);
+                    else
+                        m_epsg = m_parent.Parent.ConvertWktToEpsgCode(m_parent.Parent.ConvertCoordinateSystemCodeToWkt(m_code));
 
-				return m_epsg;
-			}
-		}
+                return m_epsg;
+            }
+        }
 
         /// <summary>
         /// Returns a <see cref="System.String"/> that represents this instance.
@@ -189,16 +189,16 @@
         /// <returns>
         /// A <see cref="System.String"/> that represents this instance.
         /// </returns>
-		public override string ToString()
-		{
-			if (m_description == null && m_code == null)
-				return m_wkt == null ? "<null>" : m_wkt;
-			else if (m_description == null)
-				return m_code;
-			else if (m_code == null)
-				return m_description;
-			else
-				return m_description + " (" + m_code + ")";
-		}
+        public override string ToString()
+        {
+            if (m_description == null && m_code == null)
+                return m_wkt == null ? "<null>" : m_wkt; //NOXLATE
+            else if (m_description == null)
+                return m_code;
+            else if (m_code == null)
+                return m_description;
+            else
+                return m_description + " (" + m_code + ")"; //NOXLATE
+        }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCategory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCategory.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/CoordinateSystemCategory.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -64,26 +64,6 @@
                     {
                         m_items = _parent.EnumerateCoordinateSystems(m_name);
                     }
-                    /*
-                    if (_parent != null)
-                    {
-                        string req = m_httpParent.RequestBuilder.EnumerateCoordinateSystems(m_name);
-                        XmlDocument doc = new XmlDocument();
-                        doc.Load(m_httpParent.Connection.WebClient.OpenRead(req));
-                        XmlNodeList lst = doc.SelectNodes("BatchPropertyCollection/PropertyCollection");
-                        CoordSys[] data = new CoordSys[lst.Count];
-                        for (int i = 0; i < lst.Count; i++)
-                            data[i] = new CoordSys(this, lst[i]);
-                        m_items = data;
-                    }
-                    else
-                    {
-                        MgBatchPropertyCollection bp = m_localParent.m_cf.EnumerateCoordinateSystems(m_name);
-                        List<CoordSys> lst = new List<CoordSys>();
-                        for(int i = 0; i < bp.Count; i++)
-                            lst.Add(new CoordSys(this, bp[i]));
-
-                    }*/
 				}
 				return m_items;
 			}

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ISimpleTransform.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ISimpleTransform.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CoordinateSystem/ISimpleTransform.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -51,7 +51,7 @@
         private ICoordinateSystem _target;
         private ICoordinateTransformation _trans;
 
-        const string CSMAP_WGS84_PSEUDO_MERCATOR = @"PROJCS[""WGS84.PseudoMercator"",GEOGCS[""LL84"",DATUM[""WGS84"",SPHEROID[""WGS84"",6378137.000,298.25722293]],PRIMEM[""Greenwich"",0],UNIT[""Degree"",0.017453292519943295]],PROJECTION[""Popular Visualisation Pseudo Mercator""],PARAMETER[""false_easting"",0.000],PARAMETER[""false_northing"",0.000],PARAMETER[""central_meridian"",0.00000000000000],UNIT[""Meter"",1.00000000000000]]";
+        const string CSMAP_WGS84_PSEUDO_MERCATOR = @"PROJCS[""WGS84.PseudoMercator"",GEOGCS[""LL84"",DATUM[""WGS84"",SPHEROID[""WGS84"",6378137.000,298.25722293]],PRIMEM[""Greenwich"",0],UNIT[""Degree"",0.017453292519943295]],PROJECTION[""Popular Visualisation Pseudo Mercator""],PARAMETER[""false_easting"",0.000],PARAMETER[""false_northing"",0.000],PARAMETER[""central_meridian"",0.00000000000000],UNIT[""Meter"",1.00000000000000]]"; //NOXLATE
 
         // Proj.Net cannot handle the WGS84.PseudoMercator WKT. Here's an alternative WKT that is Proj.Net compatible and produces
         // approximately similar results:
@@ -75,7 +75,7 @@
 PARAMETER[""Latitude_of_origin"", 0],
 UNIT[""metre"", 1, AUTHORITY[""EPSG"", ""9001""]],
 AXIS[""East"", EAST], AXIS[""North"", NORTH],
-AUTHORITY[""EPSG"",""3785""]]";
+AUTHORITY[""EPSG"",""3785""]]"; //NOXLATE
 
         /// <summary>
         /// Initializes a new instance of the <see cref="DefaultSimpleTransform"/> class.

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CredentialWriter.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CredentialWriter.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CredentialWriter.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -40,12 +40,12 @@
         /// <param name="password"></param>
         public static void SetEncryptedCredentials(this IFeatureSource fs, string username, string password)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             if (string.IsNullOrEmpty(fs.ResourceID))
-                throw new ArgumentException("Feature Source has no resource ID attached"); //LOCALIZEME
+                throw new ArgumentException(Properties.Resources.ErrorNoResourceIdAttached);
             using (var stream = CredentialWriter.Write(username, password))
             {
-                fs.SetResourceData("MG_USER_CREDENTIALS", ObjectModels.Common.ResourceDataType.String, stream);
+                fs.SetResourceData(StringConstants.MgUserCredentialsResourceData, ObjectModels.Common.ResourceDataType.String, stream);
             }
         }
 
@@ -56,13 +56,13 @@
         /// <returns></returns>
         public static string GetEncryptedUsername(this IFeatureSource fs)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             var resData = fs.EnumerateResourceData();
             foreach (var rd in resData)
             {
-                if (rd.Name.ToUpper() == "MG_USER_CREDENTIALS")
+                if (rd.Name.ToUpper() == StringConstants.MgUserCredentialsResourceData)
                 {
-                    using (var sr = new StreamReader(fs.GetResourceData("MG_USER_CREDENTIALS")))
+                    using (var sr = new StreamReader(fs.GetResourceData(StringConstants.MgUserCredentialsResourceData)))
                     {
                         return sr.ReadToEnd();
                     }
@@ -83,20 +83,20 @@
         //I'm sure this particular key isn't meant to be made public, but being able to correctly
         //write MG_USER_CREDENTIALS trumps this concern. Besides, if this key were to be truly private, it wouldn't be publicly visible
         //in the source code of a publicly accessible repository now would it?
-        const string MG_CRYPTOGRAPHY_PRIVATE_KEY         = "WutsokeedbA";
+        const string MG_CRYPTOGRAPHY_PRIVATE_KEY         = "WutsokeedbA"; //NOXLATE
 
-        static readonly char[] MG_CRYPTOGRAPHY_DEC_CHARS = { '0','1','2','3','4','5','6','7','8','9' };
-        static readonly char[] MG_CRYPTOGRAPHY_HEX_CHARS = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
-        const int MG_CRYPTOGRAPHY_MAGIC_NUMBER_1         = 42;
+        static readonly char[] MG_CRYPTOGRAPHY_DEC_CHARS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; //NOXLATE
+        static readonly char[] MG_CRYPTOGRAPHY_HEX_CHARS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; //NOXLATE
+        const int MG_CRYPTOGRAPHY_MAGIC_NUMBER_1         = 42; //NOXLATE
         const int MG_CRYPTOGRAPHY_MAGIC_NUMBER_2         = 3;
         const int MG_CRYPTOGRAPHY_MIN_COLUMN_NUMBER      = 5;
 
         const int MIN_CIPHER_TEXT_LENGTH = 34;
         const int MIN_KEY_LENGTH = 14;
         const int MAX_KEY_LENGTH = 32;
-        const string STRING_DELIMITER = "\v";
-        const string RESERVED_CHARACTERS_STRINGS = "\v\f";
-        const string RESERVED_CHARACTERS_CREDENTIALS = "\t\r\n\v\f";
+        const string STRING_DELIMITER = "\v"; //NOXLATE
+        const string RESERVED_CHARACTERS_STRINGS = "\v\f"; //NOXLATE
+        const string RESERVED_CHARACTERS_CREDENTIALS = "\t\r\n\v\f"; //NOXLATE
 
         /// <summary>
         /// Encrypts the specified credentials. For a feature source that uses %MG_USERNAME% and %MG_PASSWORD% placeholder tokens to
@@ -118,11 +118,11 @@
             var reservedChars = reservedCharacters.ToCharArray();
             if (plainText1.IndexOfAny(reservedChars) >= 0)
             {
-                throw new ArgumentException("plainText1 contains reserved characters");
+                throw new ArgumentException(string.Format(Properties.Resources.ErrorArgContainsReservedCharacters, "plainText1")); //NOXLATE
             }
             if (plainText2.IndexOfAny(reservedChars) >= 0)
             {
-                throw new ArgumentException("plainText2 contains reserved characters");
+                throw new ArgumentException(string.Format(Properties.Resources.ErrorArgContainsReservedCharacters, "plainText2")); //NOXLATE
             }
 
             string publicKey;
@@ -177,7 +177,7 @@
         static void GenerateCryptographKey(out string publicKey)
         {
             DateTime dt = DateTime.UtcNow;
-            publicKey = dt.ToString("yyyymmddHHmmss");
+            publicKey = dt.ToString("yyyymmddHHmmss"); //NOXLATE
         }
 
         static void CombineStrings(string str1, string str2, out string outStr)
@@ -219,7 +219,7 @@
         {
             int binStrLen = binStr.Length;
 
-            hexStr = "";
+            hexStr = string.Empty;
 
             StringBuilder sb = new StringBuilder();
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceMigrator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceMigrator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceMigrator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -77,8 +77,8 @@
         /// <param name="target">The target.</param>
         public ResourceMigrator(IServerConnection source, IServerConnection target)
         {
-            Check.NotNull(source, "source");
-            Check.NotNull(target, "target");
+            Check.NotNull(source, "source"); //NOXLATE
+            Check.NotNull(target, "target"); //NOXLATE
             _source = source;
             _target = target;
             _converter = new ResourceObjectConverter();
@@ -95,9 +95,9 @@
         /// <returns></returns>
         public string[] CopyResources(string[] sourceResourceIds, string[] targetResourceIds, bool overwrite, RebaseOptions options, LengthyOperationProgressCallBack callback)
         {
-            Check.NotNull(sourceResourceIds, "sourceResourceIds");
-            Check.NotNull(targetResourceIds, "targetResourceIds");
-            Check.Precondition(sourceResourceIds.Length == targetResourceIds.Length, "resourceIds.Length == targetResourceIds.Length");
+            Check.NotNull(sourceResourceIds, "sourceResourceIds"); //NOXLATE
+            Check.NotNull(targetResourceIds, "targetResourceIds"); //NOXLATE
+            Check.Precondition(sourceResourceIds.Length == targetResourceIds.Length, "resourceIds.Length == targetResourceIds.Length"); //NOXLATE
 
             var copiedItems = new List<string>();
             var cb = callback;
@@ -115,7 +115,7 @@
             int unit = 100 / sourceResourceIds.Length;
             int progress = 0;
 
-            string message = "";
+            string message = string.Empty;
             for (int i = 0; i < sourceResourceIds.Length; i++)
             {
                 var srcResId = sourceResourceIds[i];
@@ -193,8 +193,8 @@
         /// <returns></returns>
         public int CopyResources(string[] resourceIds, string folderId, bool overwrite, LengthyOperationProgressCallBack callback)
         {
-            Check.NotNull(resourceIds, "resourceIds");
-            Check.NotEmpty(folderId, "folderId");
+            Check.NotNull(resourceIds, "resourceIds"); //NOXLATE
+            Check.NotEmpty(folderId, "folderId"); //NOXLATE
 
             var cb = callback;
             if (cb == null)
@@ -212,8 +212,8 @@
             int progress = 0;
             foreach (var resId in resourceIds)
             {
-                string targetId = folderId + ResourceIdentifier.GetName(resId) + "." + ResourceIdentifier.GetResourceType(resId);
-                string message = "";
+                string targetId = folderId + ResourceIdentifier.GetName(resId) + "." + ResourceIdentifier.GetResourceType(resId); //NOXLATE
+                string message = string.Empty;
                 IResource res = _source.ResourceService.GetResource(resId);
 
                 //Skip if target exists and overwrite is not specified
@@ -275,8 +275,8 @@
         /// <returns></returns>
         public int MoveResources(string[] resourceIds, string folderId, bool overwrite, LengthyOperationProgressCallBack callback)
         {
-            Check.NotNull(resourceIds, "resourceIds");
-            Check.NotEmpty(folderId, "folderId");
+            Check.NotNull(resourceIds, "resourceIds"); //NOXLATE
+            Check.NotEmpty(folderId, "folderId"); //NOXLATE
 
             var cb = callback;
             if (cb == null)
@@ -294,8 +294,8 @@
             int progress = 0;
             foreach (var resId in resourceIds)
             {
-                string targetId = folderId + ResourceIdentifier.GetName(resId) + "." + ResourceIdentifier.GetResourceType(resId);
-                string message = "";
+                string targetId = folderId + ResourceIdentifier.GetName(resId) + "." + ResourceIdentifier.GetResourceType(resId); //NOXLATE
+                string message = string.Empty;
                 IResource res = _source.ResourceService.GetResource(resId);
 
                 //Skip if target exists and overwrite is not specified
@@ -358,8 +358,8 @@
         /// <returns>An array of resource ids that were succesfully migrated</returns>
         public string[] MigrateResource(string resourceId, string[] dependentResourceIds, bool overwrite, LengthyOperationProgressCallBack callback)
         {
-            Check.NotEmpty(resourceId, "resourceId");
-            Check.NotNull(dependentResourceIds, "dependentResourceIds");
+            Check.NotEmpty(resourceId, "resourceId"); //NOXLATE
+            Check.NotNull(dependentResourceIds, "dependentResourceIds"); //NOXLATE
 
             //TODO: Figure out a more elegant strategy of handling saving resources
             //to older versions (downgrading?)
@@ -488,7 +488,7 @@
         /// <returns>An array of resource ids that were succesfully migrated</returns>
         public string[] MigrateResource(string resourceId, bool overwrite, LengthyOperationProgressCallBack callback)
         {
-            Check.NotEmpty(resourceId, "resourceId");
+            Check.NotEmpty(resourceId, "resourceId"); //NOXLATE
             Dictionary<string, string> resIds = new Dictionary<string, string>();
             var refList = GetReverseReferences(resourceId);
             BuildFullDependencyList(resIds, refList);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceRebaser.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceRebaser.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/CrossConnection/ResourceRebaser.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -38,8 +38,8 @@
         /// <param name="targetFolder">The target folder.</param>
         public RebaseOptions(string sourceFolder, string targetFolder)
         {
-            Check.Precondition(ResourceIdentifier.IsFolderResource(sourceFolder), "ResourceIdentifier.IsFolderResource(sourceFolder)");
-            Check.Precondition(ResourceIdentifier.IsFolderResource(targetFolder), "ResourceIdentifier.IsFolderResource(targetFolder)");
+            Check.Precondition(ResourceIdentifier.IsFolderResource(sourceFolder), "ResourceIdentifier.IsFolderResource(sourceFolder)"); //NOXLATE
+            Check.Precondition(ResourceIdentifier.IsFolderResource(targetFolder), "ResourceIdentifier.IsFolderResource(targetFolder)"); //NOXLATE
 
             this.SourceFolder = sourceFolder;
             this.TargetFolder = targetFolder;
@@ -95,7 +95,7 @@
             var doc = new XmlDocument();
             doc.LoadXml(xml);
 
-            var elements = doc.GetElementsByTagName("ResourceId");
+            var elements = doc.GetElementsByTagName("ResourceId"); //NOXLATE
             foreach (XmlNode el in elements)
             {
                 el.InnerText = el.InnerText.Replace(sourceRoot, targetRoot);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Enums.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Enums.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Enums.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -152,13 +152,13 @@
 	{
 		private static string[] ResourceTypeNames = new string[]
 		{
-			"MapDefinition",
-			"LayerDefinition",
-			"FeatureSource",
-			"WebLayout",
-			"Map",
-			"",
-			"ApplicationDefinition",
+			"MapDefinition", //NOXLATE
+			"LayerDefinition", //NOXLATE
+			"FeatureSource", //NOXLATE
+			"WebLayout", //NOXLATE
+			"Map", //NOXLATE
+			string.Empty, //NOXLATE
+			"ApplicationDefinition", //NOXLATE
 		};
 
 		internal static string ResourceName(ResourceTypes type)
@@ -171,7 +171,7 @@
 				if (type == ResourceTypes.Folder || !prefixWithDot)
 					return ResourceTypeNames[(int)type];
 				else
-					return "." + ResourceTypeNames[(int)type];
+                    return "." + ResourceTypeNames[(int)type]; //NOXLATE
 		}
 
 	}

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Exceptions/NestedExceptionMessageProcessor.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Exceptions/NestedExceptionMessageProcessor.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Exceptions/NestedExceptionMessageProcessor.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -39,7 +39,7 @@
                 return string.Empty;
 
             Exception ex = error;
-            string innerPrefix = Environment.NewLine + "\t";
+            string innerPrefix = Environment.NewLine + "\t"; //NOXLATE
             StringBuilder sb = new StringBuilder();
             while (ex.InnerException != null)
             {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Expression/ExpressionEngine.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Expression/ExpressionEngine.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Expression/ExpressionEngine.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -71,7 +71,7 @@
         internal void UpdateVariables()
         {
             if (_reader.Current == null)
-                throw new InvalidOperationException("Current record is empty"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorCurrentRecordIsEmpty);
 
             _context.Variables.Clear();
             for (int i = 0; i < _reader.FieldCount; i++)
@@ -105,11 +105,11 @@
             //
             // Stripping double quotes (variables are not quoted)
             // Convert single to double quotes (string literals are just CLR strings)
-            var exprText = expression.Replace("\"", string.Empty)
-                                     .Replace("'", "\"");
+            var exprText = expression.Replace("\"", string.Empty) //NOXLATE
+                                     .Replace("'", "\""); //NOXLATE
 
             if (_reader.Current == null)
-                throw new InvalidOperationException("Unable to evaluate. Current row is empty"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorExprCurrentRowIsEmpty);
 
             try
             {
@@ -139,11 +139,11 @@
             //
             // Stripping double quotes (variables are not quoted)
             // Convert single to double quotes (string literals are just CLR strings)
-            var exprText = expression.Replace("\"", string.Empty)
-                                     .Replace("'", "\"");
+            var exprText = expression.Replace("\"", string.Empty) //NOXLATE
+                                     .Replace("'", "\""); //NOXLATE
 
             if (_reader.Current == null)
-                throw new InvalidOperationException("Unable to evaluate. Current row is empty"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorExprCurrentRowIsEmpty);
 
             var expr = _context.CompileGeneric<T>(exprText);
             return expr.Evaluate();

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/MutableRecordBase.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/MutableRecordBase.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/MutableRecordBase.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -143,7 +143,7 @@
             set
             {
                 if (value == null)
-                    throw new InvalidOperationException("null values are not permitted. Use SetNull() if you need to specify null values"); //LOCALIZEME
+                    throw new InvalidOperationException(Properties.Resources.ErrorObjectSetNullValuesNotPermitted);
 
                 switch (_values[name].Type)
                 {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/PropertyValue.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/PropertyValue.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/PropertyValue.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -118,7 +118,7 @@
             get
             {
                 if (IsNull)
-                    throw new Exception("Null Value"); //LOCALIZEME
+                    throw new Exception(Properties.Resources.ErrorNullValue); //LOCALIZEME
 
                 return _value.Value;
             }
@@ -182,7 +182,7 @@
             get
             {
                 if (IsNull)
-                    throw new Exception("Null Value"); //LOCALIZEME
+                    throw new Exception(Properties.Resources.ErrorNullValue);
 
                 return _value;
             }
@@ -218,7 +218,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value.ToString(CultureInfo.InvariantCulture);
         }
@@ -248,7 +248,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value.ToString();
         }
@@ -362,16 +362,16 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             var dt = this.Value;
-            return string.Format("TIMESTAMP '{0}-{1}-{2} {3}:{4}:{5}'",
-                PadLeft(dt.Year.ToString(), '0', 4),
-                PadLeft(dt.Month.ToString(), '0', 2),
-                PadLeft(dt.Year.ToString(), '0', 2),
-                PadLeft(dt.Hour.ToString(), '0', 2),
-                PadLeft(dt.Minute.ToString(), '0', 2),
-                PadLeft(dt.Second.ToString(), '0', 2));
+            return string.Format("TIMESTAMP '{0}-{1}-{2} {3}:{4}:{5}'", //NOXLATE
+                PadLeft(dt.Year.ToString(), '0', 4), //NOXLATE
+                PadLeft(dt.Month.ToString(), '0', 2), //NOXLATE
+                PadLeft(dt.Year.ToString(), '0', 2), //NOXLATE
+                PadLeft(dt.Hour.ToString(), '0', 2), //NOXLATE
+                PadLeft(dt.Minute.ToString(), '0', 2), //NOXLATE
+                PadLeft(dt.Second.ToString(), '0', 2)); //NOXLATE
         }
     }
 
@@ -399,7 +399,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value.ToString(CultureInfo.InvariantCulture);
         }
@@ -440,7 +440,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             throw new NotSupportedException();
         }
@@ -481,7 +481,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value.AsText();
         }
@@ -511,7 +511,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value.ToString(CultureInfo.InvariantCulture);
         }
@@ -541,7 +541,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value.ToString(CultureInfo.InvariantCulture);
         }
@@ -571,7 +571,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value.ToString(CultureInfo.InvariantCulture);
         }
@@ -639,7 +639,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value.ToString(CultureInfo.InvariantCulture);
         }
@@ -680,7 +680,7 @@
         public override string ValueAsString()
         {
             if (IsNull)
-                throw new Exception("Null Value"); //LOCALIZEME
+                throw new Exception(Properties.Resources.ErrorNullValue);
 
             return this.Value;
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/RecordBase.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/RecordBase.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Feature/RecordBase.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -77,7 +77,7 @@
         public void PutValue(string name, PropertyValue value)
         {
             if (_values.ContainsKey(name))
-                throw new ArgumentException("Key " + name + " already exists"); //LOCALIZEME
+                throw new ArgumentException(string.Format(Properties.Resources.ErrorKeyAlreadyExists, name));
 
             _ordinalMap[this.FieldCount] = name;
             _values[name] = value;
@@ -449,7 +449,7 @@
         public void Update(IRecord record)
         {
             if (record.FieldCount != this.FieldCount)
-                throw new InvalidOperationException("Incoming record must be structurally identical"); //LOCALIZEME
+                throw new InvalidOperationException(Properties.Resources.ErrorJaggedResultSet);
 
             foreach (var v in _values.Values)
             {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/IServerConnection.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/IServerConnection.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/IServerConnection.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -258,7 +258,7 @@
         /// <returns></returns>
         public static string GenerateSessionResourceId(this IServerConnection conn, string name, ResourceTypes resType)
         {
-            return "Session:" + conn.SessionID + "//" + name + "." + resType.ToString();
+            return "Session:" + conn.SessionID + "//" + name + "." + resType.ToString(); //NOXLATE
         }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Internal/FixedWKTReader.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Internal/FixedWKTReader.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Internal/FixedWKTReader.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -124,12 +124,12 @@
         private ICoordinate[] GetCoordinates(IList tokens, Boolean skipExtraParenthesis)
         {
             string nextToken = GetNextEmptyOrOpener(tokens);
-            if (nextToken.Equals("EMPTY"))
+            if (nextToken.Equals("EMPTY")) //NOXLATE
                 return new ICoordinate[] { };
             List<ICoordinate> coordinates = new List<ICoordinate>();
             coordinates.Add(GetPreciseCoordinate(tokens, skipExtraParenthesis));
             nextToken = GetNextCloserOrComma(tokens);
-            while (nextToken.Equals(","))
+            while (nextToken.Equals(",")) //NOXLATE
             {
                 coordinates.Add(GetPreciseCoordinate(tokens, skipExtraParenthesis));
                 nextToken = GetNextCloserOrComma(tokens);
@@ -149,7 +149,7 @@
             Boolean extraParenthesisFound = false;
             if (skipExtraParenthesis)
             {
-                extraParenthesisFound = IsStringValueNext(tokens, "(");
+                extraParenthesisFound = IsStringValueNext(tokens, "("); //NOXLATE
                 if (extraParenthesisFound)
                 {
                     index++;
@@ -162,7 +162,7 @@
 
             if (skipExtraParenthesis &&
                 extraParenthesisFound &&
-                IsStringValueNext(tokens, ")"))
+                IsStringValueNext(tokens, ")")) //NOXLATE
             {
                 index++;
             }
@@ -201,21 +201,21 @@
             Token token = tokens[index++] as Token;
 
             if (token == null)
-                throw new ArgumentNullException("tokens", "Token list contains a null value");
+                throw new ArgumentNullException("tokens", Properties.Resources.ErrorTokenListContainsNullValue); //NOXLATE
             else if (token is EofToken)
-                throw new ParseException("Expected number but encountered end of stream");
+                throw new ParseException(Properties.Resources.ErrorParseExpectedNumberEos);
             else if (token is EolToken)
-                throw new ParseException("Expected number but encountered end of line");
+                throw new ParseException(Properties.Resources.ErrorParseExpectedNumberEol);
             else if (token is FloatToken || token is IntToken)
                 return (double)token.ConvertToType(typeof(double));
             else if (token is WordToken)
-                throw new ParseException("Expected number but encountered word: " + token.StringValue);
-            else if (token.StringValue == "(")
-                throw new ParseException("Expected number but encountered '('");
-            else if (token.StringValue == ")")
-                throw new ParseException("Expected number but encountered ')'");
-            else if (token.StringValue == ",")
-                throw new ParseException("Expected number but encountered ','");
+                throw new ParseException(string.Format(Properties.Resources.ErrorParseExpectedNumberGotWord, token.StringValue));
+            else if (token.StringValue == "(") //NOXLATE
+                throw new ParseException(string.Format(Properties.Resources.ErrorParseExpectedNumber, '(')); //NOXLATE
+            else if (token.StringValue == ")") //NOXLATE
+                throw new ParseException(string.Format(Properties.Resources.ErrorParseExpectedNumber, ')')); //NOXLATE
+            else if (token.StringValue == ",") //NOXLATE
+                throw new ParseException(string.Format(Properties.Resources.ErrorParseExpectedNumber, ',')); //NOXLATE
             else
             {
                 Assert.ShouldNeverReachHere();
@@ -237,26 +237,26 @@
             //The next word may be the dimension specifier. In such a case, read the
             //next word after that.
             string nextWord = GetNextWord(tokens);
-            if (nextWord.Equals("XYZ"))
+            if (nextWord.Equals("XYZ")) //NOXLATE
             {
                 hasZ = true;
                 nextWord = GetNextWord(tokens);
             }
-            else if (nextWord.Equals("XYM"))
+            else if (nextWord.Equals("XYM")) //NOXLATE
             {
                 hasM = true;
                 nextWord = GetNextWord(tokens);
             }
-            else if (nextWord.Equals("ZM"))
+            else if (nextWord.Equals("ZM")) //NOXLATE
             {
                 hasXY = false; 
                 hasZ = true; 
                 hasM = true;
                 nextWord = GetNextWord(tokens);
             }
-            if (nextWord.Equals("EMPTY") || nextWord.Equals("("))
+            if (nextWord.Equals("EMPTY") || nextWord.Equals("(")) //NOXLATE
                 return nextWord;
-            throw new ParseException("Expected 'EMPTY' or '(' but encountered '" + nextWord + "'");
+            throw new ParseException(string.Format(Properties.Resources.ErrorParseExpectedEmpty, nextWord));
         }
 
         /// <summary>
@@ -271,11 +271,10 @@
         private string GetNextCloserOrComma(IList tokens)
         {
             string nextWord = GetNextWord(tokens);
-            if (nextWord.Equals(",") || nextWord.Equals(")"))
+            if (nextWord.Equals(",") || nextWord.Equals(")")) //NOXLATE
                 return nextWord;
 
-            throw new ParseException("Expected ')' or ',' but encountered '" + nextWord
-                + "'");
+            throw new ParseException(string.Format(Properties.Resources.ErrorParseExpectedCloserOrComma, nextWord));
         }
 
         /// <summary>
@@ -290,9 +289,9 @@
         private string GetNextCloser(IList tokens)
         {
             string nextWord = GetNextWord(tokens);
-            if (nextWord.Equals(")"))
+            if (nextWord.Equals(")")) //NOXLATE
                 return nextWord;
-            throw new ParseException("Expected ')' but encountered '" + nextWord + "'");
+            throw new ParseException(string.Format(Properties.Resources.ErrorParseExpectedCloser, nextWord));
         }
 
         /// <summary>
@@ -308,19 +307,19 @@
             Token token = tokens[index++] as Token;
 
             if (token is EofToken)
-                throw new ParseException("Expected number but encountered end of stream");
+                throw new ParseException(Properties.Resources.ErrorParseExpectedNumberEos);
             else if (token is EolToken)
-                throw new ParseException("Expected number but encountered end of line");
+                throw new ParseException(Properties.Resources.ErrorParseExpectedNumberEol);
             else if (token is FloatToken || token is IntToken)
-                throw new ParseException("Expected word but encountered number: " + token.StringValue);
+                throw new ParseException(string.Format(Properties.Resources.ErrorParseExpectedWord, token.StringValue));
             else if (token is WordToken)
                 return token.StringValue.ToUpper();
-            else if (token.StringValue == "(")
-                return "(";
-            else if (token.StringValue == ")")
-                return ")";
-            else if (token.StringValue == ",")
-                return ",";
+            else if (token.StringValue == "(") //NOXLATE
+                return "("; //NOXLATE
+            else if (token.StringValue == ")") //NOXLATE
+                return ")"; //NOXLATE
+            else if (token.StringValue == ",") //NOXLATE
+                return ","; //NOXLATE
             else
             {
                 Assert.ShouldNeverReachHere();
@@ -347,7 +346,7 @@
             string sridValue = null;
             string type = tokens[0].ToString();
 
-            if (type == "SRID")
+            if (type == "SRID") //NOXLATE
             {
                 sridValue = tokens[2].ToString();
                 // tokens.RemoveRange(0, 4);
@@ -357,26 +356,26 @@
                 tokens.RemoveAt(0);
             }
             else type = GetNextWord(tokens);
-            if (type.Equals("POINT"))
+            if (type.Equals("POINT")) //NOXLATE
                 returned = ReadPointText(tokens);
-            else if (type.Equals("LINESTRING"))
+            else if (type.Equals("LINESTRING")) //NOXLATE
                 returned = ReadLineStringText(tokens);
-            else if (type.Equals("LINEARRING"))
+            else if (type.Equals("LINEARRING")) //NOXLATE
                 returned = ReadLinearRingText(tokens);
-            else if (type.Equals("POLYGON"))
+            else if (type.Equals("POLYGON")) //NOXLATE
                 returned = ReadPolygonText(tokens);
-            else if (type.Equals("MULTIPOINT"))
+            else if (type.Equals("MULTIPOINT")) //NOXLATE
                 returned = ReadMultiPointText(tokens);
-            else if (type.Equals("MULTILINESTRING"))
+            else if (type.Equals("MULTILINESTRING")) //NOXLATE
                 returned = ReadMultiLineStringText(tokens);
-            else if (type.Equals("MULTIPOLYGON"))
+            else if (type.Equals("MULTIPOLYGON")) //NOXLATE
                 returned = ReadMultiPolygonText(tokens);
-            else if (type.Equals("GEOMETRYCOLLECTION"))
+            else if (type.Equals("GEOMETRYCOLLECTION")) //NOXLATE
                 returned = ReadGeometryCollectionText(tokens);
-            else throw new ParseException("Unknown type: " + type);
+            else throw new ParseException(string.Format(Properties.Resources.ErrorParseUnknownType, type));
 
             if (returned == null)
-                throw new NullReferenceException("Error reading geometry");
+                throw new NullReferenceException(Properties.Resources.ErrorParseGeometryRead);
 
             if (sridValue != null)
                 returned.SRID = Convert.ToInt32(sridValue);
@@ -396,7 +395,7 @@
         private IPoint ReadPointText(IList tokens)
         {
             string nextToken = GetNextEmptyOrOpener(tokens);
-            if (nextToken.Equals("EMPTY"))
+            if (nextToken.Equals("EMPTY")) //NOXLATE
                 return geometryFactory.CreatePoint((ICoordinate)null);
             IPoint point = geometryFactory.CreatePoint(GetPreciseCoordinate(tokens, false));
             GetNextCloser(tokens);
@@ -479,14 +478,14 @@
         private IPolygon ReadPolygonText(IList tokens)
         {
             string nextToken = GetNextEmptyOrOpener(tokens);
-            if (nextToken.Equals("EMPTY"))
+            if (nextToken.Equals("EMPTY")) //NOXLATE
                 return geometryFactory.CreatePolygon(
                     geometryFactory.CreateLinearRing(new ICoordinate[] { }), new ILinearRing[] { });
 
             List<ILinearRing> holes = new List<ILinearRing>();
             ILinearRing shell = ReadLinearRingText(tokens);
             nextToken = GetNextCloserOrComma(tokens);
-            while (nextToken.Equals(","))
+            while (nextToken.Equals(",")) //NOXLATE
             {
                 ILinearRing hole = ReadLinearRingText(tokens);
                 holes.Add(hole);
@@ -508,14 +507,14 @@
         private IMultiLineString ReadMultiLineStringText(IList tokens)
         {
             string nextToken = GetNextEmptyOrOpener(tokens);
-            if (nextToken.Equals("EMPTY"))
+            if (nextToken.Equals("EMPTY")) //NOXLATE
                 return geometryFactory.CreateMultiLineString(new ILineString[] { });
 
             List<ILineString> lineStrings = new List<ILineString>();
             ILineString lineString = ReadLineStringText(tokens);
             lineStrings.Add(lineString);
             nextToken = GetNextCloserOrComma(tokens);
-            while (nextToken.Equals(","))
+            while (nextToken.Equals(",")) //NOXLATE
             {
                 lineString = ReadLineStringText(tokens);
                 lineStrings.Add(lineString);
@@ -537,14 +536,14 @@
         private IMultiPolygon ReadMultiPolygonText(IList tokens)
         {
             string nextToken = GetNextEmptyOrOpener(tokens);
-            if (nextToken.Equals("EMPTY"))
+            if (nextToken.Equals("EMPTY")) //NOXLATE
                 return geometryFactory.CreateMultiPolygon(new IPolygon[] { });
 
             List<IPolygon> polygons = new List<IPolygon>();
             IPolygon polygon = ReadPolygonText(tokens);
             polygons.Add(polygon);
             nextToken = GetNextCloserOrComma(tokens);
-            while (nextToken.Equals(","))
+            while (nextToken.Equals(",")) //NOXLATE
             {
                 polygon = ReadPolygonText(tokens);
                 polygons.Add(polygon);
@@ -567,14 +566,14 @@
         private IGeometryCollection ReadGeometryCollectionText(IList tokens)
         {
             string nextToken = GetNextEmptyOrOpener(tokens);
-            if (nextToken.Equals("EMPTY"))
+            if (nextToken.Equals("EMPTY")) //NOXLATE
                 return geometryFactory.CreateGeometryCollection(new IGeometry[] { });
 
             List<IGeometry> geometries = new List<IGeometry>();
             IGeometry geometry = ReadGeometryTaggedText(tokens);
             geometries.Add(geometry);
             nextToken = GetNextCloserOrComma(tokens);
-            while (nextToken.Equals(","))
+            while (nextToken.Equals(",")) //NOXLATE
             {
                 geometry = ReadGeometryTaggedText(tokens);
                 geometries.Add(geometry);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/Collections.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/Collections.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/Collections.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -228,12 +228,12 @@
                 //This shouldn't happen
                 if (_values.Count > 0)
                 {
-                    System.Diagnostics.Trace.TraceWarning("Expected empty values collection!");
+                    System.Diagnostics.Trace.TraceWarning("Expected empty values collection!"); //NOXLATE
                     _values.Clear();
                 }
                 if (_valuesByKey.Count > 0)
                 {
-                    System.Diagnostics.Trace.TraceWarning("Expected empty values collection!");
+                    System.Diagnostics.Trace.TraceWarning("Expected empty values collection!"); //NOXLATE
                     _valuesByKey.Clear();
                 }
             }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/MapSelection.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/MapSelection.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/MapSelection.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -111,23 +111,23 @@
                 doc.LoadXml(xml);
 
             //There are two variations
-            System.Xml.XmlNodeList lst = doc.SelectNodes("FeatureSet/Layer");
+            System.Xml.XmlNodeList lst = doc.SelectNodes("FeatureSet/Layer"); //NOXLATE
             if (lst.Count == 0)
-                lst = doc.SelectNodes("FeatureInformation/FeatureSet/Layer");
+                lst = doc.SelectNodes("FeatureInformation/FeatureSet/Layer"); //NOXLATE
 
             foreach (System.Xml.XmlNode n in lst)
             {
-                if (n.Attributes["id"] != null)
+                if (n.Attributes["id"] != null) //NOXLATE
                 {
-                    string guid = n.Attributes["id"].Value;
+                    string guid = n.Attributes["id"].Value; //NOXLATE
                     var l = _map.Layers.GetByObjectId(guid);
                     if (l != null)
                     {
-                        foreach (System.Xml.XmlNode c in n.SelectNodes("Class"))
+                        foreach (System.Xml.XmlNode c in n.SelectNodes("Class")) //NOXLATE
                         {
-                            if (c.Attributes["id"] != null)
-                                if (c.Attributes["id"].Value == l.QualifiedClassName)
-                                    _layers.Add(new LayerSelection(l, c.SelectNodes("ID")));
+                            if (c.Attributes["id"] != null) //NOXLATE
+                                if (c.Attributes["id"].Value == l.QualifiedClassName) //NOXLATE
+                                    _layers.Add(new LayerSelection(l, c.SelectNodes("ID"))); //NOXLATE
                         }
                     }
                 }
@@ -141,18 +141,18 @@
         public string ToXml()
         {
             System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
-            System.Xml.XmlNode root = doc.AppendChild(doc.CreateElement("FeatureSet"));
+            System.Xml.XmlNode root = doc.AppendChild(doc.CreateElement("FeatureSet")); //NOXLATE
 
             foreach (LayerSelection layer in _layers)
             {
-                System.Xml.XmlNode ln = root.AppendChild(doc.CreateElement("Layer"));
-                ln.Attributes.Append(doc.CreateAttribute("id")).Value = layer.Layer.ObjectId;
+                System.Xml.XmlNode ln = root.AppendChild(doc.CreateElement("Layer")); //NOXLATE
+                ln.Attributes.Append(doc.CreateAttribute("id")).Value = layer.Layer.ObjectId; //NOXLATE
 
-                System.Xml.XmlNode cn = ln.AppendChild(doc.CreateElement("Class"));
-                cn.Attributes.Append(doc.CreateAttribute("id")).Value = layer.Layer.QualifiedClassName;
+                System.Xml.XmlNode cn = ln.AppendChild(doc.CreateElement("Class")); //NOXLATE
+                cn.Attributes.Append(doc.CreateAttribute("id")).Value = layer.Layer.QualifiedClassName; //NOXLATE
 
                 for (int i = 0; i < layer.Count; i++)
-                    cn.AppendChild(doc.CreateElement("ID")).InnerText = layer.EncodeIDString(layer[i]);
+                    cn.AppendChild(doc.CreateElement("ID")).InnerText = layer.EncodeIDString(layer[i]); //NOXLATE
             }
 
             return doc.OuterXml;
@@ -266,7 +266,7 @@
                             ms.WriteByte(0);
                         }
                         else
-                            throw new Exception(string.Format("The type {0} is not supported for primary keys", type.ToString()));
+                            throw new Exception(string.Format(Properties.Resources.ErrorUnsupportedPkType, type.ToString()));
                     }
 
                     return Convert.ToBase64String(ms.ToArray());
@@ -301,10 +301,10 @@
             public LayerSelection(RuntimeMapLayer layer)
             {
                 if (layer == null)
-                    throw new ArgumentNullException("layer");
+                    throw new ArgumentNullException("layer"); //NOXLATE
 
                 if (layer.IdentityProperties.Length == 0 && layer.Parent.StrictSelection)
-                    throw new Exception("The layer does not have a primary key, and cannot be used for selection");
+                    throw new Exception(Properties.Resources.ErrorLayerHasNoPk);
 
                 m_layer = layer;
             }
@@ -330,20 +330,20 @@
             private object[] NormalizeAndValidate(object[] values)
             {
                 if (values == null)
-                    throw new ArgumentNullException("values");
+                    throw new ArgumentNullException("values"); //NOXLATE
 
                 if (values.Length != m_layer.IdentityProperties.Length)
-                    throw new Exception(string.Format("The layers key consists of {0} columns, but only {1} columns were given", m_layer.IdentityProperties.Length, values.Length));
+                    throw new Exception(string.Format(Properties.Resources.ErrorLayerKeyMismatch, m_layer.IdentityProperties.Length, values.Length));
 
                 object[] tmp = new object[values.Length];
 
                 for (int i = 0; i < values.Length; i++)
                 {
                     if (values[i] == null)
-                        throw new Exception(string.Format("The value for {0} is null, which is not supported as a key", m_layer.IdentityProperties[i].Name));
+                        throw new Exception(string.Format(Properties.Resources.ErrorNullKeyValue, m_layer.IdentityProperties[i].Name));
                     if (values[i].GetType() != m_layer.IdentityProperties[i].Type)
                         try { tmp[i] = Convert.ChangeType(values[i], m_layer.IdentityProperties[i].Type); }
-                        catch (Exception ex) { throw new Exception(string.Format("Failed to convert value for {0} from {1} to {2}", m_layer.IdentityProperties[i].Name, values[i].GetType(), m_layer.IdentityProperties[i].Type), ex); }
+                        catch (Exception ex) { throw new Exception(string.Format(Properties.Resources.ErrorFailedValueConversion, m_layer.IdentityProperties[i].Name, values[i].GetType(), m_layer.IdentityProperties[i].Type), ex); }
                     else
                         tmp[i] = values[i];
                 }
@@ -536,27 +536,27 @@
         {
             var m_selection = new XmlDocument();
             m_selection.LoadXml(ToXml());
-            if (m_selection["FeatureSet"] == null)
+            if (m_selection["FeatureSet"] == null) //NOXLATE
             {
                 s.Write((int)0);
                 return;
             }
 
-            XmlNodeList lst = m_selection["FeatureSet"].SelectNodes("Layer");
+            XmlNodeList lst = m_selection["FeatureSet"].SelectNodes("Layer"); //NOXLATE
             s.Write(lst.Count);
             foreach (XmlNode n in lst)
             {
-                if (n.Attributes["id"] == null)
-                    throw new Exception("A layer in selection had no id");
-                s.Write(n.Attributes["id"].Value);
+                if (n.Attributes["id"] == null) //NOXLATE
+                    throw new Exception(Properties.Resources.ErrorSelectedLayerHasNoId);
+                s.Write(n.Attributes["id"].Value); //NOXLATE
 
-                XmlNodeList cls = n.SelectNodes("Class");
+                XmlNodeList cls = n.SelectNodes("Class"); //NOXLATE
                 s.Write(cls.Count);
 
                 foreach (XmlNode c in cls)
                 {
-                    s.Write(c.Attributes["id"].Value);
-                    XmlNodeList ids = c.SelectNodes("ID");
+                    s.Write(c.Attributes["id"].Value); //NOXLATE
+                    XmlNodeList ids = c.SelectNodes("ID"); //NOXLATE
                     s.Write(ids.Count);
 
                     foreach (XmlNode id in ids)
@@ -572,22 +572,22 @@
         public void Deserialize(MgBinaryDeserializer d)
         {
             XmlDocument doc = new XmlDocument();
-            XmlNode root = doc.AppendChild(doc.CreateElement("FeatureSet"));
+            XmlNode root = doc.AppendChild(doc.CreateElement("FeatureSet")); //NOXLATE
             int layerCount = d.ReadInt32();
             for (int i = 0; i < layerCount; i++)
             {
-                XmlNode layer = root.AppendChild(doc.CreateElement("Layer"));
-                layer.Attributes.Append(doc.CreateAttribute("id")).Value = d.ReadString();
+                XmlNode layer = root.AppendChild(doc.CreateElement("Layer")); //NOXLATE
+                layer.Attributes.Append(doc.CreateAttribute("id")).Value = d.ReadString(); //NOXLATE
 
                 int classCount = d.ReadInt32();
                 for (int j = 0; j < classCount; j++)
                 {
-                    XmlNode @class = layer.AppendChild(doc.CreateElement("Class"));
-                    @class.Attributes.Append(doc.CreateAttribute("id")).Value = d.ReadString();
+                    XmlNode @class = layer.AppendChild(doc.CreateElement("Class")); //NOXLATE
+                    @class.Attributes.Append(doc.CreateAttribute("id")).Value = d.ReadString(); //NOXLATE
 
                     int idCount = d.ReadInt32();
                     for (int k = 0; k < idCount; k++)
-                        @class.AppendChild(doc.CreateElement("ID")).InnerText = d.ReadString();
+                        @class.AppendChild(doc.CreateElement("ID")).InnerText = d.ReadString(); //NOXLATE
                 }
             }
             LoadXml(doc.OuterXml);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMap.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -112,7 +112,7 @@
     ///         {
     ///             int read = 0;
     ///             do
-	/// 		    {
+    /// 		    {
     /// 			    read = source.Read(buf, 0, buf.Length);
     /// 			    target.Write(buf, 0, read);
     /// 		    } while (read > 0);
@@ -253,7 +253,7 @@
             //batch. Eliminating lots of chatter for really large maps.
             if (_getRes != null)
             {
-                Trace.TraceInformation("[RuntimeMap.ctor]: Batching layer requests");
+                Trace.TraceInformation("[RuntimeMap.ctor]: Batching layer requests"); //NOXLATE
                 var res = _getRes.Execute(GetLayerIds(mdf));
                 //Pre-populate layer def cache so GetLayerDefinition() returns these
                 //instead of making a new request
@@ -263,7 +263,7 @@
                     if (layer != null)
                         layerDefinitionCache.Add(key, layer);
                 }
-                Trace.TraceInformation("[RuntimeMap.ctor]: {0} layers pre-cached", layerDefinitionCache.Count);
+                Trace.TraceInformation("[RuntimeMap.ctor]: {0} layers pre-cached", layerDefinitionCache.Count); //NOXLATE
             }
 
             //Load map layers
@@ -385,7 +385,7 @@
             }
             set
             {
-                SetField(ref _dpi, value, "DisplayDpi");
+                SetField(ref _dpi, value, "DisplayDpi"); //NOXLATE
             }
         }
 
@@ -508,7 +508,7 @@
             }
             set
             {
-                SetField(ref _viewScale, value, "ViewScale");
+                SetField(ref _viewScale, value, "ViewScale"); //NOXLATE
             }
         }
 
@@ -524,7 +524,7 @@
         public string Name
         {
             get { return _name; }
-            set { SetField(ref _name, value, "Name"); }
+            set { SetField(ref _name, value, "Name"); } //NOXLATE
         }
 
         /// <summary>
@@ -539,7 +539,7 @@
         public virtual string CoordinateSystem
         {
             get { return _mapSrs; }
-            internal set { SetField(ref _mapSrs, value, "CoordinateSystem"); }
+            internal set { SetField(ref _mapSrs, value, "CoordinateSystem"); } //NOXLATE
         }
 
         /// <summary>
@@ -559,7 +559,7 @@
             }
             set
             {
-                SetField(ref _bgColor, value, "BackgroundColor");
+                SetField(ref _bgColor, value, "BackgroundColor"); //NOXLATE
             }
         }
 
@@ -574,8 +574,8 @@
         {
             get { return _resId; }
             set 
-            { 
-                SetField(ref _resId, value, "ResourceID");
+            {
+                SetField(ref _resId, value, "ResourceID"); //NOXLATE
                 if (this.Name == null)
                     this.Name = ResourceIdentifier.GetName(_resId);
             }
@@ -794,7 +794,7 @@
             if (d.SiteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
             {
                 if (d.ReadInt32() != MgBinaryVersion)
-                    throw new Exception("Invalid map version");
+                    throw new Exception(Properties.Resources.ErrorInvalidMapVersion);
                 this.ResourceID = d.ReadResourceIdentifier();
             }
 
@@ -845,7 +845,7 @@
                 }
                 int mapLayerCount = d.ReadInt32();
                 if (mapLayerCount != 0)
-                    throw new Exception("On new versions, there should be no layer data in map");
+                    throw new Exception(Properties.Resources.ErrorShouldHaveNoLayerDataInMap);
             }
             else
             {
@@ -863,13 +863,13 @@
         {
             int classid = d.ReadClassId();
             if (d.SiteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classid != 18001)
-                throw new Exception("Invalid class identifier, expected Box2D");
+                throw new Exception(Properties.Resources.ErrorInvalidClassIdentifierBox2d);
             if (d.SiteVersion > SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classid != 20001)
-                throw new Exception("Invalid class identifier, expected Box2D");
+                throw new Exception(Properties.Resources.ErrorInvalidClassIdentifierBox2d);
 
             int dimensions = d.ReadInt32();
             if (dimensions != 2 && dimensions != 0)
-                throw new Exception("Bounding box for map had " + dimensions.ToString() + " dimensions, 2 was expected");
+                throw new Exception(string.Format(Properties.Resources.ErrorBoundingBoxDoesNotHave2Dimensions, dimensions));
             double x1 = d.ReadDouble();
             double y1 = d.ReadDouble();
 
@@ -975,16 +975,16 @@
 
         private bool ReloadSelection()
         {
-            var resId = this.ResourceID.Replace(".Map", ".Selection");
+            var resId = this.ResourceID.Replace(".Map", ".Selection"); //NOXLATE
             var bLoadedSelection = false;
             if (this.ResourceService.ResourceExists(resId))
             {
                 var dataItems = this.ResourceService.EnumerateResourceData(resId);
                 foreach (var item in dataItems.ResourceData)
                 {
-                    if (item.Name == "RuntimeData")
+                    if (item.Name == "RuntimeData") //NOXLATE
                     {
-                        var ser = new MgBinaryDeserializer(this.ResourceService.GetResourceData(resId, "RuntimeData"), this.CurrentConnection.SiteVersion);
+                        var ser = new MgBinaryDeserializer(this.ResourceService.GetResourceData(resId, "RuntimeData"), this.CurrentConnection.SiteVersion); //NOXLATE
                         _selection.Deserialize(ser);
                         bLoadedSelection = true;
                         break;
@@ -999,10 +999,10 @@
         /// </summary>
         /// <param name="name">The name.</param>
         /// <returns></returns>
-        [Obsolete("Use the indexer of the Groups property instead")]
+        [Obsolete("Use the indexer of the Groups property instead")] //NOXLATE
         public RuntimeMapGroup GetGroupByName(string name)
         {
-            Check.NotNull(name, "name");
+            Check.NotNull(name, "name"); //NOXLATE
             return this.Groups[name];
         }
 
@@ -1011,7 +1011,7 @@
         /// </summary>
         /// <param name="id">The id.</param>
         /// <returns></returns>
-        [Obsolete("Use the Layers property instead")]
+        [Obsolete("Use the Layers property instead")] //NOXLATE
         public RuntimeMapLayer GetLayerByObjectId(string id)
         {
             return this.Layers.GetByObjectId(id);
@@ -1045,7 +1045,7 @@
         /// </summary>
         /// <param name="layer"></param>
         /// <returns></returns>
-        [Obsolete("Use the Layers property instead")]
+        [Obsolete("Use the Layers property instead")] //NOXLATE
         internal void AddLayer(RuntimeMapLayer layer)
         {
             this.Layers.Add(layer);
@@ -1057,7 +1057,7 @@
         /// </summary>
         /// <param name="index"></param>
         /// <param name="layer"></param>
-        [Obsolete("Use the Layers property instead")]
+        [Obsolete("Use the Layers property instead")] //NOXLATE
         public void InsertLayer(int index, RuntimeMapLayer layer)
         {
             this.Layers.Insert(index, layer);
@@ -1068,7 +1068,7 @@
         /// </summary>
         /// <param name="index">The index.</param>
         /// <param name="layer">The layer.</param>
-        [Obsolete("Use the Layers property instead")]
+        [Obsolete("Use the Layers property instead")] //NOXLATE
         public void SetLayerIndex(int index, RuntimeMapLayer layer)
         {
             this.Layers[index] = layer;
@@ -1078,7 +1078,7 @@
         /// Removes the layer at the specified index
         /// </summary>
         /// <param name="index">The index.</param>
-        [Obsolete("Use the Layers property instead")]
+        [Obsolete("Use the Layers property instead")] //NOXLATE
         public void RemoveLayerAt(int index)
         {
             this.Layers.RemoveAt(index);
@@ -1089,7 +1089,7 @@
         /// </summary>
         /// <param name="layer"></param>
         /// <returns></returns>
-        [Obsolete("Use the Layers property instead")]
+        [Obsolete("Use the Layers property instead")] //NOXLATE
         public int IndexOfLayer(RuntimeMapLayer layer)
         {
             return this.Layers.IndexOf(layer);
@@ -1100,10 +1100,10 @@
         /// </summary>
         /// <param name="layerName"></param>
         /// <returns></returns>
-        [Obsolete("Use the Layers property instead")]
+        [Obsolete("Use the Layers property instead")] //NOXLATE
         public int IndexOfLayer(string layerName)
         {
-            Check.NotEmpty(layerName, "layerName");
+            Check.NotEmpty(layerName, "layerName"); //NOXLATE
 
             var layer = this.Layers[layerName];
             return this.Layers.IndexOf(layer);
@@ -1116,7 +1116,7 @@
         /// <param name="layerDefinitionId"></param>
         /// <param name="group"></param>
         /// <returns></returns>
-        [Obsolete("Use RuntimeMapLayer constructor")]
+        [Obsolete("Use RuntimeMapLayer constructor")] //NOXLATE
         public RuntimeMapLayer CreateLayer(string layerDefinitionId, RuntimeMapGroup group)
         {
             ILayerDefinition ldf = GetLayerDefinition(layerDefinitionId);
@@ -1160,10 +1160,10 @@
         /// Removes the specified layer.
         /// </summary>
         /// <param name="layer">The layer.</param>
-        [Obsolete("Use the Layers property instead")]
+        [Obsolete("Use the Layers property instead")] //NOXLATE
         public void RemoveLayer(RuntimeMapLayer layer)
         {
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
             this.Layers.Remove(layer);
         }
 
@@ -1171,10 +1171,10 @@
         /// Removes the specified group.
         /// </summary>
         /// <param name="group">The group.</param>
-        [Obsolete("Use the Groups property instead")]
+        [Obsolete("Use the Groups property instead")] //NOXLATE
         public void RemoveGroup(RuntimeMapGroup group)
         {
-            Check.NotNull(group, "group");
+            Check.NotNull(group, "group"); //NOXLATE
             this.Groups.Remove(group);
         }
 
@@ -1186,7 +1186,7 @@
         /// <returns></returns>
         public RuntimeMapLayer[] GetLayersOfGroup(string groupName)
         {
-            Check.NotEmpty(groupName, "groupName");
+            Check.NotEmpty(groupName, "groupName"); //NOXLATE
             List<RuntimeMapLayer> layers = new List<RuntimeMapLayer>();
             foreach (var lyr in this.Layers)
             {
@@ -1203,7 +1203,7 @@
         /// <returns></returns>
         public RuntimeMapGroup[] GetGroupsOfGroup(string groupName)
         {
-            Check.NotEmpty(groupName, "groupName");
+            Check.NotEmpty(groupName, "groupName"); //NOXLATE
             List<RuntimeMapGroup> groups = new List<RuntimeMapGroup>();
             foreach (var grp in this.Groups)
             {
@@ -1224,24 +1224,24 @@
         /// <summary>
         /// A dummy resource, used for the runtime map
         /// </summary>
-        internal const string RUNTIMEMAP_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Map></Map>";
+        internal const string RUNTIMEMAP_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Map></Map>"; //NOXLATE
 
         /// <summary>
         /// A dummy resource, used for the runtime map
         /// </summary>
-        internal const string RUNTIMEMAP_SELECTION_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Selection></Selection>";
+        internal const string RUNTIMEMAP_SELECTION_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Selection></Selection>"; //NOXLATE
 
         private void Save(string resourceID)
         {
             var map = this;
 
-            string selectionID = resourceID.Substring(0, resourceID.LastIndexOf(".")) + ".Selection";
+            string selectionID = resourceID.Substring(0, resourceID.LastIndexOf(".")) + ".Selection"; //NOXLATE
             this.ResourceService.SetResourceXmlData(resourceID, new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(RUNTIMEMAP_XML)));
             this.ResourceService.SetResourceXmlData(selectionID, new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(RUNTIMEMAP_SELECTION_XML)));
 
             ResourceIdentifier.Validate(resourceID, ResourceTypes.RuntimeMap);
-            if (!resourceID.StartsWith("Session:" + this.SessionId + "//") || !resourceID.EndsWith(".Map"))
-                throw new Exception("Runtime maps must be in the current session repository");
+            if (!resourceID.StartsWith("Session:" + this.SessionId + "//") || !resourceID.EndsWith(".Map")) //NOXLATE
+                throw new Exception(Properties.Resources.ErrorRuntimeMapNotInSessionRepo);
 
             System.IO.MemoryStream ms = new System.IO.MemoryStream();
             System.IO.MemoryStream ms2 = null;
@@ -1251,8 +1251,8 @@
             string r = map.Name;
             string t = map.ResourceID;
 
-            string mapname = resourceID.Substring(resourceID.IndexOf("//") + 2);
-            mapname = mapname.Substring(0, mapname.LastIndexOf("."));
+            string mapname = resourceID.Substring(resourceID.IndexOf("//") + 2); //NOXLATE
+            mapname = mapname.Substring(0, mapname.LastIndexOf(".")); //NOXLATE
             map.Name = mapname;
             map.ResourceID = resourceID;
 
@@ -1265,9 +1265,9 @@
                     map.SerializeLayerData(new MgBinarySerializer(ms2, this.SiteVersion));
                 }
 
-                this.ResourceService.SetResourceData(resourceID, "RuntimeData", ResourceDataType.Stream, ms);
+                this.ResourceService.SetResourceData(resourceID, "RuntimeData", ResourceDataType.Stream, ms); //NOXLATE
                 if (ms2 != null)
-                    this.ResourceService.SetResourceData(resourceID, "LayerGroupData", ResourceDataType.Stream, ms2);
+                    this.ResourceService.SetResourceData(resourceID, "LayerGroupData", ResourceDataType.Stream, ms2); //NOXLATE
 
                 SaveSelectionXml(resourceID);
                 this.IsDirty = false;
@@ -1294,12 +1294,12 @@
         private void SaveSelectionXml(string resourceID)
         {
             ResourceIdentifier.Validate(resourceID, ResourceTypes.RuntimeMap);
-            string selectionID = resourceID.Substring(0, resourceID.LastIndexOf(".")) + ".Selection";
+            string selectionID = resourceID.Substring(0, resourceID.LastIndexOf(".")) + ".Selection"; //NOXLATE
             System.IO.MemoryStream ms = new System.IO.MemoryStream();
             MgBinarySerializer serializer = new MgBinarySerializer(ms, this.SiteVersion);
             this.Selection.Serialize(serializer);
             ms.Position = 0;
-            this.ResourceService.SetResourceData(selectionID, "RuntimeData", ResourceDataType.Stream, ms);
+            this.ResourceService.SetResourceData(selectionID, "RuntimeData", ResourceDataType.Stream, ms); //NOXLATE
         }
 
         /// <summary>
@@ -1307,10 +1307,10 @@
         /// </summary>
         /// <param name="name">The name.</param>
         /// <returns></returns>
-        [Obsolete("Use the indexer of the Layer property instead")]
+        [Obsolete("Use the indexer of the Layer property instead")] //NOXLATE
         public RuntimeMapLayer GetLayerByName(string name)
         {
-            Check.NotEmpty(name, "name");
+            Check.NotEmpty(name, "name"); //NOXLATE
             return this.Layers[name];
         }
 
@@ -1483,7 +1483,7 @@
         /// <param name="format"></param>
         /// <param name="keepSelection"></param>
         /// <returns></returns>
-        [Obsolete("Use the version of RenderDynamicOverlay that is not marked Obsolete")]
+        [Obsolete("Use the version of RenderDynamicOverlay that is not marked Obsolete")] //NOXLATE
         public System.IO.Stream RenderDynamicOverlay(string format, bool keepSelection)
         {
             return RenderDynamicOverlay(this.Selection, format, keepSelection);
@@ -1496,7 +1496,7 @@
         /// <param name="format"></param>
         /// <param name="behavior"></param>
         /// <returns></returns>
-        [Obsolete("Use the version of RenderDynamicOverlay that is not marked Obsolete")]
+        [Obsolete("Use the version of RenderDynamicOverlay that is not marked Obsolete")] //NOXLATE
         public System.IO.Stream RenderDynamicOverlay(MapSelection sel, string format, bool keepSelection)
         {
             if (_mapSvc == null)

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapGroup.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapGroup.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapGroup.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -38,8 +38,8 @@
         internal RuntimeMapGroup() 
         {
             _disableChangeTracking = true;
-            this.Group = "";
-            this.LegendLabel = "";
+            this.Group = string.Empty;
+            this.LegendLabel = string.Empty;
             this.Type = kNormal;
             this.ObjectId = Guid.NewGuid().ToString();
         }
@@ -106,7 +106,7 @@
             }
             set
             {
-                SetField(ref _visible, value, "Visible");
+                SetField(ref _visible, value, "Visible"); //NOXLATE
             }
         }
 
@@ -123,7 +123,7 @@
             }
             set
             {
-                SetField(ref _group, value, "Group");
+                SetField(ref _group, value, "Group"); //NOXLATE
             }
         }
 
@@ -149,7 +149,7 @@
             }
             set
             {
-                SetField(ref _name, value, "Name");
+                SetField(ref _name, value, "Name"); //NOXLATE
             }
         }
 
@@ -166,7 +166,7 @@
             }
             set
             {
-                SetField(ref _showInLegend, value, "ShowInLegend");
+                SetField(ref _showInLegend, value, "ShowInLegend"); //NOXLATE
             }
         }
 
@@ -183,7 +183,7 @@
             }
             set
             {
-                SetField(ref _legendLabel, value, "LegendLabel");
+                SetField(ref _legendLabel, value, "LegendLabel"); //NOXLATE
             }
         }
 
@@ -200,7 +200,7 @@
             }
             set
             {
-                SetField(ref _expandInLegend, value, "ExpandInLegend");
+                SetField(ref _expandInLegend, value, "ExpandInLegend"); //NOXLATE
             }
         }
 
@@ -253,10 +253,10 @@
             if (d.SiteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
             {
                 if (objid != 12001)
-                    throw new Exception("Group must have object id 12001, but had: " + objid);
+                    throw new Exception(string.Format(Properties.Resources.ErrorInvalidGroupObjectId, objid));
             }
             else if (objid != 19001)
-                throw new Exception("Group must have object id 19001, but had: " + objid);
+                throw new Exception(string.Format(Properties.Resources.ErrorInvalidGroupObjectId, objid));
 
             this.Name = d.ReadString();
             this.ObjectId = d.ReadString();
@@ -279,16 +279,16 @@
             //register change items on map
             switch (propertyName)
             {
-                case "Group":
+                case "Group": //NOXLATE
                     this.Parent.OnGroupParentChanged(this, this.ObjectId);
                     break;
-                case "Visible":
-                    this.Parent.OnGroupVisibilityChanged(this, this.Visible ? "1" : "0");
+                case "Visible": //NOXLATE
+                    this.Parent.OnGroupVisibilityChanged(this, this.Visible ? "1" : "0"); //NOXLATE
                     break;
-                case "ShowInLegend":
-                    this.Parent.OnGroupDisplayInLegendChanged(this, this.ShowInLegend ? "1" : "0");
+                case "ShowInLegend": //NOXLATE
+                    this.Parent.OnGroupDisplayInLegendChanged(this, this.ShowInLegend ? "1" : "0"); //NOXLATE
                     break;
-                case "LegendLabel":
+                case "LegendLabel": //NOXLATE
                     this.Parent.OnGroupLegendLabelChanged(this, this.LegendLabel);
                     break;
             }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapLayer.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapLayer.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Mapping/RuntimeMapLayer.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -64,7 +64,7 @@
     {
         public static RuntimeMapGroup GetParentGroup(this RuntimeMapLayer layer)
         {
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
 
             if (string.IsNullOrEmpty(layer.Group))
                 return null;
@@ -114,7 +114,7 @@
 
         protected void Initialize(ILayerDefinition ldf)
         {
-            Check.NotNull(ldf, "ldf");
+            Check.NotNull(ldf, "ldf"); //NOXLATE
             this.LayerDefinitionID = ldf.ResourceID;
             if (ldf.SubLayer.LayerType == LayerType.Vector)
             {
@@ -215,9 +215,9 @@
         protected internal RuntimeMapLayer(RuntimeMap parent, IBaseMapLayer source, ILayerDefinition ldf) 
             : this(parent, ldf)
         {
-            Check.NotNull(source, "source");
-            Check.NotNull(ldf, "ldf");
-            Check.Precondition(source.ResourceId == ldf.ResourceID, "source.ResourceId == ldf.ResourceID");
+            Check.NotNull(source, "source"); //NOXLATE
+            Check.NotNull(ldf, "ldf"); //NOXLATE
+            Check.Precondition(source.ResourceId == ldf.ResourceID, "source.ResourceId == ldf.ResourceID"); //NOXLATE
         }
 
         private void EnsureOrderedMinMaxScales()
@@ -291,9 +291,9 @@
             set
             {
                 if (this.Type == kBaseMap)
-                    throw new InvalidOperationException("Setting visbility of a tiled map layer is not permitted");
+                    throw new InvalidOperationException(Properties.Resources.ErrorSettingVisibilityOfTiledLayer);
 
-                if (SetField(ref _visible, value, "Visible"))
+                if (SetField(ref _visible, value, "Visible")) //NOXLATE
                     Parent.IsDirty = true;
             }
         }
@@ -312,7 +312,7 @@
             }
             set
             {
-                if (SetField(ref _group, value, "Group"))
+                if (SetField(ref _group, value, "Group")) //NOXLATE
                     Parent.IsDirty = true;
             }
         }
@@ -341,7 +341,7 @@
             }
             set
             {
-                if (SetField(ref _selectable, value, "Selectable"))
+                if (SetField(ref _selectable, value, "Selectable")) //NOXLATE
                     Parent.IsDirty = true;
             }
         }
@@ -360,7 +360,7 @@
             }
             set
             {
-                if (SetField(ref _name, value, "Name"))
+                if (SetField(ref _name, value, "Name")) //NOXLATE
                     Parent.IsDirty = true;
             }
         }
@@ -379,7 +379,7 @@
             }
             set
             {
-                if (SetField(ref _showInLegend, value, "ShowInLegend"))
+                if (SetField(ref _showInLegend, value, "ShowInLegend")) //NOXLATE
                     Parent.IsDirty = true;
             }
         }
@@ -398,7 +398,7 @@
             }
             set
             {
-                if (SetField(ref _legendLabel, value, "LegendLabel"))
+                if (SetField(ref _legendLabel, value, "LegendLabel")) //NOXLATE
                     Parent.IsDirty = true;
             }
         }
@@ -417,7 +417,7 @@
             }
             set
             {
-                if (SetField(ref _expandInLegend, value, "ExpandInLegend"))
+                if (SetField(ref _expandInLegend, value, "ExpandInLegend")) //NOXLATE
                     Parent.IsDirty = true;
             }
         }
@@ -554,7 +554,7 @@
         {
             get
             {
-                var tokens = this.QualifiedClassName.Split(':');
+                var tokens = this.QualifiedClassName.Split(':'); //NOXLATE
                 if (tokens.Length == 2)
                     return tokens[0];
                 return string.Empty;
@@ -682,13 +682,13 @@
                         pos++;
 
                     if (pos >= data.Length)
-                        throw new Exception("Bad null encoded string");
+                        throw new Exception(Properties.Resources.ErrorBadNullEncodedString);
 
                     tmp[i] = System.Text.Encoding.UTF8.GetString(data, index, pos - index);
                     index = pos + 1;
                 }
                 else
-                    throw new Exception(string.Format("The type {0} is not supported for primary keys", type.ToString()));
+                    throw new Exception(string.Format(Properties.Resources.ErrorUnsupportedPkType, type.ToString()));
             }
 
             return tmp;
@@ -704,9 +704,9 @@
 
             int classid = d.ReadClassId();
             if (d.SiteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classid != 19003)
-                throw new Exception("Resource Identifier expected, but got: " + classid.ToString());
+                throw new Exception(string.Format(Properties.Resources.ErrorResourceIdentifierClassIdNotFound, classid));
             if (d.SiteVersion > SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classid != 30501)
-                throw new Exception("Resource Identifier expected, but got: " + classid.ToString());
+                throw new Exception(string.Format(Properties.Resources.ErrorResourceIdentifierClassIdNotFound, classid));
 
             this.LayerDefinitionID = d.ReadResourceIdentifier();
 
@@ -875,7 +875,7 @@
                 case Clob:
                     return typeof(byte[]);
                 default:
-                    throw new Exception("Failed to find type for: " + idType.ToString());
+                    throw new Exception(string.Format(Properties.Resources.ErrorFailedToFindTypeForClrType, idType));
             }
         }
 
@@ -891,23 +891,23 @@
             //register change items on map
             switch (propertyName)
             {
-                case "Group":
+                case "Group": //NOXLATE
                     this.Parent.OnLayerParentChanged(this, this.ObjectId);
                     break;
-                case "Visible":
-                    this.Parent.OnLayerVisibilityChanged(this, this.Visible ? "1" : "0");
+                case "Visible": //NOXLATE
+                    this.Parent.OnLayerVisibilityChanged(this, this.Visible ? "1" : "0"); //NOXLATE
                     break;
-                case "ShowInLegend":
-                    this.Parent.OnLayerDisplayInLegendChanged(this, this.ShowInLegend ? "1" : "0");
+                case "ShowInLegend": //NOXLATE
+                    this.Parent.OnLayerDisplayInLegendChanged(this, this.ShowInLegend ? "1" : "0"); //NOXLATE
                     break;
-                case "LegendLabel":
+                case "LegendLabel": //NOXLATE
                     this.Parent.OnLayerLegendLabelChanged(this, this.LegendLabel);
                     break;
-                case "LayerDefinitionID":
+                case "LayerDefinitionID": //NOXLATE
                     this.Parent.OnLayerDefinitionChanged(this);
                     break;
-                case "Selectable":
-                    this.Parent.OnLayerSelectabilityChanged(this, this.Selectable ? "1" : "0");
+                case "Selectable": //NOXLATE
+                    this.Parent.OnLayerSelectabilityChanged(this, this.Selectable ? "1" : "0"); //NOXLATE
                     break;
             }
 
@@ -945,6 +945,6 @@
         /// <summary>
         /// Gets a display string for this layer for presentation purposes
         /// </summary>
-        public string DisplayString { get { return this.LegendLabel + " (" + this.Name + ")"; } }
+        public string DisplayString { get { return this.LegendLabel + " (" + this.Name + ")"; } } //NOXLATE
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/MgServerConnectionBase.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -183,7 +183,7 @@
         /// <returns>The minature bitmap</returns>
         public virtual System.Drawing.Image GetLegendImage(double scale, string layerdefinition, int themeIndex, int type)
         {
-            return GetLegendImage(scale, layerdefinition, themeIndex, type, 16, 16, "PNG");
+            return GetLegendImage(scale, layerdefinition, themeIndex, type, 16, 16, "PNG"); //NOXLATE
         }
 
         /// <summary>
@@ -212,7 +212,7 @@
         /// <returns></returns>
         public virtual System.IO.Stream RenderRuntimeMap(RuntimeMap map, double x, double y, double scale, int width, int height, int dpi)
         {
-            return this.RenderRuntimeMap(map, x, y, scale, width, height, dpi, "PNG", false);
+            return this.RenderRuntimeMap(map, x, y, scale, width, height, dpi, "PNG", false); //NOXLATE
         }
 
         /// <summary>
@@ -229,7 +229,7 @@
         /// <returns></returns>
         public virtual System.IO.Stream RenderRuntimeMap(RuntimeMap map, double x1, double y1, double x2, double y2, int width, int height, int dpi)
         {
-            return this.RenderRuntimeMap(map, x1, y1, x2, y2, width, height, dpi, "PNG", false);
+            return this.RenderRuntimeMap(map, x1, y1, x2, y2, width, height, dpi, "PNG", false); //NOXLATE
         }
 
         /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -75,11 +75,11 @@
             var map = new MapWidgetType()
             {
                 MapId = mapId,
-                Name = "Map",
-                Type = "Map",
+                Name = "Map", //NOXLATE
+                Type = "Map", //NOXLATE
                 Extension = new CustomContentType() { Any = new XmlElement[0] }
             };
-            map.SetValue("MenuContainer", contextMenuId);
+            map.SetValue("MenuContainer", contextMenuId); //NOXLATE
             return map;
         }
 
@@ -106,7 +106,7 @@
                 {
                     new MapType()
                     {
-                        Type = "MapGuide",
+                        Type = "MapGuide", //NOXLATE
                         SingleTile = singleTile.ToString(),
                         Extension = new CustomContentType()
                         {
@@ -115,7 +115,7 @@
                     }
                 },
             };
-            map.Map[0].Extension.Any[0] = AppDefDocument.Instance.CreateElement("ResourceId");
+            map.Map[0].Extension.Any[0] = AppDefDocument.Instance.CreateElement("ResourceId"); //NOXLATE
             map.Map[0].Extension.Any[0].InnerText = mapDefinitionId;
 
             this.MapSet.Add(map);
@@ -150,14 +150,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorInvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.ApplicationDefinition.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorUnexpectedResourceType, res.ToString(), ResourceTypes.ApplicationDefinition));
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -184,10 +184,10 @@
             return this.Clone();
         }
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema 
-        { 
-            get { return "ApplicationDefinition-1.0.0.xsd"; }
+        {
+            get { return "ApplicationDefinition-1.0.0.xsd"; } //NOXLATE
             set { }
         }
 
@@ -212,7 +212,7 @@
             {
                 widget = new UiWidgetType()
                 {
-                    Disabled = "false",
+                    Disabled = "false", //NOXLATE
                     Extension = new CustomContentType() { Any = new XmlElement[0] },
                     ImageClass = widgetInfo.ImageClass,
                     ImageUrl = widgetInfo.ImageUrl,
@@ -311,7 +311,7 @@
             if (grp != null)
             {
                 this.MapSet.Add(grp);
-                OnPropertyChanged("MapSet");
+                OnPropertyChanged("MapSet"); //NOXLATE
             }
         }
 
@@ -321,7 +321,7 @@
             if (grp != null)
             {
                 this.MapSet.Remove(grp);
-                OnPropertyChanged("MapSet");
+                OnPropertyChanged("MapSet"); //NOXLATE
             }
         }
 
@@ -343,7 +343,7 @@
             if (wset != null)
             {
                 this.WidgetSet.Add(wset);
-                OnPropertyChanged("WidgetSet");
+                OnPropertyChanged("WidgetSet"); //NOXLATE
             }
         }
 
@@ -353,7 +353,7 @@
             if (wset != null)
             {
                 this.WidgetSet.Remove(wset);
-                OnPropertyChanged("WidgetSet");
+                OnPropertyChanged("WidgetSet"); //NOXLATE
             }
         }
 
@@ -428,7 +428,7 @@
             {
                 this.Item.Insert(index, it);
                 it.Parent = this;
-                OnPropertyChanged("Item");
+                OnPropertyChanged("Item"); //NOXLATE
             }
         }
 
@@ -439,7 +439,7 @@
             {
                 this.Item.Add(it);
                 it.Parent = this;
-                OnPropertyChanged("Item");
+                OnPropertyChanged("Item"); //NOXLATE
             }
         }
 
@@ -450,7 +450,7 @@
             {
                 this.Item.Remove(it);
                 it.Parent = null;
-                OnPropertyChanged("Item");
+                OnPropertyChanged("Item"); //NOXLATE
             }
         }
     }
@@ -516,7 +516,7 @@
             {
                 this.Item.Insert(index, it);
                 it.Parent = this;
-                OnPropertyChanged("Item");
+                OnPropertyChanged("Item"); //NOXLATE
             }
         }
 
@@ -527,7 +527,7 @@
             {
                 this.Item.Add(it);
                 it.Parent = this;
-                OnPropertyChanged("Item");
+                OnPropertyChanged("Item"); //NOXLATE
             }
         }
 
@@ -538,7 +538,7 @@
             {
                 this.Item.Remove(it);
                 it.Parent = null;
-                OnPropertyChanged("Item");
+                OnPropertyChanged("Item"); //NOXLATE
             }
         }
     }
@@ -579,7 +579,7 @@
             if (cnt != null)
             {
                 this.Container.Add(cnt);
-                OnPropertyChanged("Container");
+                OnPropertyChanged("Container"); //NOXLATE
             }
         }
 
@@ -589,7 +589,7 @@
             if (cnt != null)
             {
                 this.Container.Remove(cnt);
-                OnPropertyChanged("Container");
+                OnPropertyChanged("Container"); //NOXLATE
             }
         }
 
@@ -699,9 +699,9 @@
     {
         IMap IMapGroup.CreateCmsMapEntry(string type, bool singleTile, string name, string olType)
         {
-            var el = AppDefDocument.Instance.CreateElement("Options");
-            var n = AppDefDocument.Instance.CreateElement("name");
-            var t = AppDefDocument.Instance.CreateElement("type");
+            var el = AppDefDocument.Instance.CreateElement("Options"); //NOXLATE
+            var n = AppDefDocument.Instance.CreateElement("name"); //NOXLATE
+            var t = AppDefDocument.Instance.CreateElement("type"); //NOXLATE
 
             n.InnerText = name;
             t.InnerText = olType;
@@ -714,7 +714,7 @@
                 {
                     Any = new XmlElement[] { el }
                 },
-                SingleTile = "true",
+                SingleTile = "true", //NOXLATE
                 Type = type
             };
         }
@@ -769,7 +769,7 @@
             if (m != null)
             {
                 this.Map.Add(m);
-                OnPropertyChanged("Map");
+                OnPropertyChanged("Map"); //NOXLATE
             }
         }
 
@@ -779,7 +779,7 @@
             if (m != null)
             {
                 this.Map.Remove(m);
-                OnPropertyChanged("Map");
+                OnPropertyChanged("Map"); //NOXLATE
             }
         }
 
@@ -858,12 +858,12 @@
                      var els = new List<XmlElement>(this.extensionField.Any);
                      for (int i = 0; i < els.Count; i++)
                      {
-                         if (els[i].Name.Equals("Options"))
+                         if (els[i].Name.Equals("Options")) //NOXLATE
                          {
                              try
                              {
-                                 var n = els[i]["name"];
-                                 var t = els[i]["type"];
+                                 var n = els[i]["name"]; //NOXLATE
+                                 var t = els[i]["type"]; //NOXLATE
 
                                  if (n != null && t != null)
                                      return new MapOptions() { Name = n.InnerText, Type = t.InnerText };
@@ -883,8 +883,8 @@
             }
             set
             {
-                if (this.Type.Equals("MapGuide"))
-                    throw new InvalidOperationException("CMS options are only available for non-MapGuide maps");
+                if (this.Type.Equals("MapGuide")) //NOXLATE
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorCmsOptionsOnMapGuideMap);
 
                 if (value == null)
                 {
@@ -893,7 +893,7 @@
                         var els = new List<XmlElement>(this.extensionField.Any);
                         for (int i = 0; i < els.Count; i++)
                         {
-                            if (els[i].Name.Equals("Options"))
+                            if (els[i].Name.Equals("Options")) //NOXLATE
                             {
                                 els.RemoveAt(i);
                                 break;
@@ -906,10 +906,10 @@
                     XmlElement el = null;
                     if (this.Extension.Any.Length == 0)
                     {
-                        el = AppDefDocument.Instance.CreateElement("Options");
+                        el = AppDefDocument.Instance.CreateElement("Options"); //NOXLATE
 
-                        var n = AppDefDocument.Instance.CreateElement("name");
-                        var t = AppDefDocument.Instance.CreateElement("type");
+                        var n = AppDefDocument.Instance.CreateElement("name"); //NOXLATE
+                        var t = AppDefDocument.Instance.CreateElement("type"); //NOXLATE
 
                         n.InnerText = value.Name;
                         t.InnerText = value.Type;
@@ -924,12 +924,12 @@
                         var els = new List<XmlElement>(this.extensionField.Any);
                         for (int i = 0; i < els.Count; i++)
                         {
-                            if (els[i].Name.Equals("Options"))
+                            if (els[i].Name.Equals("Options")) //NOXLATE
                             {
                                 els[i].RemoveAll();
 
-                                var n = AppDefDocument.Instance.CreateElement("name");
-                                var t = AppDefDocument.Instance.CreateElement("type");
+                                var n = AppDefDocument.Instance.CreateElement("name"); //NOXLATE
+                                var t = AppDefDocument.Instance.CreateElement("type"); //NOXLATE
 
                                 n.InnerText = value.Name;
                                 t.InnerText = value.Type;
@@ -968,13 +968,13 @@
                     var els = new List<XmlElement>(this.extensionField.Any);
                     for (int i = 0; i < els.Count; i++)
                     {
-                        if (els[i].Name.Equals("Options"))
+                        if (els[i].Name.Equals("Options")) //NOXLATE
                         {
                             try
                             {
-                                var n = els[i]["isBaseLayer"];
-                                var t = els[i]["useOverlay"];
-                                var p = els[i]["projection"];
+                                var n = els[i]["isBaseLayer"]; //NOXLATE
+                                var t = els[i]["useOverlay"]; //NOXLATE
+                                var p = els[i]["projection"]; //NOXLATE
 
                                 if (n != null && t != null)
                                     return CreateOverlayOptions(Convert.ToBoolean(n.InnerText), Convert.ToBoolean(t.InnerText), p.InnerText);
@@ -994,8 +994,8 @@
             }
             set
             {
-                if (!this.Type.Equals("MapGuide"))
-                    throw new InvalidOperationException("Overlay options are only applicable to MapGuide maps"); //LOCALIZEME
+                if (!this.Type.Equals("MapGuide")) //NOXLATE
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorOverlayOptionsOnNonMapGuideMap);
 
                 if (value == null)
                 {
@@ -1004,7 +1004,7 @@
                         var els = new List<XmlElement>(this.extensionField.Any);
                         for (int i = 0; i < els.Count; i++)
                         {
-                            if (els[i].Name.Equals("Options"))
+                            if (els[i].Name.Equals("Options")) //NOXLATE
                             {
                                 els.RemoveAt(i);
                                 this.extensionField.Any = els.ToArray();
@@ -1018,7 +1018,7 @@
                     XmlElement el = null;
                     if (this.Extension.Any.Length == 0)
                     {
-                        el = AppDefDocument.Instance.CreateElement("Options");
+                        el = AppDefDocument.Instance.CreateElement("Options"); //NOXLATE
 
                         this.Extension.Any = new XmlElement[] { el };
                     }
@@ -1027,7 +1027,7 @@
                         var els = new List<XmlElement>(this.extensionField.Any);
                         for (int i = 0; i < els.Count; i++)
                         {
-                            if (els[i].Name.Equals("Options"))
+                            if (els[i].Name.Equals("Options")) //NOXLATE
                             {
                                 el = els[i];
                                 break;
@@ -1036,7 +1036,7 @@
 
                         if (el == null)
                         {
-                            el = AppDefDocument.Instance.CreateElement("Options");
+                            el = AppDefDocument.Instance.CreateElement("Options"); //NOXLATE
                             els.Add(el);
                             this.Extension.Any = els.ToArray();
                         }
@@ -1044,9 +1044,9 @@
 
                     el.RemoveAll();
 
-                    var n = el.OwnerDocument.CreateElement("isBaseLayer");
-                    var t = el.OwnerDocument.CreateElement("useOverlay");
-                    var p = el.OwnerDocument.CreateElement("projection");
+                    var n = el.OwnerDocument.CreateElement("isBaseLayer"); //NOXLATE
+                    var t = el.OwnerDocument.CreateElement("useOverlay"); //NOXLATE
+                    var p = el.OwnerDocument.CreateElement("projection"); //NOXLATE
 
                     n.InnerText = value.IsBaseLayer.ToString().ToLower();
                     t.InnerText = value.UseOverlay.ToString().ToLower();

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinitionInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinitionInterfaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ApplicationDefinitionInterfaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -296,27 +296,27 @@
         /// <summary>
         /// The preview template. Used for previewing other resources
         /// </summary>
-        public const string Preview = "Preview";
+        public const string Preview = "Preview"; //NOXLATE
         /// <summary>
         /// The Aqua template
         /// </summary>
-        public const string Aqua = "Aqua";
+        public const string Aqua = "Aqua"; //NOXLATE
         /// <summary>
         /// The Maroon template
         /// </summary>
-        public const string Maroon = "Maroon";
+        public const string Maroon = "Maroon"; //NOXLATE
         /// <summary>
         /// The Slate template
         /// </summary>
-        public const string Slate = "Slate";
+        public const string Slate = "Slate"; //NOXLATE
         /// <summary>
         /// The LimeGold template
         /// </summary>
-        public const string LimeGold = "LimeGold";
+        public const string LimeGold = "LimeGold"; //NOXLATE
         /// <summary>
         /// The TurquoiseYellow template
         /// </summary>
-        public const string TurquoiseYellow = "TurquoiseYellow";
+        public const string TurquoiseYellow = "TurquoiseYellow"; //NOXLATE
     }
 
     /// <summary>
@@ -324,105 +324,105 @@
     /// </summary>
     public static class KnownWidgetNames
     {
-        public const string About = "About";
+        public const string About = "About"; //NOXLATE
 
-        public const string ActivityIndicator = "ActivityIndicator";
+        public const string ActivityIndicator = "ActivityIndicator"; //NOXLATE
 
-        public const string BasemapSwitcher = "BasemapSwitcher";
+        public const string BasemapSwitcher = "BasemapSwitcher"; //NOXLATE
 
-        public const string Buffer = "Buffer";
+        public const string Buffer = "Buffer"; //NOXLATE
 
-        public const string BufferPanel = "BufferPanel";
+        public const string BufferPanel = "BufferPanel"; //NOXLATE
 
-        public const string CenterSelection = "CenterSelection";
+        public const string CenterSelection = "CenterSelection"; //NOXLATE
 
-        public const string ClearSelection = "ClearSelection";
+        public const string ClearSelection = "ClearSelection"; //NOXLATE
 
-        public const string ColorPicker = "ColorPicker";
+        public const string ColorPicker = "ColorPicker"; //NOXLATE
 
-        public const string CTRLClick = "CTRLClick";
+        public const string CTRLClick = "CTRLClick"; //NOXLATE
 
-        public const string CursorPosition = "CursorPosition";
+        public const string CursorPosition = "CursorPosition"; //NOXLATE
 
-        public const string EditableScale = "EditableScale";
+        public const string EditableScale = "EditableScale"; //NOXLATE
 
-        public const string ExtentHistory = "ExtentHistory";
+        public const string ExtentHistory = "ExtentHistory"; //NOXLATE
 
-        public const string FeatureInfo = "FeatureInfo";
+        public const string FeatureInfo = "FeatureInfo"; //NOXLATE
 
-        public const string Help = "Help";
+        public const string Help = "Help"; //NOXLATE
 
-        public const string InitialMapView = "InitialMapView";
+        public const string InitialMapView = "InitialMapView"; //NOXLATE
 
-        public const string InvokeScript = "InvokeScript";
+        public const string InvokeScript = "InvokeScript"; //NOXLATE
 
-        public const string InvokeURL = "InvokeURL";
+        public const string InvokeURL = "InvokeURL"; //NOXLATE
 
-        public const string LayerManager = "LayerManager";
+        public const string LayerManager = "LayerManager"; //NOXLATE
 
-        public const string Legend = "Legend";
+        public const string Legend = "Legend"; //NOXLATE
 
-        public const string LinkToView = "LinkToView";
+        public const string LinkToView = "LinkToView"; //NOXLATE
 
-        public const string MapMenu = "MapMenu";
+        public const string MapMenu = "MapMenu"; //NOXLATE
 
-        public const string Maptip = "Maptip";
+        public const string Maptip = "Maptip"; //NOXLATE
 
-        public const string Measure = "Measure";
+        public const string Measure = "Measure"; //NOXLATE
 
-        public const string Navigator = "Navigator";
+        public const string Navigator = "Navigator"; //NOXLATE
 
-        public const string OverviewMap = "OverviewMap";
+        public const string OverviewMap = "OverviewMap"; //NOXLATE
 
-        public const string Pan = "Pan";
+        public const string Pan = "Pan"; //NOXLATE
 
-        public const string PanOnClick = "PanOnClick";
+        public const string PanOnClick = "PanOnClick"; //NOXLATE
 
-        public const string PanQuery = "PanQuery";
+        public const string PanQuery = "PanQuery"; //NOXLATE
 
-        public const string Print = "Print";
+        public const string Print = "Print"; //NOXLATE
 
-        public const string Query = "Query";
+        public const string Query = "Query"; //NOXLATE
 
-        public const string QuickPlot = "QuickPlot";
+        public const string QuickPlot = "QuickPlot"; //NOXLATE
 
-        public const string Redline = "Redline";
+        public const string Redline = "Redline"; //NOXLATE
 
-        public const string RefreshMap = "RefreshMap";
+        public const string RefreshMap = "RefreshMap"; //NOXLATE
 
-        public const string SaveMap = "SaveMap";
+        public const string SaveMap = "SaveMap"; //NOXLATE
 
-        public const string Scalebar = "Scalebar";
+        public const string Scalebar = "Scalebar"; //NOXLATE
 
-        public const string ScalebarDual = "ScalebarDual";
+        public const string ScalebarDual = "ScalebarDual"; //NOXLATE
 
-        public const string Search = "Search";
+        public const string Search = "Search"; //NOXLATE
 
-        public const string Select = "Select";
+        public const string Select = "Select"; //NOXLATE
 
-        public const string SelectionInfo = "SelectionInfo";
+        public const string SelectionInfo = "SelectionInfo"; //NOXLATE
 
-        public const string SelectPolygon = "SelectPolygon";
+        public const string SelectPolygon = "SelectPolygon"; //NOXLATE
 
-        public const string SelectRadius = "SelectRadius";
+        public const string SelectRadius = "SelectRadius"; //NOXLATE
 
-        public const string SelectRadiusValue = "SelectRadiusValue";
+        public const string SelectRadiusValue = "SelectRadiusValue"; //NOXLATE
 
-        public const string SelectWithin = "SelectWithin";
+        public const string SelectWithin = "SelectWithin"; //NOXLATE
 
-        public const string TaskPane = "TaskPane";
+        public const string TaskPane = "TaskPane"; //NOXLATE
 
-        public const string Theme = "Theme";
+        public const string Theme = "Theme"; //NOXLATE
 
-        public const string ViewOptions = "ViewOptions";
+        public const string ViewOptions = "ViewOptions"; //NOXLATE
 
-        public const string ViewSize = "ViewSize";
+        public const string ViewSize = "ViewSize"; //NOXLATE
 
-        public const string Zoom = "Zoom";
+        public const string Zoom = "Zoom"; //NOXLATE
 
-        public const string ZoomOnClick = "ZoomOnClick";
+        public const string ZoomOnClick = "ZoomOnClick"; //NOXLATE
 
-        public const string ZoomToSelection = "ZoomToSelection";
+        public const string ZoomToSelection = "ZoomToSelection"; //NOXLATE
     }
 
     /// <summary>
@@ -633,8 +633,8 @@
         /// <param name="deleteReferences">if set to <c>true</c> [deletes any references to the widget to be deleted].</param>
         public static void RemoveWidget(this IApplicationDefinition appDef, string widgetName, bool deleteReferences)
         {
-            Check.NotNull(appDef, "appDef");
-            Check.NotEmpty(widgetName, "widgetName");
+            Check.NotNull(appDef, "appDef"); //NOXLATE
+            Check.NotEmpty(widgetName, "widgetName"); //NOXLATE
 
             IWidgetSet matchingSet = null;
             IWidget matchingWidget = null;
@@ -676,7 +676,7 @@
                                     if (witem != null && witem.Widget == widgetName)
                                     {
                                         removeMe.Add(witem);
-                                        System.Diagnostics.Trace.TraceInformation("Found widget reference in container: " + uicnt.Name);
+                                        System.Diagnostics.Trace.TraceInformation("Found widget reference in container: " + uicnt.Name); //NOXLATE
                                     }
                                 }
 
@@ -695,7 +695,7 @@
             }
 
             if (deleteReferences)
-                System.Diagnostics.Trace.TraceInformation(removed + " widget references removed");  
+                System.Diagnostics.Trace.TraceInformation(removed + " widget references removed");   //NOXLATE
         }
 
         /// <summary>
@@ -706,8 +706,8 @@
         /// <returns></returns>
         public static IApplicationDefinitionContainerInfo FindContainer(this IApplicationDefinitionContainerInfoSet set, string name)
         {
-            Check.NotNull(set, "set");
-            Check.NotEmpty(name, "name");
+            Check.NotNull(set, "set"); //NOXLATE
+            Check.NotEmpty(name, "name"); //NOXLATE
 
             foreach (var cnt in set.ContainerInfo)
             {
@@ -725,8 +725,8 @@
         /// <returns></returns>
         public static IWidgetInfo FindWidget(this IApplicationDefinitionWidgetInfoSet set, string name)
         {
-            Check.NotNull(set, "set");
-            Check.NotEmpty(name, "name");
+            Check.NotNull(set, "set"); //NOXLATE
+            Check.NotEmpty(name, "name"); //NOXLATE
 
             foreach (var wgt in set.WidgetInfo)
             {
@@ -744,8 +744,8 @@
         /// <returns></returns>
         public static IApplicationDefinitionTemplateInfo FindTemplate(this IApplicationDefinitionTemplateInfoSet set, string name)
         {
-            Check.NotNull(set, "set");
-            Check.NotEmpty(name, "name");
+            Check.NotNull(set, "set"); //NOXLATE
+            Check.NotEmpty(name, "name"); //NOXLATE
 
             foreach (var tpl in set.TemplateInfo)
             {
@@ -763,7 +763,7 @@
         /// <returns></returns>
         public static IMapGroup GetGroupById(this IMapSet set, string id)
         {
-            Check.NotNull(set, "set");
+            Check.NotNull(set, "set"); //NOXLATE
             foreach (var group in set.MapGroups)
             {
                 if (group.id.Equals(id))
@@ -779,7 +779,7 @@
         /// <returns></returns>
         public static string[] GetNames(this IExtensibleElement ext)
         {
-            Check.NotNull(ext, "ext");
+            Check.NotNull(ext, "ext"); //NOXLATE
 
             List<string> names = new List<string>();
 
@@ -798,7 +798,7 @@
         /// <returns></returns>
         public static NameValueCollection GetAllValues(this IExtensibleElement ext)
         {
-            Check.NotNull(ext, "ext");
+            Check.NotNull(ext, "ext"); //NOXLATE
             NameValueCollection values = new NameValueCollection();
             foreach (var el in ext.Extension.Content)
             {
@@ -814,8 +814,8 @@
         /// <param name="values"></param>
         public static void SetAllValues(this IExtensibleElement ext, NameValueCollection values)
         {
-            Check.NotNull(ext, "ext");
-            Check.NotNull(values, "values");
+            Check.NotNull(ext, "ext"); //NOXLATE
+            Check.NotNull(values, "values"); //NOXLATE
 
             var elements = new List<XmlElement>();
             foreach (string name in values.Keys)
@@ -836,8 +836,8 @@
         /// <param name="value"></param>
         public static void SetValue(this IExtensibleElement ext, string name, string value)
         {
-            Check.NotNull(ext, "ext");
-            Check.NotEmpty(name, "name");
+            Check.NotNull(ext, "ext"); //NOXLATE
+            Check.NotEmpty(name, "name"); //NOXLATE
 
             if (ext.Extension.Content != null)
             {
@@ -862,7 +862,7 @@
                 ext.Extension.Content = new XmlElement[] { rid };
             }
 
-            Trace.TraceInformation("Extensible element property {0} set to: {1}", name, value);
+            Trace.TraceInformation("Extensible element property {0} set to: {1}", name, value); //NOXLATE
         }
 
         /// <summary>
@@ -873,8 +873,8 @@
         /// <returns></returns>
         public static string GetValue(this IExtensibleElement ext, string name)
         {
-            Check.NotNull(ext, "ext");
-            Check.NotEmpty(name, "name");
+            Check.NotNull(ext, "ext"); //NOXLATE
+            Check.NotEmpty(name, "name"); //NOXLATE
 
             if (ext.Extension.Content != null)
             {
@@ -895,7 +895,7 @@
         /// <returns></returns>
         public static XmlElement FindElementByName(this XmlElement[] elements, string name)
         {
-            Check.NotNull(elements, "elements");
+            Check.NotNull(elements, "elements"); //NOXLATE
             foreach (var el in elements)
             {
                 if (el.Name == name)
@@ -911,8 +911,8 @@
         /// <returns></returns>
         public static string GetMapDefinition(this IMap map)
         {
-            Check.NotNull(map, "map");
-            return map.GetValue("ResourceId");
+            Check.NotNull(map, "map"); //NOXLATE
+            return map.GetValue("ResourceId"); //NOXLATE
         }
 
         /// <summary>
@@ -922,8 +922,8 @@
         /// <param name="mapDefId"></param>
         public static void SetMapDefinition(this IMap map, string mapDefId)
         {
-            Check.NotNull(map, "map");
-            map.SetValue("ResourceId", mapDefId);
+            Check.NotNull(map, "map"); //NOXLATE
+            map.SetValue("ResourceId", mapDefId); //NOXLATE
         }
 
         /// <summary>
@@ -933,7 +933,7 @@
         /// <returns></returns>
         public static IWidgetSet GetFirstWidgetSet(this IApplicationDefinition appDef)
         {
-            Check.NotNull(appDef, "appDef");
+            Check.NotNull(appDef, "appDef"); //NOXLATE
             IWidgetSet set = null;
             foreach (var wgt in appDef.WidgetSets)
             {
@@ -947,151 +947,151 @@
         }
     }
 
-        /*
-    public abstract class WidgetValue
+    /*
+public abstract class WidgetValue
+{
+    protected WidgetValue(string name, bool required)
     {
-        protected WidgetValue(string name, bool required)
-        {
-            this.Name = name;
-            this.Nullable = !required;
-        }
+        this.Name = name;
+        this.Nullable = !required;
+    }
 
-        public bool Nullable { get; protected set; }
+    public bool Nullable { get; protected set; }
 
-        public string Name { get; set; }
+    public string Name { get; set; }
 
-        public abstract object Value { get; set; }
+    public abstract object Value { get; set; }
 
-        protected virtual string ValueToString()
-        {
-            if (this.Value == null)
-                return string.Empty;
-            else
-                return this.Value.ToString();
-        }
+    protected virtual string ValueToString()
+    {
+        if (this.Value == null)
+            return string.Empty;
+        else
+            return this.Value.ToString();
+    }
 
-        public virtual string ToXml()
-        {
-            if (this.Nullable && this.Value == null)
-                return string.Empty;
+    public virtual string ToXml()
+    {
+        if (this.Nullable && this.Value == null)
+            return string.Empty;
 
-            return "<" + this.Name + ">" + ValueToString() + "</" + this.Name + ">";
-        }
+        return "<" + this.Name + ">" + ValueToString() + "</" + this.Name + ">"; //NOXLATE
     }
+}
 
-    public class RangedWidgetValue : WidgetValue
+public class RangedWidgetValue : WidgetValue
+{
+    public RangedWidgetValue(string name, bool required, IComparable minValue, IComparable maxValue) : base(name, required) 
     {
-        public RangedWidgetValue(string name, bool required, IComparable minValue, IComparable maxValue) : base(name, required) 
+        Check.NotNull(minValue, "minValue"); //NOXLATE
+        Check.NotNull(maxValue, "maxValue"); //NOXLATE
+
+        if (minValue.CompareTo(maxValue) <= 0)
         {
-            Check.NotNull(minValue, "minValue");
-            Check.NotNull(maxValue, "maxValue");
-
-            if (minValue.CompareTo(maxValue) <= 0)
-            {
-                this.MinValue = minValue;
-                this.MaxValue = maxValue;
-            }
-            else
-            {
-                this.MinValue = maxValue;
-                this.MaxValue = MinValue;
-            }
+            this.MinValue = minValue;
+            this.MaxValue = maxValue;
         }
+        else
+        {
+            this.MinValue = maxValue;
+            this.MaxValue = MinValue;
+        }
+    }
 
-        public IComparable MinValue { get; private set; }
+    public IComparable MinValue { get; private set; }
 
-        public IComparable MaxValue { get; private set; }
+    public IComparable MaxValue { get; private set; }
 
-        private object _value;
+    private object _value;
 
-        public override object Value
+    public override object Value
+    {
+        get
         {
-            get
+            return _value;
+        }
+        set
+        {
+            if (value == null)
             {
-                return _value;
+                if (!this.Nullable)
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.ErrorNullNotAccepted);
+
+                _value = value;
             }
-            set
+            else
             {
-                if (value == null)
-                {
-                    if (!this.Nullable)
-                        throw new InvalidOperationException("Null values not accepted"); //LOCALIZEME
+                var cmp = value as IComparable;
+                if (cmp == null)
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.ErrroValueNotComparable);
 
+                if (cmp.CompareTo(this.MinValue) >= 0 && cmp.CompareTo(this.MaxValue) <= 0)
                     _value = value;
-                }
                 else
-                {
-                    var cmp = value as IComparable;
-                    if (cmp == null)
-                        throw new InvalidOperationException("Assigned value is not comparable"); //LOCALIZEME
-
-                    if (cmp.CompareTo(this.MinValue) >= 0 && cmp.CompareTo(this.MaxValue) <= 0)
-                        _value = value;
-                    else
-                        throw new InvalidOperationException("Value falls outside the range of " + this.MinValue + " and " + this.MaxValue); //LOCALIZEME
-                }
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.MaestroAPI.Properties.ErrorValueOutOfRange, this.MinValue, this.MaxValue));
             }
         }
     }
+}
 
-    public class RestrictedWidgetValue : WidgetValue
-    {
-        public RestrictedWidgetValue(string name, bool required) : base(name, required) { }
+public class RestrictedWidgetValue : WidgetValue
+{
+    public RestrictedWidgetValue(string name, bool required) : base(name, required) { }
 
-        private object _value;
+    private object _value;
 
-        public override object Value
+    public override object Value
+    {
+        get
         {
-            get
+            return _value;
+        }
+        set
+        {
+            if (value == null)
             {
-                return _value;
+                if (!this.Nullable)
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.ErrorNullNotAccepted);
+
+                _value = value;
             }
-            set
+            else
             {
-                if (value == null)
-                {
-                    if (!this.Nullable)
-                        throw new InvalidOperationException("Null values not accepted"); //LOCALIZEME
-
-                    _value = value;
-                }
-                else
-                {
-                    _value = value;
-                }
+                _value = value;
             }
         }
     }
+}
 
-    public class ArbitraryWidgetValue : WidgetValue
-    {
-        public ArbitraryWidgetValue(string name, bool required) : base(name, required) { }
+public class ArbitraryWidgetValue : WidgetValue
+{
+    public ArbitraryWidgetValue(string name, bool required) : base(name, required) { }
 
-        private object _value;
+    private object _value;
 
-        public override object Value
+    public override object Value
+    {
+        get
         {
-            get
+            return _value;
+        }
+        set
+        {
+            if (value == null)
             {
-                return _value;
+                if (!this.Nullable)
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.ErrorNullNotAccepted);
+
+                _value = value;
             }
-            set
+            else
             {
-                if (value == null)
-                {
-                    if (!this.Nullable)
-                        throw new InvalidOperationException("Null values not accepted"); //LOCALIZEME
-
-                    _value = value;
-                }
-                else
-                {
-                    _value = value;
-                }
+                _value = value;
             }
         }
     }
-        */
+}
+    */
 
     public interface IMapSet
     {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/CommonTypes.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/CommonTypes.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/CommonTypes.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -27,10 +27,10 @@
 
 namespace OSGeo.MapGuide.ObjectModels.Common
 {
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.3.0.33572")] //NOXLATE
     [System.SerializableAttribute()]
     [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.ComponentModel.DesignerCategoryAttribute("code")]
+    [System.ComponentModel.DesignerCategoryAttribute("code")] //NOXLATE
     public partial class ExtendedDataType : System.ComponentModel.INotifyPropertyChanged
     {
         [EditorBrowsable(EditorBrowsableState.Never)]
@@ -52,13 +52,13 @@
                     if ((anyField.Equals(value) != true))
                     {
                         this.anyField = value;
-                        this.OnPropertyChanged("Any");
+                        this.OnPropertyChanged("Any"); //NOXLATE
                     }
                 }
                 else
                 {
                     this.anyField = value;
-                    this.OnPropertyChanged("Any");
+                    this.OnPropertyChanged("Any"); //NOXLATE
                 }
             }
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSource.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSource.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSource.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -55,14 +55,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorInvalidResourceIdentifier); //LOCALIZE
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.DrawingSource.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorUnexpectedResourceType, res.ToString(), ResourceTypes.DrawingSource)); //LOCALIZE
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -89,10 +89,10 @@
             return this.Clone();
         }
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema 
-        { 
-            get { return "DrawingSource-1.0.0.xsd"; }
+        {
+            get { return "DrawingSource-1.0.0.xsd"; } //NOXLATE
             set { }
         }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSourceInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSourceInterfaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/DrawingSourceInterfaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -109,8 +109,8 @@
         /// <param name="source"></param>
         public static void UpdateExtents(this IDrawingSource source)
         {
-            Check.NotNull(source, "source");
-            Check.NotEmpty(source.ResourceID, "source.ResourceID");
+            Check.NotNull(source, "source"); //NOXLATE
+            Check.NotEmpty(source.ResourceID, "source.ResourceID"); //NOXLATE
 
             //Need drawing service
             if (Array.IndexOf(source.CurrentConnection.Capabilities.SupportedServices, (int)ServiceType.Drawing) < 0)
@@ -123,7 +123,7 @@
                 var list = drawSvc.EnumerateDrawingSectionResources(source.ResourceID, sht.Name);
                 foreach (var res in list.SectionResource)
                 {
-                    if (res.Role == "AutoCAD Viewport Data")
+                    if (res.Role == "AutoCAD Viewport Data") //NOXLATE
                     {
                         using (var stream = drawSvc.GetSectionResource(source.ResourceID, res.Href))
                         {
@@ -143,14 +143,18 @@
                                     //
                                     //A the first space after each number of each parameter marks the end of that value
 
-                                    int idx = content.IndexOf("llx") + 4; // 4 - length of "llx="
-                                    string sllx = content.Substring(idx, content.IndexOf(" ", idx) - idx);
-                                    idx = content.IndexOf("lly") + 4; // 4 - length of "lly="
-                                    string slly = content.Substring(idx, content.IndexOf(" ", idx) - idx);
-                                    idx = content.IndexOf("urx") + 4; // 4 - length of "urx="
-                                    string surx = content.Substring(idx, content.IndexOf(" ", idx) - idx);
-                                    idx = content.IndexOf("ury") + 4; // 4 - length of "ury="
-                                    string sury = content.Substring(idx, content.IndexOf(" ", idx) - idx);
+                                    // 4 - length of "llx="
+                                    int idx = content.IndexOf("llx") + 4;  //NOXLATE
+                                    string sllx = content.Substring(idx, content.IndexOf(" ", idx) - idx); //NOXLATE
+                                    // 4 - length of "lly="
+                                    idx = content.IndexOf("lly") + 4; //NOXLATE
+                                    string slly = content.Substring(idx, content.IndexOf(" ", idx) - idx); //NOXLATE
+                                    // 4 - length of "urx="
+                                    idx = content.IndexOf("urx") + 4; //NOXLATE
+                                    string surx = content.Substring(idx, content.IndexOf(" ", idx) - idx); //NOXLATE
+                                    // 4 - length of "ury="
+                                    idx = content.IndexOf("ury") + 4; //NOXLATE
+                                    string sury = content.Substring(idx, content.IndexOf(" ", idx) - idx); //NOXLATE
 
                                     //Update extents
                                     sht.Extent = ObjectFactory.CreateEnvelope(

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/Envelope.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/Envelope.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/Envelope.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -69,7 +69,7 @@
         /// <returns></returns>
         public static IPoint2D Center(this IEnvelope env)
         {
-            Check.NotNull(env, "env");
+            Check.NotNull(env, "env"); //NOXLATE
 
             return ObjectFactory.CreatePoint2D(
                 (env.MinX + env.MaxX) / 2,
@@ -83,7 +83,7 @@
         /// <returns></returns>
         public static IEnvelope Clone(this IEnvelope env)
         {
-            Check.NotNull(env, "env");
+            Check.NotNull(env, "env"); //NOXLATE
             return ObjectFactory.CreateEnvelope(env.MinX, env.MinY, env.MaxX, env.MaxY);
         }
 
@@ -94,7 +94,7 @@
         /// <param name="e1"></param>
         public static void ExpandToInclude(this IEnvelope env, IEnvelope e1)
         {
-            Check.NotNull(env, "env");
+            Check.NotNull(env, "env"); //NOXLATE
             if (e1 == null)
                 return;
 
@@ -122,7 +122,7 @@
         /// </returns>
         public static bool Contains(this IEnvelope env, double x, double y)
         {
-            Check.NotNull(env, "env");
+            Check.NotNull(env, "env"); //NOXLATE
 
             return env.MinX <= x &&
                    env.MaxX >= x &&
@@ -138,7 +138,7 @@
         /// <returns></returns>
         public static bool Intersects(this IEnvelope env, IEnvelope other)
         {
-            Check.NotNull(env, "env");
+            Check.NotNull(env, "env"); //NOXLATE
 
             if (other == null)
                 return false;
@@ -166,7 +166,7 @@
             set 
             { 
                 this.lowerLeftCoordinateField.X = value;
-                OnPropertyChanged("MinX");
+                OnPropertyChanged("MinX"); //NOXLATE
             }
         }
 
@@ -179,7 +179,7 @@
             set 
             { 
                 this.lowerLeftCoordinateField.Y = value;
-                OnPropertyChanged("MinY");
+                OnPropertyChanged("MinY"); //NOXLATE
             }
         }
 
@@ -205,7 +205,7 @@
             set 
             { 
                 this.upperRightCoordinateField.Y = value;
-                OnPropertyChanged("MaxY");
+                OnPropertyChanged("MaxY"); //NOXLATE
             }
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -56,14 +56,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorInvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.FeatureSource.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorUnexpectedResourceType, res.ToString(), ResourceTypes.FeatureSource));
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -92,10 +92,10 @@
             return fs;
         }
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema 
-        { 
-            get { return "FeatureSource-1.0.0.xsd"; }
+        {
+            get { return "FeatureSource-1.0.0.xsd"; } //NOXLATE
             set { }
         }
 
@@ -166,7 +166,7 @@
             }
 
             if (bRaise)
-                OnPropertyChanged("Parameter");
+                OnPropertyChanged("Parameter"); //NOXLATE
         }
 
         protected void DetachChangeListeners()
@@ -191,8 +191,6 @@
             }
         }
 
-        const string DATA_TAG = "%MG_DATA_FILE_PATH%";
-
         /// <summary>
         /// Gets the name of the embedded data resource. Can only be called if <see cref="UsesEmbeddedDataFiles"/> returns true.
         /// </summary>
@@ -204,17 +202,17 @@
                 throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ERR_FS_NO_EMBEDDED_DATA);
 
             string connStr = this.ConnectionString;
-            int tagIndex = connStr.IndexOf(DATA_TAG);
+            int tagIndex = connStr.IndexOf(StringConstants.MgDataFilePath);
 
-            int end = connStr.IndexOf(";", tagIndex + DATA_TAG.Length);
+            int end = connStr.IndexOf(";", tagIndex + StringConstants.MgDataFilePath.Length); //NOXLATE
             //The "File" parameter was the last parameter
             if (end < 0)
-                return connStr.Substring(tagIndex + DATA_TAG.Length);
+                return connStr.Substring(tagIndex + StringConstants.MgDataFilePath.Length);
             else
-                return connStr.Substring(tagIndex + DATA_TAG.Length, end - (tagIndex + DATA_TAG.Length));
+                return connStr.Substring(tagIndex + StringConstants.MgDataFilePath.Length, end - (tagIndex + StringConstants.MgDataFilePath.Length));
         }
 
-        const string ALIAS_PREFIX = "%MG_DATA_PATH_ALIAS[";
+        const string ALIAS_PREFIX = "%MG_DATA_PATH_ALIAS["; //NOXLATE
 
         /// <summary>
         /// Gets the name of the alias. Can only be called if <see cref="UsesAliasedDataFiles"/> returns true
@@ -229,7 +227,7 @@
             string connStr = this.ConnectionString;
 
             int braceStart = connStr.IndexOf(ALIAS_PREFIX) + ALIAS_PREFIX.Length;
-            int braceEnd = connStr.IndexOf(']', braceStart + 1);
+            int braceEnd = connStr.IndexOf(']', braceStart + 1); //NOXLATE
             int length = braceEnd - braceStart;
 
             return connStr.Substring(braceStart, length);
@@ -248,10 +246,10 @@
 
             string connStr = this.ConnectionString;
             int braceStart = connStr.IndexOf(ALIAS_PREFIX) + ALIAS_PREFIX.Length;
-            int braceEnd = connStr.IndexOf(']', braceStart + 1);
+            int braceEnd = connStr.IndexOf(']', braceStart + 1); //NOXLATE
             int aliasEnd = braceEnd + 2;
 
-            int end = connStr.IndexOf(";", aliasEnd);
+            int end = connStr.IndexOf(";", aliasEnd); //NOXLATE
             //The "File" parameter was the last parameter
             if (end < 0)
                 return connStr.Substring(aliasEnd);
@@ -264,7 +262,7 @@
         {
             get
             {
-                return this.ConnectionString.Contains(DATA_TAG);
+                return this.ConnectionString.Contains(StringConstants.MgDataFilePath);
             }
         }
 
@@ -487,7 +485,7 @@
             if (this.LowerLeftCoordinate == null || this.UpperRightCoordinate == null)
                 return OSGeo.MapGuide.MaestroAPI.Properties.Resources.NullString;
 
-            return string.Format(Thread.CurrentThread.CurrentUICulture, "({0},{1},{2},{3})",
+            return string.Format(Thread.CurrentThread.CurrentUICulture, "({0},{1},{2},{3})", //NOXLATE
                 this.LowerLeftCoordinate.X,
                 this.LowerLeftCoordinate.Y,
                 this.UpperRightCoordinate.X,

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSourceInterfaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -364,7 +364,7 @@
         /// <returns></returns>
         public static NameValueCollection GetConnectionProperties(this IFeatureSource fs)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             var values = new NameValueCollection();
             foreach (string name in fs.ConnectionPropertyNames)
             {
@@ -380,7 +380,7 @@
         /// <returns></returns>
         public static string[] GetSchemaNames(this IFeatureSource fs)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             return fs.CurrentConnection.FeatureService.GetSchemas(fs.ResourceID);
         }
 
@@ -392,8 +392,8 @@
         /// <returns></returns>
         public static string[] GetClassNames(this IFeatureSource fs, string schemaName)
         {
-            Check.NotNull(fs, "fs");
-            Check.NotEmpty(schemaName, "schemaName");
+            Check.NotNull(fs, "fs"); //NOXLATE
+            Check.NotEmpty(schemaName, "schemaName"); //NOXLATE
 
             return fs.CurrentConnection.FeatureService.GetClassNames(fs.ResourceID, schemaName);
         }
@@ -405,8 +405,8 @@
         /// <param name="values"></param>
         public static void ApplyConnectionProperties(this IFeatureSource fs, NameValueCollection values)
         {
-            Check.NotNull(fs, "fs");
-            Check.NotNull(values, "values");
+            Check.NotNull(fs, "fs"); //NOXLATE
+            Check.NotNull(values, "values"); //NOXLATE
 
             fs.ClearConnectionProperties();
 
@@ -425,7 +425,7 @@
         /// <returns></returns>
         public static string GetConfigurationContent(this IFeatureSource fs)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             if (string.IsNullOrEmpty(fs.ConfigurationDocument))
                 return string.Empty;
 
@@ -447,9 +447,9 @@
         /// <param name="xmlContent"></param>
         public static void SetConfigurationContent(this IFeatureSource fs, string xmlContent)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             if (string.IsNullOrEmpty(fs.ConfigurationDocument))
-                fs.ConfigurationDocument = "config.xml";
+                fs.ConfigurationDocument = "config.xml"; //NOXLATE
 
             if (string.IsNullOrEmpty(xmlContent))
             {
@@ -487,7 +487,7 @@
         /// <returns></returns>
         public static FeatureSourceDescription Describe(this IFeatureSource fs)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             return fs.CurrentConnection.FeatureService.DescribeFeatureSource(fs.ResourceID);
         }
 
@@ -497,7 +497,7 @@
         /// <returns></returns>
         public static OSGeo.MapGuide.ObjectModels.Common.FdoSpatialContextList GetSpatialInfo(this IFeatureSource fs, bool activeOnly)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             return fs.CurrentConnection.FeatureService.GetSpatialContextInfo(fs.ResourceID, activeOnly);
         }
 
@@ -509,7 +509,7 @@
         /// <returns></returns>
         public static string[] GetIdentityProperties(this IFeatureSource fs, string className)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             try
             {
                 return fs.CurrentConnection.FeatureService.GetIdentityProperties(fs.ResourceID, className);
@@ -518,7 +518,7 @@
             {
                 //MgClassNotFoundException is thrown for classes w/ no identity properties
                 //when the correct server response should be an empty array
-                if (ex.Message.IndexOf("MgClassNotFoundException") >= 0)
+                if (ex.Message.IndexOf("MgClassNotFoundException") >= 0) //NOXLATE
                 {
                     return new string[0];
                 }
@@ -538,7 +538,7 @@
         /// <returns></returns>
         public static IEnvelope GetSpatialExtent(this IFeatureSource fs, string className, string geomProperty)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             return fs.CurrentConnection.FeatureService.GetSpatialExtent(fs.ResourceID, className, geomProperty);
         }
 
@@ -550,7 +550,7 @@
         /// <returns></returns>
         public static ClassDefinition GetClass(this IFeatureSource fs, string qualifiedName)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             return fs.CurrentConnection.FeatureService.GetClassDefinition(fs.ResourceID, qualifiedName);
         }
 
@@ -562,7 +562,7 @@
         /// <param name="coordSys"></param>
         public static void AddSpatialContextOverride(this IFeatureSource fs, string name, string coordSys)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             fs.AddSpatialContextOverride(new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.SpatialContextType() { Name = name, CoordinateSystem = coordSys });
         }
 
@@ -574,7 +574,7 @@
         /// <returns></returns>
         public static string TestConnection(this IFeatureSource fs)
         {
-            Check.NotNull(fs, "fs");
+            Check.NotNull(fs, "fs"); //NOXLATE
             return fs.CurrentConnection.FeatureService.TestConnection(fs.ResourceID);
         }
 
@@ -586,7 +586,7 @@
         /// <param name="secondary"></param>
         public static void AddRelateProperty(this IAttributeRelation rel, string primary, string secondary)
         {
-            Check.NotNull(rel, "rel");
+            Check.NotNull(rel, "rel"); //NOXLATE
             rel.AddRelateProperty(new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.RelatePropertyType() { FeatureClassProperty = primary, AttributeClassProperty = secondary });
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/IFdoSpatialContext.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/IFdoSpatialContext.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/IFdoSpatialContext.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -148,40 +148,40 @@
             if (this.ExtentType == FdoSpatialContextListSpatialContextExtentType.Dynamic)
                 return;
 
-            var crs = doc.CreateElement("gml", "DerivedCRS", XmlNamespaces.GML);
+            var crs = doc.CreateElement("gml", "DerivedCRS", XmlNamespaces.GML); //NOXLATE
             {
-                crs.SetAttribute("id", XmlNamespaces.GML, this.Name);
-                var meta = doc.CreateElement("gml", "metaDataProperty", XmlNamespaces.GML);
+                crs.SetAttribute("id", XmlNamespaces.GML, this.Name); //NOXLATE
+                var meta = doc.CreateElement("gml", "metaDataProperty", XmlNamespaces.GML); //NOXLATE
                 crs.AppendChild(meta);
                 {
-                    var genMeta = doc.CreateElement("gml", "GenericMetaData", XmlNamespaces.GML);
+                    var genMeta = doc.CreateElement("gml", "GenericMetaData", XmlNamespaces.GML); //NOXLATE
                     meta.AppendChild(genMeta);
                     {
-                        var fdoXY = doc.CreateElement("fdo", "XYTolerance", XmlNamespaces.FDO);
-                        var fdoZ = doc.CreateElement("fdo", "ZTolerance", XmlNamespaces.FDO);
+                        var fdoXY = doc.CreateElement("fdo", "XYTolerance", XmlNamespaces.FDO); //NOXLATE
+                        var fdoZ = doc.CreateElement("fdo", "ZTolerance", XmlNamespaces.FDO); //NOXLATE
                         fdoXY.InnerText = this.XYTolerance.ToString(CultureInfo.InvariantCulture);
                         fdoZ.InnerText = this.ZTolerance.ToString(CultureInfo.InvariantCulture);
                         genMeta.AppendChild(fdoXY);
                         genMeta.AppendChild(fdoZ);
                     }
                 }
-                
-                var remarks = doc.CreateElement("gml", "remarks", XmlNamespaces.GML);
+
+                var remarks = doc.CreateElement("gml", "remarks", XmlNamespaces.GML); //NOXLATE
                 remarks.InnerText = this.Description;
                 crs.AppendChild(remarks);
 
-                var csName = doc.CreateElement("gml", "srsName", XmlNamespaces.GML);
+                var csName = doc.CreateElement("gml", "srsName", XmlNamespaces.GML); //NOXLATE
                 csName.InnerText = string.IsNullOrEmpty(this.CoordinateSystemName) ? this.Name : this.CoordinateSystemName;
                 crs.AppendChild(csName);
 
-                var ext = doc.CreateElement("gml", "validArea", XmlNamespaces.GML);
+                var ext = doc.CreateElement("gml", "validArea", XmlNamespaces.GML); //NOXLATE
                 {
-                    var bbox = doc.CreateElement("gml", "boundingBox", XmlNamespaces.GML);
+                    var bbox = doc.CreateElement("gml", "boundingBox", XmlNamespaces.GML); //NOXLATE
                     {
-                        var ll = doc.CreateElement("gml", "pos", XmlNamespaces.GML);
-                        var ur = doc.CreateElement("gml", "pos", XmlNamespaces.GML);
-                        ll.InnerText = this.Extent.LowerLeftCoordinate.X + " " + this.Extent.LowerLeftCoordinate.Y;
-                        ur.InnerText = this.Extent.UpperRightCoordinate.X + " " + this.Extent.UpperRightCoordinate.Y;
+                        var ll = doc.CreateElement("gml", "pos", XmlNamespaces.GML); //NOXLATE
+                        var ur = doc.CreateElement("gml", "pos", XmlNamespaces.GML); //NOXLATE
+                        ll.InnerText = this.Extent.LowerLeftCoordinate.X + " " + this.Extent.LowerLeftCoordinate.Y; //NOXLATE
+                        ur.InnerText = this.Extent.UpperRightCoordinate.X + " " + this.Extent.UpperRightCoordinate.Y; //NOXLATE
                         bbox.AppendChild(ll);
                         bbox.AppendChild(ur);
                     }
@@ -189,23 +189,23 @@
                 }
                 crs.AppendChild(ext);
 
-                var baseCrs = doc.CreateElement("gml", "baseCRS", XmlNamespaces.GML);
-                var definedBy = doc.CreateElement("gml", "definedByConversion", XmlNamespaces.GML);
-                var derivedCrs = doc.CreateElement("gml", "derivedCRSType", XmlNamespaces.GML);
-                var userCs = doc.CreateElement("gml", "usesCS", XmlNamespaces.GML);
+                var baseCrs = doc.CreateElement("gml", "baseCRS", XmlNamespaces.GML); //NOXLATE
+                var definedBy = doc.CreateElement("gml", "definedByConversion", XmlNamespaces.GML); //NOXLATE
+                var derivedCrs = doc.CreateElement("gml", "derivedCRSType", XmlNamespaces.GML); //NOXLATE
+                var userCs = doc.CreateElement("gml", "usesCS", XmlNamespaces.GML); //NOXLATE
 
                 if (string.IsNullOrEmpty(this.CoordinateSystemWkt))
                 {
-                    baseCrs.SetAttribute("href", XmlNamespaces.XLINK, "http://fdo.osgeo.org/schemas/feature/crs/#" + (string.IsNullOrEmpty(this.CoordinateSystemName) ? this.Name : this.CoordinateSystemName));
+                    baseCrs.SetAttribute("href", XmlNamespaces.XLINK, "http://fdo.osgeo.org/schemas/feature/crs/#" + (string.IsNullOrEmpty(this.CoordinateSystemName) ? this.Name : this.CoordinateSystemName)); //NOXLATE
                 }
                 else
                 {
-                    var wktCRS = doc.CreateElement("fdo", "WKTCRS", XmlNamespaces.FDO);
-                    wktCRS.SetAttribute("id", XmlNamespaces.GML, this.Name);
+                    var wktCRS = doc.CreateElement("fdo", "WKTCRS", XmlNamespaces.FDO); //NOXLATE
+                    wktCRS.SetAttribute("id", XmlNamespaces.GML, this.Name); //NOXLATE
                     {
-                        var srsName = doc.CreateElement("gml", "srsName", XmlNamespaces.GML);
+                        var srsName = doc.CreateElement("gml", "srsName", XmlNamespaces.GML); //NOXLATE
                         srsName.InnerText = this.nameField;
-                        var fdowkt = doc.CreateElement("fdo", "WKT", XmlNamespaces.FDO);
+                        var fdowkt = doc.CreateElement("fdo", "WKT", XmlNamespaces.FDO); //NOXLATE
                         fdowkt.InnerText = this.CoordinateSystemWkt;
                         wktCRS.AppendChild(srsName);
                         wktCRS.AppendChild(fdowkt);
@@ -213,10 +213,10 @@
                     baseCrs.AppendChild(wktCRS);
                 }
 
-                definedBy.SetAttribute("href", XmlNamespaces.XLINK, "http://fdo.osgeo.org/coord_conversions#identity");
-                derivedCrs.SetAttribute("codeSpace", "http://fdo.osgeo.org/crs_types");
-                derivedCrs.InnerText = "geographic";
-                userCs.SetAttribute("href", XmlNamespaces.XLINK, "http://fdo.osgeo.org/cs#default_cartesian");
+                definedBy.SetAttribute("href", XmlNamespaces.XLINK, "http://fdo.osgeo.org/coord_conversions#identity"); //NOXLATE
+                derivedCrs.SetAttribute("codeSpace", "http://fdo.osgeo.org/crs_types"); //NOXLATE
+                derivedCrs.InnerText = "geographic"; //NOXLATE
+                userCs.SetAttribute("href", XmlNamespaces.XLINK, "http://fdo.osgeo.org/cs#default_cartesian"); //NOXLATE
 
                 crs.AppendChild(baseCrs);
                 crs.AppendChild(definedBy);
@@ -229,20 +229,20 @@
 
         public void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            if (!node.Name.Equals("gml:DerivedCRS"))
-                throw new Exception("Bad document. Expected element gml:DerivedCRS"); //LOCALIZEME
+            if (!node.Name.Equals("gml:DerivedCRS")) //NOXLATE
+                throw new Exception(string.Format(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorBadDocumentExpectedElement, "gml:DerivedCRS"));
 
             //Start off as dynamic, until we find a bounding box. Then we set it to static
             this.ExtentType = FdoSpatialContextListSpatialContextExtentType.Dynamic;
 
-            var meta = node["gml:metaDataProperty"];
+            var meta = node["gml:metaDataProperty"]; //NOXLATE
             if (meta != null)
             {
-                var genMeta = meta["gml:GenericMetaData"];
+                var genMeta = meta["gml:GenericMetaData"]; //NOXLATE
 
-                var scType = Utility.GetFdoElement(genMeta, "SCExtentType");
-                var xyTol = Utility.GetFdoElement(genMeta, "XYTolerance");
-                var zTol = Utility.GetFdoElement(genMeta, "ZTolerance");
+                var scType = Utility.GetFdoElement(genMeta, "SCExtentType"); //NOXLATE
+                var xyTol = Utility.GetFdoElement(genMeta, "XYTolerance"); //NOXLATE
+                var zTol = Utility.GetFdoElement(genMeta, "ZTolerance"); //NOXLATE
 
                 //this.ExtentType = (scType == null || scType.InnerText == "dynamic") ? FdoSpatialContextListSpatialContextExtentType.Dynamic : FdoSpatialContextListSpatialContextExtentType.Static;
 
@@ -261,25 +261,25 @@
                 this.ZTolerance = 0.0001;
             }
 
-            var remarks = node["gml:remarks"];
-            var srsName = node["gml:srsName"];
-            var ext = node["gml:validArea"];
-            var baseCrs = node["gml:baseCRS"];
+            var remarks = node["gml:remarks"]; //NOXLATE
+            var srsName = node["gml:srsName"]; //NOXLATE
+            var ext = node["gml:validArea"]; //NOXLATE
+            var baseCrs = node["gml:baseCRS"]; //NOXLATE
 
             this.Name = srsName.InnerText;
             this.Description = (remarks != null) ? remarks.InnerText : string.Empty;
 
-            var bbox = ext["gml:boundingBox"];
+            var bbox = ext["gml:boundingBox"]; //NOXLATE
             if (bbox != null)
             {
                 var ll = bbox.FirstChild;
                 var ur = bbox.LastChild;
 
-                var llt = ll.InnerText.Split(' ');
-                var urt = ur.InnerText.Split(' ');
+                var llt = ll.InnerText.Split(' '); //NOXLATE
+                var urt = ur.InnerText.Split(' '); //NOXLATE
 
                 if (llt.Length != 2 || urt.Length != 2)
-                    throw new Exception("Bad document. Invalid bounding box"); //LOCALIZEME
+                    throw new Exception(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorBadDocumentInvalidBbox);
 
                 this.Extent = new FdoSpatialContextListSpatialContextExtent()
                 {
@@ -298,16 +298,16 @@
                 this.ExtentType = FdoSpatialContextListSpatialContextExtentType.Static;
             }
 
-            if (baseCrs.HasAttribute("xlink:href"))
+            if (baseCrs.HasAttribute("xlink:href")) //NOXLATE
             {
-                var href = baseCrs.GetAttribute("xlink:href");
-                this.CoordinateSystemName = href.Substring(href.LastIndexOf("#") + 1);
+                var href = baseCrs.GetAttribute("xlink:href"); //NOXLATE
+                this.CoordinateSystemName = href.Substring(href.LastIndexOf("#") + 1); //NOXLATE
             }
 
-            var wktCrs = Utility.GetFdoElement(baseCrs, "WKTCRS");
+            var wktCrs = Utility.GetFdoElement(baseCrs, "WKTCRS"); //NOXLATE
             if (wktCrs != null)
             {
-                var wkt = Utility.GetFdoElement(wktCrs, "WKT");
+                var wkt = Utility.GetFdoElement(wktCrs, "WKT"); //NOXLATE
                 if (wkt != null)
                 {
                     this.CoordinateSystemWkt = wkt.InnerText;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerFactory.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -176,8 +176,8 @@
                 RebuildFactor = 1.0
             });
 
-            gl.GetScaleRangeAt(0).ColorStyle.GetColorRuleAt(0).Color.SetValue("000000");
-            gl.GetScaleRangeAt(0).ColorStyle.GetColorRuleAt(1).Color.SetValue("FFFFFF");
+            gl.GetScaleRangeAt(0).ColorStyle.GetColorRuleAt(0).Color.SetValue("000000"); //NOXLATE
+            gl.GetScaleRangeAt(0).ColorStyle.GetColorRuleAt(1).Color.SetValue("FFFFFF"); //NOXLATE
 
             this.Item = gl;
         }
@@ -214,8 +214,8 @@
             return new StrokeType()
             {
                 Color = Utility.SerializeHTMLColor(color, true),
-                LineStyle = "Solid",
-                Thickness = "1",
+                LineStyle = "Solid", //NOXLATE
+                Thickness = "1", //NOXLATE
                 Unit = LengthUnitType.Points
             };
         }
@@ -268,7 +268,7 @@
 
         public IFill CreateDefaultFill()
         {
-            return CreateFill("Solid", Color.White, Color.White);
+            return CreateFill("Solid", Color.White, Color.White); //NOXLATE
         }
 
         public IMarkSymbol CreateDefaultMarkSymbol()
@@ -279,9 +279,9 @@
                 SizeContext = SizeContextType.DeviceUnits,
                 MaintainAspect = true,
                 Shape = ShapeType.Square,
-                Rotation = "0",
-                SizeX = "10",
-                SizeY = "10",
+                Rotation = "0", //NOXLATE
+                SizeX = "10", //NOXLATE
+                SizeY = "10", //NOXLATE
                 Unit = LengthUnitType.Points
             };
             sym.Edge = CreateDefaultStroke();
@@ -295,10 +295,10 @@
             {
                 SizeContext = SizeContextType.DeviceUnits,
                 MaintainAspect = true,
-                FontName = "Arial",
-                Rotation = "0",
-                SizeX = "10",
-                SizeY = "10",
+                FontName = "Arial", //NOXLATE
+                Rotation = "0", //NOXLATE
+                SizeX = "10", //NOXLATE
+                SizeY = "10", //NOXLATE
                 Unit = LengthUnitType.Points
             };
             sym.SetForegroundColor(Color.Black);
@@ -316,7 +316,7 @@
         {
             IPointRule pr = new PointRuleType()
             {
-                LegendLabel = ""
+                LegendLabel = string.Empty
             };
             pr.PointSymbolization2D = CreateDefaultPointSymbolization2D();
             return pr;
@@ -326,7 +326,7 @@
         {
             IAreaRule ar = new AreaRuleType()
             {
-                LegendLabel = ""
+                LegendLabel = string.Empty
             };
             ar.AreaSymbolization2D = CreateDefaultAreaSymbolizationFill();
             return ar;
@@ -364,19 +364,19 @@
                 AdvancedPlacement = null,
                 BackgroundColor = Utility.SerializeHTMLColor(Color.White, true),
                 BackgroundStyle = BackgroundStyleType.Transparent,
-                Bold = "false",
-                FontName = "Arial",
+                Bold = "false", //NOXLATE
+                FontName = "Arial", //NOXLATE
                 ForegroundColor = Utility.SerializeHTMLColor(Color.Black, true),
-                HorizontalAlignment = "'Center'",
-                Italic = "false",
-                Rotation = "0",
+                HorizontalAlignment = "'Center'", //NOXLATE
+                Italic = "false", //NOXLATE
+                Rotation = "0", //NOXLATE
                 SizeContext = SizeContextType.DeviceUnits,
-                SizeX = "10",
-                SizeY = "10",
-                Text = "",
-                Underlined = "false",
+                SizeX = "10", //NOXLATE
+                SizeY = "10", //NOXLATE
+                Text = string.Empty,
+                Underlined = "false", //NOXLATE
                 Unit = LengthUnitType.Points,
-                VerticalAlignment = "'Baseline'"
+                VerticalAlignment = "'Baseline'" //NOXLATE
             };
         }
 
@@ -400,7 +400,7 @@
 #else
             return new CompositeRule()
             {
-                LegendLabel = "",
+                LegendLabel = string.Empty,
                 CompositeSymbolization = new CompositeSymbolization()
                 {
                     SymbolInstance = new System.ComponentModel.BindingList<SymbolInstance>()  

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaceExtensions.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -53,7 +53,7 @@
         /// <param name="c">The c.</param>
         public static void SetLayerColor(this IBlockSymbol sym, Color c)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.LayerColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -64,7 +64,7 @@
         /// <param name="f"></param>
         public static void Apply(this IFontSymbol sym, Font f)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.FontName = f.Name;
             sym.Italic = f.Italic;
             sym.Bold = f.Bold;
@@ -78,7 +78,7 @@
         /// <param name="c">The c.</param>
         public static void SetForegroundColor(this IFontSymbol sym, Color c)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.ForegroundColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -91,7 +91,7 @@
         /// </returns>
         public static bool HasVectorScaleRanges(this IVectorLayerDefinition vl)
         {
-            Check.NotNull(vl, "vl");
+            Check.NotNull(vl, "vl"); //NOXLATE
             return vl.GetScaleRangeCount() > 0;
         }
 
@@ -102,7 +102,7 @@
         /// <returns></returns>
         public static int GetScaleRangeCount(this IVectorLayerDefinition vl)
         {
-            Check.NotNull(vl, "vl");
+            Check.NotNull(vl, "vl"); //NOXLATE
             var list = new List<IVectorScaleRange>(vl.VectorScaleRange);
             return list.Count;
         }
@@ -114,8 +114,8 @@
         /// <param name="geomTypes">The geometry types to remove</param>
         public static void RemoveStyles(this IVectorScaleRange range, IEnumerable<string> geomTypes)
         {
-            Check.NotNull(range, "range");
-            Check.NotNull(geomTypes, "geomTypes");
+            Check.NotNull(range, "range"); //NOXLATE
+            Check.NotNull(geomTypes, "geomTypes"); //NOXLATE
 
             List<IVectorStyle> remove = new List<IVectorStyle>();
 
@@ -153,9 +153,9 @@
         /// <returns></returns>
         public static string GetCoordinateSystemWkt(this ILayerDefinition layer)
         {
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
             if (layer.CurrentConnection == null)
-                throw new System.Exception("No server set for object");
+                throw new System.Exception(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorNoServerConnectionAttached);
 
             var conn = layer.CurrentConnection;
             switch (layer.SubLayer.LayerType)
@@ -209,9 +209,9 @@
         public static IEnvelope GetSpatialExtent(this ILayerDefinition layer, bool allowFallbackToContextInformation, out string csWkt)
         {
             csWkt = null;
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
             if (layer.CurrentConnection == null)
-                throw new System.Exception("No server set for object");
+                throw new System.Exception(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorNoServerConnectionAttached);
 
             var conn = layer.CurrentConnection;
             switch (layer.SubLayer.LayerType)
@@ -304,10 +304,10 @@
         /// <returns></returns>
         public static string GetSchema(this IVectorLayerDefinition vl)
         {
-            if (string.IsNullOrEmpty(vl.FeatureName) || !vl.FeatureName.Contains(":"))
+            if (string.IsNullOrEmpty(vl.FeatureName) || !vl.FeatureName.Contains(":")) //NOXLATE
                 return string.Empty;
             else
-                return vl.FeatureName.Split(':')[0];
+                return vl.FeatureName.Split(':')[0]; //NOXLATE
         }
 
         /// <summary>
@@ -317,7 +317,7 @@
         /// <param name="c">The c.</param>
         public static void SetFillColor(this IW2DSymbol sym, Color c)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.FillColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -328,7 +328,7 @@
         /// <param name="c">The c.</param>
         public static void SetLineColor(this IW2DSymbol sym, Color c)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.LineColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -339,7 +339,7 @@
         /// <param name="c">The c.</param>
         public static void SetTextColor(this IW2DSymbol sym, Color c)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.TextColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -350,7 +350,7 @@
         /// <param name="c">The c.</param>
         public static void SetForegroundColor(this ITextSymbol sym, Color c)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.ForegroundColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -361,7 +361,7 @@
         /// <param name="c">The c.</param>
         public static void SetBackgroundColor(this ITextSymbol sym, Color c)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.BackgroundColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -372,7 +372,7 @@
         /// <param name="f"></param>
         public static void Apply(this ITextSymbol sym, Font f)
         {
-            Check.NotNull(sym, "sym");
+            Check.NotNull(sym, "sym"); //NOXLATE
             sym.FontName = f.Name;
             sym.Italic = f.Italic.ToString();
             sym.Bold = f.Bold.ToString();
@@ -386,7 +386,7 @@
         /// <param name="c">The c.</param>
         public static void SetBackgroundColor(this IFill fil, Color c)
         {
-            Check.NotNull(fil, "fil");
+            Check.NotNull(fil, "fil"); //NOXLATE
             fil.BackgroundColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -397,7 +397,7 @@
         /// <param name="c">The c.</param>
         public static void SetForegroundColor(this IFill fil, Color c)
         {
-            Check.NotNull(fil, "fil");
+            Check.NotNull(fil, "fil"); //NOXLATE
             fil.ForegroundColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -408,7 +408,7 @@
         /// <param name="c">The c.</param>
         public static void SetTransparencyColor(this IGridColorStyle style, Color c)
         {
-            Check.NotNull(style, "style");
+            Check.NotNull(style, "style"); //NOXLATE
             style.TransparencyColor = Utility.SerializeHTMLColor(c, true);
         }
 
@@ -419,7 +419,7 @@
         /// <param name="c">The c.</param>
         public static void SetDefaultColor(this IGridSurfaceStyle style, Color c)
         {
-            Check.NotNull(style, "style");
+            Check.NotNull(style, "style"); //NOXLATE
             style.DefaultColor = Utility.SerializeHTMLColor(c, true);
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LayerInterfaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -183,6 +183,32 @@
     }
 
     /// <summary>
+    /// Common localizable error messages available to consumers of this library
+    /// </summary>
+    public static class CommonErrorMessages
+    {
+        public static string CouldNotDetermineSymbolType
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorCouldNotDetermineSymbolType; }
+        }
+
+        public static string InvalidResourceIdentifier
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorInvalidResourceIdentifier; }
+        }
+
+        public static string UnexpectedResourceType
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorUnexpectedResourceType; }
+        }
+
+        public static string ObjectNotICompositeType
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorObjectNotICompositeTypeStyle; }
+        }
+    }
+
+    /// <summary>
     /// Represents elements that can create clones of themselves
     /// </summary>
     /// <typeparam name="T"></typeparam>
@@ -207,7 +233,7 @@
         /// <returns></returns>
         public static IList<IStroke> CloneStrokes(IEnumerable<IStroke> strokes)
         {
-            Check.NotNull(strokes, "strokes");
+            Check.NotNull(strokes, "strokes"); //NOXLATE
             var list = new List<IStroke>();
             foreach (var st in strokes)
             {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcFactory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcFactory.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcFactory.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -4,6 +4,7 @@
 using OSGeo.MapGuide.ObjectModels.LoadProcedure;
 using OSGeo.MapGuide.MaestroAPI.Resource;
 using System.IO;
+using OSGeo.MapGuide.MaestroAPI;
 
 #pragma warning disable 1591, 0114, 0108
 
@@ -20,16 +21,16 @@
     /// </summary>
     public static class LoadProcEntryPoint
     {
-        const string ARBITRARY_XYM = "LOCAL_CS[\"Non-Earth (Meter)\", LOCAL_DATUM[\"Local Datum\", 0], UNIT[\"Meter\", 1], AXIS[\"X\", EAST], AXIS[\"Y\", NORTH]]";
+        const string ARBITRARY_XYM = "LOCAL_CS[\"Non-Earth (Meter)\", LOCAL_DATUM[\"Local Datum\", 0], UNIT[\"Meter\", 1], AXIS[\"X\", EAST], AXIS[\"Y\", NORTH]]"; //NOXLATE
 
         private static void ApplyDefaults(LoadProcedureType lt)
         {
-            lt.RootPath = "Library://";
+            lt.RootPath = StringConstants.RootIdentifier;
             lt.CoordinateSystem = ARBITRARY_XYM;
-            lt.SpatialDataSourcesPath = "";
-            lt.SpatialDataSourcesFolder = "Data";
-            lt.LayersPath = "";
-            lt.LayersFolder = "Layers";
+            lt.SpatialDataSourcesPath = string.Empty;
+            lt.SpatialDataSourcesFolder = "Data"; //NOXLATE
+            lt.LayersPath = string.Empty;
+            lt.LayersFolder = "Layers"; //NOXLATE
             lt.GenerateMaps = false;
             lt.GenerateLayers = true;
             lt.GenerateSpatialDataSources = true;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedure.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedure.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedure.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -64,14 +64,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.InvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.LoadProcedure.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.UnexpectedResourceType, res.ToString(), ResourceTypes.LoadProcedure));
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -98,16 +98,16 @@
             return this.Clone();
         }
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema 
         { 
 
 #if LP110
-            get { return "LoadProcedure-1.1.0.xsd"; }
+            get { return "LoadProcedure-1.1.0.xsd"; } //NOXLATE
 #elif LP220
-            get { return "LoadProcedure-2.2.0.xsd"; }
+            get { return "LoadProcedure-2.2.0.xsd"; } //NOXLATE
 #else
-            get { return "LoadProcedure-1.0.0.xsd"; }
+            get { return "LoadProcedure-1.0.0.xsd"; } //NOXLATE
 #endif
             set { }
         }
@@ -137,7 +137,7 @@
 
         public void AddFiles(IEnumerable<string> files)
         {
-            Check.NotNull(files, "files");
+            Check.NotNull(files, "files"); //NOXLATE
 
             var _files = this.sourceFileField;
             foreach (var f in files)
@@ -149,7 +149,7 @@
 
         public void RemoveFile(string file)
         {
-            Check.NotEmpty(file, "file");
+            Check.NotEmpty(file, "file"); //NOXLATE
 
             if (this.sourceFileField.Contains(file))
             {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedureInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedureInterfaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/LoadProcedureInterfaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -256,8 +256,8 @@
         /// <param name="files"></param>
         public static void AddFiles(this IBaseLoadProcedure proc, IEnumerable<string> files)
         {
-            Check.NotNull(proc, "proc");
-            Check.NotNull(files, "files");
+            Check.NotNull(proc, "proc"); //NOXLATE
+            Check.NotNull(files, "files"); //NOXLATE
             foreach (var f in files)
             {
                 proc.AddFile(f);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -55,7 +55,7 @@
             set
             {
                 this.backgroundColorField = value;
-                OnPropertyChanged("BackgroundColor");
+                OnPropertyChanged("BackgroundColor"); //NOXLATE
             }
         }
 
@@ -79,7 +79,7 @@
         {
             return new MapDefinition()
             {
-                Name = "",
+                Name = string.Empty,
                 CoordinateSystem = string.Empty,
                 Extents = new Box2DType() { MaxX = 0.0, MaxY = 0.0, MinX = 0.0, MinY = 0.0 },
                 BackgroundColor = Color.White,
@@ -117,9 +117,9 @@
         internal MapDefinition() 
         { 
 #if MDF_240
-            this.versionField = "2.4.0";
+            this.versionField = "2.4.0"; //NOXLATE
 #elif MDF_230
-            this.versionField = "2.3.0";
+            this.versionField = "2.3.0"; //NOXLATE
 #endif
             this.SetExtentsFromFirstAddedLayer = false;
         }
@@ -154,14 +154,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.InvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.MapDefinition.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.UnexpectedResourceType, res.ToString(), ResourceTypes.MapDefinition));
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -192,15 +192,15 @@
             return mdf;
         }
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema 
         { 
 #if MDF_240
-            get { return "MapDefinition-2.4.0.xsd"; }
+            get { return "MapDefinition-2.4.0.xsd"; } //NOXLATE
 #elif MDF_230
-            get { return "MapDefinition-2.3.0.xsd"; }
+            get { return "MapDefinition-2.3.0.xsd"; } //NOXLATE
 #else
-            get { return "MapDefinition-1.0.0.xsd"; }
+            get { return "MapDefinition-1.0.0.xsd"; } //NOXLATE
 #endif
             set { }
         }
@@ -245,7 +245,7 @@
                 this.Extents.MaxY = maxy;
                 this.Extents.MinX = minx;
                 this.Extents.MinY = miny;
-                OnPropertyChanged("Extents");
+                OnPropertyChanged("Extents"); //NOXLATE
             }
         }
 
@@ -265,7 +265,7 @@
                 Group = string.Empty
             };
             this.MapLayerGroup.Add(group);
-            OnPropertyChanged("MapLayerGroup");
+            OnPropertyChanged("MapLayerGroup"); //NOXLATE
             return group;
         }
 
@@ -285,7 +285,7 @@
             layer.Group = string.IsNullOrEmpty(groupName) ? string.Empty : groupName;
             
             this.MapLayer.Insert(0, layer);
-            OnPropertyChanged("MapLayer");
+            OnPropertyChanged("MapLayer"); //NOXLATE
 
             if (this.MapLayer.Count == 1) //First one
             {
@@ -372,7 +372,7 @@
             {
                 this.MapLayer.Add(layer);
             }
-            OnPropertyChanged("MapLayer");
+            OnPropertyChanged("MapLayer"); //NOXLATE
 
             if (this.MapLayer.Count == 1) //First one
             {
@@ -462,7 +462,7 @@
             if (lyr != null)
             {
                 this.MapLayer.Remove(lyr);
-                OnPropertyChanged("MapLayer");
+                OnPropertyChanged("MapLayer"); //NOXLATE
             }
         }
 
@@ -480,12 +480,12 @@
 
         void IMapDefinition.RemoveGroup(IMapLayerGroup group)
         {
-            Check.NotNull(group, "group");
+            Check.NotNull(group, "group"); //NOXLATE
             var grp = group as MapLayerGroupType;
             if (grp != null)
             {
                 this.MapLayerGroup.Remove(grp);
-                OnPropertyChanged("MapLayerGroup");
+                OnPropertyChanged("MapLayerGroup"); //NOXLATE
             }
         }
 
@@ -501,7 +501,7 @@
 
         int IMapDefinition.GetIndex(IMapLayer layer)
         {
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
             var lyr = layer as MapLayerType;
             if (lyr != null)
                 return this.MapLayer.IndexOf(lyr);
@@ -511,7 +511,7 @@
 
         int IMapDefinition.MoveUp(IMapLayer layer)
         {
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
             int isrc = ((IMapDefinition)this).GetIndex(layer);
             if (isrc > 0)
             {
@@ -523,7 +523,7 @@
                 this.MapLayer[isrc] = dst;
                 this.MapLayer[idst] = src;
 
-                OnPropertyChanged("MapLayer");
+                OnPropertyChanged("MapLayer"); //NOXLATE
 
                 return idst;
             }
@@ -533,7 +533,7 @@
 
         int IMapDefinition.MoveDown(IMapLayer layer)
         {
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
             int isrc = ((IMapDefinition)this).GetIndex(layer);
             if (isrc < this.MapLayer.Count - 1)
             {
@@ -545,7 +545,7 @@
                 this.MapLayer[isrc] = dst;
                 this.MapLayer[idst] = src;
 
-                OnPropertyChanged("MapLayer");
+                OnPropertyChanged("MapLayer"); //NOXLATE
 
                 return idst;
             }
@@ -555,7 +555,7 @@
 
         int IMapDefinition.MoveUpGroup(IMapLayerGroup group)
         {
-            Check.NotNull(group, "group");
+            Check.NotNull(group, "group"); //NOXLATE
             var grp = group as MapLayerGroupType;
             if (grp != null)
             {
@@ -570,7 +570,7 @@
                     this.MapLayerGroup[idx] = dst;
                     this.MapLayerGroup[idst] = src;
 
-                    OnPropertyChanged("MapLayerGroup");
+                    OnPropertyChanged("MapLayerGroup"); //NOXLATE
 
                     return idst;
                 }
@@ -581,7 +581,7 @@
 
         int IMapDefinition.MoveDownGroup(IMapLayerGroup group)
         {
-            Check.NotNull(group, "group");
+            Check.NotNull(group, "group"); //NOXLATE
             var grp = group as MapLayerGroupType;
             if (grp != null)
             {
@@ -596,7 +596,7 @@
                     this.MapLayerGroup[idx] = dst;
                     this.MapLayerGroup[idst] = src;
 
-                    OnPropertyChanged("MapLayerGroup");
+                    OnPropertyChanged("MapLayerGroup"); //NOXLATE
 
                     return idst;
                 }
@@ -607,7 +607,7 @@
 
         int IMapDefinition.GetIndex(IMapLayerGroup group)
         {
-            Check.NotNull(group, "group");
+            Check.NotNull(group, "group"); //NOXLATE
             var grp = group as MapLayerGroupType;
             if (grp != null)
                 return this.MapLayerGroup.IndexOf(grp);
@@ -617,7 +617,7 @@
 
         void IMapDefinition.SetTopDrawOrder(IMapLayer layer)
         {
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
             int isrc = ((IMapDefinition)this).GetIndex(layer);
             if (isrc > 0)
             {
@@ -630,13 +630,13 @@
                 }
 
                 this.MapLayer[0] = src;
-                OnPropertyChanged("MapLayer");
+                OnPropertyChanged("MapLayer"); //NOXLATE
             }
         }
 
         void IMapDefinition.SetBottomDrawOrder(IMapLayer layer)
         {
-            Check.NotNull(layer, "layer");
+            Check.NotNull(layer, "layer"); //NOXLATE
             int isrc = ((IMapDefinition)this).GetIndex(layer);
             if (isrc >= 0 && isrc < this.MapLayer.Count)
             {
@@ -649,7 +649,7 @@
                 }
 
                 this.MapLayer[this.MapLayer.Count - 1] = src;
-                OnPropertyChanged("MapLayer");
+                OnPropertyChanged("MapLayer"); //NOXLATE
             }
         }
 
@@ -744,7 +744,7 @@
         void IBaseMapDefinition.RemoveAllScales()
         {
             this.FiniteDisplayScale.Clear();
-            OnPropertyChanged("FiniteDisplayScale");
+            OnPropertyChanged("FiniteDisplayScale"); //NOXLATE
         }
 
         [XmlIgnore]
@@ -862,7 +862,7 @@
                 Selectable = true
             };
             this.BaseMapLayer.Add(layer);
-            OnPropertyChanged("BaseMapLayer");
+            OnPropertyChanged("BaseMapLayer"); //NOXLATE
             return layer;
         }
 
@@ -872,7 +872,7 @@
             if (lyr != null)
             {
                 this.BaseMapLayer.Remove(lyr);
-                OnPropertyChanged("BaseMapLayer");
+                OnPropertyChanged("BaseMapLayer"); //NOXLATE
             }
         }
 
@@ -892,7 +892,7 @@
                     this.BaseMapLayer[isrc] = dst;
                     this.BaseMapLayer[idst] = src;
 
-                    OnPropertyChanged("BaseMapLayer");
+                    OnPropertyChanged("BaseMapLayer"); //NOXLATE
 
                     return idst;
                 }
@@ -917,7 +917,7 @@
                     this.BaseMapLayer[isrc] = dst;
                     this.BaseMapLayer[idst] = src;
 
-                    OnPropertyChanged("BaseMapLayer");
+                    OnPropertyChanged("BaseMapLayer"); //NOXLATE
 
                     return idst;
                 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/MapDefinitionInterfaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -260,7 +260,7 @@
         /// <returns></returns>
         public static double GetMinScale(this IBaseMapDefinition map)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             if (map.ScaleCount == 0)
                 return 0.0;
 
@@ -276,7 +276,7 @@
         /// <returns></returns>
         public static double GetMaxScale(this IBaseMapDefinition map)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             if (map.ScaleCount == 0)
                 return 0.0;
 
@@ -293,7 +293,7 @@
         /// <returns></returns>
         public static IBaseMapGroup GetGroupForLayer(this IBaseMapDefinition map, IBaseMapLayer layer)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             foreach (var group in map.BaseMapLayerGroup)
             {
                 foreach (var tl in group.BaseMapLayer)
@@ -312,7 +312,7 @@
         /// <returns></returns>
         public static bool HasLayers(this IBaseMapGroup grp)
         {
-            Check.NotNull(grp, "grp");
+            Check.NotNull(grp, "grp"); //NOXLATE
             return new List<IBaseMapLayer>(grp.BaseMapLayer).Count > 0;
         }
 
@@ -323,7 +323,7 @@
         /// <returns></returns>
         public static bool HasLayers(this IBaseMapDefinition map)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             if (!map.HasGroups())
                 return false;
 
@@ -342,7 +342,7 @@
         /// <returns></returns>
         public static bool HasGroups(this IBaseMapDefinition map)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             return new List<IBaseMapGroup>(map.BaseMapLayerGroup).Count > 0;
         }
 
@@ -353,7 +353,7 @@
         /// <returns></returns>
         public static IBaseMapGroup GetFirstGroup(this IBaseMapDefinition map)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             var list = new List<IBaseMapGroup>(map.BaseMapLayerGroup);
             if (list.Count > 0)
                 return list[0];
@@ -368,8 +368,8 @@
         /// <returns></returns>
         public static bool LayerExists(this IBaseMapDefinition map, string layerName)
         {
-            Check.NotNull(map, "map");
-            Check.NotEmpty(layerName, "layerName");
+            Check.NotNull(map, "map"); //NOXLATE
+            Check.NotEmpty(layerName, "layerName"); //NOXLATE
 
             foreach (var group in map.BaseMapLayerGroup)
             {
@@ -389,9 +389,9 @@
         /// <param name="groupName"></param>
         /// <returns></returns>
         public static IBaseMapGroup GetGroup(this IBaseMapDefinition map, string groupName)
-        { 
-            Check.NotNull(map, "map");
-            Check.NotEmpty(groupName, "groupName");
+        {
+            Check.NotNull(map, "map"); //NOXLATE
+            Check.NotEmpty(groupName, "groupName"); //NOXLATE
             foreach (var group in map.BaseMapLayerGroup)
             {
                 if (groupName.Equals(group.Name))
@@ -408,8 +408,8 @@
         /// <returns></returns>
         public static bool GroupExists(this IBaseMapDefinition map, string groupName)
         {
-            Check.NotNull(map, "map");
-            Check.NotEmpty(groupName, "groupName");
+            Check.NotNull(map, "map"); //NOXLATE
+            Check.NotEmpty(groupName, "groupName"); //NOXLATE
             foreach (var group in map.BaseMapLayerGroup)
             {
                 if (groupName.Equals(group.Name))
@@ -426,8 +426,8 @@
         /// <returns></returns>
         public static IEnumerable<IBaseMapLayer> GetLayersForGroup(this IBaseMapDefinition map, string groupName)
         {
-            Check.NotNull(map, "map");
-            Check.NotEmpty(groupName, "groupName");
+            Check.NotNull(map, "map"); //NOXLATE
+            Check.NotEmpty(groupName, "groupName"); //NOXLATE
 
             foreach (var group in map.BaseMapLayerGroup)
             {
@@ -454,9 +454,9 @@
         /// <param name="newGroupName">New name of the group.</param>
         public static void UpdateDynamicGroupName(this IMapDefinition map, string oldGroupName, string newGroupName)
         {
-            Check.NotNull(map, "map");
-            Check.NotEmpty(oldGroupName, "oldGroupName");
-            Check.NotEmpty(newGroupName, "newGroupName");
+            Check.NotNull(map, "map"); //NOXLATE
+            Check.NotEmpty(oldGroupName, "oldGroupName"); //NOXLATE
+            Check.NotEmpty(newGroupName, "newGroupName"); //NOXLATE
             var layers = map.GetLayersForGroup(oldGroupName);
             foreach (var l in layers)
             {
@@ -472,8 +472,8 @@
         /// <returns>The number of layers removed. Returns 0 if the group is empty or does not exist</returns>
         public static int RemoveLayerGroupAndChildLayers(this IMapDefinition map, string groupName)
         {
-            Check.NotNull(map, "map");
-            Check.NotEmpty(groupName, "groupName");
+            Check.NotNull(map, "map"); //NOXLATE
+            Check.NotEmpty(groupName, "groupName"); //NOXLATE
 
             var affectedParentGroups = new Dictionary<string, List<IMapLayerGroup>>();
             IMapLayerGroup group = null;
@@ -528,8 +528,8 @@
         /// <returns></returns>
         public static IMapLayer GetLayerByName(this IMapDefinition map, string name)
         {
-            Check.NotNull(map, "map");
-            Check.NotEmpty(name, "name");
+            Check.NotNull(map, "map"); //NOXLATE
+            Check.NotEmpty(name, "name"); //NOXLATE
             foreach (var layer in map.MapLayer)
             {
                 if (name.Equals(layer.Name))
@@ -546,7 +546,7 @@
         /// <returns></returns>
         public static IMapLayerGroup GetGroupByName(this IMapDefinition map, string name)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             foreach (var group in map.MapLayerGroup)
             {
                 if (name.Equals(group.Name))
@@ -562,7 +562,7 @@
         /// <returns></returns>
         public static int GetLayerCount(this IMapDefinition map)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             return new List<IMapLayer>(map.MapLayer).Count;
         }
 
@@ -573,7 +573,7 @@
         /// <returns></returns>
         public static int GetGroupCount(this IMapDefinition map)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             return new List<IMapLayerGroup>(map.MapLayerGroup).Count;
         }
 
@@ -585,7 +585,7 @@
         /// <returns></returns>
         public static IEnumerable<IMapLayer> GetLayersForGroup(this IMapDefinition map, string name)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             foreach (var layer in map.MapLayer)
             {
                 if (name.Equals(layer.Group))
@@ -600,7 +600,7 @@
         /// <returns></returns>
         public static IEnumerable<IMapLayer> GetLayersWithoutGroups(this IMapDefinition map)
         {
-            Check.NotNull(map, "map");
+            Check.NotNull(map, "map"); //NOXLATE
             foreach (var layer in map.MapLayer)
             {
                 if (string.IsNullOrEmpty(layer.Group))

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ObjectFactory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ObjectFactory.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ObjectFactory.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -239,7 +239,7 @@
         /// <returns></returns>
         public static IWebLayout CreateWebLayout(IServerConnection owner, Version version, string mapDefinitionId)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             if (!_wlFactories.ContainsKey(version))
                 throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnknownWebLayoutVersion + version.ToString());
@@ -283,7 +283,7 @@
         /// <returns></returns>
         public static ILayerDefinition CreateDefaultLayer(IServerConnection owner, LayerType type, Version version)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             if (!_layerFactories.ContainsKey(version))
                 throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnknownLayerVersion + version.ToString());
@@ -301,7 +301,7 @@
         /// <returns></returns>
         public static IDrawingSource CreateDrawingSource(IServerConnection owner)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             return new OSGeo.MapGuide.ObjectModels.DrawingSource_1_0_0.DrawingSource() 
             { 
@@ -320,7 +320,7 @@
         /// <returns></returns>
         public static IFeatureSource CreateFeatureSource(IServerConnection owner, string provider)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             return new OSGeo.MapGuide.ObjectModels.FeatureSource_1_0_0.FeatureSourceType()
             {
@@ -353,7 +353,7 @@
         /// <returns></returns>
         public static IWatermarkDefinition CreateWatermark(IServerConnection owner, SymbolDefinitionType type)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
             return CreateWatermark(owner, type, owner.Capabilities.GetMaxSupportedResourceVersion(ResourceTypes.WatermarkDefinition));
         }
 
@@ -366,7 +366,7 @@
         /// <returns></returns>
         public static IWatermarkDefinition CreateWatermark(IServerConnection owner, SymbolDefinitionType type, Version version)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             if (!_watermarkFactories.ContainsKey(version))
                 throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnknownWatermarkDefinitionVersion + version.ToString());
@@ -385,7 +385,7 @@
         /// <returns></returns>
         public static IMapDefinition CreateMapDefinition(IServerConnection owner, Version version, string name)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             if (!_mapDefinitionFactories.ContainsKey(version))
                 throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnknownMapDefinitionVersion + version.ToString());
@@ -436,7 +436,7 @@
         /// <returns></returns>
         public static IMapDefinition CreateMapDefinition(IServerConnection owner, string name)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             return CreateMapDefinition(owner, owner.Capabilities.GetMaxSupportedResourceVersion(ResourceTypes.MapDefinition), name);
         }
@@ -450,7 +450,7 @@
         /// <returns></returns>
         public static IMapDefinition CreateMapDefinition(IServerConnection owner, string name, string coordinateSystemWkt)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             return CreateMapDefinition(owner, owner.Capabilities.GetMaxSupportedResourceVersion(ResourceTypes.MapDefinition), name, coordinateSystemWkt);
         }
@@ -465,7 +465,7 @@
         /// <returns></returns>
         public static IMapDefinition CreateMapDefinition(IServerConnection owner, string name, string coordinateSystemWkt, IEnvelope env)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             return CreateMapDefinition(owner, owner.Capabilities.GetMaxSupportedResourceVersion(ResourceTypes.MapDefinition), name, coordinateSystemWkt, env);
         }
@@ -480,7 +480,7 @@
         /// <returns></returns>
         public static ISimpleSymbolDefinition CreateSimpleSymbol(IServerConnection owner, Version version, string name, string description)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             if (!_simpleSymbolFactories.ContainsKey(version))
                 throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnknownSymbolDefVersion + version.ToString());
@@ -515,7 +515,7 @@
         /// <returns></returns>
         public static ICompoundSymbolDefinition CreateCompoundSymbol(IServerConnection owner, Version version, string name, string description)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             if (!_compoundSymbolFactories.ContainsKey(version))
                 throw new ArgumentException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.UnknownSymbolDefVersion + version.ToString());
@@ -558,7 +558,7 @@
         private static IUIWidget CreateVerticalWidget(IUIWidget widget)
         {
             var vert = widget.Clone();
-            vert.Name = "vert" + widget.Name;
+            vert.Name = "vert" + widget.Name; //NOXLATE
             vert.Label = string.Empty;
             return vert;
         }
@@ -573,7 +573,7 @@
         /// <returns></returns>
         public static IApplicationDefinition CreateFlexibleLayout(IServerConnection owner, string templateName)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             /*
             Check.Precondition(Array.IndexOf(owner.Capabilities.SupportedServices, (int)ServiceType.Fusion) >= 0, "Required Fusion service not supported on this connection");
@@ -624,21 +624,21 @@
             }
 
             //Toolbars, every template has them
-            var toolbar = appDef.CreateContainer("Toolbar", containers.FindContainer("Toolbar"));
-            var secToolbar = appDef.CreateContainer("ToolbarSecondary", containers.FindContainer("Toolbar"));
-            var vertToolbar = appDef.CreateContainer("ToolbarVertical", containers.FindContainer("Toolbar"));
+            var toolbar = appDef.CreateContainer("Toolbar", containers.FindContainer("Toolbar")); //NOXLATE
+            var secToolbar = appDef.CreateContainer("ToolbarSecondary", containers.FindContainer("Toolbar")); //NOXLATE
+            var vertToolbar = appDef.CreateContainer("ToolbarVertical", containers.FindContainer("Toolbar")); //NOXLATE
 
             //Context menus, every template has them
-            var mapContextMenu = appDef.CreateContainer("MapContextMenu", containers.FindContainer("ContextMenu"));
-            var taskPaneMenu = appDef.CreateContainer("TaskMenu", containers.FindContainer("ContextMenu"));
+            var mapContextMenu = appDef.CreateContainer("MapContextMenu", containers.FindContainer("ContextMenu")); //NOXLATE
+            var taskPaneMenu = appDef.CreateContainer("TaskMenu", containers.FindContainer("ContextMenu")); //NOXLATE
 
             //Menu
-            var menu = appDef.CreateContainer("FileMenu", containers.FindContainer("Toolbar"));
+            var menu = appDef.CreateContainer("FileMenu", containers.FindContainer("Toolbar")); //NOXLATE
 
             //Status bar
-            var statusbar = appDef.CreateContainer("Statusbar", containers.FindContainer("Splitterbar"));
+            var statusbar = appDef.CreateContainer("Statusbar", containers.FindContainer("Splitterbar")); //NOXLATE
 
-            string mapId = "MainMap";
+            string mapId = "MainMap"; //NOXLATE
             //Set default map group
             appDef.AddMapGroup(mapId, true, string.Empty);
 
@@ -659,95 +659,95 @@
             //Add some parameterized ones
 
             //Zoom In
-            var zoomIn = (IUIWidget)appDef.CreateWidget("ZoomIn", widgets.FindWidget(KnownWidgetNames.ZoomOnClick));
-            zoomIn.SetValue("Factor", "2");
+            var zoomIn = (IUIWidget)appDef.CreateWidget("ZoomIn", widgets.FindWidget(KnownWidgetNames.ZoomOnClick)); //NOXLATE
+            zoomIn.SetValue("Factor", "2"); //NOXLATE
             zoomIn.StatusText = zoomIn.Tooltip = Res.ADF_Widget_ZoomIn_Desc;
             zoomIn.Label = Res.ADF_Widget_ZoomIn_Label;
-            zoomIn.ImageUrl = "images/icons.png";
-            zoomIn.ImageClass = "zoom-in-fixed";
+            zoomIn.ImageUrl = "images/icons.png"; //NOXLATE
+            zoomIn.ImageClass = "zoom-in-fixed"; //NOXLATE
             var vZoomIn = CreateVerticalWidget(zoomIn);
 
             //Zoom Out
-            var zoomOut = (IUIWidget)appDef.CreateWidget("ZoomOut", widgets.FindWidget(KnownWidgetNames.ZoomOnClick));
-            zoomOut.SetValue("Factor", "0.5");
+            var zoomOut = (IUIWidget)appDef.CreateWidget("ZoomOut", widgets.FindWidget(KnownWidgetNames.ZoomOnClick)); //NOXLATE
+            zoomOut.SetValue("Factor", "0.5"); //NOXLATE
             zoomOut.StatusText = zoomOut.Tooltip = Res.ADF_Widget_ZoomOut_Desc;
             zoomOut.Label = Res.ADF_Widget_ZoomOut_Label;
-            zoomOut.ImageUrl = "images/icons.png";
-            zoomOut.ImageClass = "zoom-out-fixed";
+            zoomOut.ImageUrl = "images/icons.png"; //NOXLATE
+            zoomOut.ImageClass = "zoom-out-fixed"; //NOXLATE
             var vZoomOut = CreateVerticalWidget(zoomOut);
 
             //Previous View
-            var prevView = (IUIWidget)appDef.CreateWidget("PreviousView", widgets.FindWidget(KnownWidgetNames.ExtentHistory));
-            prevView.SetValue("Direction", "previous");
+            var prevView = (IUIWidget)appDef.CreateWidget("PreviousView", widgets.FindWidget(KnownWidgetNames.ExtentHistory)); //NOXLATE
+            prevView.SetValue("Direction", "previous"); //NOXLATE
             prevView.StatusText = prevView.Tooltip = Res.ADF_Widget_PreviousView_Desc;
             prevView.Label = Res.ADF_Widget_PreviousView_Label;
-            prevView.ImageUrl = "images/icons.png";
-            prevView.ImageClass = "view-back";
+            prevView.ImageUrl = "images/icons.png"; //NOXLATE
+            prevView.ImageClass = "view-back"; //NOXLATE
             var vPrevView = CreateVerticalWidget(prevView);
 
             //Next View
-            var nextView = (IUIWidget)appDef.CreateWidget("NextView", widgets.FindWidget(KnownWidgetNames.ExtentHistory));
-            nextView.SetValue("Direction", "next");
+            var nextView = (IUIWidget)appDef.CreateWidget("NextView", widgets.FindWidget(KnownWidgetNames.ExtentHistory)); //NOXLATE
+            nextView.SetValue("Direction", "next"); //NOXLATE
             nextView.StatusText = nextView.Tooltip = Res.ADF_Widget_NextView_Desc;
             nextView.Label = Res.ADF_Widget_NextView_Label;
-            nextView.ImageUrl = "images/icons.png";
-            nextView.ImageClass = "view-forward";
+            nextView.ImageUrl = "images/icons.png"; //NOXLATE
+            nextView.ImageClass = "view-forward"; //NOXLATE
             var vNextView = CreateVerticalWidget(nextView);
 
             //Buffer
-            var buffer = (IUIWidget)appDef.CreateWidget("tbBuffer", widgets.FindWidget(KnownWidgetNames.BufferPanel));
-            //buffer.SetValue("Target", "TaskPane");
+            var buffer = (IUIWidget)appDef.CreateWidget("tbBuffer", widgets.FindWidget(KnownWidgetNames.BufferPanel)); //NOXLATE
+            //buffer.SetValue("Target", "TaskPane"); //NOXLATE
             buffer.StatusText = buffer.Tooltip = Res.ADF_Widget_Buffer_Desc;
             buffer.Tooltip = Res.ADF_Widget_Buffer_Label;
 
             //Measure
-            var measure = (IUIWidget)appDef.CreateWidget("Measure", widgets.FindWidget(KnownWidgetNames.Measure));
+            var measure = (IUIWidget)appDef.CreateWidget("Measure", widgets.FindWidget(KnownWidgetNames.Measure)); //NOXLATE
             var measureParams = new NameValueCollection();
-            measureParams["Type"] = "both";
-            measureParams["MeasureTooltipContainer"] = "MeasureResult";
-            measureParams["MeasureTooltipType"] = "dynamic";
-            measureParams["DistancePrecision"] = "0";
-            measureParams["AreaPrecision"] = "0";
-            measureParams["Units"] = "meters";
-            measureParams["Target"] = "TaskPane";
+            measureParams["Type"] = "both"; //NOXLATE
+            measureParams["MeasureTooltipContainer"] = "MeasureResult"; //NOXLATE
+            measureParams["MeasureTooltipType"] = "dynamic"; //NOXLATE
+            measureParams["DistancePrecision"] = "0"; //NOXLATE
+            measureParams["AreaPrecision"] = "0"; //NOXLATE
+            measureParams["Units"] = "meters"; //NOXLATE
+            measureParams["Target"] = "TaskPane"; //NOXLATE
             measure.SetAllValues(measureParams);
             measure.StatusText = buffer.Tooltip = Res.ADF_Widget_Measure_Desc;
             measure.Tooltip = Res.ADF_Widget_Measure_Label;
 
             //Show Overview
-            var showOverview = (IUIWidget)appDef.CreateWidget("showOverview", widgets.FindWidget(KnownWidgetNames.InvokeScript));
-            showOverview.Label = "Show Overview";
-            showOverview.SetValue("Script", "showOverviewMap()");
+            var showOverview = (IUIWidget)appDef.CreateWidget("showOverview", widgets.FindWidget(KnownWidgetNames.InvokeScript)); //NOXLATE
+            showOverview.Label = "Show Overview"; //NOXLATE
+            showOverview.SetValue("Script", "showOverviewMap()"); //NOXLATE
 
             //Show Task Pane
-            var showTaskPane = (IUIWidget)appDef.CreateWidget("showTaskPane", widgets.FindWidget(KnownWidgetNames.InvokeScript));
-            showTaskPane.Label = "Show Task Pane";
-            showTaskPane.SetValue("Script", "showTaskPane()");
+            var showTaskPane = (IUIWidget)appDef.CreateWidget("showTaskPane", widgets.FindWidget(KnownWidgetNames.InvokeScript)); //NOXLATE
+            showTaskPane.Label = "Show Task Pane"; //NOXLATE
+            showTaskPane.SetValue("Script", "showTaskPane()"); //NOXLATE
 
             //Show Legend
-            var showLegend = (IUIWidget)appDef.CreateWidget("showLegend", widgets.FindWidget(KnownWidgetNames.InvokeScript));
-            showLegend.Label = "Show Legend";
-            showLegend.SetValue("Script", "showLegend()");
+            var showLegend = (IUIWidget)appDef.CreateWidget("showLegend", widgets.FindWidget(KnownWidgetNames.InvokeScript)); //NOXLATE
+            showLegend.Label = "Show Legend"; //NOXLATE
+            showLegend.SetValue("Script", "showLegend()"); //NOXLATE
 
             //Show Selection Panel
-            var showSelectionPanel = (IUIWidget)appDef.CreateWidget("showSelectionPanel", widgets.FindWidget(KnownWidgetNames.InvokeScript));
-            showSelectionPanel.Label = "Show Selection Panel";
-            showSelectionPanel.SetValue("Script", "showSelectionPanel()");
+            var showSelectionPanel = (IUIWidget)appDef.CreateWidget("showSelectionPanel", widgets.FindWidget(KnownWidgetNames.InvokeScript)); //NOXLATE
+            showSelectionPanel.Label = "Show Selection Panel"; //NOXLATE
+            showSelectionPanel.SetValue("Script", "showSelectionPanel()"); //NOXLATE
 
             //Coordinate Tracker
-            var coordTracker = appDef.CreateWidget("statusCoordinates", widgets.FindWidget(KnownWidgetNames.CursorPosition));
-            coordTracker.SetValue("Template", "X: {x} {units}, Y: {y} {units}");
-            coordTracker.SetValue("Precision", "4");
-            coordTracker.SetValue("EmptyText", "&nbsp;");
+            var coordTracker = appDef.CreateWidget("statusCoordinates", widgets.FindWidget(KnownWidgetNames.CursorPosition)); //NOXLATE
+            coordTracker.SetValue("Template", "X: {x} {units}, Y: {y} {units}"); //NOXLATE
+            coordTracker.SetValue("Precision", "4"); //NOXLATE
+            coordTracker.SetValue("EmptyText", "&nbsp;"); //NOXLATE
 
             //Selection Info
-            var selInfo = appDef.CreateWidget("statusSelection", widgets.FindWidget(KnownWidgetNames.SelectionInfo));
-            selInfo.SetValue("EmptyText", "No selection");
+            var selInfo = appDef.CreateWidget("statusSelection", widgets.FindWidget(KnownWidgetNames.SelectionInfo)); //NOXLATE
+            selInfo.SetValue("EmptyText", "No selection"); //NOXLATE
 
             //View Size
-            var viewSize = appDef.CreateWidget("statusViewSize", widgets.FindWidget(KnownWidgetNames.ViewSize));
-            viewSize.SetValue("Template", "{w} x {h} ({units})");
-            viewSize.SetValue("Precision", "2");
+            var viewSize = appDef.CreateWidget("statusViewSize", widgets.FindWidget(KnownWidgetNames.ViewSize)); //NOXLATE
+            viewSize.SetValue("Template", "{w} x {h} ({units})"); //NOXLATE
+            viewSize.SetValue("Precision", "2"); //NOXLATE
 
             widgetSet.AddWidget(zoomIn);
             widgetSet.AddWidget(zoomOut);
@@ -825,13 +825,13 @@
             widgetSet.AddWidget(CreateVerticalWidget((IUIWidget)appDef.CreateWidget(KnownWidgetNames.InitialMapView, widgets.FindWidget(KnownWidgetNames.InitialMapView))));
             widgetSet.AddWidget(CreateVerticalWidget((IUIWidget)appDef.CreateWidget(KnownWidgetNames.ZoomToSelection, widgets.FindWidget(KnownWidgetNames.ZoomToSelection))));
 
-            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.Select));
-            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.Pan));
-            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.Zoom));
+            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.Select)); //NOXLATE
+            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.Pan)); //NOXLATE
+            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.Zoom)); //NOXLATE
             vertToolbar.AddItem(appDef.CreateWidgetReference(vZoomIn.Name));
             vertToolbar.AddItem(appDef.CreateWidgetReference(vZoomOut.Name));
-            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.InitialMapView));
-            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.ZoomToSelection));
+            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.InitialMapView)); //NOXLATE
+            vertToolbar.AddItem(appDef.CreateWidgetReference("vert" + KnownWidgetNames.ZoomToSelection)); //NOXLATE
             vertToolbar.AddItem(appDef.CreateWidgetReference(vPrevView.Name));
             vertToolbar.AddItem(appDef.CreateWidgetReference(vNextView.Name));
 
@@ -913,13 +913,13 @@
             widgetSet.AddContainer(taskPaneMenu);
 
             //Set positioning
-            toolbar.Position = "top";
-            secToolbar.Position = "top";
-            menu.Position = "top";
-            statusbar.Position = "bottom";
-            mapContextMenu.Position = "top";
-            taskPaneMenu.Position = "top";
-            vertToolbar.Position = "left";
+            toolbar.Position = "top"; //NOXLATE
+            secToolbar.Position = "top"; //NOXLATE
+            menu.Position = "top"; //NOXLATE
+            statusbar.Position = "bottom"; //NOXLATE
+            mapContextMenu.Position = "top"; //NOXLATE
+            taskPaneMenu.Position = "top"; //NOXLATE
+            vertToolbar.Position = "left"; //NOXLATE
 
             return appDef;
         }
@@ -939,15 +939,15 @@
         /// <returns></returns>
         public static IApplicationDefinition CreatePreviewFlexLayout(IServerConnection owner)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
             var appDef = new ApplicationDefinitionType()
             {
                 CurrentConnection = owner,
-                Title = "Preview",
+                Title = OSGeo.MapGuide.MaestroAPI.Properties.Resources.TitlePreview,
                 MapSet = new System.ComponentModel.BindingList<MapGroupType>(),
                 WidgetSet = new System.ComponentModel.BindingList<WidgetSetType>()
             };
-            appDef.TemplateUrl = "fusion/templates/mapguide/preview/index.html";
+            appDef.TemplateUrl = "fusion/templates/mapguide/preview/index.html"; //NOXLATE
             return appDef;
         }
 
@@ -958,7 +958,7 @@
         /// <returns></returns>
         public static IPrintLayout CreatePrintLayout(IServerConnection owner)
         {
-            Check.NotNull(owner, "owner");
+            Check.NotNull(owner, "owner"); //NOXLATE
 
             return new OSGeo.MapGuide.ObjectModels.PrintLayout_1_0_0.PrintLayout()
             {
@@ -1064,10 +1064,10 @@
         public static IEnvelope CreateEnvelope(double minx, double miny, double maxx, double maxy)
         {
             if (minx > maxx)
-                throw new ArgumentException("minx > maxx", "minx");
+                throw new ArgumentException("minx > maxx", "minx"); //NOXLATE
 
             if (miny > maxy)
-                throw new ArgumentException("miny > maxy", "miny");
+                throw new ArgumentException("miny > maxy", "miny"); //NOXLATE
 
             return new Envelope()
             {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayout.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayout.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/PrintLayout.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -54,14 +54,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorInvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.PrintLayout.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.MaestroAPI.Properties.Resources.ErrorUnexpectedResourceType, res.ToString(), ResourceTypes.PrintLayout));
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -88,10 +88,10 @@
             return this.Clone();
         }
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema 
-        { 
-            get { return "PrintLayout-1.0.0.xsd"; }
+        {
+            get { return "PrintLayout-1.0.0.xsd"; } //NOXLATE
             set { }
         }
 
@@ -131,7 +131,7 @@
             if (l != null)
             {
                 this.CustomLogos.Remove(l);
-                OnPropertyChanged("CustomLogos");
+                OnPropertyChanged("CustomLogos"); //NOXLATE
             }
         }
 
@@ -153,7 +153,7 @@
             if (t != null)
             {
                 this.CustomText.Add(t);
-                OnPropertyChanged("CustomText");
+                OnPropertyChanged("CustomText"); //NOXLATE
             }
         }
 
@@ -163,7 +163,7 @@
             if (t != null)
             {
                 this.CustomText.Remove(t);
-                OnPropertyChanged("CustomText");
+                OnPropertyChanged("CustomText"); //NOXLATE
             }
         }
 
@@ -206,7 +206,7 @@
             if (l != null)
             {
                 this.CustomLogos.Add(l);
-                OnPropertyChanged("CustomLogos");
+                OnPropertyChanged("CustomLogos"); //NOXLATE
             }
         }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceList.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceList.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/ResourceList.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -51,10 +51,10 @@
 
         //Required for saving/updating
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema 
         {
-            get { return "ResourceDocumentHeader-1.0.0.xsd"; }
+            get { return "ResourceDocumentHeader-1.0.0.xsd"; } //NOXLATE
             set { }
         }
     }
@@ -73,10 +73,10 @@
 
         //Required for saving/updating
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema
         {
-            get { return "ResourceFolderHeader-1.0.0.xsd"; }
+            get { return "ResourceFolderHeader-1.0.0.xsd"; } //NOXLATE
             set { }
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefFactory.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefFactory.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefFactory.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -57,16 +57,16 @@
             //HACK: We have to peek at the XML to determine if this is simple or compound.
             var doc = new XmlDocument();
             doc.LoadXml(xml);
-            if (doc.DocumentElement.Name == "SimpleSymbolDefinition")
+            if (doc.DocumentElement.Name == "SimpleSymbolDefinition") //NOXLATE
             {
                 return SimpleSymbolDefinition.Deserialize(xml);
             }
             else
             {
-                if (doc.DocumentElement.Name == "CompoundSymbolDefinition")
+                if (doc.DocumentElement.Name == "CompoundSymbolDefinition") //NOXLATE
                     return CompoundSymbolDefinition.Deserialize(xml);
                 else //WTF?
-                    throw new SerializationException("Could not determine symbol type"); //LOCALIZE
+                    throw new SerializationException();
             }
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -71,14 +71,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.InvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.SymbolDefinition.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.UnexpectedResourceType, res.ToString(), ResourceTypes.SymbolDefinition));
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -106,14 +106,14 @@
         }
 
 #if SYM_DEF_240
-        protected string _vschema = "SymbolDefinition-2.4.0.xsd";
+        protected string _vschema = "SymbolDefinition-2.4.0.xsd"; //NOXLATE
 #elif SYM_DEF_110
-        protected string _vschema = "SymbolDefinition-1.1.0.xsd";
+        protected string _vschema = "SymbolDefinition-1.1.0.xsd"; //NOXLATE
 #else
-        protected string _vschema = "SymbolDefinition-1.0.0.xsd";
+        protected string _vschema = "SymbolDefinition-1.0.0.xsd"; //NOXLATE
 #endif
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema
         {
             get { return _vschema; }
@@ -263,10 +263,10 @@
         {
             return new PointUsage()
             {
-                //Angle = "0",
-                //AngleControl = "'FromAngle'",
-                //OriginOffsetX = "0.0",
-                //OriginOffsetY = "0.0"
+                //Angle = "0", //NOXLATE
+                //AngleControl = "'FromAngle'", //NOXLATE
+                //OriginOffsetX = "0.0", //NOXLATE
+                //OriginOffsetY = "0.0" //NOXLATE
             };
         }
 
@@ -274,21 +274,21 @@
         {
             return new LineUsage()
             {
-                //Angle = "0",
-                //AngleControl = "'FromGeometry'",
+                //Angle = "0", //NOXLATE
+                //AngleControl = "'FromGeometry'", //NOXLATE
                 /*
                 DefaultPath = new Path()
                 {
                     
                 },*/
-                //EndOffset = "0",
-                //Repeat = "0",
-                //StartOffset = "0",
-                //UnitsControl = "'Absolute'",
-                //VertexAngleLimit = "0",
-                //VertexControl = "'OverlapNone'",
-                //VertexJoin = "'Round'",
-                //VertexMiterLimit = "5"
+                //EndOffset = "0", //NOXLATE
+                //Repeat = "0", //NOXLATE
+                //StartOffset = "0", //NOXLATE
+                //UnitsControl = "'Absolute'", //NOXLATE
+                //VertexAngleLimit = "0", //NOXLATE
+                //VertexControl = "'OverlapNone'", //NOXLATE
+                //VertexJoin = "'Round'", //NOXLATE
+                //VertexMiterLimit = "5" //NOXLATE
             };
         }
 
@@ -296,15 +296,15 @@
         {
             return new AreaUsage()
             {
-                //Angle = "0",
-                //AngleControl = "'FromAngle'",
-                //BufferWidth = "0",
-                //ClippingControl = "'Clip'",
-                //OriginControl = "'Global'",
-                //OriginX = "0",
-                //OriginY = "0",
-                //RepeatX = "0",
-                //RepeatY = "0"
+                //Angle = "0", //NOXLATE
+                //AngleControl = "'FromAngle'", //NOXLATE
+                //BufferWidth = "0", //NOXLATE
+                //ClippingControl = "'Clip'", //NOXLATE
+                //OriginControl = "'Global'", //NOXLATE
+                //OriginX = "0", //NOXLATE
+                //OriginY = "0", //NOXLATE
+                //RepeatX = "0", //NOXLATE
+                //RepeatY = "0" //NOXLATE
             };
         }
 
@@ -312,11 +312,11 @@
         {
             return new ResizeBox()
             {
-                SizeX = "1.0",
-                SizeY = "1.0",
-                PositionX = "0.0",
-                PositionY = "0.0",
-                GrowControl = "\'GrowInXYMaintainAspect\'"
+                SizeX = "1.0", //NOXLATE
+                SizeY = "1.0", //NOXLATE
+                PositionX = "0.0", //NOXLATE
+                PositionY = "0.0", //NOXLATE
+                GrowControl = "\'GrowInXYMaintainAspect\'" //NOXLATE
             };
         }
 
@@ -328,7 +328,8 @@
 
         public ITextGraphic CreateTextGraphics()
         {
-            return new Text() { Content = "", FontName = "'Arial'" }; //Required for minimum content
+            //Required for minimum content
+            return new Text() { Content = "", FontName = "'Arial'" };  //NOXLATE
         }
 
         public IPathGraphic CreatePathGraphics()
@@ -348,11 +349,11 @@
         public IParameter CreateParameter()
         {
             return new Parameter() 
-            { 
-                Identifier = "",
-                DefaultValue = "",
-                Description = "",
-                DisplayName = "",
+            {
+                Identifier = "", //NOXLATE
+                DefaultValue = "", //NOXLATE
+                Description = "", //NOXLATE
+                DisplayName = "", //NOXLATE
             };
         }
 
@@ -806,14 +807,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.InvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.SymbolDefinition.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.UnexpectedResourceType, res.ToString(), ResourceTypes.SymbolDefinition));
 
                 this.Item = value;
-                OnPropertyChanged("ResourceId");
+                OnPropertyChanged("ResourceId"); //NOXLATE
             }
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/UnmanagedDataList.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/UnmanagedDataList.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/UnmanagedDataList.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -37,13 +37,13 @@
                 string str = this.unmanagedDataIdField;
                 if (!string.IsNullOrEmpty(str))
                 {
-                    if (str.Contains("/"))
+                    if (str.Contains("/")) //NOXLATE
                     {
-                        return str.Substring(str.LastIndexOf("/") + 1);
+                        return str.Substring(str.LastIndexOf("/") + 1); //NOXLATE
                     }
                     else
                     {
-                        return str.Substring(str.LastIndexOf("]") + 1);
+                        return str.Substring(str.LastIndexOf("]") + 1); //NOXLATE
                     }
                 }
                 return string.Empty;
@@ -61,17 +61,17 @@
                 string str = this.unmanagedDataIdField;
                 if (!string.IsNullOrEmpty(str))
                 {
-                    if (str.EndsWith("/")) 
+                    if (str.EndsWith("/"))  //NOXLATE
                         str = str.Substring(0, str.Length - 1);
 
-                    var tokens = str.Split('/');
+                    var tokens = str.Split('/'); //NOXLATE
                     if (tokens.Length == 1)
                     {
                         var p = tokens[0];
-                        if (p.EndsWith("]"))
+                        if (p.EndsWith("]")) //NOXLATE
                             return p;
                         else
-                            return p.Substring(p.IndexOf("]") + 1);
+                            return p.Substring(p.IndexOf("]") + 1); //NOXLATE
                     }
                     else
                         return tokens[tokens.Length - 1];

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/UntypedResource.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/UntypedResource.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/UntypedResource.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -62,7 +62,7 @@
         /// </summary>
         public string ValidatingSchema
         {
-            get { return this.ResourceType + "-" + this.ResourceVersion.ToString() + ".xsd"; }
+            get { return this.ResourceType + "-" + this.ResourceVersion.ToString() + ".xsd"; } //NOXLATE
         }
 
         /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/VectorLayerDefinitionImpl.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -136,7 +136,7 @@
                 if ((minScaleFieldSpecified.Equals(value) != true))
                 {
                     this.minScaleFieldSpecified = value;
-                    this.OnPropertyChanged("MinScaleSpecified");
+                    this.OnPropertyChanged("MinScaleSpecified"); //NOXLATE
                 }
             }
         }
@@ -315,7 +315,7 @@
                     foreach (var item in value)
                     {
                         if (!typeof(ICompositeTypeStyle).IsAssignableFrom(item.GetType()))
-                            throw new InvalidOperationException("Assigned value does not implement ICompositeTypeStyle");
+                            throw new InvalidOperationException(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.ObjectNotICompositeType);
 
                         this.itemsField.Add(item);
                     }
@@ -355,7 +355,7 @@
                     foreach (var item in value)
                     {
                         if (!typeof(ICompositeTypeStyle2).IsAssignableFrom(item.GetType()))
-                            throw new InvalidOperationException("Assigned value does not implement ICompositeTypeStyle2");
+                            throw new InvalidOperationException(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.ObjectNotICompositeType);
 
                         this.itemsField.Add(item);
                     }
@@ -821,7 +821,7 @@
 
         void ILineRule.SetStrokes(IEnumerable<IStroke> strokes)
         {
-            Check.NotNull(strokes, "strokes");
+            Check.NotNull(strokes, "strokes"); //NOXLATE
             this.Items.Clear();
             foreach (var stroke in strokes)
             {
@@ -1574,14 +1574,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(CommonErrorMessages.InvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.LayerDefinition.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(CommonErrorMessages.UnexpectedResourceType, res.ToString(), ResourceTypes.LayerDefinition));
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -1608,21 +1608,21 @@
             return this.Clone();
         }
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema
         {
 #if LDF_110
-            get { return "LayerDefinition-1.1.0.xsd"; }
+            get { return "LayerDefinition-1.1.0.xsd"; } //NOXLATE
 #elif LDF_120
-            get { return "LayerDefinition-1.2.0.xsd"; }
+            get { return "LayerDefinition-1.2.0.xsd"; } //NOXLATE
 #elif LDF_130
-            get { return "LayerDefinition-1.3.0.xsd"; }
+            get { return "LayerDefinition-1.3.0.xsd"; } //NOXLATE
 #elif LDF_230
-            get { return "LayerDefinition-2.3.0.xsd"; }
+            get { return "LayerDefinition-2.3.0.xsd"; } //NOXLATE
 #elif LDF_240
-            get { return "LayerDefinition-2.4.0.xsd"; }
+            get { return "LayerDefinition-2.4.0.xsd"; } //NOXLATE
 #else
-            get { return "LayerDefinition-1.0.0.xsd"; }
+            get { return "LayerDefinition-1.0.0.xsd"; } //NOXLATE
 #endif
             set { }
         }
@@ -1711,14 +1711,14 @@
                     if (this.urlDataField == null)
                         this.urlDataField = new URLDataType();
                     this.urlDataField.Content = value;
-                    OnPropertyChanged("Url");
+                    OnPropertyChanged("Url"); //NOXLATE
                 }
                 else 
                 {
                     //NOTE: None of the other URLData properties seem to be used atm
                     //hence why we are nulling this
                     this.urlDataField = null;
-                    OnPropertyChanged("Url");
+                    OnPropertyChanged("Url"); //NOXLATE
                 }
             }
 #else
@@ -2085,7 +2085,7 @@
             { 
                 if (_resId == value) return;
                 _resId = value;
-                OnPropertyChanged("ResourceId");
+                OnPropertyChanged("ResourceId"); //NOXLATE
             }
         }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WatermarkInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WatermarkInterfaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WatermarkInterfaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -30,7 +30,7 @@
     /// <summary>
     /// The allowed length units for a watermark position
     /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.38968")]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.38968")] //NOXLATE
     [System.SerializableAttribute()]
     public enum UnitType {
         
@@ -53,7 +53,7 @@
     /// <summary>
     /// The allowed horizontal alignment values for a watermark position
     /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.38968")]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.38968")] //NOXLATE
     [System.SerializableAttribute()]
     public enum HorizontalAlignmentType {
         
@@ -70,7 +70,7 @@
     /// <summary>
     /// The context in which the watermark is displayed
     /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.38968")]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.38968")] //NOXLATE
     [System.SerializableAttribute()]
     public enum UsageType {
         
@@ -87,7 +87,7 @@
     /// <summary>
     /// The allowed vertical alignments for a watermark position
     /// </summary>
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.38968")]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "3.4.0.38968")] //NOXLATE
     [System.SerializableAttribute()]
     public enum VerticalAlignmentType {
         

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayout.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayout.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayout.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -47,7 +47,7 @@
             //command to be at a certain position (!!!). The seperator ensures the command is at
             //the right position
             wl.ToolBar.AddItem(wl.CreateSeparator());
-            wl.CommandSet.AddCommand(wl.CreateBasicCommand("Maptip", "Click to enable/disable display of map tooltips", "Click to enable/disable display of map tooltips", "icon_maptip", TargetViewerType.All, BasicCommandActionType.MapTip));
+            wl.CommandSet.AddCommand(wl.CreateBasicCommand("Maptip", WebLayoutStrings.WL_Desc_MapTip, WebLayoutStrings.WL_Desc_MapTip, "icon_maptip", TargetViewerType.All, BasicCommandActionType.MapTip)); //NOXLATE
             wl.ToolBar.AddItem(wl.CreateCommandItem(BasicCommandActionType.MapTip.ToString()));
 #endif
             return wl;
@@ -67,7 +67,7 @@
     [Serializable]
     public class WebLayoutCustomCommandList
     {
-        [XmlArrayItem("CustomCommands")]
+        [XmlArrayItem("CustomCommands")] //NOXLATE
         public CommandType[] Commands { get; set; }
     }
 
@@ -102,14 +102,14 @@
             set
             {
                 if (!ResourceIdentifier.Validate(value))
-                    throw new InvalidOperationException("Not a valid resource identifier"); //LOCALIZE
+                    throw new InvalidOperationException(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.InvalidResourceIdentifier);
 
                 var res = new ResourceIdentifier(value);
                 if (res.Extension != ResourceTypes.WebLayout.ToString())
-                    throw new InvalidOperationException("Invalid resource identifier for this type of object: " + res.Extension); //LOCALIZE
+                    throw new InvalidOperationException(string.Format(OSGeo.MapGuide.ObjectModels.LayerDefinition.CommonErrorMessages.UnexpectedResourceType, res.ToString(), ResourceTypes.WebLayout));
 
                 _resId = value;
-                this.OnPropertyChanged("ResourceID");
+                this.OnPropertyChanged("ResourceID"); //NOXLATE
             }
         }
 
@@ -136,15 +136,15 @@
             return this.Clone();
         }
 
-        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
+        [XmlAttribute("noNamespaceSchemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] //NOXLATE
         public string ValidatingSchema
         {
 #if WL240
-            get { return "WebLayout-2.4.0.xsd"; }
+            get { return "WebLayout-2.4.0.xsd"; } //NOXLATE
 #elif WL110
-            get { return "WebLayout-1.1.0.xsd"; }
+            get { return "WebLayout-1.1.0.xsd"; } //NOXLATE
 #else
-            get { return "WebLayout-1.0.0.xsd"; }
+            get { return "WebLayout-1.0.0.xsd"; } //NOXLATE
 #endif
             set { }
         }
@@ -192,24 +192,24 @@
                         Back = new TaskButtonType()
                         {
                             Name = "Back",
-                            Tooltip = "Return to previous task page",
-                            Description = "Return to previous task page",
+                            Tooltip = WebLayoutStrings.WL_Desc_TaskBack,
+                            Description = WebLayoutStrings.WL_Desc_TaskBack,
                             ImageURL = "../stdicons/icon_back.gif",
                             DisabledImageURL = "../stdicons/icon_back_disabled.gif"
                         },
                         Forward = new TaskButtonType()
                         {
                             Name = "Forward",
-                            Tooltip = "Forward to next task page",
-                            Description = "Forward to next task page",
+                            Tooltip = WebLayoutStrings.WL_Desc_TaskForward,
+                            Description = WebLayoutStrings.WL_Desc_TaskForward,
                             ImageURL = "../stdicons/icon_forward.gif",
                             DisabledImageURL = "../stdicons/icon_forward_disabled.gif"
                         },
                         Home = new TaskButtonType()
                         {
                             Name = "Home",
-                            Tooltip = "Return to home task page",
-                            Description = "Return to home task page",
+                            Tooltip = WebLayoutStrings.WL_Desc_TaskHome,
+                            Description = WebLayoutStrings.WL_Desc_TaskHome,
                             ImageURL = "../stdicons/icon_home.gif",
                             DisabledImageURL = "../stdicons/icon_home_disabled.gif"
                         },
@@ -218,8 +218,8 @@
                         Tasks = new TaskButtonType()
                         {
                             Name = "Tasks",
-                            Tooltip = "Task list",
-                            Description = "View a list of available tasks",
+                            Tooltip = WebLayoutStrings.WL_Label_TaskList,
+                            Description = WebLayoutStrings.WL_Desc_TaskList,
                             ImageURL = "../stdicons/icon_tasks.gif",
                             DisabledImageURL = "../stdicons/icon_tasks_disabled.gif"
                         },
@@ -256,7 +256,7 @@
             wl.CreateCommandItem(BuiltInCommandType.Measure.ToString()),
             wl.CreateCommandItem(BuiltInCommandType.Buffer.ToString()),
             wl.CreateSeparator(),
-            wl.CreateFlyout("Zoom", null, null, null, null,
+            wl.CreateFlyout(WebLayoutStrings.WL_Label_Zoom, null, null, null, null,
                 wl.CreateCommandItem(BuiltInCommandType.PreviousView.ToString()),
                 wl.CreateCommandItem(BuiltInCommandType.NextView.ToString()),
                 wl.CreateCommandItem(BuiltInCommandType.RestoreView.ToString())
@@ -276,7 +276,7 @@
             wl.ContextMenu.AddItems(
                             wl.CreateCommandItem(BuiltInCommandType.Select.ToString()),
                                 wl.CreateCommandItem(BuiltInCommandType.ClearSelection.ToString()),
-                                wl.CreateFlyout("Select More", null, null, null, null,
+                                wl.CreateFlyout(WebLayoutStrings.WL_Label_SelectMore, null, null, null, null,
                                     wl.CreateCommandItem(BuiltInCommandType.SelectRadius.ToString()),
                                     wl.CreateCommandItem(BuiltInCommandType.SelectPolygon.ToString()),
                                     wl.CreateCommandItem(BuiltInCommandType.SelectWithin.ToString())
@@ -287,7 +287,7 @@
                                 wl.CreateCommandItem(BuiltInCommandType.ZoomIn.ToString()),
                                 wl.CreateCommandItem(BuiltInCommandType.ZoomOut.ToString()),
                                 wl.CreateCommandItem(BuiltInCommandType.Zoom.ToString()),
-                                wl.CreateFlyout("Zoom", null, null, null, null,
+                                wl.CreateFlyout(WebLayoutStrings.WL_Label_Zoom, null, null, null, null,
                                     wl.CreateCommandItem(BuiltInCommandType.PreviousView.ToString()),
                                     wl.CreateCommandItem(BuiltInCommandType.NextView.ToString()),
                                     wl.CreateCommandItem(BuiltInCommandType.FitToWindow.ToString()),
@@ -313,175 +313,175 @@
         private static void CreateDefaultCommandSet(IWebLayout wl)
         {
             wl.CommandSet.AddCommand(
-                            wl.CreateBasicCommand("Pan",
-                                               "Pan Mode",
-                                               "Drag the map to view areas out of range",
+                            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_Pan,
+                                               WebLayoutStrings.WL_Label_Pan,
+                                               WebLayoutStrings.WL_Desc_Pan,
                                                "icon_pan",
                                                TargetViewerType.All,
                                                BasicCommandActionType.Pan));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Pan Up",
-                               "Pan Up",
-                               "Pan up by a preset increment",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_PanUp,
+                               WebLayoutStrings.WL_Label_PanUp,
+                               WebLayoutStrings.WL_Desc_PanUp,
                                "icon_panup",
                                TargetViewerType.All,
                                BasicCommandActionType.PanUp));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Pan Down",
-                               "Pan Down",
-                               "Pan down by a preset increment",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_PanDown,
+                               WebLayoutStrings.WL_Label_PanDown,
+                               WebLayoutStrings.WL_Desc_PanDown,
                                "icon_pandown",
                                TargetViewerType.All,
                                BasicCommandActionType.PanDown));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Pan Right",
-                               "Pan Right",
-                               "Pan right by a preset increment",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_PanRight,
+                               WebLayoutStrings.WL_Label_PanRight,
+                               WebLayoutStrings.WL_Desc_PanRight,
                                "icon_panright",
                                TargetViewerType.All,
                                BasicCommandActionType.PanRight));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Pan Left",
-                               "Pan Left",
-                               "Pan left by a preset increment",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_PanLeft,
+                               WebLayoutStrings.WL_Label_PanLeft,
+                               WebLayoutStrings.WL_Desc_PanLeft,
                                "icon_panleft",
                                TargetViewerType.All,
                                BasicCommandActionType.PanLeft));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Zoom",
-                               "Zoom Dynamic",
-                               "Zoom dynamically by clicking and dragging",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_Zoom,
+                               WebLayoutStrings.WL_Label_ZoomDynamic,
+                               WebLayoutStrings.WL_Desc_ZoomDynamic,
                                "icon_zoom",
                                TargetViewerType.Dwf,
                                BasicCommandActionType.Zoom));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Zoom In",
-                               "Zoom In",
-                               "Zoom in by a preset increment",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_ZoomIn,
+                               WebLayoutStrings.WL_Label_ZoomIn,
+                               WebLayoutStrings.WL_Desc_ZoomIn,
                                "icon_zoomin",
                                TargetViewerType.All,
                                BasicCommandActionType.ZoomIn));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Zoom Out",
-                               "Zoom Out",
-                               "Zoom out by a preset increment",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_ZoomOut,
+                               WebLayoutStrings.WL_Label_ZoomOut,
+                               WebLayoutStrings.WL_Desc_ZoomOut,
                                "icon_zoomout",
                                TargetViewerType.All,
                                BasicCommandActionType.ZoomOut));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Zoom Rectangle",
-                               "Zoom Rectangle",
-                               "Zoom in on an area",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_ZoomRect,
+                               WebLayoutStrings.WL_Label_ZoomRect,
+                               WebLayoutStrings.WL_Desc_ZoomRect,
                                "icon_zoomrect",
                                TargetViewerType.All,
                                BasicCommandActionType.ZoomRectangle));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Zoom Selection",
-                               "Zoom to selection",
-                               "Zoom to extents of selected features",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_ZoomSelection,
+                               WebLayoutStrings.WL_Label_ZoomSelection,
+                               WebLayoutStrings.WL_Desc_ZoomSelection,
                                "icon_zoomselect",
                                TargetViewerType.All,
                                BasicCommandActionType.ZoomToSelection));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Initial Map View",
-                               "Initial Map View",
-                               "Fit the extents of the map to the window",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_InitialMapView,
+                               WebLayoutStrings.WL_Label_InitialMapView,
+                               WebLayoutStrings.WL_Desc_InitialMapView,
                                "icon_fitwindow",
                                TargetViewerType.All,
                                BasicCommandActionType.FitToWindow));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Previous View",
-                               "Previous View",
-                               "Go to previous view",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_PrevView,
+                               WebLayoutStrings.WL_Label_PrevView,
+                               WebLayoutStrings.WL_Desc_PrevView,
                                "icon_zoomprev",
                                TargetViewerType.All,
                                BasicCommandActionType.PreviousView));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Next View",
-                               "Next View",
-                               "Go to next view",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_NextView,
+                               WebLayoutStrings.WL_Label_NextView,
+                               WebLayoutStrings.WL_Desc_NextView,
                                "icon_zoomnext",
                                TargetViewerType.All,
                                BasicCommandActionType.NextView));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Initial Center and Scale",
-                               "Initial Center and Scale",
-                               "Zoom to initial map center and scale",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_InitialCenterScale,
+                               WebLayoutStrings.WL_Label_InitialCenterScale,
+                               WebLayoutStrings.WL_Desc_InitialCenterScale,
                                "icon_restorecenter.gif",
                                TargetViewerType.All,
                                BasicCommandActionType.RestoreView));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Select",
-                               "Select Mode",
-                               "Select features by clicking and dragging",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_Select,
+                               WebLayoutStrings.WL_Label_Select,
+                               WebLayoutStrings.WL_Desc_Select,
                                "icon_select",
                                TargetViewerType.All,
                                BasicCommandActionType.Select));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Select Radius",
-                               "Select Radius",
-                               "Click and drag to select all features inside the circle",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_SelectRadius,
+                               WebLayoutStrings.WL_Label_SelectRadius,
+                               WebLayoutStrings.WL_Desc_SelectRadius,
                                "icon_selectradius",
                                TargetViewerType.All,
                                BasicCommandActionType.SelectRadius));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Select Polygon",
-                               "Select Polygon",
-                               "Create a polygon to select all features that fall within",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_SelectPolygon,
+                               WebLayoutStrings.WL_Label_SelectPolygon,
+                               WebLayoutStrings.WL_Desc_SelectPolygon,
                                "icon_selectpolygon",
                                TargetViewerType.All,
                                BasicCommandActionType.SelectPolygon));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Clear Selection",
-                               "Clear Selection",
-                               "Clear the current selections",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Desc_ClearSelection,
+                               WebLayoutStrings.WL_Label_ClearSelection,
+                               WebLayoutStrings.WL_Desc_ClearSelection,
                                "icon_clearselect",
                                TargetViewerType.All,
                                BasicCommandActionType.ClearSelection));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Refresh Map",
-                               "Refresh Map",
-                               "Refresh map to reload all layers keeping current center and scale",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_RefreshMap,
+                               WebLayoutStrings.WL_Label_RefreshMap,
+                               WebLayoutStrings.WL_Desc_RefreshMap,
                                "icon_refreshmap",
                                TargetViewerType.All,
                                BasicCommandActionType.Refresh));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("Copy",
-                               "Copy",
-                               "Copy current view of map to clipboard",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_Copy,
+                               WebLayoutStrings.WL_Label_Copy,
+                               WebLayoutStrings.WL_Desc_Copy,
                                "icon_copy",
                                TargetViewerType.Dwf,
                                BasicCommandActionType.CopyMap));
             wl.CommandSet.AddCommand(
-            wl.CreateBasicCommand("About",
-                               "About",
-                               "Display information about this application",
+            wl.CreateBasicCommand(WebLayoutStrings.WL_Label_About,
+                               WebLayoutStrings.WL_Label_About,
+                               WebLayoutStrings.WL_Desc_About,
                                null,
                                TargetViewerType.All,
                                BasicCommandActionType.About));
             wl.CommandSet.AddCommand(
             wl.CreateTargetedCommand<BufferCommandType>(BuiltInCommandType.Buffer.ToString(),
-                                                     "Buffer",
-                                                     "Buffer",
-                                                     "Create buffers around the selected features",
+                                                     WebLayoutStrings.WL_Label_Buffer,
+                                                     WebLayoutStrings.WL_Label_Buffer,
+                                                     WebLayoutStrings.WL_Desc_Buffer,
                                                      "icon_buffer",
                                                      TargetViewerType.All,
                                                      TargetType.TaskPane,
                                                      null));
             wl.CommandSet.AddCommand(
             wl.CreateTargetedCommand<SelectWithinCommandType>(BuiltInCommandType.SelectWithin.ToString(),
-                                                     "Select Within",
-                                                     "Select Within",
-                                                     "Select features that fall within currently selected areas",
+                                                     WebLayoutStrings.WL_Label_SelectWithin,
+                                                     WebLayoutStrings.WL_Label_SelectWithin,
+                                                     WebLayoutStrings.WL_Desc_SelectWithin,
                                                      "icon_selectwithin",
                                                      TargetViewerType.All,
                                                      TargetType.TaskPane,
                                                      null));
             wl.CommandSet.AddCommand(
             wl.CreateTargetedCommand<MeasureCommandType>(BuiltInCommandType.Measure.ToString(),
-                                                      "Measure",
-                                                      "Measure",
-                                                      "Measure distances on the map",
+                                                      WebLayoutStrings.WL_Label_Measure,
+                                                      WebLayoutStrings.WL_Label_Measure,
+                                                      WebLayoutStrings.WL_Desc_Measure,
                                                       "icon_measure",
                                                       TargetViewerType.All,
                                                       TargetType.TaskPane,
@@ -490,27 +490,27 @@
             new PrintCommandType()
             {
                 Name = "Print",
-                Label = "Print",
-                Tooltip = "Print",
-                Description = "Print with optional layout",
+                Label = WebLayoutStrings.WL_Label_Print,
+                Tooltip = WebLayoutStrings.WL_Label_Print,
+                Description = WebLayoutStrings.WL_Desc_Print,
                 ImageURL = "../stdicons/icon_print.gif",
                 DisabledImageURL = "../stdicons/icon_print_disabled.gif",
                 TargetViewer = TargetViewerType.Dwf
             });
             wl.CommandSet.AddCommand(
             wl.CreateTargetedCommand<ViewOptionsCommandType>(BuiltInCommandType.ViewOptions.ToString(),
-                                                          "View Options",
-                                                          "View Options",
-                                                          "View Options",
+                                                          WebLayoutStrings.WL_Label_ViewOptions,
+                                                          WebLayoutStrings.WL_Label_ViewOptions,
+                                                          WebLayoutStrings.WL_Desc_ViewOptions,
                                                           "icon_viewoptions",
                                                           TargetViewerType.All,
                                                           TargetType.TaskPane,
                                                           null));
             wl.CommandSet.AddCommand(
             wl.CreateTargetedCommand<GetPrintablePageCommandType>(BuiltInCommandType.GetPrintablePage.ToString(),
-                                                          "Get Printable Page",
-                                                          "Get Printable Page",
-                                                          "Get Printer-friendly page",
+                                                          WebLayoutStrings.WL_Label_GetPrintablePage,
+                                                          WebLayoutStrings.WL_Label_GetPrintablePage,
+                                                          WebLayoutStrings.WL_Desc_GetPrintablePage,
                                                           "icon_printablepage",
                                                           TargetViewerType.Ajax,
                                                           TargetType.NewWindow,
@@ -519,9 +519,9 @@
             new HelpCommandType()
             {
                 Name = BuiltInCommandType.Help.ToString(),
-                Label = "Help",
-                Tooltip = "Help",
-                Description = "Launch help for this application",
+                Label = WebLayoutStrings.WL_Label_Help,
+                Tooltip = WebLayoutStrings.WL_Label_Help,
+                Description = WebLayoutStrings.WL_Desc_Help,
                 ImageURL = "../stdicons/icon_help.gif",
                 DisabledImageURL = "../stdicons/icon_help_disabled.gif",
                 TargetViewer = TargetViewerType.All,
@@ -666,8 +666,8 @@
 
             if (!string.IsNullOrEmpty(iconName))
             {
-                cmd.ImageURL = "../stdicons/" + iconName + ".gif";
-                cmd.DisabledImageURL = "../stdicons/" + iconName + "_disabled.gif";
+                cmd.ImageURL = "../stdicons/" + iconName + ".gif"; //NOXLATE
+                cmd.DisabledImageURL = "../stdicons/" + iconName + "_disabled.gif"; //NOXLATE
             }
 
             return cmd;
@@ -697,11 +697,11 @@
         {
             return new InvokeURLCommandType()
             {
-                Name = GenerateUniqueName("InvokeUrlCommand"),
+                Name = GenerateUniqueName("InvokeUrlCommand"), //NOXLATE
                 Target = TargetType.TaskPane,
                 DisableIfSelectionEmpty = false,
-                ImageURL = "../stdicons/icon_invokeurl.gif",
-                DisabledImageURL = "../stdicons/icon_invokeurl_disabled.gif",
+                ImageURL = "../stdicons/icon_invokeurl.gif", //NOXLATE
+                DisabledImageURL = "../stdicons/icon_invokeurl_disabled.gif", //NOXLATE
                 TargetViewer = TargetViewerType.All,
                 AdditionalParameter = new BindingList<ParameterPairType>(),
                 URL = "",
@@ -713,12 +713,12 @@
         {
             return new SearchCommandType()
             {
-                Name = GenerateUniqueName("SearchCommand"),
+                Name = GenerateUniqueName("SearchCommand"), //NOXLATE
                 ResultColumns = new System.ComponentModel.BindingList<ResultColumnType>(),
                 Target = TargetType.TaskPane,
-                TargetViewer = TargetViewerType.All,
-                DisabledImageURL = "../stdicons/icon_search_disabled.gif",
-                ImageURL = "../stdicons/icon_search.gif",
+                TargetViewer = TargetViewerType.All, //NOXLATE
+                DisabledImageURL = "../stdicons/icon_search_disabled.gif", //NOXLATE
+                ImageURL = "../stdicons/icon_search.gif", //NOXLATE
                 Layer = string.Empty,
                 Filter = string.Empty,
                 MatchLimit = "100",
@@ -730,11 +730,11 @@
         {
             return new InvokeScriptCommandType()
             {
-                Name = GenerateUniqueName("InvokeScriptCommand"),
-                DisabledImageURL = "../stdicons/icon_invokescript_disabled.gif",
-                ImageURL = "../stdicons/icon_invokescript.gif",
+                Name = GenerateUniqueName("InvokeScriptCommand"), //NOXLATE
+                DisabledImageURL = "../stdicons/icon_invokescript_disabled.gif", //NOXLATE
+                ImageURL = "../stdicons/icon_invokescript.gif", //NOXLATE
                 TargetViewer = TargetViewerType.All,
-                Script = "//Enter your script code here. You can use AJAX viewer API calls here. This code is called from the viewer's main frame"
+                Script = "//Enter your script code here. You can use AJAX viewer API calls here. This code is called from the viewer's main frame" //NOXLATE
             };
         }
 
@@ -887,7 +887,7 @@
             if (c != null)
             {
                 this.CommandSet.Add(c);
-                OnPropertyChanged("CommandSet");
+                OnPropertyChanged("CommandSet"); //NOXLATE
                 if (cmd is IInvokeUrlCommand || cmd is IInvokeScriptCommand || cmd is ISearchCommand)
                 {
                     var handler = this.CustomCommandAdded;
@@ -903,7 +903,7 @@
             if (c != null)
             {
                 this.CommandSet.Remove(c);
-                OnPropertyChanged("CommandSet");
+                OnPropertyChanged("CommandSet"); //NOXLATE
                 if (cmd is IInvokeUrlCommand || cmd is IInvokeScriptCommand || cmd is ISearchCommand)
                 {
                     var handler = this.CustomCommandRemoved;
@@ -1029,7 +1029,7 @@
             {
                 this.Button.Add(it);
                 it.Parent = this;
-                OnPropertyChanged("Button");
+                OnPropertyChanged("Button"); //NOXLATE
             }
         }
 
@@ -1040,7 +1040,7 @@
             {
                 this.Button.Remove(it);
                 it.Parent = null;
-                OnPropertyChanged("Button");
+                OnPropertyChanged("Button"); //NOXLATE
             }
         }
 
@@ -1060,7 +1060,7 @@
                     this.Button[isrc] = dst;
                     this.Button[idst] = src;
 
-                    OnPropertyChanged("Button");
+                    OnPropertyChanged("Button"); //NOXLATE
                     return true;
                 }
             }
@@ -1083,7 +1083,7 @@
                     this.Button[isrc] = dst;
                     this.Button[idst] = src;
 
-                    OnPropertyChanged("Button");
+                    OnPropertyChanged("Button"); //NOXLATE
                     return true;
                 }
             }
@@ -1143,7 +1143,7 @@
             {
                 this.MenuItem.Add(it);
                 it.Parent = this;
-                OnPropertyChanged("MenuItem");
+                OnPropertyChanged("MenuItem"); //NOXLATE
             }
         }
 
@@ -1154,7 +1154,7 @@
             {
                 this.MenuItem.Remove(it);
                 it.Parent = null;
-                OnPropertyChanged("MenuItem");
+                OnPropertyChanged("MenuItem"); //NOXLATE
             }
         }
 
@@ -1173,7 +1173,7 @@
                     this.MenuItem[isrc] = dst;
                     this.MenuItem[idst] = src;
 
-                    OnPropertyChanged("Button");
+                    OnPropertyChanged("Button"); //NOXLATE
                     return true;
                 }
             }
@@ -1195,7 +1195,7 @@
                     this.MenuItem[isrc] = dst;
                     this.MenuItem[idst] = src;
 
-                    OnPropertyChanged("Button");
+                    OnPropertyChanged("Button"); //NOXLATE
                     return true;
                 }
             }
@@ -1250,7 +1250,7 @@
             {
                 this.MenuButton.Add(it);
                 it.Parent = this;
-                OnPropertyChanged("MenuButton");
+                OnPropertyChanged("MenuButton"); //NOXLATE
             }
         }
 
@@ -1261,7 +1261,7 @@
             {
                 this.MenuButton.Remove(it);
                 it.Parent = null;
-                OnPropertyChanged("MenuButton");
+                OnPropertyChanged("MenuButton"); //NOXLATE
             }
         }
 
@@ -1280,7 +1280,7 @@
                     this.MenuButton[isrc] = dst;
                     this.MenuButton[idst] = src;
 
-                    OnPropertyChanged("Button");
+                    OnPropertyChanged("Button"); //NOXLATE
                     return true;
                 }
             }
@@ -1302,7 +1302,7 @@
                     this.MenuButton[isrc] = dst;
                     this.MenuButton[idst] = src;
 
-                    OnPropertyChanged("Button");
+                    OnPropertyChanged("Button"); //NOXLATE
                     return true;
                 }
             }
@@ -1405,7 +1405,7 @@
             if (r != null)
             {
                 this.PrintLayout.Add(r);
-                OnPropertyChanged("PrintLayout");
+                OnPropertyChanged("PrintLayout"); //NOXLATE
             }
         }
 
@@ -1415,7 +1415,7 @@
             if (r != null)
             {
                 this.PrintLayout.Remove(r);
-                OnPropertyChanged("PrintLayout");
+                OnPropertyChanged("PrintLayout"); //NOXLATE
             }
         }
     }
@@ -1459,7 +1459,7 @@
             {
                 this.SubItem.Add(i);
                 i.Parent = this;
-                OnPropertyChanged("SubItem");
+                OnPropertyChanged("SubItem"); //NOXLATE
             }
         }
 
@@ -1470,7 +1470,7 @@
             {
                 this.SubItem.Remove(i);
                 i.Parent = null;
-                OnPropertyChanged("SubItem");
+                OnPropertyChanged("SubItem"); //NOXLATE
             };
         }
 
@@ -1489,7 +1489,7 @@
                     this.SubItem[isrc] = dst;
                     this.SubItem[idst] = src;
 
-                    OnPropertyChanged("Button");
+                    OnPropertyChanged("Button"); //NOXLATE
                     return true;
                 }
             }
@@ -1511,7 +1511,7 @@
                     this.SubItem[isrc] = dst;
                     this.SubItem[idst] = src;
 
-                    OnPropertyChanged("Button");
+                    OnPropertyChanged("Button"); //NOXLATE
                     return true;
                 }
             }
@@ -1588,7 +1588,7 @@
             if (p != null)
             {
                 this.AdditionalParameter.Add(p);
-                OnPropertyChanged("AdditionalParameter");
+                OnPropertyChanged("AdditionalParameter"); //NOXLATE
             }
         }
 
@@ -1598,7 +1598,7 @@
             if (p != null)
             {
                 this.AdditionalParameter.Remove(p);
-                OnPropertyChanged("AdditionalParameter");
+                OnPropertyChanged("AdditionalParameter"); //NOXLATE
             }
         }
 
@@ -1674,7 +1674,7 @@
             if (c != null)
             {
                 this.ResultColumns.Add(c);
-                OnPropertyChanged("ResultColumns");
+                OnPropertyChanged("ResultColumns"); //NOXLATE
             }
         }
 
@@ -1684,7 +1684,7 @@
             if (c != null)
             {
                 this.ResultColumns.Remove(c);
-                OnPropertyChanged("ResultColumns");
+                OnPropertyChanged("ResultColumns"); //NOXLATE
             }
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayoutInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayoutInterfaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/WebLayoutInterfaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -26,6 +26,344 @@
         TaskBar
     }
 
+    public static class WebLayoutStrings
+    {
+        public static string WL_Desc_About
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_About; }
+        }
+
+        public static string WL_Desc_Buffer
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_Buffer; }
+        }
+
+        public static string WL_Desc_ClearSelection
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_ClearSelection; }
+        }
+
+        public static string WL_Desc_Copy
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_Copy; }
+        }
+
+        public static string WL_Desc_GetPrintablePage
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_GetPrintablePage; }
+        }
+
+        public static string WL_Desc_Help
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_Help; }
+        }
+
+        public static string WL_Desc_InitialCenterScale
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_InitialCenterScale; }
+        }
+
+        public static string WL_Desc_InitialMapView
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_InitialMapView; }
+        }
+
+        public static string WL_Desc_MapTip
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_MapTip; }
+        }
+
+        public static string WL_Desc_Measure
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_Measure; }
+        }
+
+        public static string WL_Desc_NextView
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_NextView; }
+        }
+
+        public static string WL_Desc_Pan
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_Pan; }
+        }
+
+        public static string WL_Desc_PanDown
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_PanDown; }
+        }
+
+        public static string WL_Desc_PanLeft
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_PanLeft; }
+        }
+
+        public static string WL_Desc_PanRight
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_PanRight; }
+        }
+
+        public static string WL_Desc_PanUp
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_PanUp; }
+        }
+
+        public static string WL_Desc_PrevView
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_PrevView; }
+        }
+
+        public static string WL_Desc_Print
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_Print; }
+        }
+
+        public static string WL_Desc_RefreshMap
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_RefreshMap; }
+        }
+
+        public static string WL_Desc_Select
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_Select; }
+        }
+
+        public static string WL_Desc_SelectPolygon
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_SelectPolygon; }
+        }
+
+        public static string WL_Desc_SelectRadius
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_SelectRadius; }
+        }
+
+        public static string WL_Desc_SelectWithin
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_SelectWithin; }
+        }
+
+        public static string WL_Desc_TaskBack
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_TaskBack; }
+        }
+
+        public static string WL_Desc_TaskForward
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_TaskForward; }
+        }
+
+        public static string WL_Desc_TaskHome
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_TaskHome; }
+        }
+
+        public static string WL_Desc_TaskList
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_TaskList; }
+        }
+
+        public static string WL_Desc_ViewOptions
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_ViewOptions; }
+        }
+
+        public static string WL_Desc_ZoomDynamic
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_ZoomDynamic; }
+        }
+
+        public static string WL_Desc_ZoomIn
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_ZoomIn; }
+        }
+
+        public static string WL_Desc_ZoomOut
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_ZoomOut; }
+        }
+
+        public static string WL_Desc_ZoomRect
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_ZoomRect; }
+        }
+
+        public static string WL_Desc_ZoomSelection
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Desc_ZoomSelection; }
+        }
+
+        public static string WL_Label_About
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_About; }
+        }
+
+        public static string WL_Label_Buffer
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_Buffer; }
+        }
+
+        public static string WL_Label_ClearSelection
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_ClearSelection; }
+        }
+
+        public static string WL_Label_Copy
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_Copy; }
+        }
+
+        public static string WL_Label_GetPrintablePage
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_GetPrintablePage; }
+        }
+
+        public static string WL_Label_Help
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_Help; }
+        }
+
+        public static string WL_Label_InitialCenterScale
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_InitialCenterScale; }
+        }
+
+        public static string WL_Label_InitialMapView
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_InitialMapView; }
+        }
+
+        public static string WL_Label_Measure
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_Measure; }
+        }
+
+        public static string WL_Label_NextView
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_NextView; }
+        }
+
+        public static string WL_Label_Pan
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_Pan; }
+        }
+
+        public static string WL_Label_PanDown
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_PanDown; }
+        }
+
+        public static string WL_Label_PanLeft
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_PanLeft; }
+        }
+
+        public static string WL_Label_PanRight
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_PanRight; }
+        }
+
+        public static string WL_Label_PanUp
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_PanUp; }
+        }
+
+        public static string WL_Label_PrevView
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_PrevView; }
+        }
+
+        public static string WL_Label_Print
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_Print; }
+        }
+
+        public static string WL_Label_RefreshMap
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_RefreshMap; }
+        }
+
+        public static string WL_Label_Select
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_Select; }
+        }
+
+        public static string WL_Label_SelectMore
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_SelectMore; }
+        }
+
+        public static string WL_Label_SelectPolygon
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_SelectPolygon; }
+        }
+
+        public static string WL_Label_SelectRadius
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_SelectRadius; }
+        }
+
+        public static string WL_Label_SelectWithin
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_SelectWithin; }
+        }
+
+        public static string WL_Label_TaskBack
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_TaskBack; }
+        }
+
+        public static string WL_Label_TaskForward
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_TaskForward; }
+        }
+
+        public static string WL_Label_TaskHome
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_TaskHome; }
+        }
+
+        public static string WL_Label_TaskList
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_TaskList; }
+        }
+
+        public static string WL_Label_ViewOptions
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_ViewOptions; }
+        }
+
+        public static string WL_Label_ZoomDynamic
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_ZoomDynamic; }
+        }
+
+        public static string WL_Label_Zoom
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_Zoom; }
+        }
+
+        public static string WL_Label_ZoomIn
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_ZoomIn; }
+        }
+
+        public static string WL_Label_ZoomOut
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_ZoomOut; }
+        }
+
+        public static string WL_Label_ZoomRect
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_ZoomRect; }
+        }
+
+        public static string WL_Label_ZoomSelection
+        {
+            get { return OSGeo.MapGuide.MaestroAPI.Properties.Resources.WL_Label_ZoomSelection; }
+        }
+    }
+
     /// <summary>
     /// Encompasses all built-in commands usable by the web layout (AJAX and DWF)
     /// </summary>
@@ -295,7 +633,7 @@
         /// <returns></returns>
         public override string ToString()
         {
-            return string.Format("{0} => {1}", this.OriginalName, this.ImportedName);
+            return string.Format("{0} => {1}", this.OriginalName, this.ImportedName); //NOXLATE
         }
     }
 
@@ -727,8 +1065,8 @@
         /// <param name="items"></param>
         public static void AddItems(this IMenu mnu, params IUIItem[] items)
         {
-            Check.NotNull(mnu, "mnu");
-            Check.NotNull(items, "items");
+            Check.NotNull(mnu, "mnu"); //NOXLATE
+            Check.NotNull(items, "items"); //NOXLATE
             foreach (var item in items)
             {
                 mnu.AddItem(item);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Platform.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Platform.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Platform.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -31,7 +31,7 @@
     {
         static Platform()
         {
-            _mrtType = Type.GetType("Mono.Runtime");
+            _mrtType = Type.GetType("Mono.Runtime"); //NOXLATE
         }
 
         private static Type _mrtType;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/PlatformConnectionBase.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -43,49 +43,49 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
-	/// <summary>
-	/// Base class of all connection classes. Covers functionality encompassed by
+    /// <summary>
+    /// Base class of all connection classes. Covers functionality encompassed by
     /// the MapGuide Geospatial Platform API (ie. Feature Service and Resource Service)
-	/// </summary>
-	public abstract class PlatformConnectionBase
-	{
-		/// <summary>
-		/// A list of cached serializers
-		/// </summary>
-		protected Hashtable m_serializers;
+    /// </summary>
+    public abstract class PlatformConnectionBase
+    {
+        /// <summary>
+        /// A list of cached serializers
+        /// </summary>
+        protected Hashtable m_serializers;
 
-		/// <summary>
-		/// The current XML validator
-		/// </summary>
-		protected XmlValidator m_validator;
+        /// <summary>
+        /// The current XML validator
+        /// </summary>
+        protected XmlValidator m_validator;
 
-		/// <summary>
-		/// The path of Xsd schemas 
-		/// </summary>
-		protected string m_schemasPath;
+        /// <summary>
+        /// The path of Xsd schemas 
+        /// </summary>
+        protected string m_schemasPath;
 
-		/// <summary>
-		/// A lookup table for Xsd Schemas
-		/// </summary>
-		protected Hashtable m_cachedSchemas;
+        /// <summary>
+        /// A lookup table for Xsd Schemas
+        /// </summary>
+        protected Hashtable m_cachedSchemas;
 
-		/// <summary>
-		/// A flag indicating if Xsd validation is perfomed
-		/// </summary>
-		protected bool m_disableValidation = false;
+        /// <summary>
+        /// A flag indicating if Xsd validation is perfomed
+        /// </summary>
+        protected bool m_disableValidation = false;
 
         /// <summary>
         /// Initializes a new instance of the <see cref="PlatformConnectionBase"/> class.
         /// </summary>
-		protected PlatformConnectionBase()
-		{
+        protected PlatformConnectionBase()
+        {
             ResourceTypeRegistry.Init();
             
             m_serializers = new Hashtable();
             m_validator = new XmlValidator();
             m_cachedSchemas = new Hashtable();
-            m_schemasPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Schemas");
-		}
+            m_schemasPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Schemas"); //NOXLATE
+        }
 
         #region Serialization plumbing
 
@@ -100,14 +100,14 @@
             return (T)DeserializeObject(typeof(T), data);
         }
 
-		/// <summary>
-		/// Deserializes an object from a stream.
-		/// </summary>
-		/// <param name="type">The expected object type</param>
-		/// <param name="data">The stream containing the object</param>
-		/// <returns>The deserialized object</returns>
-		virtual public object DeserializeObject(Type type, System.IO.Stream data)
-		{
+        /// <summary>
+        /// Deserializes an object from a stream.
+        /// </summary>
+        /// <param name="type">The expected object type</param>
+        /// <param name="data">The stream containing the object</param>
+        /// <returns>The deserialized object</returns>
+        virtual public object DeserializeObject(Type type, System.IO.Stream data)
+        {
             //HACK: MGOS 2.2 outputs different capabilities xml (because it's actually the correct one!), so 
             //without breaking support against 2.1 and older servers, we transform the xml to its pre-2.2 form
             if (type == typeof(FdoProviderCapabilities) && this.SiteVersion < new Version(2, 2))
@@ -120,12 +120,12 @@
 
                 //Pre-2.2 the elements were suffixed with Collection, change the suffix to List
 
-                sb.Replace("<FunctionDefinitionCollection>", "<FunctionDefinitionList>");
-                sb.Replace("</FunctionDefinitionCollection>", "</FunctionDefinitionList>");
-                sb.Replace("<FunctionDefinitionCollection/>", "<FunctionDefinitionList/>");
-                sb.Replace("<ArgumentDefinitionCollection>", "<ArgumentDefinitionList>");
-                sb.Replace("</ArgumentDefinitionCollection>", "</ArgumentDefinitionList>");
-                sb.Replace("<ArgumentDefinitionCollection/>", "<ArgumentDefinitionList/>");
+                sb.Replace("<FunctionDefinitionCollection>", "<FunctionDefinitionList>"); //NOXLATE
+                sb.Replace("</FunctionDefinitionCollection>", "</FunctionDefinitionList>"); //NOXLATE
+                sb.Replace("<FunctionDefinitionCollection/>", "<FunctionDefinitionList/>"); //NOXLATE
+                sb.Replace("<ArgumentDefinitionCollection>", "<ArgumentDefinitionList>"); //NOXLATE
+                sb.Replace("</ArgumentDefinitionCollection>", "</ArgumentDefinitionList>"); //NOXLATE
+                sb.Replace("<ArgumentDefinitionCollection/>", "<ArgumentDefinitionList/>"); //NOXLATE
 
                 byte[] bytes = Encoding.UTF8.GetBytes(sb.ToString());
 
@@ -133,77 +133,77 @@
                 data = new MemoryStream(bytes);
             }
 
-			//Must copy stream, because we will be reading it twice :(
-			//Once for validation, and once for deserialization
-			System.IO.MemoryStream ms = new System.IO.MemoryStream();
-			Utility.CopyStream(data, ms);
-			ms.Position = 0;
+            //Must copy stream, because we will be reading it twice :(
+            //Once for validation, and once for deserialization
+            System.IO.MemoryStream ms = new System.IO.MemoryStream();
+            Utility.CopyStream(data, ms);
+            ms.Position = 0;
 
 #if DEBUG_LASTMESSAGE
-			//Save us a copy for later investigation
-			using (System.IO.FileStream fs = System.IO.File.Open("lastResponse.xml", System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None))
-				Utility.CopyStream(ms, fs);
+            //Save us a copy for later investigation
+            using (System.IO.FileStream fs = System.IO.File.Open("lastResponse.xml", System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None)) //NOXLATE
+                Utility.CopyStream(ms, fs);
 
-			ms.Position = 0;
+            ms.Position = 0;
 #endif
-			//TODO: Find out why the "xs:include" doesn't work with validator
-			//Validation is quite important, as we otherwise may end up injecting malicious code
-			//			if (!m_disableValidation)
-			//			{
-			//				m_validator.Validate(ms, GetSchema(type));
-			//				ms.Position = 0;
-			//			}
+            //TODO: Find out why the "xs:include" doesn't work with validator
+            //Validation is quite important, as we otherwise may end up injecting malicious code
+            //			if (!m_disableValidation)
+            //			{
+            //				m_validator.Validate(ms, GetSchema(type));
+            //				ms.Position = 0;
+            //			}
 
-			try
-			{
-				return GetSerializer(type).Deserialize(ms);
-			}
-			catch (Exception ex)
-			{
-				string s = ex.Message;
-				throw;
-			}
-		}
+            try
+            {
+                return GetSerializer(type).Deserialize(ms);
+            }
+            catch (Exception ex)
+            {
+                string s = ex.Message;
+                throw;
+            }
+        }
 
-		/// <summary>
-		/// Serialize an object into a new memory stream.
-		/// </summary>
-		/// <param name="o">The object to serialize</param>
-		/// <returns>A memorystream with the serialized object</returns>
-		virtual public System.IO.MemoryStream SerializeObject(object o)
-		{
-			System.IO.MemoryStream ms = new System.IO.MemoryStream();
+        /// <summary>
+        /// Serialize an object into a new memory stream.
+        /// </summary>
+        /// <param name="o">The object to serialize</param>
+        /// <returns>A memorystream with the serialized object</returns>
+        virtual public System.IO.MemoryStream SerializeObject(object o)
+        {
+            System.IO.MemoryStream ms = new System.IO.MemoryStream();
             GetSerializer(o.GetType()).Serialize(new Utf8XmlWriter(ms), o);
             return Utility.RemoveUTF8BOM(ms);
-		}
+        }
 
-		/// <summary>
-		/// Serializes an object into a stream
-		/// </summary>
-		/// <param name="o">The object to serialize</param>
-		/// <param name="stream">The stream to serialize into</param>
-		virtual public void SerializeObject(object o, System.IO.Stream stream)
-		{
-			//The Utf8 writer makes sure the Utf8 tag is in place + sets encoding to Utf8
-			//This is needed because the server fails when rendering maps using non utf8 xml documents
-			//And the XmlSerializer sytem in .Net does not have a method to set the encoding attribute
+        /// <summary>
+        /// Serializes an object into a stream
+        /// </summary>
+        /// <param name="o">The object to serialize</param>
+        /// <param name="stream">The stream to serialize into</param>
+        virtual public void SerializeObject(object o, System.IO.Stream stream)
+        {
+            //The Utf8 writer makes sure the Utf8 tag is in place + sets encoding to Utf8
+            //This is needed because the server fails when rendering maps using non utf8 xml documents
+            //And the XmlSerializer sytem in .Net does not have a method to set the encoding attribute
 
             //This does not remove the utf8 BOM marker :(
             //GetSerializer(o.GetType()).Serialize(new Utf8XmlWriter(stream), o);
 
             SerializeObject(o).WriteTo(stream);
-		}
+        }
 
-		/// <summary>
-		/// Returns an XmlSerializer for the given type
-		/// </summary>
-		/// <param name="type">The object type to serialize</param>
-		/// <returns>An XmlSerializer for the given type</returns>
-		virtual protected System.Xml.Serialization.XmlSerializer GetSerializer(Type type)
-		{
-			if (m_serializers[type] == null)
-				m_serializers[type] = new System.Xml.Serialization.XmlSerializer(type);
-			return (System.Xml.Serialization.XmlSerializer)m_serializers[type];
+        /// <summary>
+        /// Returns an XmlSerializer for the given type
+        /// </summary>
+        /// <param name="type">The object type to serialize</param>
+        /// <returns>An XmlSerializer for the given type</returns>
+        virtual protected System.Xml.Serialization.XmlSerializer GetSerializer(Type type)
+        {
+            if (m_serializers[type] == null)
+                m_serializers[type] = new System.Xml.Serialization.XmlSerializer(type);
+            return (System.Xml.Serialization.XmlSerializer)m_serializers[type];
         }
 
         #endregion
@@ -220,22 +220,22 @@
         }
 
         /// <summary>
-		/// Validates the current server version against the highest tested version.
-		/// </summary>
-		/// <param name="version">The version to validate</param>
+        /// Validates the current server version against the highest tested version.
+        /// </summary>
+        /// <param name="version">The version to validate</param>
         virtual protected void ValidateVersion(ObjCommon.SiteVersion version)
-		{
-			ValidateVersion(new Version(version.Version));
-		}
+        {
+            ValidateVersion(new Version(version.Version));
+        }
 
-		/// <summary>
-		/// Validates the current server version against the highest tested version.
-		/// </summary>
-		/// <param name="version">The version to validate</param>
-		virtual protected void ValidateVersion(Version version)
-		{
-			if (version > this.MaxTestedVersion)
-				throw new Exception("Untested with MapGuide Build > " + this.MaxTestedVersion.ToString());
+        /// <summary>
+        /// Validates the current server version against the highest tested version.
+        /// </summary>
+        /// <param name="version">The version to validate</param>
+        virtual protected void ValidateVersion(Version version)
+        {
+            if (version > this.MaxTestedVersion)
+                throw new Exception("Untested with MapGuide Build > " + this.MaxTestedVersion.ToString()); //NOXLATE
         }
 
         #endregion
@@ -263,38 +263,38 @@
         /// <returns></returns>
         protected abstract IServerConnection GetInterface();
 
-		/// <summary>
-		/// Removes the version numbers from a providername
-		/// </summary>
-		/// <param name="providername">The name of the provider, with or without version numbers</param>
-		/// <returns>The provider name without version numbers</returns>
-		virtual public string RemoveVersionFromProviderName(string providername)
-		{
+        /// <summary>
+        /// Removes the version numbers from a providername
+        /// </summary>
+        /// <param name="providername">The name of the provider, with or without version numbers</param>
+        /// <returns>The provider name without version numbers</returns>
+        virtual public string RemoveVersionFromProviderName(string providername)
+        {
             return Utility.StripVersionFromProviderName(providername);
-		}
+        }
 
-		/// <summary>
-		/// Gets the Xsd schema for a given type.
-		/// </summary>
-		/// <param name="type">The type to get the schema for</param>
-		/// <returns>The schema for the given type</returns>
-		virtual protected System.Xml.Schema.XmlSchema GetSchema(Type type)
-		{
-			if (m_cachedSchemas[type] == null)
-			{
-				System.Reflection.FieldInfo fi = type.GetField("SchemaName", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public );
-				if (fi == null)
-					throw new Exception("Type " + type + ", does not contain Schema Info");
+        /// <summary>
+        /// Gets the Xsd schema for a given type.
+        /// </summary>
+        /// <param name="type">The type to get the schema for</param>
+        /// <returns>The schema for the given type</returns>
+        virtual protected System.Xml.Schema.XmlSchema GetSchema(Type type)
+        {
+            if (m_cachedSchemas[type] == null)
+            {
+                System.Reflection.FieldInfo fi = type.GetField("SchemaName", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public); //NOXLATE
+                if (fi == null)
+                    throw new Exception(string.Format(Properties.Resources.ErrorTypeHasNoSchemaInfo, type));
 
-				string xsd = (string)fi.GetValue(null);
+                string xsd = (string)fi.GetValue(null);
 
-				using (System.IO.FileStream fs = System.IO.File.Open(System.IO.Path.Combine(m_schemasPath, xsd), System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read))
-					m_cachedSchemas.Add(type, System.Xml.Schema.XmlSchema.Read(fs, null));
-			}
+                using (System.IO.FileStream fs = System.IO.File.Open(System.IO.Path.Combine(m_schemasPath, xsd), System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read))
+                    m_cachedSchemas.Add(type, System.Xml.Schema.XmlSchema.Read(fs, null));
+            }
 
-			return (System.Xml.Schema.XmlSchema)m_cachedSchemas[type];
-		
-		}
+            return (System.Xml.Schema.XmlSchema)m_cachedSchemas[type];
+        
+        }
 
         /// <summary>
         /// Raised when a resource is added
@@ -345,14 +345,14 @@
                 handler(this, new ResourceEventArgs(resId));
         }
 
-		/// <summary>
-		/// Gets or sets the collection of cached schemas. Use the object type for key, and an XmlSchema instance for value.
-		/// </summary>
-		virtual public Hashtable CachedSchemas
-		{
-			get { return m_cachedSchemas; }
-			set { m_cachedSchemas = value; }
-		}
+        /// <summary>
+        /// Gets or sets the collection of cached schemas. Use the object type for key, and an XmlSchema instance for value.
+        /// </summary>
+        virtual public Hashtable CachedSchemas
+        {
+            get { return m_cachedSchemas; }
+            set { m_cachedSchemas = value; }
+        }
 
         /// <summary>
         /// Releases unmanaged and - optionally - managed resources
@@ -432,9 +432,9 @@
             }*/
 
 #if DEBUG_LASTMESSAGE
-			using (System.IO.Stream s = System.IO.File.Open("lastSave.xml", System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None))
-				Utility.CopyStream(ms, s);
-			ms.Position = 0;
+            using (System.IO.Stream s = System.IO.File.Open("lastSave.xml", System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None))
+                Utility.CopyStream(ms, s);
+            ms.Position = 0;
 #endif
 
             SetResourceXmlData(resourceid, ms);
@@ -450,7 +450,7 @@
             SetResourceXmlData(resourceid, stream, null);
             int purged = PurgeCachedItemsOf(resourceid);
 #if DEBUG
-            System.Diagnostics.Trace.TraceInformation("{0} cached items purged for {1}", purged, resourceid);
+            System.Diagnostics.Trace.TraceInformation("{0} cached items purged for {1}", purged, resourceid); //NOXLATE
 #endif
         }
 
@@ -461,7 +461,7 @@
         /// <returns>A list of contained resources</returns>
         virtual public ObjCommon.ResourceList GetRepositoryResources()
         {
-            return GetRepositoryResources("Library://", null, -1, true);
+            return GetRepositoryResources(StringConstants.RootIdentifier, null, -1, true);
         }
 
         /// <summary>
@@ -472,7 +472,7 @@
         /// <returns>A list of contained resources</returns>
         virtual public ObjCommon.ResourceList GetRepositoryResources(int depth)
         {
-            return GetRepositoryResources("Library://", null, depth, true);
+            return GetRepositoryResources(StringConstants.RootIdentifier, null, depth, true);
         }
 
         /// <summary>
@@ -556,10 +556,10 @@
             try
             {
                 string sourcefolder;
-                if (resourceid.EndsWith("/"))
-                    sourcefolder = resourceid.Substring(0, resourceid.Substring(0, resourceid.Length - 1).LastIndexOf("/") + 1);
+                if (resourceid.EndsWith("/")) //NOXLATE
+                    sourcefolder = resourceid.Substring(0, resourceid.Substring(0, resourceid.Length - 1).LastIndexOf("/") + 1); //NOXLATE
                 else
-                    sourcefolder = resourceid.Substring(0, resourceid.LastIndexOf("/") + 1);
+                    sourcefolder = resourceid.Substring(0, resourceid.LastIndexOf("/") + 1); //NOXLATE
 
                 ObjCommon.ResourceList lst = GetRepositoryResources(sourcefolder, 1);
                 foreach (object o in lst.Items)
@@ -615,10 +615,10 @@
 
             if (folderupdates)
             {
-                if (!oldresourcepath.EndsWith("/"))
-                    oldresourcepath += "/";
-                if (!newresourcepath.EndsWith("/"))
-                    newresourcepath += "/";
+                if (!oldresourcepath.EndsWith("/")) //NOXLATE
+                    oldresourcepath += "/"; //NOXLATE
+                if (!newresourcepath.EndsWith("/")) //NOXLATE
+                    newresourcepath += "/"; //NOXLATE
             }
 
             //If the value is a document or fragment of a document, we still wan't to repoint it
@@ -642,7 +642,7 @@
                         if (nx.NodeType == System.Xml.XmlNodeType.Element)
                             lst.Enqueue(nx);
 
-                    if (n.Name == "ResourceId")
+                    if (n.Name == "ResourceId") //NOXLATE
                     {
                         string current = n.InnerXml;
                         if (folderupdates && current.StartsWith(oldresourcepath))
@@ -652,7 +652,7 @@
                     }
 
                     foreach (System.Xml.XmlAttribute a in n.Attributes)
-                        if (a.Name == "ResourceId")
+                        if (a.Name == "ResourceId") //NOXLATE
                         {
                             string current = a.Value;
                             if (folderupdates && current.StartsWith(oldresourcepath))
@@ -682,15 +682,15 @@
                     //If we are at a ResourceId property, update it as needed
                     if (v is string)
                     {
-                        bool isResId = pi.Name == "ResourceId";
+                        bool isResId = pi.Name == "ResourceId"; //NOXLATE
                         if (!isResId)
                         {
                             //Search for attributes
                             object[] xmlAttrs = pi.GetCustomAttributes(typeof(System.Xml.Serialization.XmlElementAttribute), false);
                             if (xmlAttrs != null)
                                 foreach (System.Xml.Serialization.XmlElementAttribute attr in xmlAttrs)
-                                    if (attr.Type == typeof(string) && attr.ElementName == "ResourceId")
-                                        if (pi.Name == "ResourceId")
+                                    if (attr.Type == typeof(string) && attr.ElementName == "ResourceId") //NOXLATE
+                                        if (pi.Name == "ResourceId") //NOXLATE
                                         {
                                             isResId = true;
                                             break;
@@ -854,7 +854,7 @@
             oldpath = FixAndValidateFolderPath(oldpath);
             newpath = FixAndValidateFolderPath(newpath);
 
-            LengthyOperationProgressArgs la = new LengthyOperationProgressArgs("Moving folder...", -1);
+            LengthyOperationProgressArgs la = new LengthyOperationProgressArgs(Properties.Resources.ProgressMovingFolder, -1);
 
             if (progress != null)
                 progress(this, la);
@@ -870,7 +870,7 @@
 
             int pg = 0;
             la.Progress = 0;
-            la.StatusMessage = "Finding folder references...";
+            la.StatusMessage = Properties.Resources.ProgressFindingFolderRefs;
             if (progress != null)
                 progress(this, la);
             if (la.Cancel)
@@ -985,7 +985,7 @@
             newpath = FixAndValidateFolderPath(newpath);
             ObjCommon.ResourceList lst = GetRepositoryResources(oldpath);
 
-            LengthyOperationProgressArgs la = new LengthyOperationProgressArgs("Copying folder...", -1);
+            LengthyOperationProgressArgs la = new LengthyOperationProgressArgs(Properties.Resources.ProgressCopyingFolder, -1);
             if (progress != null)
                 progress(this, la);
             if (la.Cancel)
@@ -999,7 +999,7 @@
 
 
             la.Progress = 0;
-            la.StatusMessage = "Finding folder references...";
+            la.StatusMessage = Properties.Resources.ProgressFindingFolderRefs;
             int pg = 0;
             if (progress != null)
                 progress(this, la);
@@ -1104,11 +1104,11 @@
         /// <returns>The fixed path</returns>
         virtual protected string FixAndValidateFolderPath(string folderpath)
         {
-            if (!folderpath.StartsWith("Library://") && !folderpath.StartsWith("Session:" + this.SessionID + "//"))
-                throw new Exception("Invalid folder path, must be either library or session");
+            if (!folderpath.StartsWith(StringConstants.RootIdentifier) && !folderpath.StartsWith("Session:" + this.SessionID + "//")) //NOXLATE
+                throw new Exception(Properties.Resources.ErrorInvalidResourceIdentifierType);
 
-            if (!folderpath.EndsWith("/"))
-                folderpath += "/";
+            if (!folderpath.EndsWith("/")) //NOXLATE
+                folderpath += "/"; //NOXLATE
 
             return folderpath;
         }
@@ -1355,7 +1355,7 @@
         public virtual void SetFolderOrResourceHeader(string resourceID, object header)
         {
             if (header == null)
-                throw new ArgumentNullException("header");
+                throw new ArgumentNullException("header"); //NOXLATE
 
             ObjCommon.ResourceSecurityType sec;
             if (header as ObjCommon.ResourceFolderHeaderType != null)
@@ -1363,7 +1363,7 @@
             else if (header as ObjCommon.ResourceDocumentHeaderType != null)
                 sec = (header as ObjCommon.ResourceDocumentHeaderType).Security;
             else
-                throw new ArgumentException("Header must be either ResourceFolderHeaderType or ResourceDocumentHeaderType", "header");
+                throw new ArgumentException(Properties.Resources.ErrorInvalidResourceHeaderRootElement, "header"); //NOXLATE
 
             if (sec.Users != null && sec.Users.User != null && sec.Users.User.Count == 0)
                 sec.Users = null;
@@ -1371,10 +1371,10 @@
             if (sec.Groups != null && sec.Groups.Group != null && sec.Groups.Group.Count == 0)
                 sec.Groups = null;
 
-            if (resourceID.EndsWith("//"))
+            if (resourceID.EndsWith("//")) //NOXLATE
             {
                 if (header as ObjCommon.ResourceFolderHeaderType == null)
-                    throw new Exception("The resourceId: " + resourceID + " must be updated with a folder header");
+                    throw new Exception(string.Format(Properties.Resources.ErrorResourceMustBeUpdatedWithFolderHeader, resourceID));
                 UpdateRepository(resourceID, header as ObjCommon.ResourceFolderHeaderType);
             }
             else
@@ -1491,7 +1491,7 @@
                     m_featureSchemaCache[resourceID] = FeatureSourceDescription.Clone(fsd);
                     foreach (ClassDefinition cls in fsd.AllClasses)
                     {
-                        string classCacheKey = resourceID + "!" + cls.QualifiedName;
+                        string classCacheKey = resourceID + "!" + cls.QualifiedName; //NOXLATE
                         m_classDefinitionCache[classCacheKey] = cls;
                     }
                 }
@@ -1502,7 +1502,7 @@
             }
 #if DEBUG
             if (bFromCache)
-                System.Diagnostics.Trace.TraceInformation("Returning cached description for {0}", resourceID);
+                System.Diagnostics.Trace.TraceInformation("Returning cached description for {0}", resourceID); //NOXLATE
 #endif
             //Return a clone to ensure immutability of cached one
             return FeatureSourceDescription.Clone(m_featureSchemaCache[resourceID]);
@@ -1528,8 +1528,8 @@
             //NOTE: To prevent ambiguity, only class definitions queried with qualified
             //names are cached. Un-qualified ones will call directly into the implementing
             //GetClassDefinition API
-            bool bQualified = className.Contains(":");
-            string classCacheKey = resourceID + "!" + className;
+            bool bQualified = className.Contains(":"); //NOXLATE
+            string classCacheKey = resourceID + "!" + className; //NOXLATE
             ClassDefinition cls = null;
             bool bStoreInCache = true;
             bool bFromCache = false;
@@ -1546,7 +1546,7 @@
             {
                 if (bQualified)
                 {
-                    var tokens = className.Split(':');
+                    var tokens = className.Split(':'); //NOXLATE
                     cls = GetClassDefinitionInternal(resourceID, tokens[0], tokens[1]);
                 }
                 else
@@ -1561,12 +1561,13 @@
 
 #if DEBUG
             if (bFromCache)
-                System.Diagnostics.Trace.TraceInformation("Returning cached class ({0}) for {1}", className, resourceID);
+                System.Diagnostics.Trace.TraceInformation("Returning cached class ({0}) for {1}", className, resourceID); //NOXLATE
 #endif
 
             if (cls != null)
             {
-                var key = resourceID + "!" + cls.QualifiedName; //Sanity check
+                //Sanity check
+                var key = resourceID + "!" + cls.QualifiedName; //NOXLATE
                 if (bStoreInCache && classCacheKey == key)
                 {
                     m_classDefinitionCache[classCacheKey] = cls;
@@ -1674,22 +1675,22 @@
         /// <returns></returns>
         protected virtual OSGeo.MapGuide.ObjectModels.Common.IEnvelope GetSpatialExtent(string resourceID, string schema, string geometry, string filter, bool allowFallbackToContextInformation)
         {
-            Check.NotEmpty(schema, "schema");
-            Check.NotEmpty(geometry, "geometry");
+            Check.NotEmpty(schema, "schema"); //NOXLATE
+            Check.NotEmpty(geometry, "geometry"); //NOXLATE
             try
             {
                 System.Collections.Specialized.NameValueCollection fun = new System.Collections.Specialized.NameValueCollection();
-                fun.Add("EXTENT", "SpatialExtents(\"" + geometry + "\")");
+                fun.Add("EXTENT", "SpatialExtents(\"" + geometry + "\")"); //NOXLATE
                 using (IReader fsr = AggregateQueryFeatureSource(resourceID, schema, filter, fun))
                 {
                     try
                     {
                         if (fsr.ReadNext())
                         {
-                            if (fsr.IsNull("EXTENT"))
+                            if (fsr.IsNull("EXTENT")) //NOXLATE
                                 throw new NullExtentException();
 
-                            IGeometry geom = fsr["EXTENT"] as IGeometry;
+                            IGeometry geom = fsr["EXTENT"] as IGeometry; //NOXLATE
                             if (geom == null)
                             {
                                 throw new NullExtentException();
@@ -1705,7 +1706,7 @@
                             }
                         }
                         else
-                            throw new Exception("No data found in resource: " + resourceID);
+                            throw new Exception(string.Format(Properties.Resources.ErrorNoDataInResource, resourceID));
                     }
                     finally
                     {
@@ -2035,13 +2036,13 @@
         /// <returns></returns>
         public virtual RuntimeMap OpenMap(string runtimeMapResourceId)
         {
-            if (!runtimeMapResourceId.StartsWith("Session:") || !runtimeMapResourceId.EndsWith(".Map"))
-                throw new ArgumentException("Runtime maps must be in the current session repository");
+            if (!runtimeMapResourceId.StartsWith("Session:") || !runtimeMapResourceId.EndsWith(".Map")) //NOXLATE
+                throw new ArgumentException(Properties.Resources.ErrorRuntimeMapNotInSessionRepo);
 
             var map = new RuntimeMap(GetInterface());
-            map.Deserialize(new MgBinaryDeserializer(this.GetResourceData(runtimeMapResourceId, "RuntimeData"), this.SiteVersion));
+            map.Deserialize(new MgBinaryDeserializer(this.GetResourceData(runtimeMapResourceId, "RuntimeData"), this.SiteVersion)); //NOXLATE
             if (this.SiteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
-                map.DeserializeLayerData(new MgBinaryDeserializer(this.GetResourceData(runtimeMapResourceId, "LayerGroupData"), this.SiteVersion));
+                map.DeserializeLayerData(new MgBinaryDeserializer(this.GetResourceData(runtimeMapResourceId, "LayerGroupData"), this.SiteVersion)); //NOXLATE
 
             map.IsDirty = false;
             return map;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.Designer.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -531,6 +531,798 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to {0} contains reserved characters.
+        /// </summary>
+        internal static string ErrorArgContainsReservedCharacters {
+            get {
+                return ResourceManager.GetString("ErrorArgContainsReservedCharacters", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Bad document. Expected attribute: {0}.
+        /// </summary>
+        internal static string ErrorBadDocumentExpectedAttribute {
+            get {
+                return ResourceManager.GetString("ErrorBadDocumentExpectedAttribute", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Bad document. Expected element {0}.
+        /// </summary>
+        internal static string ErrorBadDocumentExpectedElement {
+            get {
+                return ResourceManager.GetString("ErrorBadDocumentExpectedElement", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Bad document. Invalid bounding box.
+        /// </summary>
+        internal static string ErrorBadDocumentInvalidBbox {
+            get {
+                return ResourceManager.GetString("ErrorBadDocumentInvalidBbox", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Bad HTML color: {0}.
+        /// </summary>
+        internal static string ErrorBadHtmlColor {
+            get {
+                return ResourceManager.GetString("ErrorBadHtmlColor", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Bad null encoded string.
+        /// </summary>
+        internal static string ErrorBadNullEncodedString {
+            get {
+                return ResourceManager.GetString("ErrorBadNullEncodedString", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Buffer too small.
+        /// </summary>
+        internal static string ErrorBinarySerializerBufferTooSmall {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerBufferTooSmall", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Coordinate expected, but got object: {0}.
+        /// </summary>
+        internal static string ErrorBinarySerializerCoordinateUnexpectedType {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerCoordinateUnexpectedType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The read value was: {0} while <end of stream> was expected.
+        /// </summary>
+        internal static string ErrorBinarySerializerExpectedEndOfStream {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerExpectedEndOfStream", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Failed to get valid string char width.
+        /// </summary>
+        internal static string ErrorBinarySerializerGetCharWidth {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerGetCharWidth", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Invalid amount of coordinates.
+        /// </summary>
+        internal static string ErrorBinarySerializerInvalidAmountOfCoordinates {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerInvalidAmountOfCoordinates", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Coordinate count reported: {0}, for a single coordinate.
+        /// </summary>
+        internal static string ErrorBinarySerializerInvalidCoordinateDimensionCount {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerInvalidCoordinateDimensionCount", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Stream ended prematurely.
+        /// </summary>
+        internal static string ErrorBinarySerializerPrematureEndOfStream {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerPrematureEndOfStream", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Stream exhausted while reading {0} bytes.
+        /// </summary>
+        internal static string ErrorBinarySerializerStreamExhausted {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerStreamExhausted", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Data in stream had type: {0} but type '{1}' was expected.
+        /// </summary>
+        internal static string ErrorBinarySerializerUnexpectedType {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerUnexpectedType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown object type: {0}.
+        /// </summary>
+        internal static string ErrorBinarySerializerUnknownObjectType {
+            get {
+                return ResourceManager.GetString("ErrorBinarySerializerUnknownObjectType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Bounding box for map had {0} dimensions. Expected 2 dimensions.
+        /// </summary>
+        internal static string ErrorBoundingBoxDoesNotHave2Dimensions {
+            get {
+                return ResourceManager.GetString("ErrorBoundingBoxDoesNotHave2Dimensions", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Commerical layer options are only available for non-MapGuide maps.
+        /// </summary>
+        internal static string ErrorCmsOptionsOnMapGuideMap {
+            get {
+                return ResourceManager.GetString("ErrorCmsOptionsOnMapGuideMap", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Could not determine symbol type.
+        /// </summary>
+        internal static string ErrorCouldNotDetermineSymbolType {
+            get {
+                return ResourceManager.GetString("ErrorCouldNotDetermineSymbolType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Current record is empty.
+        /// </summary>
+        internal static string ErrorCurrentRecordIsEmpty {
+            get {
+                return ResourceManager.GetString("ErrorCurrentRecordIsEmpty", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Empty feature source id.
+        /// </summary>
+        internal static string ErrorEmptyFeatureSourceId {
+            get {
+                return ResourceManager.GetString("ErrorEmptyFeatureSourceId", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unable to evaluate. Current row is empty.
+        /// </summary>
+        internal static string ErrorExprCurrentRowIsEmpty {
+            get {
+                return ResourceManager.GetString("ErrorExprCurrentRowIsEmpty", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Failed to find type for: {0}.
+        /// </summary>
+        internal static string ErrorFailedToFindTypeForClrType {
+            get {
+                return ResourceManager.GetString("ErrorFailedToFindTypeForClrType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Failed to convert value for {0} from {1} to {2}.
+        /// </summary>
+        internal static string ErrorFailedValueConversion {
+            get {
+                return ResourceManager.GetString("ErrorFailedValueConversion", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Invalid class identifier. Expected Box2D.
+        /// </summary>
+        internal static string ErrorInvalidClassIdentifierBox2d {
+            get {
+                return ResourceManager.GetString("ErrorInvalidClassIdentifierBox2d", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Group must have object id 12001, but had: {0}.
+        /// </summary>
+        internal static string ErrorInvalidGroupObjectId {
+            get {
+                return ResourceManager.GetString("ErrorInvalidGroupObjectId", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Invalid or unsupported map version.
+        /// </summary>
+        internal static string ErrorInvalidMapVersion {
+            get {
+                return ResourceManager.GetString("ErrorInvalidMapVersion", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Header must be either ResourceFolderHeaderType or ResourceDocumentHeaderType.
+        /// </summary>
+        internal static string ErrorInvalidResourceHeaderRootElement {
+            get {
+                return ResourceManager.GetString("ErrorInvalidResourceHeaderRootElement", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Invalid resource identifier.
+        /// </summary>
+        internal static string ErrorInvalidResourceIdentifier {
+            get {
+                return ResourceManager.GetString("ErrorInvalidResourceIdentifier", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Invalid resource identifier type. Must be Library or Session.
+        /// </summary>
+        internal static string ErrorInvalidResourceIdentifierType {
+            get {
+                return ResourceManager.GetString("ErrorInvalidResourceIdentifierType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Incoming record must be structurally identical.
+        /// </summary>
+        internal static string ErrorJaggedResultSet {
+            get {
+                return ResourceManager.GetString("ErrorJaggedResultSet", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Key {0} already exists.
+        /// </summary>
+        internal static string ErrorKeyAlreadyExists {
+            get {
+                return ResourceManager.GetString("ErrorKeyAlreadyExists", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The layer does not have a primary key, and cannot be used for selection.
+        /// </summary>
+        internal static string ErrorLayerHasNoPk {
+            get {
+                return ResourceManager.GetString("ErrorLayerHasNoPk", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The layers key consists of {0} columns, but only {1} columns were given.
+        /// </summary>
+        internal static string ErrorLayerKeyMismatch {
+            get {
+                return ResourceManager.GetString("ErrorLayerKeyMismatch", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No class name specified.
+        /// </summary>
+        internal static string ErrorNoClassNameSpecified {
+            get {
+                return ResourceManager.GetString("ErrorNoClassNameSpecified", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No coordinate system WKT specified.
+        /// </summary>
+        internal static string ErrorNoCoordinateSystemWktSpecified {
+            get {
+                return ResourceManager.GetString("ErrorNoCoordinateSystemWktSpecified", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No data found in resource: {0}.
+        /// </summary>
+        internal static string ErrorNoDataInResource {
+            get {
+                return ResourceManager.GetString("ErrorNoDataInResource", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No extent specified for static extent type.
+        /// </summary>
+        internal static string ErrorNoExtentSpecifiedForStaticType {
+            get {
+                return ResourceManager.GetString("ErrorNoExtentSpecifiedForStaticType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No feature source id specified.
+        /// </summary>
+        internal static string ErrorNoFeatureSourceIdSpecified {
+            get {
+                return ResourceManager.GetString("ErrorNoFeatureSourceIdSpecified", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No file name specified.
+        /// </summary>
+        internal static string ErrorNoFileNameSpecified {
+            get {
+                return ResourceManager.GetString("ErrorNoFileNameSpecified", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No provider specified.
+        /// </summary>
+        internal static string ErrorNoProviderSpecified {
+            get {
+                return ResourceManager.GetString("ErrorNoProviderSpecified", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Resource has no resource id attached.
+        /// </summary>
+        internal static string ErrorNoResourceIdAttached {
+            get {
+                return ResourceManager.GetString("ErrorNoResourceIdAttached", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No schema specified.
+        /// </summary>
+        internal static string ErrorNoSchemaSpecified {
+            get {
+                return ResourceManager.GetString("ErrorNoSchemaSpecified", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No schema specified to apply.
+        /// </summary>
+        internal static string ErrorNoSchemaSpecifiedToApply {
+            get {
+                return ResourceManager.GetString("ErrorNoSchemaSpecifiedToApply", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No server connection set for object.
+        /// </summary>
+        internal static string ErrorNoServerConnectionAttached {
+            get {
+                return ResourceManager.GetString("ErrorNoServerConnectionAttached", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No spatial context name specified. This is the name that should be referred to by any spatial context associations in your feature schema.
+        /// </summary>
+        internal static string ErrorNoSpatialContextNameSpecified {
+            get {
+                return ResourceManager.GetString("ErrorNoSpatialContextNameSpecified", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Not a qualified class name: {0}.
+        /// </summary>
+        internal static string ErrorNotAQualifiedClassName {
+            get {
+                return ResourceManager.GetString("ErrorNotAQualifiedClassName", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Nothing to insert.
+        /// </summary>
+        internal static string ErrorNothingToInsert {
+            get {
+                return ResourceManager.GetString("ErrorNothingToInsert", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to No values specified for updating.
+        /// </summary>
+        internal static string ErrorNoValuesSpecifiedForUpdating {
+            get {
+                return ResourceManager.GetString("ErrorNoValuesSpecifiedForUpdating", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The value for {0} is null, which is not supported as a key.
+        /// </summary>
+        internal static string ErrorNullKeyValue {
+            get {
+                return ResourceManager.GetString("ErrorNullKeyValue", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Null values not accepted.
+        /// </summary>
+        internal static string ErrorNullNotAccepted {
+            get {
+                return ResourceManager.GetString("ErrorNullNotAccepted", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Null Value.
+        /// </summary>
+        internal static string ErrorNullValue {
+            get {
+                return ResourceManager.GetString("ErrorNullValue", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Value does not implement ICompositeTypeStyle.
+        /// </summary>
+        internal static string ErrorObjectNotICompositeTypeStyle {
+            get {
+                return ResourceManager.GetString("ErrorObjectNotICompositeTypeStyle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to null values are not permitted. Use SetNull() if you need to specify null values.
+        /// </summary>
+        internal static string ErrorObjectSetNullValuesNotPermitted {
+            get {
+                return ResourceManager.GetString("ErrorObjectSetNullValuesNotPermitted", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Overlay options are only applicable to MapGuide maps.
+        /// </summary>
+        internal static string ErrorOverlayOptionsOnNonMapGuideMap {
+            get {
+                return ResourceManager.GetString("ErrorOverlayOptionsOnNonMapGuideMap", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Expected ')' but encountered '{0}'.
+        /// </summary>
+        internal static string ErrorParseExpectedCloser {
+            get {
+                return ResourceManager.GetString("ErrorParseExpectedCloser", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Expected ')' or ',' but encountered '{0}'.
+        /// </summary>
+        internal static string ErrorParseExpectedCloserOrComma {
+            get {
+                return ResourceManager.GetString("ErrorParseExpectedCloserOrComma", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Expected 'EMPTY' or '(' but encountered '{0}'.
+        /// </summary>
+        internal static string ErrorParseExpectedEmpty {
+            get {
+                return ResourceManager.GetString("ErrorParseExpectedEmpty", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Expected number but encountered {0}.
+        /// </summary>
+        internal static string ErrorParseExpectedNumber {
+            get {
+                return ResourceManager.GetString("ErrorParseExpectedNumber", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Expected number but encountered end of line.
+        /// </summary>
+        internal static string ErrorParseExpectedNumberEol {
+            get {
+                return ResourceManager.GetString("ErrorParseExpectedNumberEol", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Expected number but encountered end of stream.
+        /// </summary>
+        internal static string ErrorParseExpectedNumberEos {
+            get {
+                return ResourceManager.GetString("ErrorParseExpectedNumberEos", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Expected number but encountered word {0}.
+        /// </summary>
+        internal static string ErrorParseExpectedNumberGotWord {
+            get {
+                return ResourceManager.GetString("ErrorParseExpectedNumberGotWord", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Expected word but encountered number: {0}.
+        /// </summary>
+        internal static string ErrorParseExpectedWord {
+            get {
+                return ResourceManager.GetString("ErrorParseExpectedWord", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Error reading geometry.
+        /// </summary>
+        internal static string ErrorParseGeometryRead {
+            get {
+                return ResourceManager.GetString("ErrorParseGeometryRead", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unknown type: {0}.
+        /// </summary>
+        internal static string ErrorParseUnknownType {
+            get {
+                return ResourceManager.GetString("ErrorParseUnknownType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Property not found: {0}.
+        /// </summary>
+        internal static string ErrorPropertyNotFound {
+            get {
+                return ResourceManager.GetString("ErrorPropertyNotFound", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Provider already registered: {0}.
+        /// </summary>
+        internal static string ErrorProviderAlreadyRegistered {
+            get {
+                return ResourceManager.GetString("ErrorProviderAlreadyRegistered", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Provider not registered: {0}.
+        /// </summary>
+        internal static string ErrorProviderNotRegistered {
+            get {
+                return ResourceManager.GetString("ErrorProviderNotRegistered", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The specified provider is not usable in your operating system: {0}.
+        /// </summary>
+        internal static string ErrorProviderNotUsableForYourPlatform {
+            get {
+                return ResourceManager.GetString("ErrorProviderNotUsableForYourPlatform", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Cannot change extension for a folder.
+        /// </summary>
+        internal static string ErrorResourceIdCannotChangeExtensionForFolder {
+            get {
+                return ResourceManager.GetString("ErrorResourceIdCannotChangeExtensionForFolder", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Resource Identifier class id expected, but got: {0}.
+        /// </summary>
+        internal static string ErrorResourceIdentifierClassIdNotFound {
+            get {
+                return ResourceManager.GetString("ErrorResourceIdentifierClassIdNotFound", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The resource name must not contain ':', \"//\" or '.'.
+        /// </summary>
+        internal static string ErrorResourceIdentifierInvalidChars {
+            get {
+                return ResourceManager.GetString("ErrorResourceIdentifierInvalidChars", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The new name must not contain the \"/\" character.
+        /// </summary>
+        internal static string ErrorResourceIdentifierNameInvalidChars {
+            get {
+                return ResourceManager.GetString("ErrorResourceIdentifierNameInvalidChars", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The supplied extension is invalid.
+        /// </summary>
+        internal static string ErrorResourceIdInvalidExtension {
+            get {
+                return ResourceManager.GetString("ErrorResourceIdInvalidExtension", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The resourceId: {0} must be updated with a folder header.
+        /// </summary>
+        internal static string ErrorResourceMustBeUpdatedWithFolderHeader {
+            get {
+                return ResourceManager.GetString("ErrorResourceMustBeUpdatedWithFolderHeader", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Runtime maps must be in the session repository.
+        /// </summary>
+        internal static string ErrorRuntimeMapNotInSessionRepo {
+            get {
+                return ResourceManager.GetString("ErrorRuntimeMapNotInSessionRepo", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to A layer in selection had no id.
+        /// </summary>
+        internal static string ErrorSelectedLayerHasNoId {
+            get {
+                return ResourceManager.GetString("ErrorSelectedLayerHasNoId", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Setting visibility of tiled map layers is not permitted.
+        /// </summary>
+        internal static string ErrorSettingVisibilityOfTiledLayer {
+            get {
+                return ResourceManager.GetString("ErrorSettingVisibilityOfTiledLayer", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to On new versions, there should be no layer data in map.
+        /// </summary>
+        internal static string ErrorShouldHaveNoLayerDataInMap {
+            get {
+                return ResourceManager.GetString("ErrorShouldHaveNoLayerDataInMap", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Token list contains a null value.
+        /// </summary>
+        internal static string ErrorTokenListContainsNullValue {
+            get {
+                return ResourceManager.GetString("ErrorTokenListContainsNullValue", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Type {0} does not contain schema info.
+        /// </summary>
+        internal static string ErrorTypeHasNoSchemaInfo {
+            get {
+                return ResourceManager.GetString("ErrorTypeHasNoSchemaInfo", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unexpected resource type for {0}. Expected {1}.
+        /// </summary>
+        internal static string ErrorUnexpectedResourceType {
+            get {
+                return ResourceManager.GetString("ErrorUnexpectedResourceType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The given type is not a known resource type.
+        /// </summary>
+        internal static string ErrorUnknownResourceType {
+            get {
+                return ResourceManager.GetString("ErrorUnknownResourceType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to The type {0} is not supported for primary keys.
+        /// </summary>
+        internal static string ErrorUnsupportedPkType {
+            get {
+                return ResourceManager.GetString("ErrorUnsupportedPkType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Unrecognized element. Only a subset of the FDO logical schema is supported here.
+        /// </summary>
+        internal static string ErrorUnsupporteFdoSchemaXml {
+            get {
+                return ResourceManager.GetString("ErrorUnsupporteFdoSchemaXml", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Failed in validator: {0}.
+        /// </summary>
+        internal static string ErrorValidationGeneric {
+            get {
+                return ResourceManager.GetString("ErrorValidationGeneric", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Value is not comparable.
+        /// </summary>
+        internal static string ErrorValueNotComparable {
+            get {
+                return ResourceManager.GetString("ErrorValueNotComparable", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Value falls outside the range of {0} and  {1}.
+        /// </summary>
+        internal static string ErrorValueOutOfRange {
+            get {
+                return ResourceManager.GetString("ErrorValueOutOfRange", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Factory method already registered for version: .
         /// </summary>
         internal static string FactoryMethodAlreadyRegistered {
@@ -1188,6 +1980,33 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Copying Folder ....
+        /// </summary>
+        internal static string ProgressCopyingFolder {
+            get {
+                return ResourceManager.GetString("ProgressCopyingFolder", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Finding Folder References ....
+        /// </summary>
+        internal static string ProgressFindingFolderRefs {
+            get {
+                return ResourceManager.GetString("ProgressFindingFolderRefs", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Moving Folder ....
+        /// </summary>
+        internal static string ProgressMovingFolder {
+            get {
+                return ResourceManager.GetString("ProgressMovingFolder", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to This connection does not support required service: .
         /// </summary>
         internal static string RequiredServiceNotSupported {
@@ -1233,6 +2052,69 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Created: {0}.
+        /// </summary>
+        internal static string TemplateCreated {
+            get {
+                return ResourceManager.GetString("TemplateCreated", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to File not found: {0}.
+        /// </summary>
+        internal static string TemplateFileNotFound {
+            get {
+                return ResourceManager.GetString("TemplateFileNotFound", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to File processed: {0}.
+        /// </summary>
+        internal static string TemplateFileProcessed {
+            get {
+                return ResourceManager.GetString("TemplateFileProcessed", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Loaded: {0}.
+        /// </summary>
+        internal static string TemplateLoaded {
+            get {
+                return ResourceManager.GetString("TemplateLoaded", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Set default spatial context for: {0}.
+        /// </summary>
+        internal static string TemplateSetSpatialContext {
+            get {
+                return ResourceManager.GetString("TemplateSetSpatialContext", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Success: {0}.
+        /// </summary>
+        internal static string TemplateSuccess {
+            get {
+                return ResourceManager.GetString("TemplateSuccess", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Uploaded: {0}.prj.
+        /// </summary>
+        internal static string TemplateUploadedPrj {
+            get {
+                return ResourceManager.GetString("TemplateUploadedPrj", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Could not find template url for template: .
         /// </summary>
         internal static string TemplateUrlNotFound {
@@ -1242,6 +2124,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Preview.
+        /// </summary>
+        internal static string TitlePreview {
+            get {
+                return ResourceManager.GetString("TitlePreview", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to All threads crashed, and the tile set was only partially created.
         /// </summary>
         internal static string TS_ThreadFailureError {
@@ -1305,6 +2196,303 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Display information about this application.
+        /// </summary>
+        internal static string WL_Desc_About {
+            get {
+                return ResourceManager.GetString("WL_Desc_About", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Create buffers around the selected features.
+        /// </summary>
+        internal static string WL_Desc_Buffer {
+            get {
+                return ResourceManager.GetString("WL_Desc_Buffer", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Clear the current selection.
+        /// </summary>
+        internal static string WL_Desc_ClearSelection {
+            get {
+                return ResourceManager.GetString("WL_Desc_ClearSelection", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Copy current view of map to clipboard.
+        /// </summary>
+        internal static string WL_Desc_Copy {
+            get {
+                return ResourceManager.GetString("WL_Desc_Copy", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Get Printer-friendly page.
+        /// </summary>
+        internal static string WL_Desc_GetPrintablePage {
+            get {
+                return ResourceManager.GetString("WL_Desc_GetPrintablePage", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Launch help for this application.
+        /// </summary>
+        internal static string WL_Desc_Help {
+            get {
+                return ResourceManager.GetString("WL_Desc_Help", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom to initial map center and scale.
+        /// </summary>
+        internal static string WL_Desc_InitialCenterScale {
+            get {
+                return ResourceManager.GetString("WL_Desc_InitialCenterScale", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Fit the extents of the map to the window.
+        /// </summary>
+        internal static string WL_Desc_InitialMapView {
+            get {
+                return ResourceManager.GetString("WL_Desc_InitialMapView", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Click to enable/disable display of map tooltips.
+        /// </summary>
+        internal static string WL_Desc_MapTip {
+            get {
+                return ResourceManager.GetString("WL_Desc_MapTip", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Measure distances on the map.
+        /// </summary>
+        internal static string WL_Desc_Measure {
+            get {
+                return ResourceManager.GetString("WL_Desc_Measure", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Go to next view.
+        /// </summary>
+        internal static string WL_Desc_NextView {
+            get {
+                return ResourceManager.GetString("WL_Desc_NextView", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Drag the map to view areas out of range.
+        /// </summary>
+        internal static string WL_Desc_Pan {
+            get {
+                return ResourceManager.GetString("WL_Desc_Pan", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan down by a preset increment.
+        /// </summary>
+        internal static string WL_Desc_PanDown {
+            get {
+                return ResourceManager.GetString("WL_Desc_PanDown", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan left by a preset increment.
+        /// </summary>
+        internal static string WL_Desc_PanLeft {
+            get {
+                return ResourceManager.GetString("WL_Desc_PanLeft", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan right by a preset increment.
+        /// </summary>
+        internal static string WL_Desc_PanRight {
+            get {
+                return ResourceManager.GetString("WL_Desc_PanRight", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan up by a preset increment.
+        /// </summary>
+        internal static string WL_Desc_PanUp {
+            get {
+                return ResourceManager.GetString("WL_Desc_PanUp", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Go to previous view.
+        /// </summary>
+        internal static string WL_Desc_PrevView {
+            get {
+                return ResourceManager.GetString("WL_Desc_PrevView", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Print with optional layout.
+        /// </summary>
+        internal static string WL_Desc_Print {
+            get {
+                return ResourceManager.GetString("WL_Desc_Print", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Refresh map to reload all layers keeping current center and scale.
+        /// </summary>
+        internal static string WL_Desc_RefreshMap {
+            get {
+                return ResourceManager.GetString("WL_Desc_RefreshMap", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select features by clicking and dragging.
+        /// </summary>
+        internal static string WL_Desc_Select {
+            get {
+                return ResourceManager.GetString("WL_Desc_Select", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Click and drag to select all features that fall within.
+        /// </summary>
+        internal static string WL_Desc_SelectPolygon {
+            get {
+                return ResourceManager.GetString("WL_Desc_SelectPolygon", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Click and drag to select all features inside the circle.
+        /// </summary>
+        internal static string WL_Desc_SelectRadius {
+            get {
+                return ResourceManager.GetString("WL_Desc_SelectRadius", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select features that fall within currently selected areas.
+        /// </summary>
+        internal static string WL_Desc_SelectWithin {
+            get {
+                return ResourceManager.GetString("WL_Desc_SelectWithin", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Return to previous task page.
+        /// </summary>
+        internal static string WL_Desc_TaskBack {
+            get {
+                return ResourceManager.GetString("WL_Desc_TaskBack", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Forward to next task page.
+        /// </summary>
+        internal static string WL_Desc_TaskForward {
+            get {
+                return ResourceManager.GetString("WL_Desc_TaskForward", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Return to home task page.
+        /// </summary>
+        internal static string WL_Desc_TaskHome {
+            get {
+                return ResourceManager.GetString("WL_Desc_TaskHome", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to View a list of available tasks.
+        /// </summary>
+        internal static string WL_Desc_TaskList {
+            get {
+                return ResourceManager.GetString("WL_Desc_TaskList", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to View Options.
+        /// </summary>
+        internal static string WL_Desc_ViewOptions {
+            get {
+                return ResourceManager.GetString("WL_Desc_ViewOptions", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom dynamically by clicking and dragging.
+        /// </summary>
+        internal static string WL_Desc_ZoomDynamic {
+            get {
+                return ResourceManager.GetString("WL_Desc_ZoomDynamic", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom in by a preset increment.
+        /// </summary>
+        internal static string WL_Desc_ZoomIn {
+            get {
+                return ResourceManager.GetString("WL_Desc_ZoomIn", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom out by a preset increment.
+        /// </summary>
+        internal static string WL_Desc_ZoomOut {
+            get {
+                return ResourceManager.GetString("WL_Desc_ZoomOut", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom in on an area.
+        /// </summary>
+        internal static string WL_Desc_ZoomRect {
+            get {
+                return ResourceManager.GetString("WL_Desc_ZoomRect", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom to the extents of selected features.
+        /// </summary>
+        internal static string WL_Desc_ZoomSelection {
+            get {
+                return ResourceManager.GetString("WL_Desc_ZoomSelection", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to There web layout has more than one command named: {0}.
         /// </summary>
         internal static string WL_DuplicateCommandName {
@@ -1323,6 +2511,312 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to About.
+        /// </summary>
+        internal static string WL_Label_About {
+            get {
+                return ResourceManager.GetString("WL_Label_About", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Buffer.
+        /// </summary>
+        internal static string WL_Label_Buffer {
+            get {
+                return ResourceManager.GetString("WL_Label_Buffer", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Clear Selection.
+        /// </summary>
+        internal static string WL_Label_ClearSelection {
+            get {
+                return ResourceManager.GetString("WL_Label_ClearSelection", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Copy.
+        /// </summary>
+        internal static string WL_Label_Copy {
+            get {
+                return ResourceManager.GetString("WL_Label_Copy", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Get Printable Page.
+        /// </summary>
+        internal static string WL_Label_GetPrintablePage {
+            get {
+                return ResourceManager.GetString("WL_Label_GetPrintablePage", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Help.
+        /// </summary>
+        internal static string WL_Label_Help {
+            get {
+                return ResourceManager.GetString("WL_Label_Help", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Initial Center and Scale.
+        /// </summary>
+        internal static string WL_Label_InitialCenterScale {
+            get {
+                return ResourceManager.GetString("WL_Label_InitialCenterScale", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Initial Map View.
+        /// </summary>
+        internal static string WL_Label_InitialMapView {
+            get {
+                return ResourceManager.GetString("WL_Label_InitialMapView", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Measure.
+        /// </summary>
+        internal static string WL_Label_Measure {
+            get {
+                return ResourceManager.GetString("WL_Label_Measure", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Next View.
+        /// </summary>
+        internal static string WL_Label_NextView {
+            get {
+                return ResourceManager.GetString("WL_Label_NextView", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan Mode.
+        /// </summary>
+        internal static string WL_Label_Pan {
+            get {
+                return ResourceManager.GetString("WL_Label_Pan", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan Down.
+        /// </summary>
+        internal static string WL_Label_PanDown {
+            get {
+                return ResourceManager.GetString("WL_Label_PanDown", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan Left.
+        /// </summary>
+        internal static string WL_Label_PanLeft {
+            get {
+                return ResourceManager.GetString("WL_Label_PanLeft", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan Right.
+        /// </summary>
+        internal static string WL_Label_PanRight {
+            get {
+                return ResourceManager.GetString("WL_Label_PanRight", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Pan Up.
+        /// </summary>
+        internal static string WL_Label_PanUp {
+            get {
+                return ResourceManager.GetString("WL_Label_PanUp", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Previous View.
+        /// </summary>
+        internal static string WL_Label_PrevView {
+            get {
+                return ResourceManager.GetString("WL_Label_PrevView", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Print.
+        /// </summary>
+        internal static string WL_Label_Print {
+            get {
+                return ResourceManager.GetString("WL_Label_Print", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Refresh Map.
+        /// </summary>
+        internal static string WL_Label_RefreshMap {
+            get {
+                return ResourceManager.GetString("WL_Label_RefreshMap", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select.
+        /// </summary>
+        internal static string WL_Label_Select {
+            get {
+                return ResourceManager.GetString("WL_Label_Select", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select More.
+        /// </summary>
+        internal static string WL_Label_SelectMore {
+            get {
+                return ResourceManager.GetString("WL_Label_SelectMore", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select Polygon.
+        /// </summary>
+        internal static string WL_Label_SelectPolygon {
+            get {
+                return ResourceManager.GetString("WL_Label_SelectPolygon", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select Radius.
+        /// </summary>
+        internal static string WL_Label_SelectRadius {
+            get {
+                return ResourceManager.GetString("WL_Label_SelectRadius", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Select Within.
+        /// </summary>
+        internal static string WL_Label_SelectWithin {
+            get {
+                return ResourceManager.GetString("WL_Label_SelectWithin", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Back.
+        /// </summary>
+        internal static string WL_Label_TaskBack {
+            get {
+                return ResourceManager.GetString("WL_Label_TaskBack", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Forward.
+        /// </summary>
+        internal static string WL_Label_TaskForward {
+            get {
+                return ResourceManager.GetString("WL_Label_TaskForward", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Home.
+        /// </summary>
+        internal static string WL_Label_TaskHome {
+            get {
+                return ResourceManager.GetString("WL_Label_TaskHome", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Task List.
+        /// </summary>
+        internal static string WL_Label_TaskList {
+            get {
+                return ResourceManager.GetString("WL_Label_TaskList", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to View Options.
+        /// </summary>
+        internal static string WL_Label_ViewOptions {
+            get {
+                return ResourceManager.GetString("WL_Label_ViewOptions", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom.
+        /// </summary>
+        internal static string WL_Label_Zoom {
+            get {
+                return ResourceManager.GetString("WL_Label_Zoom", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom Dynamic.
+        /// </summary>
+        internal static string WL_Label_ZoomDynamic {
+            get {
+                return ResourceManager.GetString("WL_Label_ZoomDynamic", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom In.
+        /// </summary>
+        internal static string WL_Label_ZoomIn {
+            get {
+                return ResourceManager.GetString("WL_Label_ZoomIn", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom Out.
+        /// </summary>
+        internal static string WL_Label_ZoomOut {
+            get {
+                return ResourceManager.GetString("WL_Label_ZoomOut", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom Rectangle.
+        /// </summary>
+        internal static string WL_Label_ZoomRect {
+            get {
+                return ResourceManager.GetString("WL_Label_ZoomRect", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Zoom Selection.
+        /// </summary>
+        internal static string WL_Label_ZoomSelection {
+            get {
+                return ResourceManager.GetString("WL_Label_ZoomSelection", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Error validating MapDefinition {0}, message: {1}.
         /// </summary>
         internal static string WL_MapValidationError {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Properties/Resources.resx	2012-09-10 16:47:43 UTC (rev 6996)
@@ -2796,4 +2796,502 @@
   <data name="CompositeStyleDisplayString" xml:space="preserve">
     <value>[Composite Style]</value>
   </data>
+  <data name="ErrorArgContainsReservedCharacters" xml:space="preserve">
+    <value>{0} contains reserved characters</value>
+  </data>
+  <data name="ErrorBadNullEncodedString" xml:space="preserve">
+    <value>Bad null encoded string</value>
+  </data>
+  <data name="ErrorBoundingBoxDoesNotHave2Dimensions" xml:space="preserve">
+    <value>Bounding box for map had {0} dimensions. Expected 2 dimensions</value>
+  </data>
+  <data name="ErrorCurrentRecordIsEmpty" xml:space="preserve">
+    <value>Current record is empty</value>
+  </data>
+  <data name="ErrorEmptyFeatureSourceId" xml:space="preserve">
+    <value>Empty feature source id</value>
+  </data>
+  <data name="ErrorExprCurrentRowIsEmpty" xml:space="preserve">
+    <value>Unable to evaluate. Current row is empty</value>
+  </data>
+  <data name="ErrorFailedToFindTypeForClrType" xml:space="preserve">
+    <value>Failed to find type for: {0}</value>
+  </data>
+  <data name="ErrorFailedValueConversion" xml:space="preserve">
+    <value>Failed to convert value for {0} from {1} to {2}</value>
+  </data>
+  <data name="ErrorInvalidClassIdentifierBox2d" xml:space="preserve">
+    <value>Invalid class identifier. Expected Box2D</value>
+  </data>
+  <data name="ErrorInvalidGroupObjectId" xml:space="preserve">
+    <value>Group must have object id 12001, but had: {0}</value>
+  </data>
+  <data name="ErrorInvalidMapVersion" xml:space="preserve">
+    <value>Invalid or unsupported map version</value>
+  </data>
+  <data name="ErrorJaggedResultSet" xml:space="preserve">
+    <value>Incoming record must be structurally identical</value>
+  </data>
+  <data name="ErrorKeyAlreadyExists" xml:space="preserve">
+    <value>Key {0} already exists</value>
+  </data>
+  <data name="ErrorLayerHasNoPk" xml:space="preserve">
+    <value>The layer does not have a primary key, and cannot be used for selection</value>
+  </data>
+  <data name="ErrorLayerKeyMismatch" xml:space="preserve">
+    <value>The layers key consists of {0} columns, but only {1} columns were given</value>
+  </data>
+  <data name="ErrorNoClassNameSpecified" xml:space="preserve">
+    <value>No class name specified</value>
+  </data>
+  <data name="ErrorNoCoordinateSystemWktSpecified" xml:space="preserve">
+    <value>No coordinate system WKT specified</value>
+  </data>
+  <data name="ErrorNoExtentSpecifiedForStaticType" xml:space="preserve">
+    <value>No extent specified for static extent type</value>
+  </data>
+  <data name="ErrorNoFeatureSourceIdSpecified" xml:space="preserve">
+    <value>No feature source id specified</value>
+  </data>
+  <data name="ErrorNoFileNameSpecified" xml:space="preserve">
+    <value>No file name specified</value>
+  </data>
+  <data name="ErrorNoProviderSpecified" xml:space="preserve">
+    <value>No provider specified</value>
+  </data>
+  <data name="ErrorNoResourceIdAttached" xml:space="preserve">
+    <value>Resource has no resource id attached</value>
+  </data>
+  <data name="ErrorNoSchemaSpecified" xml:space="preserve">
+    <value>No schema specified</value>
+  </data>
+  <data name="ErrorNoSchemaSpecifiedToApply" xml:space="preserve">
+    <value>No schema specified to apply</value>
+  </data>
+  <data name="ErrorNoSpatialContextNameSpecified" xml:space="preserve">
+    <value>No spatial context name specified. This is the name that should be referred to by any spatial context associations in your feature schema</value>
+  </data>
+  <data name="ErrorNothingToInsert" xml:space="preserve">
+    <value>Nothing to insert</value>
+  </data>
+  <data name="ErrorNoValuesSpecifiedForUpdating" xml:space="preserve">
+    <value>No values specified for updating</value>
+  </data>
+  <data name="ErrorNullKeyValue" xml:space="preserve">
+    <value>The value for {0} is null, which is not supported as a key</value>
+  </data>
+  <data name="ErrorNullValue" xml:space="preserve">
+    <value>Null Value</value>
+  </data>
+  <data name="ErrorObjectSetNullValuesNotPermitted" xml:space="preserve">
+    <value>null values are not permitted. Use SetNull() if you need to specify null values</value>
+  </data>
+  <data name="ErrorParseExpectedCloser" xml:space="preserve">
+    <value>Expected ')' but encountered '{0}'</value>
+  </data>
+  <data name="ErrorParseExpectedCloserOrComma" xml:space="preserve">
+    <value>Expected ')' or ',' but encountered '{0}'</value>
+  </data>
+  <data name="ErrorParseExpectedEmpty" xml:space="preserve">
+    <value>Expected 'EMPTY' or '(' but encountered '{0}'</value>
+  </data>
+  <data name="ErrorParseExpectedNumber" xml:space="preserve">
+    <value>Expected number but encountered {0}</value>
+  </data>
+  <data name="ErrorParseExpectedNumberEol" xml:space="preserve">
+    <value>Expected number but encountered end of line</value>
+  </data>
+  <data name="ErrorParseExpectedNumberEos" xml:space="preserve">
+    <value>Expected number but encountered end of stream</value>
+  </data>
+  <data name="ErrorParseExpectedNumberGotWord" xml:space="preserve">
+    <value>Expected number but encountered word {0}</value>
+  </data>
+  <data name="ErrorParseExpectedWord" xml:space="preserve">
+    <value>Expected word but encountered number: {0}</value>
+  </data>
+  <data name="ErrorParseGeometryRead" xml:space="preserve">
+    <value>Error reading geometry</value>
+  </data>
+  <data name="ErrorParseUnknownType" xml:space="preserve">
+    <value>Unknown type: {0}</value>
+  </data>
+  <data name="ErrorProviderAlreadyRegistered" xml:space="preserve">
+    <value>Provider already registered: {0}</value>
+  </data>
+  <data name="ErrorProviderNotRegistered" xml:space="preserve">
+    <value>Provider not registered: {0}</value>
+  </data>
+  <data name="ErrorProviderNotUsableForYourPlatform" xml:space="preserve">
+    <value>The specified provider is not usable in your operating system: {0}</value>
+  </data>
+  <data name="ErrorResourceIdentifierClassIdNotFound" xml:space="preserve">
+    <value>Resource Identifier class id expected, but got: {0}</value>
+  </data>
+  <data name="ErrorRuntimeMapNotInSessionRepo" xml:space="preserve">
+    <value>Runtime maps must be in the session repository</value>
+  </data>
+  <data name="ErrorSelectedLayerHasNoId" xml:space="preserve">
+    <value>A layer in selection had no id</value>
+  </data>
+  <data name="ErrorSettingVisibilityOfTiledLayer" xml:space="preserve">
+    <value>Setting visibility of tiled map layers is not permitted</value>
+  </data>
+  <data name="ErrorShouldHaveNoLayerDataInMap" xml:space="preserve">
+    <value>On new versions, there should be no layer data in map</value>
+  </data>
+  <data name="ErrorTokenListContainsNullValue" xml:space="preserve">
+    <value>Token list contains a null value</value>
+  </data>
+  <data name="ErrorUnsupportedPkType" xml:space="preserve">
+    <value>The type {0} is not supported for primary keys</value>
+  </data>
+  <data name="TemplateCreated" xml:space="preserve">
+    <value>Created: {0}</value>
+  </data>
+  <data name="TemplateFileNotFound" xml:space="preserve">
+    <value>File not found: {0}</value>
+  </data>
+  <data name="TemplateFileProcessed" xml:space="preserve">
+    <value>File processed: {0}</value>
+  </data>
+  <data name="TemplateLoaded" xml:space="preserve">
+    <value>Loaded: {0}</value>
+  </data>
+  <data name="TemplateSetSpatialContext" xml:space="preserve">
+    <value>Set default spatial context for: {0}</value>
+  </data>
+  <data name="TemplateSuccess" xml:space="preserve">
+    <value>Success: {0}</value>
+  </data>
+  <data name="TemplateUploadedPrj" xml:space="preserve">
+    <value>Uploaded: {0}.prj</value>
+  </data>
+  <data name="ErrorBadDocumentExpectedElement" xml:space="preserve">
+    <value>Bad document. Expected element {0}</value>
+  </data>
+  <data name="ErrorBadDocumentInvalidBbox" xml:space="preserve">
+    <value>Bad document. Invalid bounding box</value>
+  </data>
+  <data name="ErrorCmsOptionsOnMapGuideMap" xml:space="preserve">
+    <value>Commerical layer options are only available for non-MapGuide maps</value>
+  </data>
+  <data name="ErrorInvalidResourceIdentifier" xml:space="preserve">
+    <value>Invalid resource identifier</value>
+  </data>
+  <data name="ErrorNoServerConnectionAttached" xml:space="preserve">
+    <value>No server connection set for object</value>
+  </data>
+  <data name="ErrorNullNotAccepted" xml:space="preserve">
+    <value>Null values not accepted</value>
+  </data>
+  <data name="ErrorOverlayOptionsOnNonMapGuideMap" xml:space="preserve">
+    <value>Overlay options are only applicable to MapGuide maps</value>
+  </data>
+  <data name="ErrorUnexpectedResourceType" xml:space="preserve">
+    <value>Unexpected resource type for {0}. Expected {1}</value>
+  </data>
+  <data name="ErrorValueNotComparable" xml:space="preserve">
+    <value>Value is not comparable</value>
+  </data>
+  <data name="ErrorValueOutOfRange" xml:space="preserve">
+    <value>Value falls outside the range of {0} and  {1}</value>
+  </data>
+  <data name="TitlePreview" xml:space="preserve">
+    <value>Preview</value>
+  </data>
+  <data name="ErrorCouldNotDetermineSymbolType" xml:space="preserve">
+    <value>Could not determine symbol type</value>
+  </data>
+  <data name="ErrorObjectNotICompositeTypeStyle" xml:space="preserve">
+    <value>Value does not implement ICompositeTypeStyle</value>
+  </data>
+  <data name="ErrorBadDocumentExpectedAttribute" xml:space="preserve">
+    <value>Bad document. Expected attribute: {0}</value>
+  </data>
+  <data name="ErrorBadHtmlColor" xml:space="preserve">
+    <value>Bad HTML color: {0}</value>
+  </data>
+  <data name="ErrorBinarySerializerInvalidAmountOfCoordinates" xml:space="preserve">
+    <value>Invalid amount of coordinates</value>
+  </data>
+  <data name="ErrorBinarySerializerInvalidCoordinateDimensionCount" xml:space="preserve">
+    <value>Coordinate count reported: {0}, for a single coordinate</value>
+  </data>
+  <data name="ErrorInvalidResourceHeaderRootElement" xml:space="preserve">
+    <value>Header must be either ResourceFolderHeaderType or ResourceDocumentHeaderType</value>
+  </data>
+  <data name="ErrorInvalidResourceIdentifierType" xml:space="preserve">
+    <value>Invalid resource identifier type. Must be Library or Session</value>
+  </data>
+  <data name="ErrorNoDataInResource" xml:space="preserve">
+    <value>No data found in resource: {0}</value>
+  </data>
+  <data name="ErrorNotAQualifiedClassName" xml:space="preserve">
+    <value>Not a qualified class name: {0}</value>
+  </data>
+  <data name="ErrorPropertyNotFound" xml:space="preserve">
+    <value>Property not found: {0}</value>
+  </data>
+  <data name="ErrorResourceIdCannotChangeExtensionForFolder" xml:space="preserve">
+    <value>Cannot change extension for a folder</value>
+  </data>
+  <data name="ErrorResourceIdentifierInvalidChars" xml:space="preserve">
+    <value>The resource name must not contain ':', \"//\" or '.'</value>
+  </data>
+  <data name="ErrorResourceIdentifierNameInvalidChars" xml:space="preserve">
+    <value>The new name must not contain the \"/\" character</value>
+  </data>
+  <data name="ErrorResourceIdInvalidExtension" xml:space="preserve">
+    <value>The supplied extension is invalid</value>
+  </data>
+  <data name="ErrorResourceMustBeUpdatedWithFolderHeader" xml:space="preserve">
+    <value>The resourceId: {0} must be updated with a folder header</value>
+  </data>
+  <data name="ErrorTypeHasNoSchemaInfo" xml:space="preserve">
+    <value>Type {0} does not contain schema info</value>
+  </data>
+  <data name="ErrorUnknownResourceType" xml:space="preserve">
+    <value>The given type is not a known resource type</value>
+  </data>
+  <data name="ErrorUnsupporteFdoSchemaXml" xml:space="preserve">
+    <value>Unrecognized element. Only a subset of the FDO logical schema is supported here</value>
+  </data>
+  <data name="ErrorValidationGeneric" xml:space="preserve">
+    <value>Failed in validator: {0}</value>
+  </data>
+  <data name="ProgressCopyingFolder" xml:space="preserve">
+    <value>Copying Folder ...</value>
+  </data>
+  <data name="ProgressFindingFolderRefs" xml:space="preserve">
+    <value>Finding Folder References ...</value>
+  </data>
+  <data name="ProgressMovingFolder" xml:space="preserve">
+    <value>Moving Folder ...</value>
+  </data>
+  <data name="WL_Desc_About" xml:space="preserve">
+    <value>Display information about this application</value>
+  </data>
+  <data name="WL_Desc_Buffer" xml:space="preserve">
+    <value>Create buffers around the selected features</value>
+  </data>
+  <data name="WL_Desc_ClearSelection" xml:space="preserve">
+    <value>Clear the current selection</value>
+  </data>
+  <data name="WL_Desc_Copy" xml:space="preserve">
+    <value>Copy current view of map to clipboard</value>
+  </data>
+  <data name="WL_Desc_GetPrintablePage" xml:space="preserve">
+    <value>Get Printer-friendly page</value>
+  </data>
+  <data name="WL_Desc_Help" xml:space="preserve">
+    <value>Launch help for this application</value>
+  </data>
+  <data name="WL_Desc_InitialCenterScale" xml:space="preserve">
+    <value>Zoom to initial map center and scale</value>
+  </data>
+  <data name="WL_Desc_InitialMapView" xml:space="preserve">
+    <value>Fit the extents of the map to the window</value>
+  </data>
+  <data name="WL_Desc_MapTip" xml:space="preserve">
+    <value>Click to enable/disable display of map tooltips</value>
+  </data>
+  <data name="WL_Desc_Measure" xml:space="preserve">
+    <value>Measure distances on the map</value>
+  </data>
+  <data name="WL_Desc_NextView" xml:space="preserve">
+    <value>Go to next view</value>
+  </data>
+  <data name="WL_Desc_Pan" xml:space="preserve">
+    <value>Drag the map to view areas out of range</value>
+  </data>
+  <data name="WL_Desc_PanDown" xml:space="preserve">
+    <value>Pan down by a preset increment</value>
+  </data>
+  <data name="WL_Desc_PanLeft" xml:space="preserve">
+    <value>Pan left by a preset increment</value>
+  </data>
+  <data name="WL_Desc_PanRight" xml:space="preserve">
+    <value>Pan right by a preset increment</value>
+  </data>
+  <data name="WL_Desc_PanUp" xml:space="preserve">
+    <value>Pan up by a preset increment</value>
+  </data>
+  <data name="WL_Desc_PrevView" xml:space="preserve">
+    <value>Go to previous view</value>
+  </data>
+  <data name="WL_Desc_Print" xml:space="preserve">
+    <value>Print with optional layout</value>
+  </data>
+  <data name="WL_Desc_RefreshMap" xml:space="preserve">
+    <value>Refresh map to reload all layers keeping current center and scale</value>
+  </data>
+  <data name="WL_Desc_Select" xml:space="preserve">
+    <value>Select features by clicking and dragging</value>
+  </data>
+  <data name="WL_Desc_SelectPolygon" xml:space="preserve">
+    <value>Click and drag to select all features that fall within</value>
+  </data>
+  <data name="WL_Desc_SelectRadius" xml:space="preserve">
+    <value>Click and drag to select all features inside the circle</value>
+  </data>
+  <data name="WL_Desc_SelectWithin" xml:space="preserve">
+    <value>Select features that fall within currently selected areas</value>
+  </data>
+  <data name="WL_Desc_TaskBack" xml:space="preserve">
+    <value>Return to previous task page</value>
+  </data>
+  <data name="WL_Desc_TaskForward" xml:space="preserve">
+    <value>Forward to next task page</value>
+  </data>
+  <data name="WL_Desc_TaskHome" xml:space="preserve">
+    <value>Return to home task page</value>
+  </data>
+  <data name="WL_Desc_TaskList" xml:space="preserve">
+    <value>View a list of available tasks</value>
+  </data>
+  <data name="WL_Desc_ViewOptions" xml:space="preserve">
+    <value>View Options</value>
+  </data>
+  <data name="WL_Desc_ZoomDynamic" xml:space="preserve">
+    <value>Zoom dynamically by clicking and dragging</value>
+  </data>
+  <data name="WL_Desc_ZoomIn" xml:space="preserve">
+    <value>Zoom in by a preset increment</value>
+  </data>
+  <data name="WL_Desc_ZoomOut" xml:space="preserve">
+    <value>Zoom out by a preset increment</value>
+  </data>
+  <data name="WL_Desc_ZoomRect" xml:space="preserve">
+    <value>Zoom in on an area</value>
+  </data>
+  <data name="WL_Desc_ZoomSelection" xml:space="preserve">
+    <value>Zoom to the extents of selected features</value>
+  </data>
+  <data name="WL_Label_About" xml:space="preserve">
+    <value>About</value>
+  </data>
+  <data name="WL_Label_Buffer" xml:space="preserve">
+    <value>Buffer</value>
+  </data>
+  <data name="WL_Label_ClearSelection" xml:space="preserve">
+    <value>Clear Selection</value>
+  </data>
+  <data name="WL_Label_Copy" xml:space="preserve">
+    <value>Copy</value>
+  </data>
+  <data name="WL_Label_GetPrintablePage" xml:space="preserve">
+    <value>Get Printable Page</value>
+  </data>
+  <data name="WL_Label_Help" xml:space="preserve">
+    <value>Help</value>
+  </data>
+  <data name="WL_Label_InitialCenterScale" xml:space="preserve">
+    <value>Initial Center and Scale</value>
+  </data>
+  <data name="WL_Label_InitialMapView" xml:space="preserve">
+    <value>Initial Map View</value>
+  </data>
+  <data name="WL_Label_Measure" xml:space="preserve">
+    <value>Measure</value>
+  </data>
+  <data name="WL_Label_NextView" xml:space="preserve">
+    <value>Next View</value>
+  </data>
+  <data name="WL_Label_Pan" xml:space="preserve">
+    <value>Pan Mode</value>
+  </data>
+  <data name="WL_Label_PanDown" xml:space="preserve">
+    <value>Pan Down</value>
+  </data>
+  <data name="WL_Label_PanLeft" xml:space="preserve">
+    <value>Pan Left</value>
+  </data>
+  <data name="WL_Label_PanRight" xml:space="preserve">
+    <value>Pan Right</value>
+  </data>
+  <data name="WL_Label_PanUp" xml:space="preserve">
+    <value>Pan Up</value>
+  </data>
+  <data name="WL_Label_PrevView" xml:space="preserve">
+    <value>Previous View</value>
+  </data>
+  <data name="WL_Label_Print" xml:space="preserve">
+    <value>Print</value>
+  </data>
+  <data name="WL_Label_RefreshMap" xml:space="preserve">
+    <value>Refresh Map</value>
+  </data>
+  <data name="WL_Label_Select" xml:space="preserve">
+    <value>Select</value>
+  </data>
+  <data name="WL_Label_SelectMore" xml:space="preserve">
+    <value>Select More</value>
+  </data>
+  <data name="WL_Label_SelectPolygon" xml:space="preserve">
+    <value>Select Polygon</value>
+  </data>
+  <data name="WL_Label_SelectRadius" xml:space="preserve">
+    <value>Select Radius</value>
+  </data>
+  <data name="WL_Label_SelectWithin" xml:space="preserve">
+    <value>Select Within</value>
+  </data>
+  <data name="WL_Label_TaskList" xml:space="preserve">
+    <value>Task List</value>
+  </data>
+  <data name="WL_Label_ViewOptions" xml:space="preserve">
+    <value>View Options</value>
+  </data>
+  <data name="WL_Label_Zoom" xml:space="preserve">
+    <value>Zoom</value>
+  </data>
+  <data name="WL_Label_ZoomDynamic" xml:space="preserve">
+    <value>Zoom Dynamic</value>
+  </data>
+  <data name="WL_Label_ZoomIn" xml:space="preserve">
+    <value>Zoom In</value>
+  </data>
+  <data name="WL_Label_ZoomOut" xml:space="preserve">
+    <value>Zoom Out</value>
+  </data>
+  <data name="WL_Label_ZoomRect" xml:space="preserve">
+    <value>Zoom Rectangle</value>
+  </data>
+  <data name="WL_Label_ZoomSelection" xml:space="preserve">
+    <value>Zoom Selection</value>
+  </data>
+  <data name="ErrorBinarySerializerBufferTooSmall" xml:space="preserve">
+    <value>Buffer too small</value>
+  </data>
+  <data name="ErrorBinarySerializerCoordinateUnexpectedType" xml:space="preserve">
+    <value>Coordinate expected, but got object: {0}</value>
+  </data>
+  <data name="ErrorBinarySerializerExpectedEndOfStream" xml:space="preserve">
+    <value>The read value was: {0} while <end of stream> was expected</value>
+  </data>
+  <data name="ErrorBinarySerializerGetCharWidth" xml:space="preserve">
+    <value>Failed to get valid string char width</value>
+  </data>
+  <data name="ErrorBinarySerializerPrematureEndOfStream" xml:space="preserve">
+    <value>Stream ended prematurely</value>
+  </data>
+  <data name="ErrorBinarySerializerStreamExhausted" xml:space="preserve">
+    <value>Stream exhausted while reading {0} bytes</value>
+  </data>
+  <data name="ErrorBinarySerializerUnexpectedType" xml:space="preserve">
+    <value>Data in stream had type: {0} but type '{1}' was expected</value>
+  </data>
+  <data name="ErrorBinarySerializerUnknownObjectType" xml:space="preserve">
+    <value>Unknown object type: {0}</value>
+  </data>
+  <data name="WL_Label_TaskBack" xml:space="preserve">
+    <value>Back</value>
+  </data>
+  <data name="WL_Label_TaskForward" xml:space="preserve">
+    <value>Forward</value>
+  </data>
+  <data name="WL_Label_TaskHome" xml:space="preserve">
+    <value>Home</value>
+  </data>
 </root>
\ No newline at end of file

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Comparison/DiffEngine.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Comparison/DiffEngine.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Comparison/DiffEngine.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -92,7 +92,7 @@
                             stat = DiffStatus.NoMatch;
                             break;
                         default:
-                            System.Diagnostics.Debug.Assert(_length == -2, "Invalid status: _length < -2");
+                            System.Diagnostics.Debug.Assert(_length == -2, "Invalid status: _length < -2"); //NOXLATE
                             stat = DiffStatus.Unknown;
                             break;
                     }
@@ -114,8 +114,8 @@
 
         public void SetMatch(int start, int length)
         {
-            System.Diagnostics.Debug.Assert(length > 0, "Length must be greater than zero");
-            System.Diagnostics.Debug.Assert(start >= 0, "Start must be greater than or equal to zero");
+            System.Diagnostics.Debug.Assert(length > 0, "Length must be greater than zero"); //NOXLATE
+            System.Diagnostics.Debug.Assert(start >= 0, "Start must be greater than or equal to zero"); //NOXLATE
             _startIndex = start;
             _length = length;
         }
@@ -239,7 +239,7 @@
 
         public override string ToString()
         {
-            return string.Format("{0} (Dest: {1},Source: {2}) {3}",
+            return string.Format("{0} (Dest: {1},Source: {2}) {3}", //NOXLATE
                 _status.ToString(),
                 _destIndex.ToString(),
                 _sourceIndex.ToString(),

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Comparison/TextFile.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Comparison/TextFile.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Comparison/TextFile.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -37,7 +37,7 @@
 
         public TextLine(string str)
         {
-            Line = str.Replace("\t", "    ");
+            Line = str.Replace("\t", "    "); //NOXLATE
             _hash = str.GetHashCode();
         }
         #region IComparable Members

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/IResourceConverter.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/IResourceConverter.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Conversion/IResourceConverter.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -73,7 +73,7 @@
             //wayside in the process, and any new bits flubbed with default values as part of deserialization
 
             var resVer = resource.GetResourceTypeDescriptor().Version;
-            var dstVer = string.Format("{0}.{1}.{2}", targetVersion.Major, targetVersion.Minor, targetVersion.Build);
+            var dstVer = string.Format("{0}.{1}.{2}", targetVersion.Major, targetVersion.Minor, targetVersion.Build); //NOXLATE
             var dstXsd = resource.ValidatingSchema.Replace(resVer, dstVer);
 
             using (var sr = ResourceTypeRegistry.Serialize(resource))
@@ -82,7 +82,7 @@
                 {
                     var xml = new StringBuilder(str.ReadToEnd());
                     xml.Replace(resource.ValidatingSchema, dstXsd);
-                    xml.Replace("version=\"" + resVer, "version=\"" + dstVer);
+                    xml.Replace("version=\"" + resVer, "version=\"" + dstVer); //NOXLATE
 
                     var convRes = ResourceTypeRegistry.Deserialize(xml.ToString());
                     convRes.CurrentConnection = resource.CurrentConnection;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResource.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -112,8 +112,8 @@
         /// <param name="target">The target.</param>
         public static void CopyResourceDataTo(this IResource source, IResource target)
         {
-            Check.NotNull(source, "source");
-            Check.NotNull(target, "target");
+            Check.NotNull(source, "source"); //NOXLATE
+            Check.NotNull(target, "target"); //NOXLATE
 
             foreach (var res in source.EnumerateResourceData())
             {
@@ -141,8 +141,8 @@
         /// <param name="targetID">The target ID.</param>
         public static void CopyResourceDataTo(this IResource source, string targetID)
         {
-            Check.NotNull(source, "source");
-            Check.NotEmpty(targetID, "targetID");
+            Check.NotNull(source, "source"); //NOXLATE
+            Check.NotEmpty(targetID, "targetID"); //NOXLATE
 
             foreach (var res in source.EnumerateResourceData())
             {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResourceValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResourceValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/IResourceValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -60,8 +60,8 @@
         /// <param name="msg">The message.</param>
         public ValidationIssue(IResource res, ValidationStatus stat, ValidationStatusCode code, string msg)
         {
-            Check.NotNull(res, "res");
-            Check.NotEmpty(msg, "msg");
+            Check.NotNull(res, "res"); //NOXLATE
+            Check.NotEmpty(msg, "msg"); //NOXLATE
 
             this.Resource = res;
             this.Status = stat;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceContentVersionChecker.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceContentVersionChecker.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceContentVersionChecker.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -80,7 +80,7 @@
         /// <returns></returns>
         public static ResourceTypeDescriptor GetVersionFromXmlStream(Stream ms)
         {
-            string version = "1.0.0";
+            string version = "1.0.0"; //NOXLATE
             using (var xr = XmlReader.Create(ms))
             {
                 xr.MoveToContent();
@@ -90,12 +90,12 @@
                 try
                 {
                     //Parse version number from ResourceType-x.y.z.xsd
-                    string xsd = xr.GetAttribute("xsi:noNamespaceSchemaLocation");
+                    string xsd = xr.GetAttribute("xsi:noNamespaceSchemaLocation"); //NOXLATE
                     if (xsd == null)
                         return null;
 
-                    int start = (xsd.LastIndexOf("-"));
-                    int end = xsd.IndexOf(".xsd") - 1;
+                    int start = (xsd.LastIndexOf("-")); //NOXLATE
+                    int end = xsd.IndexOf(".xsd") - 1; //NOXLATE
                     version = xsd.Substring(start + 1, xsd.Length - end);
                     string typeStr = xsd.Substring(0, start);
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceIdentifier.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceIdentifier.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceIdentifier.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -61,12 +61,12 @@
         public ResourceIdentifier(string name, ResourceTypes type)
         {
             if (string.IsNullOrEmpty(name))
-                throw new ArgumentNullException("name");
-            if (name.IndexOf(".") > 0 || name.IndexOf("//") > 0 || name.IndexOf(":") > 0)
-                throw new ArgumentException("The resource name must not contain ':', \"//\" or '.'", "name");
+                throw new ArgumentNullException("name"); //NOXLATE
+            if (name.IndexOf(".") > 0 || name.IndexOf("//") > 0 || name.IndexOf(":") > 0) //NOXLATE
+                throw new ArgumentException(Properties.Resources.ErrorResourceIdentifierInvalidChars, "name"); //NOXLATE
             if (!Enum.IsDefined(typeof(ResourceTypes), type))
-                throw new ArgumentException("The type given was not a valid ResourceType", "type");
-            m_id = "Library://" + name + EnumHelper.ResourceName(type, true);
+                throw new ArgumentException(Properties.Resources.ErrorUnknownResourceType, "type"); //NOXLATE
+            m_id = StringConstants.RootIdentifier + name + EnumHelper.ResourceName(type, true);
         }
 
         /// <summary>
@@ -145,7 +145,7 @@
         /// </summary>
         public bool IsInLibrary
         {
-            get { return GetRepository(m_id) == "Library://"; }
+            get { return GetRepository(m_id) == StringConstants.RootIdentifier; }
         }
 
         /// <summary>
@@ -266,14 +266,14 @@
         public static string GetName(string identifier)
         {
             if (string.IsNullOrEmpty(identifier))
-                throw new ArgumentNullException("identifier");
+                throw new ArgumentNullException("identifier"); //NOXLATE
 
             string temp = GetPath(identifier);
 
             if (string.IsNullOrEmpty(temp))
-                throw new ArgumentException("The value must be a resource identifier", "identifier");
+                throw new ArgumentException(Properties.Resources.ErrorInvalidResourceIdentifier, "identifier"); //NOXLATE
 
-            return temp.Substring(temp.LastIndexOf("/") + 1);
+            return temp.Substring(temp.LastIndexOf("/") + 1); //NOXLATE
         }
 
         /// <summary>
@@ -285,17 +285,17 @@
         public static string SetName(string identifier, string newname)
         {
             string temp = GetPath(identifier);
-            if (identifier.EndsWith("/"))
+            if (identifier.EndsWith("/")) //NOXLATE
             {
-                if (!newname.EndsWith("/"))
-                    newname += "/";
+                if (!newname.EndsWith("/")) //NOXLATE
+                    newname += "/"; //NOXLATE
             }
             else
-                newname += "." + GetExtension(identifier);
+                newname += "." + GetExtension(identifier); //NOXLATE
 
 
-            if (newname.IndexOf("/") > 0)
-                throw new ArgumentException("The new name must not contain the \"/\" character", "newname");
+            if (newname.IndexOf("/") > 0) //NOXLATE
+                throw new ArgumentException(Properties.Resources.ErrorResourceIdentifierNameInvalidChars, "newname");
             temp = temp.Substring(0, temp.Length - GetName(identifier).Length) + newname;
 
             return GetRepository(identifier) + temp;
@@ -310,10 +310,10 @@
         public static string SetPath(string identifier, string newpath)
         {
             string temp = GetPath(identifier);
-            if (!identifier.EndsWith("/"))
-                newpath += "." + GetExtension(identifier);
+            if (!identifier.EndsWith("/")) //NOXLATE
+                newpath += "." + GetExtension(identifier); //NOXLATE
 
-            return GetRepository(identifier) + newpath + (identifier.EndsWith("/") ? "/" : "");
+            return GetRepository(identifier) + newpath + (identifier.EndsWith("/") ? "/" : ""); //NOXLATE
         }
 
         /// <summary>
@@ -324,14 +324,14 @@
         /// <returns>The renmaed identifier</returns>
         public static string SetExtension(string identifier, string newextension)
         {
-            if (identifier.EndsWith("/"))
-                throw new Exception("Cannot change extension for a folder");
+            if (identifier.EndsWith("/")) //NOXLATE
+                throw new Exception(Properties.Resources.ErrorResourceIdCannotChangeExtensionForFolder);
 
-            if (!newextension.StartsWith("."))
-                newextension = "." + newextension;
+            if (!newextension.StartsWith(".")) //NOXLATE
+                newextension = "." + newextension; //NOXLATE
 
-            if (newextension.LastIndexOf(".") > 0)
-                throw new ArgumentException("The supplied extension is invalid", "newextension");
+            if (newextension.LastIndexOf(".") > 0) //NOXLATE
+                throw new ArgumentException(Properties.Resources.ErrorResourceIdInvalidExtension, "newextension"); //NOXLATE
 
             return identifier.Substring(0, identifier.Length - GetExtension(identifier).Length - 1) + newextension;
         }
@@ -344,16 +344,16 @@
         public static string GetRepository(string identifier)
         {
             if (string.IsNullOrEmpty(identifier))
-                throw new ArgumentNullException("identifier");
-            int ix = identifier.IndexOf("//");
+                throw new ArgumentNullException("identifier"); //NOXLATE
+            int ix = identifier.IndexOf("//"); //NOXLATE
             if (ix <= 0)
-                throw new ArgumentException("The value must be a resource identifier", "identifier");
+                throw new ArgumentException(Properties.Resources.ErrorInvalidResourceIdentifier, "identifier"); //NOXLATE
 
             string repo = identifier.Substring(0, ix);
-            if (repo != "Library:" && !repo.StartsWith("Session:"))
-                throw new ArgumentException("The value must be a resource identifier", "identifier");
+            if (repo != "Library:" && !repo.StartsWith("Session:")) //NOXLATE
+                throw new ArgumentException(Properties.Resources.ErrorInvalidResourceIdentifierType, "identifier"); //NOXLATE
 
-            return repo + "//";
+            return repo + "//"; //NOXLATE
         }
 
         /// <summary>
@@ -364,7 +364,7 @@
         public static string GetFullpath(string identifier)
         {
             if (string.IsNullOrEmpty(identifier))
-                throw new ArgumentNullException("identifier");
+                throw new ArgumentNullException("identifier"); //NOXLATE
             return identifier.Substring(GetRepository(identifier).Length);
         }
 
@@ -376,7 +376,7 @@
         public static string GetPath(string identifier)
         {
             if (string.IsNullOrEmpty(identifier))
-                throw new ArgumentNullException("identifier");
+                throw new ArgumentNullException("identifier"); //NOXLATE
             return identifier.Substring(GetRepository(identifier).Length, identifier.Length - GetExtension(identifier).Length - GetRepository(identifier).Length - 1);
         }
 
@@ -398,14 +398,14 @@
         private static string GetExtension(string identifier)
         {
             if (string.IsNullOrEmpty(identifier))
-                throw new ArgumentNullException("identifier");
+                throw new ArgumentNullException("identifier"); //NOXLATE
 
-            if (identifier.EndsWith("/"))
-                return "";
+            if (identifier.EndsWith("/")) //NOXLATE
+                return string.Empty;
 
-            int ix = identifier.LastIndexOf(".");
+            int ix = identifier.LastIndexOf("."); //NOXLATE
             if (ix <= 0)
-                throw new ArgumentException("The value must be a resource identifier", "identifier");
+                throw new ArgumentException(Properties.Resources.ErrorInvalidResourceIdentifier, "identifier"); //NOXLATE
 
             return identifier.Substring(ix + 1);
         }
@@ -417,7 +417,7 @@
         /// <returns>The converted identifier</returns>
         public static string ConvertToLibrary(string identifier)
         {
-            return "Library://" + identifier.Substring(GetRepository(identifier).Length);
+            return StringConstants.RootIdentifier + identifier.Substring(GetRepository(identifier).Length);
         }
 
         /// <summary>
@@ -428,7 +428,7 @@
         /// <returns>The converted identifier</returns>
         public static string ConvertToSession(string identifier, string sessionId)
         {
-            return "Session:" + sessionId + "//" + identifier.Substring(GetRepository(identifier).Length);
+            return "Session:" + sessionId + "//" + identifier.Substring(GetRepository(identifier).Length); //NOXLATE
         }
 
         /// <summary>
@@ -438,10 +438,10 @@
         /// <returns>The full name of the identifier</returns>
         public static string GetFullname(string identifier)
         {
-            if (identifier.EndsWith("/"))
+            if (identifier.EndsWith("/")) //NOXLATE
                 return GetName(identifier);
             else
-                return GetName(identifier) + "." + GetExtension(identifier);
+                return GetName(identifier) + "." + GetExtension(identifier); //NOXLATE
         }
 
         /// <summary>
@@ -454,7 +454,7 @@
             try
             {
                 GetRepository(identifier);
-                if (identifier.IndexOf(".") < 0 && !identifier.EndsWith("/"))
+                if (identifier.IndexOf(".") < 0 && !identifier.EndsWith("/")) //NOXLATE
                     return false;
 
             }
@@ -473,7 +473,7 @@
         /// <returns>A value indicating if the resource points to a folder</returns>
         public static bool IsFolderResource(string identifier)
         {
-            return identifier.EndsWith("/");
+            return identifier.EndsWith("/"); //NOXLATE
         }
 
         /// <summary>
@@ -483,8 +483,8 @@
         /// <returns>The normalized identifier</returns>
         public static string Normalize(string identifier)
         {
-            if (identifier.LastIndexOf(".") <= identifier.LastIndexOf("/") && !identifier.EndsWith("/"))
-                return identifier + "/";
+            if (identifier.LastIndexOf(".") <= identifier.LastIndexOf("/") && !identifier.EndsWith("/")) //NOXLATE
+                return identifier + "/"; //NOXLATE
             else
                 return identifier;
         }
@@ -514,10 +514,10 @@
         public static string GetRepositoryPath(string identifier)
         {
             if (!Validate(identifier))
-                throw new Exception("Invalid resource id: " + identifier);
+                throw new Exception("Invalid resource id: " + identifier); //NOXLATE
             identifier = Normalize(identifier);
 
-            return identifier.Substring(0, identifier.LastIndexOf("/", identifier.Length)) + "/";
+            return identifier.Substring(0, identifier.LastIndexOf("/", identifier.Length)) + "/"; //NOXLATE
         }
 
         /// <summary>
@@ -528,24 +528,24 @@
         /// <returns>An identifier in the new folder</returns>
         public static string SetRepositoryPath(string identifier, string folder)
         {
-            if (!folder.StartsWith("Library:") && !folder.StartsWith("Session:"))
+            if (!folder.StartsWith("Library:") && !folder.StartsWith("Session:")) //NOXLATE
             {
-                string res = identifier.EndsWith("/") ? "" : GetFullname(identifier);
+                string res = identifier.EndsWith("/") ? string.Empty : GetFullname(identifier); //NOXLATE
                 string repo = GetRepository(identifier);
-                if (!folder.EndsWith("/") && !string.IsNullOrEmpty(folder))
-                    folder += "/";
+                if (!folder.EndsWith("/") && !string.IsNullOrEmpty(folder)) //NOXLATE
+                    folder += "/"; //NOXLATE
                 return repo + folder + res;
             }
-            else if (GetExtension(identifier) == "")
+            else if (GetExtension(identifier) == string.Empty)
             {
-                if (!folder.EndsWith("/"))
-                    folder += "/";
+                if (!folder.EndsWith("/")) //NOXLATE
+                    folder += "/"; //NOXLATE
                 return folder;
             }
             else
             {
-                if (!folder.EndsWith("/"))
-                    folder += "/";
+                if (!folder.EndsWith("/")) //NOXLATE
+                    folder += "/"; //NOXLATE
                 return folder + GetFullname(identifier);
             }
         }
@@ -558,16 +558,16 @@
         public static string GetParentFolder(string identifier)
         {
             if (!Validate(identifier))
-                throw new Exception("Invalid resource id: " + identifier);
+                throw new Exception(Properties.Resources.ErrorInvalidResourceIdentifier);
             identifier = Normalize(identifier);
 
             if (identifier == GetRepository(identifier))
                 return identifier;
 
-            if (identifier.EndsWith("/"))
+            if (identifier.EndsWith("/")) //NOXLATE
                 identifier = identifier.Remove(identifier.Length - 1);
 
-            identifier = identifier.Remove(identifier.LastIndexOf("/") + 1);
+            identifier = identifier.Remove(identifier.LastIndexOf("/") + 1); //NOXLATE
 
             return identifier;
         }
@@ -584,7 +584,7 @@
         /// </returns>
         public static bool IsSessionBased(string resourceID)
         {
-            return resourceID.StartsWith("Session:");
+            return resourceID.StartsWith("Session:"); //NOXLATE
         }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceSchemaChain.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -37,15 +37,15 @@
         {
             switch (schema)
             {
-                case "LayerDefinition-1.0.0.xsd":
-                    return new string[] { schema, "PlatformCommon-1.0.0.xsd" };
-                case "LayerDefinition-1.1.0.xsd":
-                    return new string[] { schema, "SymbolDefinition-1.0.0.xsd", "PlatformCommon-1.0.0.xsd" };
-                case "LayerDefinition-1.2.0.xsd":
-                case "LayerDefinition-1.3.0.xsd":
-                    return new string[] { schema, "SymbolDefinition-1.1.0.xsd", "PlatformCommon-1.0.0.xsd" };
+                case "LayerDefinition-1.0.0.xsd": //NOXLATE
+                    return new string[] { schema, "PlatformCommon-1.0.0.xsd" }; //NOXLATE
+                case "LayerDefinition-1.1.0.xsd": //NOXLATE
+                    return new string[] { schema, "SymbolDefinition-1.0.0.xsd", "PlatformCommon-1.0.0.xsd" }; //NOXLATE
+                case "LayerDefinition-1.2.0.xsd": //NOXLATE
+                case "LayerDefinition-1.3.0.xsd": //NOXLATE
+                    return new string[] { schema, "SymbolDefinition-1.1.0.xsd", "PlatformCommon-1.0.0.xsd" }; //NOXLATE
             }
-            return new string[] { schema, "PlatformCommon-1.0.0.xsd" };
+            return new string[] { schema, "PlatformCommon-1.0.0.xsd" }; //NOXLATE
         }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceTypeDescriptor.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceTypeDescriptor.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/ResourceTypeDescriptor.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -39,8 +39,8 @@
 
         private ResourceTypeDescriptor(string resType, string ver)
         {
-            Check.NotEmpty(resType, "resType");
-            Check.NotEmpty(ver, "ver");
+            Check.NotEmpty(resType, "resType"); //NOXLATE
+            Check.NotEmpty(ver, "ver"); //NOXLATE
 
             this.ResourceType = resType;
             this.Version = ver;
@@ -53,7 +53,7 @@
         {
             get
             {
-                return ResourceType + "-" + Version + ".xsd";
+                return ResourceType + "-" + Version + ".xsd"; //NOXLATE
             }
         }
 
@@ -115,7 +115,7 @@
         /// </summary>
         public static ResourceTypeDescriptor ApplicationDefinition
         {
-            get { return new ResourceTypeDescriptor("ApplicationDefinition", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("ApplicationDefinition", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -123,7 +123,7 @@
         /// </summary>
         public static ResourceTypeDescriptor FeatureSource
         {
-            get { return new ResourceTypeDescriptor("FeatureSource", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("FeatureSource", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -131,7 +131,7 @@
         /// </summary>
         public static ResourceTypeDescriptor DrawingSource
         {
-            get { return new ResourceTypeDescriptor("DrawingSource", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("DrawingSource", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -139,7 +139,7 @@
         /// </summary>
         public static ResourceTypeDescriptor LayerDefinition
         {
-            get { return new ResourceTypeDescriptor("LayerDefinition", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("LayerDefinition", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -147,7 +147,7 @@
         /// </summary>
         public static ResourceTypeDescriptor LoadProcedure
         {
-            get { return new ResourceTypeDescriptor("LoadProcedure", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("LoadProcedure", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -155,7 +155,7 @@
         /// </summary>
         public static ResourceTypeDescriptor MapDefinition
         {
-            get { return new ResourceTypeDescriptor("MapDefinition", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("MapDefinition", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -163,7 +163,7 @@
         /// </summary>
         public static ResourceTypeDescriptor PrintLayout
         {
-            get { return new ResourceTypeDescriptor("PrintLayout", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("PrintLayout", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -171,7 +171,7 @@
         /// </summary>
         public static ResourceTypeDescriptor SymbolLibrary
         {
-            get { return new ResourceTypeDescriptor("SymbolLibrary", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("SymbolLibrary", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -179,7 +179,7 @@
         /// </summary>
         public static ResourceTypeDescriptor SymbolDefinition
         {
-            get { return new ResourceTypeDescriptor("SymbolDefinition", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("SymbolDefinition", "1.0.0"); } //NOXLATE
         }
 
         /// <summary>
@@ -187,7 +187,7 @@
         /// </summary>
         public static ResourceTypeDescriptor WebLayout
         {
-            get { return new ResourceTypeDescriptor("WebLayout", "1.0.0"); }
+            get { return new ResourceTypeDescriptor("WebLayout", "1.0.0"); } //NOXLATE
         }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ApplicationDefinitionValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ApplicationDefinitionValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ApplicationDefinitionValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -75,7 +75,7 @@
                         }
                         try
                         {
-                            if (map.Type.ToLower() == "mapguide")
+                            if (map.Type.ToLower() == "mapguide") //NOXLATE
                             {
                                 var mdfId = map.GetMapDefinition();
                                 if (string.IsNullOrEmpty(mdfId) || !resource.CurrentConnection.ResourceService.ResourceExists(mdfId))
@@ -115,7 +115,7 @@
                         {
                             var wkt = mdf.CoordinateSystem;
                             var csCode = resource.CurrentConnection.CoordinateSystemCatalog.ConvertWktToCoordinateSystemCode(wkt);
-                            if (csCode.ToUpper() != "WGS84.PSEUDOMERCATOR")
+                            if (csCode.ToUpper() != "WGS84.PSEUDOMERCATOR") //NOXLATE
                             {
                                 issues.Add(new ValidationIssue(resource, ValidationStatus.Warning, ValidationStatusCode.Warning_Fusion_MapCoordSysIncompatibleWithCommericalLayers, string.Format(Properties.Resources.ADF_MapWithIncompatibleCommericalCs, mdf.ResourceID)));
                             }
@@ -157,7 +157,7 @@
                     var id = widgetRef.Widget;
                     var wgt = fusionApp.FindWidget(id);
                     var uiWgt = wgt as IUIWidget;
-                    string parentName = "<unknown>";
+                    string parentName = "<unknown>"; //NOXLATE
                     var cnt = menu as IWidgetContainer;
                     var fly = menu as IFlyoutItem;
                     if (cnt != null)
@@ -189,7 +189,7 @@
         private static bool IsCommercialOverlay(IMap map)
         {
             string type = map.Type.ToLower();
-            return type == "google" || type == "virtualearth" || type == "yahoo";
+            return type == "google" || type == "virtualearth" || type == "yahoo" || type == "osm"; //NOXLATE
         }
 
         /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLayerDefinitionValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLayerDefinitionValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLayerDefinitionValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -62,7 +62,7 @@
         /// <returns></returns>
         protected static ValidationIssue[] ValidateBase(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;
@@ -336,7 +336,7 @@
                             if (!string.IsNullOrEmpty(dldef.LayerFilter))
                             {
                                 //Check if specified layers all exist in specified section
-                                var specifiedLayers = dldef.LayerFilter.Split(',');
+                                var specifiedLayers = dldef.LayerFilter.Split(','); //NOXLATE
                                 var dwLayers = new Dictionary<string, string>();
 
                                 var shtLayers = dwSvc.EnumerateDrawingLayers(dws.ResourceID, sheet.Name);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLoadProcedureValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLoadProcedureValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseLoadProcedureValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -42,7 +42,7 @@
         /// <returns></returns>
         protected static ValidationIssue[] ValidateBase(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseMapDefinitionValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseMapDefinitionValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseMapDefinitionValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -65,7 +65,7 @@
         /// <returns></returns>
         protected static ValidationIssue[] ValidateBase(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;
@@ -86,7 +86,7 @@
             {
                 if (g.ShowInLegend && (g.LegendLabel == null || g.LegendLabel.Trim().Length == 0))
                     issues.Add(new ValidationIssue(mdef, ValidationStatus.Information, ValidationStatusCode.Info_MapDefinition_GroupMissingLabelInformation, string.Format(Properties.Resources.MDF_GroupMissingLabelInformation, g.Name)));
-                else if (g.ShowInLegend && g.LegendLabel.Trim().ToLower() == "layer group")
+                else if (g.ShowInLegend && g.LegendLabel.Trim().ToLower() == "layer group") //NOXLATE
                     issues.Add(new ValidationIssue(mdef, ValidationStatus.Information, ValidationStatusCode.Info_MapDefinition_GroupHasDefaultLabel, string.Format(Properties.Resources.MDF_GroupHasDefaultLabelInformation, g.Name)));
 
                 if (!string.IsNullOrEmpty(g.Group))

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseSymbolDefinitionValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseSymbolDefinitionValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseSymbolDefinitionValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -42,7 +42,7 @@
         /// <returns></returns>
         protected static ValidationIssue[] ValidateBase(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;
@@ -145,7 +145,7 @@
             //Check non existent symbol parameters
             foreach (var paramDef in ssym.ParameterDefinition.Parameter)
             {
-                string name = "%" + paramDef.Identifier + "%";
+                string name = "%" + paramDef.Identifier + "%"; //NOXLATE
                 if (!xml.Contains(name) && string.IsNullOrEmpty(paramDef.DefaultValue))
                 {
                     yield return new ValidationIssue(ssym, ValidationStatus.Warning, ValidationStatusCode.Warning_SymbolDefinition_SymbolParameterNotUsed,

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseWebLayoutValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseWebLayoutValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/BaseWebLayoutValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -49,7 +49,7 @@
         /// <returns></returns>
         protected static ValidationIssue[] ValidateBase(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/DrawingSourceValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/DrawingSourceValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/DrawingSourceValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -41,7 +41,7 @@
         /// <returns></returns>
         public ValidationIssue[] Validate(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;
@@ -69,7 +69,7 @@
         /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
-            get { return new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.DrawingSource, "1.0.0"); }
+            get { return new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.DrawingSource, "1.0.0"); } //NOXLATE
         }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/FeatureSourceValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -46,7 +46,7 @@
         /// <returns></returns>
         public ValidationIssue[] Validate(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;
@@ -80,30 +80,30 @@
                             var rightProvider = dstFs.Provider.ToUpper();
 
                             //FDO Join optimization check
-                            if (leftProvider.Contains("OSGEO.SQLITE") && rightProvider.Contains("OSGEO.SQLITE") && srcFs.ResourceID == rel.ResourceId)
+                            if (leftProvider.Contains("OSGEO.SQLITE") && rightProvider.Contains("OSGEO.SQLITE") && srcFs.ResourceID == rel.ResourceId) //NOXLATE
                                 continue;
 
                             //FDO Join optimization check
-                            if (leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") && rightProvider.Contains("OSGEO.SQLSERVERSPATIAL") && srcFs.ResourceID == rel.ResourceId)
+                            if (leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") && rightProvider.Contains("OSGEO.SQLSERVERSPATIAL") && srcFs.ResourceID == rel.ResourceId) //NOXLATE
                                 continue;
 
                             //TODO: Fix the capabilities response. Because it's not telling us enough information!
                             //Anyways, these are the providers known to provide sorted query results.
-                            bool bLeftSortable = leftProvider.Contains("OSGEO.SDF") ||
-                                                 leftProvider.Contains("OSGEO.SHP") ||
-                                                 leftProvider.Contains("OSGEO.SQLITE") ||
-                                                 leftProvider.Contains("OSGEO.ODBC") ||
-                                                 leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") ||
-                                                 leftProvider.Contains("OSGEO.MYSQL") ||
-                                                 leftProvider.Contains("OSGEO.POSTGRESQL");
+                            bool bLeftSortable = leftProvider.Contains("OSGEO.SDF") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.SHP") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.SQLITE") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.ODBC") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.MYSQL") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.POSTGRESQL"); //NOXLATE
 
-                            bool bRightSortable = leftProvider.Contains("OSGEO.SDF") ||
-                                                 leftProvider.Contains("OSGEO.SHP") ||
-                                                 leftProvider.Contains("OSGEO.SQLITE") ||
-                                                 leftProvider.Contains("OSGEO.ODBC") ||
-                                                 leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") ||
-                                                 leftProvider.Contains("OSGEO.MYSQL") ||
-                                                 leftProvider.Contains("OSGEO.POSTGRESQL");
+                            bool bRightSortable = leftProvider.Contains("OSGEO.SDF") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.SHP") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.SQLITE") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.ODBC") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.SQLSERVERSPATIAL") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.MYSQL") || //NOXLATE
+                                                 leftProvider.Contains("OSGEO.POSTGRESQL"); //NOXLATE
 
                             if (!bLeftSortable || !bRightSortable)
                             {
@@ -123,30 +123,30 @@
             string fsXml = feature.Serialize().ToUpper();
 
             //You'll get warnings either way
-            if (providerNameUpper == "OSGEO.SQLSERVERSPATIAL" ||
-                providerNameUpper == "OSGEO.MYSQL" ||
-                providerNameUpper == "OSGEO.POSTGRESQL" ||
-                providerNameUpper == "OSGEO.ARCSDE" ||
-                providerNameUpper == "OSGEO.WFS" ||
-                providerNameUpper == "OSGEO.WMS" ||
-                providerNameUpper == "KING.ORACLE" ||
-                providerNameUpper == "AUTODESK.ORACLE")
+            if (providerNameUpper == "OSGEO.SQLSERVERSPATIAL" || //NOXLATE
+                providerNameUpper == "OSGEO.MYSQL" || //NOXLATE
+                providerNameUpper == "OSGEO.POSTGRESQL" || //NOXLATE
+                providerNameUpper == "OSGEO.ARCSDE" || //NOXLATE
+                providerNameUpper == "OSGEO.WFS" || //NOXLATE
+                providerNameUpper == "OSGEO.WMS" || //NOXLATE
+                providerNameUpper == "KING.ORACLE" || //NOXLATE
+                providerNameUpper == "AUTODESK.ORACLE") //NOXLATE
             {
                 //Fortunately, all the above providers are universal in the naming choice of credential connection parameters
-                if ((fsXml.Contains("<NAME>USERNAME</NAME>") && !fsXml.Contains("%MG_USERNAME%")) || (fsXml.Contains("<NAME>PASSWORD</NAME>") && !fsXml.Contains("%MG_PASSWORD%")))
+                if ((fsXml.Contains("<NAME>USERNAME</NAME>") && !fsXml.Contains(StringConstants.MgUsernamePlaceholder)) || (fsXml.Contains("<NAME>PASSWORD</NAME>") && !fsXml.Contains(StringConstants.MgPasswordPlaceholder))) //NOXLATE
                     issues.Add(new ValidationIssue(feature, ValidationStatus.Warning, ValidationStatusCode.Warning_FeatureSource_Plaintext_Credentials, Properties.Resources.FS_PlaintextCredentials));
                 else
                     issues.Add(new ValidationIssue(feature, ValidationStatus.Warning, ValidationStatusCode.Warning_FeatureSource_Cannot_Package_Secured_Credentials, Properties.Resources.FS_CannotPackageSecuredCredentials));
 
                 //Has the placeholder token(s)
-                if (fsXml.Contains("%MG_USERNAME%") || fsXml.Contains("%MG_PASSWORD%"))
+                if (fsXml.Contains(StringConstants.MgUsernamePlaceholder) || fsXml.Contains(StringConstants.MgPasswordPlaceholder))
                 {
                     //Find the MG_USER_CREDENTIALS resource data item
                     bool bFound = false;
                     var resData = feature.EnumerateResourceData();
                     foreach (var data in resData)
                     {
-                        if (data.Name == "MG_USER_CREDENTIALS")
+                        if (data.Name == StringConstants.MgUserCredentialsResourceData)
                         {
                             bFound = true;
                         }
@@ -220,7 +220,8 @@
                 catch (Exception ex)
                 {
                     string msg = NestedExceptionMessageProcessor.GetFullMessage(ex);
-                    if (msg.Contains("MgClassNotFound")) //#1403 workaround
+                    //#1403 workaround
+                    if (msg.Contains("MgClassNotFound")) //NOXLATE
                         issues.Add(new ValidationIssue(feature, ValidationStatus.Information, ValidationStatusCode.Info_FeatureSource_NoPrimaryKey, string.Format(Properties.Resources.FS_PrimaryKeyMissingInformation, className)));
                     else
                         issues.Add(new ValidationIssue(feature, ValidationStatus.Error, ValidationStatusCode.Error_FeatureSource_SchemaReadError, string.Format(Properties.Resources.FS_SchemaReadError, msg)));
@@ -237,7 +238,7 @@
         /// <value></value>
         public ResourceTypeDescriptor SupportedResourceAndVersion
         {
-            get { return new ResourceTypeDescriptor(ResourceTypes.FeatureSource, "1.0.0"); }
+            get { return new ResourceTypeDescriptor(ResourceTypes.FeatureSource, "1.0.0"); } //NOXLATE
         }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/PrintLayoutValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/PrintLayoutValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/PrintLayoutValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -50,7 +50,7 @@
         /// <returns></returns>
         public ValidationIssue[] Validate(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidationContext.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -80,7 +80,7 @@
         {
             if (_spatialContexts.ContainsKey(resourceId))
             {
-                Trace.TraceInformation("Fetching cached spatial contexts of: " + resourceId);
+                Trace.TraceInformation("Fetching cached spatial contexts of: " + resourceId); //NOXLATE
                 return _spatialContexts[resourceId];
             }
 
@@ -99,7 +99,7 @@
         {
             if (_schemas.ContainsKey(resourceId))
             {
-                Trace.TraceInformation("Fetching cached schema of: " + resourceId);
+                Trace.TraceInformation("Fetching cached schema of: " + resourceId); //NOXLATE
                 return _schemas[resourceId];
             }
 
@@ -118,7 +118,7 @@
         {
             if (_resources.ContainsKey(resourceId))
             {
-                Trace.TraceInformation("Fetching cached copy of: " + resourceId);
+                Trace.TraceInformation("Fetching cached copy of: " + resourceId); //NOXLATE
                 return _resources[resourceId];
             }
 
@@ -140,7 +140,7 @@
             var res = _validated.ContainsKey(resourceId);
 
             if (res)
-                Trace.TraceInformation("Skipping validation: " + resourceId);
+                Trace.TraceInformation("Skipping validation: " + resourceId); //NOXLATE
 
             return res;
         }
@@ -153,7 +153,7 @@
         {
             _validated[resourceId] = resourceId;
 
-            Trace.TraceInformation("Validated: " + resourceId);
+            Trace.TraceInformation("Validated: " + resourceId); //NOXLATE
         }
 
         /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ResourceValidatorSet.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -37,7 +37,7 @@
         /// <param name="validator">The validator.</param>
         public static void RegisterValidator(IResourceValidator validator)
         {
-            Check.NotNull(validator, "validator");
+            Check.NotNull(validator, "validator"); //NOXLATE
 
             if (!m_validators.Contains(validator))
                 m_validators.Add(validator);
@@ -52,7 +52,7 @@
         /// <returns></returns>
         public static ValidationIssue[] Validate(ResourceValidationContext context, IEnumerable<IResource> items, bool recurse)
         {
-            Check.NotNull(items, "items");
+            Check.NotNull(items, "items"); //NOXLATE
             var issues = new List<ValidationIssue>();
             foreach (var item in items)
             {
@@ -71,7 +71,7 @@
         /// <returns></returns>
         public static ValidationIssue[] Validate(ResourceValidationContext context, IResource item, bool recurse)
         {
-            Check.NotNull(item, "item");
+            Check.NotNull(item, "item"); //NOXLATE
             var issueSet = new ValidationResultSet();
             if (!HasValidator(item.ResourceType, item.ResourceVersion))
             {
@@ -95,7 +95,7 @@
                         string msg = NestedExceptionMessageProcessor.GetFullMessage(ex);
                         if (ex is NullReferenceException)
                             msg = ex.ToString();
-                        issueSet.AddIssue(new ValidationIssue(item, ValidationStatus.Error, ValidationStatusCode.Error_General_ValidationError, "Failed in validator: " + msg));
+                        issueSet.AddIssue(new ValidationIssue(item, ValidationStatus.Error, ValidationStatusCode.Error_General_ValidationError, string.Format(Properties.Resources.ErrorValidationGeneric, msg)));
                     }
                 }
             }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolDefinitionValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolDefinitionValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolDefinitionValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -37,7 +37,7 @@
         /// <value></value>
         public override ResourceTypeDescriptor SupportedResourceAndVersion
         {
-            get { return new ResourceTypeDescriptor(ResourceTypes.SymbolDefinition, "1.0.0"); }
+            get { return new ResourceTypeDescriptor(ResourceTypes.SymbolDefinition, "1.0.0"); } //NOXLATE
         }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolLibraryValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolLibraryValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/SymbolLibraryValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -49,7 +49,7 @@
         /// <returns></returns>
         public ValidationIssue[] Validate(ResourceValidationContext context, IResource resource, bool recurse)
         {
-            Check.NotNull(context, "context");
+            Check.NotNull(context, "context"); //NOXLATE
 
             if (context.IsAlreadyValidated(resource.ResourceID))
                 return null;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/ValidationResultSet.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -48,7 +48,7 @@
         /// <param name="issues">The issues.</param>
         public ValidationResultSet(IEnumerable<ValidationIssue> issues) : this()
         {
-            Check.NotNull(issues, "issues");
+            Check.NotNull(issues, "issues"); //NOXLATE
 
             AddIssues(issues);
         }
@@ -69,7 +69,7 @@
         /// <returns></returns>
         public ICollection<ValidationIssue> GetIssuesForResource(string resourceId)
         {
-            Check.NotEmpty(resourceId, "resourceId");
+            Check.NotEmpty(resourceId, "resourceId"); //NOXLATE
 
             if (_issues.ContainsKey(resourceId))
                 return _issues[resourceId].Keys;
@@ -132,9 +132,9 @@
         /// <param name="issue">The issue.</param>
         public void AddIssue(ValidationIssue issue)
         {
-            Check.NotNull(issue, "issue");
-            Check.NotNull(issue.Resource, "issue.Resource");
-            Check.NotEmpty(issue.Resource.ResourceID, "issue.Resource.ResourceID");
+            Check.NotNull(issue, "issue"); //NOXLATE
+            Check.NotNull(issue.Resource, "issue.Resource"); //NOXLATE
+            Check.NotEmpty(issue.Resource.ResourceID, "issue.Resource.ResourceID"); //NOXLATE
 
             if (!_issues.ContainsKey(issue.Resource.ResourceID))
                 _issues[issue.Resource.ResourceID] = new Dictionary<ValidationIssue, ValidationIssue>();

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/WebLayoutValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/WebLayoutValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Resource/Validation/WebLayoutValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -39,7 +39,7 @@
         /// <value></value>
         public override ResourceTypeDescriptor SupportedResourceAndVersion
         {
-            get { return new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.WebLayout, "1.0.0"); }
+            get { return new ResourceTypeDescriptor(OSGeo.MapGuide.MaestroAPI.ResourceTypes.WebLayout, "1.0.0"); } //NOXLATE
         }
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ResourceTypeRegistry.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -156,16 +156,16 @@
                         //HACK: We have to peek at the XML to determine if this is simple or compound.
                         var doc = new XmlDocument();
                         doc.LoadXml(xml);
-                        if (doc.DocumentElement.Name == "SimpleSymbolDefinition")
+                        if (doc.DocumentElement.Name == "SimpleSymbolDefinition") //NOXLATE
                         {
                             return OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0.SimpleSymbolDefinition.Deserialize(xml);
                         }
                         else
                         {
-                            if (doc.DocumentElement.Name == "CompoundSymbolDefinition")
+                            if (doc.DocumentElement.Name == "CompoundSymbolDefinition") //NOXLATE
                                 return OSGeo.MapGuide.ObjectModels.SymbolDefinition_1_0_0.CompoundSymbolDefinition.Deserialize(xml);
                             else //WTF?
-                                throw new SerializationException("Could not determine symbol type"); //LOCALIZE
+                                throw new SerializationException(Properties.Resources.ErrorCouldNotDetermineSymbolType);
                         }
                     }
                 });
@@ -197,7 +197,7 @@
         public static void RegisterResource(ResourceTypeDescriptor desc, ResourceSerializer serializer)
         {
             if (_serializers.ContainsKey(desc))
-                throw new ArgumentException(string.Format(Properties.Resources.ERR_SERIALIZER_ALREADY_REGISTERED, desc.ResourceType, desc.Version), "desc");
+                throw new ArgumentException(string.Format(Properties.Resources.ERR_SERIALIZER_ALREADY_REGISTERED, desc.ResourceType, desc.Version), "desc"); //NOXLATE
 
             _serializers.Add(desc, serializer);
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/ClassDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -91,7 +91,7 @@
                 }
             }
 
-            throw new ArgumentException("Property not found: " + name); //LOCALIZEME
+            throw new ArgumentException(string.Format(MaestroAPI.Properties.Resources.ErrorPropertyNotFound, name));
         }
 
         /// <summary>
@@ -249,7 +249,7 @@
         /// <summary>
         /// Gets the qualified name of this class. The qualified name takes the form [Schema Name]:[Class Name]
         /// </summary>
-        public string QualifiedName { get { return this.Parent != null ? this.Parent.Name + ":" + this.Name : this.Name; } }
+        public string QualifiedName { get { return this.Parent != null ? this.Parent.Name + ":" + this.Name : this.Name; } } //NOXLATE
 
         /// <summary>
         /// Writes the current element's content
@@ -263,25 +263,26 @@
             var en = Utility.EncodeFDOName(this.Name);
             if (_identity.Count > 0)
             {
-                id = doc.CreateElement("xs", "element", XmlNamespaces.XS);
-                
-                id.SetAttribute("name", en); //TODO: May need encoding
-                id.SetAttribute("type", this.Parent.Name + ":" + en + "Type");
-                id.SetAttribute("abstract", this.IsAbstract.ToString().ToLower());
-                id.SetAttribute("substitutionGroup", "gml:_Feature");
+                id = doc.CreateElement("xs", "element", XmlNamespaces.XS); //NOXLATE
 
-                var key = doc.CreateElement("xs", "key", XmlNamespaces.XS);
-                key.SetAttribute("name", en + "Key");
+                //TODO: May need encoding
+                id.SetAttribute("name", en); //NOXLATE
+                id.SetAttribute("type", this.Parent.Name + ":" + en + "Type"); //NOXLATE
+                id.SetAttribute("abstract", this.IsAbstract.ToString().ToLower()); //NOXLATE
+                id.SetAttribute("substitutionGroup", "gml:_Feature"); //NOXLATE
 
-                var selector = doc.CreateElement("xs", "selector", XmlNamespaces.XS);
-                selector.SetAttribute("xpath", ".//" + en);
+                var key = doc.CreateElement("xs", "key", XmlNamespaces.XS); //NOXLATE
+                key.SetAttribute("name", en + "Key"); //NOXLATE
 
+                var selector = doc.CreateElement("xs", "selector", XmlNamespaces.XS); //NOXLATE
+                selector.SetAttribute("xpath", ".//" + en); //NOXLATE
+
                 key.AppendChild(selector);
 
                 foreach (var prop in _identity)
                 {
-                    var field = doc.CreateElement("xs", "field", XmlNamespaces.XS);
-                    field.SetAttribute("xpath", prop.Name);
+                    var field = doc.CreateElement("xs", "field", XmlNamespaces.XS); //NOXLATE
+                    field.SetAttribute("xpath", prop.Name); //NOXLATE
 
                     key.AppendChild(field);
                 }
@@ -289,33 +290,34 @@
             }
 
             //Now write class body
-            var ctype = doc.CreateElement("xs", "complexType", XmlNamespaces.XS);
-            ctype.SetAttribute("name", en + "Type"); //TODO: This may have been decoded. Should it be re-encoded?
-            ctype.SetAttribute("abstract", this.IsAbstract.ToString().ToLower());
+            var ctype = doc.CreateElement("xs", "complexType", XmlNamespaces.XS); //NOXLATE
+            //TODO: This may have been decoded. Should it be re-encoded?
+            ctype.SetAttribute("name", en + "Type"); //NOXLATE
+            ctype.SetAttribute("abstract", this.IsAbstract.ToString().ToLower()); //NOXLATE
             if (!string.IsNullOrEmpty(this.DefaultGeometryPropertyName))
             {
                 var geom = FindProperty(this.DefaultGeometryPropertyName) as GeometricPropertyDefinition;
                 if (geom != null)
                 {
-                    ctype.SetAttribute("geometryName", XmlNamespaces.FDO, geom.Name);
+                    ctype.SetAttribute("geometryName", XmlNamespaces.FDO, geom.Name); //NOXLATE
                 }
             }
             else
             {
-                ctype.SetAttribute("hasGeometry", XmlNamespaces.FDO, "false");
+                ctype.SetAttribute("hasGeometry", XmlNamespaces.FDO, "false"); //NOXLATE
             }
 
-            var cnt = doc.CreateElement("xs", "complexContent", XmlNamespaces.XS);
+            var cnt = doc.CreateElement("xs", "complexContent", XmlNamespaces.XS); //NOXLATE
             ctype.AppendChild(cnt);
 
-            var ext = doc.CreateElement("xs", "extension", XmlNamespaces.XS);
+            var ext = doc.CreateElement("xs", "extension", XmlNamespaces.XS); //NOXLATE
             if (this.BaseClass != null)
-                ext.SetAttribute("base", this.BaseClass.QualifiedName);
+                ext.SetAttribute("base", this.BaseClass.QualifiedName); //NOXLATE
             else
-                ext.SetAttribute("base", "gml:AbstractFeatureType");
+                ext.SetAttribute("base", "gml:AbstractFeatureType"); //NOXLATE
             cnt.AppendChild(ext);
 
-            var seq = doc.CreateElement("xs", "sequence", XmlNamespaces.XS);
+            var seq = doc.CreateElement("xs", "sequence", XmlNamespaces.XS); //NOXLATE
             ext.AppendChild(seq);
 
             foreach (var prop in _properties)
@@ -337,14 +339,14 @@
         public void ReadXml(XmlNode node, XmlNamespaceManager mgr)
         {
             var en = Utility.EncodeFDOName(this.Name);
- 	        var abn = node.Attributes["abstract"];
+            var abn = node.Attributes["abstract"]; //NOXLATE
             if (abn != null)
                 this.IsAbstract = Convert.ToBoolean(abn.Value);
 
             //Process properties
-            XmlNodeList propNodes = node.SelectNodes("xs:complexContent/xs:extension/xs:sequence/xs:element", mgr);
+            XmlNodeList propNodes = node.SelectNodes("xs:complexContent/xs:extension/xs:sequence/xs:element", mgr); //NOXLATE
             if (propNodes.Count == 0)
-                propNodes = node.SelectNodes("xs:sequence/xs:element", mgr);
+                propNodes = node.SelectNodes("xs:sequence/xs:element", mgr); //NOXLATE
             foreach (XmlNode propNode in propNodes)
             {
                 var prop = PropertyDefinition.Parse(propNode, mgr);
@@ -352,7 +354,7 @@
             }
 
             //Set designated geometry property
-            var geom = Utility.GetFdoAttribute(node, "geometryName");
+            var geom = Utility.GetFdoAttribute(node, "geometryName"); //NOXLATE
 
             if (geom != null)
                 this.DefaultGeometryPropertyName = geom.Value;
@@ -362,16 +364,16 @@
             //Process identity properties
             var parent = node.ParentNode;
             //This is a lower-case coerced xpath query as our encoded name for querying may not be of the correct case
-            var xpath = "xs:element[translate(@name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')=\"" + en.ToLower() + "\"]/xs:key";
+            var xpath = "xs:element[translate(@name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')=\"" + en.ToLower() + "\"]/xs:key"; //NOXLATE
             var key = parent.SelectSingleNode(xpath, mgr);
             if (key != null)
             {
-                var fields = key.SelectNodes("xs:field", mgr);
+                var fields = key.SelectNodes("xs:field", mgr); //NOXLATE
                 foreach (XmlNode f in fields)
                 {
-                    var idpropa = f.Attributes["xpath"];
+                    var idpropa = f.Attributes["xpath"]; //NOXLATE
                     if (idpropa == null)
-                        throw new Exception("Bad document. Expected attribute: xpath"); //LOCALIZEME
+                        throw new Exception(string.Format(MaestroAPI.Properties.Resources.ErrorBadDocumentExpectedAttribute, "xpath"));
 
                     var prop = FindProperty(idpropa.Value);
                     if (prop != null && prop.Type == PropertyDefinitionType.Data)

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/DataPropertyDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/DataPropertyDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/DataPropertyDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -100,27 +100,27 @@
             switch (dataPropertyType)
             {
                 case DataPropertyType.Blob:
-                    return "xs:hexBinary";
+                    return "xs:hexBinary"; //NOXLATE
                 case DataPropertyType.Boolean:
-                    return "xs:boolean";
+                    return "xs:boolean"; //NOXLATE
                 case DataPropertyType.Byte:
-                    return "xs:unsignedByte";
+                    return "xs:unsignedByte"; //NOXLATE
                 case DataPropertyType.DateTime:
-                    return "xs:dateTime";
+                    return "xs:dateTime"; //NOXLATE
                 case DataPropertyType.Double:
-                    return "xs:double";
+                    return "xs:double"; //NOXLATE
                 case DataPropertyType.Int16:
-                    return "xs:short";
+                    return "xs:short"; //NOXLATE
                 case DataPropertyType.Int32:
-                    return "xs:int";
+                    return "xs:int"; //NOXLATE
                 case DataPropertyType.Int64:
-                    return "xs:long";
+                    return "xs:long"; //NOXLATE
                 case DataPropertyType.Single:
-                    return "xs:float";
+                    return "xs:float"; //NOXLATE
                 case DataPropertyType.String:
-                    return "xs:string";
+                    return "xs:string"; //NOXLATE
                 case DataPropertyType.Clob:
-                    return "fdo:clob";
+                    return "fdo:clob"; //NOXLATE
                 default:
                     throw new ArgumentException();
             }
@@ -135,50 +135,50 @@
         {
             switch (xmlType.ToLower())
             {
-                case "xs:hexbinary":
-                case "xs:base64binary":
+                case "xs:hexbinary": //NOXLATE
+                case "xs:base64binary": //NOXLATE
                     return DataPropertyType.Blob;
-                case "xs:boolean":
+                case "xs:boolean": //NOXLATE
                     return DataPropertyType.Boolean;
-                case "fdo:byte":
-                case "xs:byte":
-                case "xs:unsignedbyte":
+                case "fdo:byte": //NOXLATE
+                case "xs:byte": //NOXLATE
+                case "xs:unsignedbyte": //NOXLATE
                     return DataPropertyType.Byte;
-                case "xs:date":
-                case "xs:datetime":
+                case "xs:date": //NOXLATE
+                case "xs:datetime": //NOXLATE
                     return DataPropertyType.DateTime;
-                case "fdo:double":
-                case "fdo:decimal":
-                case "xs:decimal":
-                case "xs:double":
+                case "fdo:double": //NOXLATE
+                case "fdo:decimal": //NOXLATE
+                case "xs:decimal": //NOXLATE
+                case "xs:double": //NOXLATE
                     return DataPropertyType.Double;
-                case "fdo:int16":
-                case "xs:int16":
-                case "xs:short":
-                case "xs:unsignedshort":
+                case "fdo:int16": //NOXLATE
+                case "xs:int16": //NOXLATE
+                case "xs:short": //NOXLATE
+                case "xs:unsignedshort": //NOXLATE
                     return DataPropertyType.Int16;
-                case "fdo:int32":
-                case "xs:int32":
-                case "xs:integer":
-                case "xs:negativeinteger":
-                case "xs:nonnegativeinteger":
-                case "xs:nonpositiveinteger":
-                case "xs:positiveinteger":
-                case "xs:unsignedint":
-                case "xs:int":
+                case "fdo:int32": //NOXLATE
+                case "xs:int32": //NOXLATE
+                case "xs:integer": //NOXLATE
+                case "xs:negativeinteger": //NOXLATE
+                case "xs:nonnegativeinteger": //NOXLATE
+                case "xs:nonpositiveinteger": //NOXLATE
+                case "xs:positiveinteger": //NOXLATE
+                case "xs:unsignedint": //NOXLATE
+                case "xs:int": //NOXLATE
                     return DataPropertyType.Int32;
-                case "fdo:int64":
-                case "xs:int64":
-                case "xs:long":
-                case "xs:unsignedlong":
+                case "fdo:int64": //NOXLATE
+                case "xs:int64": //NOXLATE
+                case "xs:long": //NOXLATE
+                case "xs:unsignedlong": //NOXLATE
                     return DataPropertyType.Int64;
-                case "xs:float":
-                case "xs:single":
-                case "fdo:single":
+                case "xs:float": //NOXLATE
+                case "xs:single": //NOXLATE
+                case "fdo:single": //NOXLATE
                     return DataPropertyType.Single;
-                case "xs:string":
+                case "xs:string": //NOXLATE
                     return DataPropertyType.String;
-                case "fdo:clob":
+                case "fdo:clob": //NOXLATE
                     return DataPropertyType.Clob;
                 default:
                     throw new ArgumentException();
@@ -194,25 +194,25 @@
         {
             var en = Utility.EncodeFDOName(this.Name);
 
-            var prop = doc.CreateElement("xs", "element", XmlNamespaces.XS);
-            prop.SetAttribute("name", en);
-            prop.SetAttribute("minOccurs", this.IsNullable ? "0" : "1");
+            var prop = doc.CreateElement("xs", "element", XmlNamespaces.XS); //NOXLATE
+            prop.SetAttribute("name", en); //NOXLATE
+            prop.SetAttribute("minOccurs", this.IsNullable ? "0" : "1"); //NOXLATE
             if (this.IsReadOnly)
-                prop.SetAttribute("readOnly", XmlNamespaces.FDO, this.IsReadOnly.ToString().ToLower());
+                prop.SetAttribute("readOnly", XmlNamespaces.FDO, this.IsReadOnly.ToString().ToLower()); //NOXLATE
             if (this.IsAutoGenerated)
-                prop.SetAttribute("autogenerated", XmlNamespaces.FDO, this.IsAutoGenerated.ToString().ToLower());
+                prop.SetAttribute("autogenerated", XmlNamespaces.FDO, this.IsAutoGenerated.ToString().ToLower()); //NOXLATE
 
-            var simp = doc.CreateElement("xs", "simpleType", XmlNamespaces.XS);
+            var simp = doc.CreateElement("xs", "simpleType", XmlNamespaces.XS); //NOXLATE
             prop.AppendChild(simp);
 
-            var rest = doc.CreateElement("xs", "restriction", XmlNamespaces.XS);
+            var rest = doc.CreateElement("xs", "restriction", XmlNamespaces.XS); //NOXLATE
             simp.AppendChild(rest);
 
-            rest.SetAttribute("base", GetXmlType(this.DataType));
+            rest.SetAttribute("base", GetXmlType(this.DataType)); //NOXLATE
             if (this.DataType == DataPropertyType.String)
             {
-                var max = doc.CreateElement("xs", "maxLength", XmlNamespaces.XS);
-                max.SetAttribute("value", this.Length.ToString(CultureInfo.InvariantCulture));
+                var max = doc.CreateElement("xs", "maxLength", XmlNamespaces.XS); //NOXLATE
+                max.SetAttribute("value", this.Length.ToString(CultureInfo.InvariantCulture)); //NOXLATE
 
                 rest.AppendChild(max);
             }
@@ -227,14 +227,14 @@
         /// <param name="mgr"></param>
         public override void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            var ro = Utility.GetFdoAttribute(node, "readOnly");
-            var autogen = Utility.GetFdoAttribute(node, "autogenerated");
+            var ro = Utility.GetFdoAttribute(node, "readOnly"); //NOXLATE
+            var autogen = Utility.GetFdoAttribute(node, "autogenerated"); //NOXLATE
 
-            this.DataType = GetDataType(node["xs:simpleType"]["xs:restriction"].Attributes["base"].Value.ToLower());
-            this.IsNullable = (node.Attributes["minOccurs"] != null && node.Attributes["minOccurs"].Value == "0");
-            this.IsReadOnly = (ro != null && ro.Value == "true");
-            this.IsAutoGenerated = (autogen != null && autogen.Value == "true");
-            this.DefaultValue = (node.Attributes["default"] != null ? node.Attributes["default"].Value : string.Empty);
+            this.DataType = GetDataType(node["xs:simpleType"]["xs:restriction"].Attributes["base"].Value.ToLower()); //NOXLATE
+            this.IsNullable = (node.Attributes["minOccurs"] != null && node.Attributes["minOccurs"].Value == "0"); //NOXLATE
+            this.IsReadOnly = (ro != null && ro.Value == "true"); //NOXLATE
+            this.IsAutoGenerated = (autogen != null && autogen.Value == "true"); //NOXLATE
+            this.DefaultValue = (node.Attributes["default"] != null ? node.Attributes["default"].Value : string.Empty); //NOXLATE
         }
 
         /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/FeatureSchema.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/FeatureSchema.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/FeatureSchema.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -126,13 +126,13 @@
         /// <param name="currentNode"></param>
         public void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
         {
-            var schema = doc.CreateElement("xs", "schema", XmlNamespaces.XS);
-            schema.SetAttribute("xmlns:xs", XmlNamespaces.XS);
-            schema.SetAttribute("targetNamespace", XmlNamespaces.FDO  + "/feature/" + this.Name);
-            schema.SetAttribute("xmlns:fdo", XmlNamespaces.FDO);
-            schema.SetAttribute("xmlns:" + this.Name, XmlNamespaces.FDO + "/feature/" + this.Name);
-            schema.SetAttribute("elementFormDefault", "qualified");
-            schema.SetAttribute("attributeFormDefault", "unqualified");
+            var schema = doc.CreateElement("xs", "schema", XmlNamespaces.XS); //NOXLATE
+            schema.SetAttribute("xmlns:xs", XmlNamespaces.XS); //NOXLATE
+            schema.SetAttribute("targetNamespace", XmlNamespaces.FDO + "/feature/" + this.Name); //NOXLATE
+            schema.SetAttribute("xmlns:fdo", XmlNamespaces.FDO); //NOXLATE
+            schema.SetAttribute("xmlns:" + this.Name, XmlNamespaces.FDO + "/feature/" + this.Name); //NOXLATE
+            schema.SetAttribute("elementFormDefault", "qualified"); //NOXLATE
+            schema.SetAttribute("attributeFormDefault", "unqualified"); //NOXLATE
 
             foreach (var cls in this.Classes)
             {
@@ -149,14 +149,14 @@
         /// <param name="mgr"></param>
         public void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            if (!node.Name.Equals("xs:schema"))
-                throw new Exception("Bad document. Expected element: xs:schema"); //LOCALIZEME
+            if (!node.Name.Equals("xs:schema")) //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "xs:schema"));
 
             var tns = node.Attributes["targetNamespace"];
             if (tns == null)
-                throw new Exception("Bad document. Expected attribute: targetNamespace"); //LOCALIZEME
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "targetNamespace"));
 
-            int lidx = tns.Value.LastIndexOf("/") + 1;
+            int lidx = tns.Value.LastIndexOf("/") + 1; //NOXLATE
             this.Name = tns.Value.Substring(lidx);
 
             //TODO: Description
@@ -164,14 +164,14 @@
             //Now handle classes
             if (node.ChildNodes.Count > 0)
             {
-                XmlNodeList clsNodes = node.SelectNodes("xs:complexType", mgr);
+                XmlNodeList clsNodes = node.SelectNodes("xs:complexType", mgr); //NOXLATE
                 foreach (XmlNode clsNode in clsNodes)
                 {
-                    var nn = clsNode.Attributes["name"];
+                    var nn = clsNode.Attributes["name"]; //NOXLATE
                     if (nn == null)
-                        throw new Exception("Bad document. Expected attribute: name"); //LOCALIZEME
+                        throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "name")); //NOXLATE
 
-                    string name = Utility.DecodeFDOName(nn.Value.Substring(0, nn.Value.Length - "Type".Length));
+                    string name = Utility.DecodeFDOName(nn.Value.Substring(0, nn.Value.Length - "Type".Length)); //NOXLATE
                     ClassDefinition cls = new ClassDefinition(name, string.Empty); //TODO: Description
                     cls.ReadXml(clsNode, mgr);
                     this.AddClass(cls);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/FeatureSourceDescription.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/FeatureSourceDescription.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/FeatureSourceDescription.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -30,10 +30,10 @@
     {
     }
 
-	/// <summary>
-	/// Class that represents a the layout of a feature source
-	/// </summary>
-	public class FeatureSourceDescription
+    /// <summary>
+    /// Class that represents a the layout of a feature source
+    /// </summary>
+    public class FeatureSourceDescription
     {
         /// <summary>
         /// Initializes a new instance of the <see cref="FeatureSourceDescription"/> class.
@@ -47,14 +47,14 @@
             doc.Load(stream);
 
             XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
-            mgr.AddNamespace("xs", XmlNamespaces.XS);
-            mgr.AddNamespace("gml", XmlNamespaces.GML);
-            mgr.AddNamespace("fdo", XmlNamespaces.FDO);
+            mgr.AddNamespace("xs", XmlNamespaces.XS); //NOXLATE
+            mgr.AddNamespace("gml", XmlNamespaces.GML); //NOXLATE
+            mgr.AddNamespace("fdo", XmlNamespaces.FDO); //NOXLATE
 
             //Assume XML configuration document
-            XmlNodeList schemaNodes = doc.SelectNodes("fdo:DataStore/xs:schema", mgr);
+            XmlNodeList schemaNodes = doc.SelectNodes("fdo:DataStore/xs:schema", mgr); //NOXLATE
             if (schemaNodes.Count == 0) //Then assume FDO schema
-                schemaNodes = doc.SelectNodes("xs:schema", mgr);
+                schemaNodes = doc.SelectNodes("xs:schema", mgr); //NOXLATE
 
             foreach (XmlNode sn in schemaNodes)
             {
@@ -171,10 +171,10 @@
         /// <returns>The matching class definition. null if not found</returns>
         public ClassDefinition GetClass(string qualifiedName)
         {
-            Check.NotEmpty(qualifiedName, "qualifiedName");
-            var tokens = qualifiedName.Split(':');
+            Check.NotEmpty(qualifiedName, "qualifiedName"); //NOXLATE
+            var tokens = qualifiedName.Split(':'); //NOXLATE
             if (tokens.Length != 2)
-                throw new ArgumentException("Not a qualified class name: " + qualifiedName); //LOCALIZEME
+                throw new ArgumentException(string.Format(Properties.Resources.ErrorNotAQualifiedClassName, qualifiedName));
 
             return GetClass(tokens[0], tokens[1]);
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/GeometricPropertyDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/GeometricPropertyDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/GeometricPropertyDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -271,15 +271,16 @@
         {
             var en = Utility.EncodeFDOName(this.Name);
 
-            var geom = doc.CreateElement("xs", "element", XmlNamespaces.XS);
-            geom.SetAttribute("name", en); //TODO: This may have been decoded. Should it be re-encoded?
-            geom.SetAttribute("type", "gml:AbstractGeometryType");
-            geom.SetAttribute("hasMeasure", XmlNamespaces.FDO, this.HasMeasure.ToString().ToLower());
-            geom.SetAttribute("hasElevation", XmlNamespaces.FDO, this.HasElevation.ToString().ToLower());
-            geom.SetAttribute("srsName", XmlNamespaces.FDO, this.SpatialContextAssociation);
-            geom.SetAttribute("geometricTypes", XmlNamespaces.FDO, GeometricTypesToString());
-            geom.SetAttribute("geometryTypes", XmlNamespaces.FDO, GeometryTypesToString());
-            geom.SetAttribute("geometryReadOnly", XmlNamespaces.FDO, this.IsReadOnly.ToString().ToLower());
+            var geom = doc.CreateElement("xs", "element", XmlNamespaces.XS); //NOXLATE
+            //TODO: This may have been decoded. Should it be re-encoded?
+            geom.SetAttribute("name", en); //NOXLATE
+            geom.SetAttribute("type", "gml:AbstractGeometryType"); //NOXLATE
+            geom.SetAttribute("hasMeasure", XmlNamespaces.FDO, this.HasMeasure.ToString().ToLower()); //NOXLATE
+            geom.SetAttribute("hasElevation", XmlNamespaces.FDO, this.HasElevation.ToString().ToLower()); //NOXLATE
+            geom.SetAttribute("srsName", XmlNamespaces.FDO, this.SpatialContextAssociation); //NOXLATE
+            geom.SetAttribute("geometricTypes", XmlNamespaces.FDO, GeometricTypesToString()); //NOXLATE
+            geom.SetAttribute("geometryTypes", XmlNamespaces.FDO, GeometryTypesToString()); //NOXLATE
+            geom.SetAttribute("geometryReadOnly", XmlNamespaces.FDO, this.IsReadOnly.ToString().ToLower()); //NOXLATE
 
             currentNode.AppendChild(geom);
         }
@@ -291,12 +292,12 @@
         /// <param name="mgr"></param>
         public override void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            var gt = Utility.GetFdoAttribute(node, "geometricTypes");
-            var gt2 = Utility.GetFdoAttribute(node, "geometryTypes");
-            var gtro = Utility.GetFdoAttribute(node, "geometryReadOnly");
-            var hms = Utility.GetFdoAttribute(node, "hasMeasure");
-            var hev = Utility.GetFdoAttribute(node, "hasElevation");
-            var srs = Utility.GetFdoAttribute(node, "srsName");
+            var gt = Utility.GetFdoAttribute(node, "geometricTypes"); //NOXLATE
+            var gt2 = Utility.GetFdoAttribute(node, "geometryTypes"); //NOXLATE
+            var gtro = Utility.GetFdoAttribute(node, "geometryReadOnly"); //NOXLATE
+            var hms = Utility.GetFdoAttribute(node, "hasMeasure"); //NOXLATE
+            var hev = Utility.GetFdoAttribute(node, "hasElevation"); //NOXLATE
+            var srs = Utility.GetFdoAttribute(node, "srsName"); //NOXLATE
 
             this.GeometricTypes = ProcessGeometricTypes(gt.Value);
             if (gt2 != null)
@@ -320,7 +321,7 @@
             {
                 values.Add(gt.ToString().ToLower());
             }
-            return string.Join(" ", values.ToArray());
+            return string.Join(" ", values.ToArray()); //NOXLATE
         }
 
         /// <summary>
@@ -367,37 +368,37 @@
             {
                 switch (t)
                 {
-                    case "curvepolygon":
+                    case "curvepolygon": //NOXLATE
                         values.Add(SpecificGeometryType.CurvePolygon);
                         break;
-                    case "curvestring":
+                    case "curvestring": //NOXLATE
                         values.Add(SpecificGeometryType.CurveString);
                         break;
-                    case "linestring":
+                    case "linestring": //NOXLATE
                         values.Add(SpecificGeometryType.LineString);
                         break;
-                    case "multicurvepolygon":
+                    case "multicurvepolygon": //NOXLATE
                         values.Add(SpecificGeometryType.MultiCurvePolygon);
                         break;
-                    case "multicurvestring":
+                    case "multicurvestring": //NOXLATE
                         values.Add(SpecificGeometryType.MultiCurveString);
                         break;
-                    case "multigeometry":
+                    case "multigeometry": //NOXLATE
                         values.Add(SpecificGeometryType.MultiGeometry);
                         break;
-                    case "multilinestring":
+                    case "multilinestring": //NOXLATE
                         values.Add(SpecificGeometryType.MultiLineString);
                         break;
-                    case "multipoint":
+                    case "multipoint": //NOXLATE
                         values.Add(SpecificGeometryType.MultiPoint);
                         break;
-                    case "multipolygon":
+                    case "multipolygon": //NOXLATE
                         values.Add(SpecificGeometryType.MultiPolygon);
                         break;
-                    case "point":
+                    case "point": //NOXLATE
                         values.Add(SpecificGeometryType.Point);
                         break;
-                    case "polygon":
+                    case "polygon": //NOXLATE
                         values.Add(SpecificGeometryType.Polygon);
                         break;
                 }
@@ -408,12 +409,12 @@
         private static FeatureGeometricType ProcessGeometricTypes(string p)
         {
             FeatureGeometricType? gt = null;
-            string[] tokens = p.ToLower().Split(' ');
+            string[] tokens = p.ToLower().Split(' '); //NOXLATE
             foreach (string str in tokens)
             {
                 switch (str)
                 {
-                    case "point":
+                    case "point": //NOXLATE
                         {
                             if (gt.HasValue)
                                 gt = gt.Value | FeatureGeometricType.Point;
@@ -421,7 +422,7 @@
                                 gt = FeatureGeometricType.Point;
                         }
                         break;
-                    case "curve":
+                    case "curve": //NOXLATE
                         {
                             if (gt.HasValue)
                                 gt = gt.Value | FeatureGeometricType.Curve;
@@ -429,7 +430,7 @@
                                 gt = FeatureGeometricType.Curve;
                         }
                         break;
-                    case "surface":
+                    case "surface": //NOXLATE
                         {
                             if (gt.HasValue)
                                 gt = gt.Value | FeatureGeometricType.Surface;
@@ -437,7 +438,7 @@
                                 gt = FeatureGeometricType.Surface;
                         }
                         break;
-                    case "solid":
+                    case "solid": //NOXLATE
                         {
                             if (gt.HasValue)
                                 gt = gt.Value | FeatureGeometricType.Solid;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/PropertyDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/PropertyDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/PropertyDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -208,30 +208,30 @@
         public static PropertyDefinition Parse(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
             PropertyDefinition prop = null;
-            var nn = node.Attributes["name"];
-            var nulln = node.Attributes["minOccurs"];
+            var nn = node.Attributes["name"]; //NOXLATE
+            var nulln = node.Attributes["minOccurs"]; //NOXLATE
 
             string name = Utility.DecodeFDOName(nn.Value);
             string desc = string.Empty;
 
-            if (node.Attributes["type"] != null && node.Attributes["type"].Value == "gml:AbstractGeometryType")
+            if (node.Attributes["type"] != null && node.Attributes["type"].Value == "gml:AbstractGeometryType") //NOXLATE
             {
                 prop = new GeometricPropertyDefinition(name, desc);
             }
-            else if (node["xs:simpleType"] == null)
+            else if (node["xs:simpleType"] == null) //NOXLATE
             {
                 prop = new RasterPropertyDefinition(name, desc);
             }
             else
             {
-                if (node["xs:simpleType"] != null)
+                if (node["xs:simpleType"] != null) //NOXLATE
                     prop = new DataPropertyDefinition(name, desc);
             }
 
             if (prop != null)
                 prop.ReadXml(node, mgr);
             else
-                throw new NotSupportedException("Unrecognized element. Only a subset of the FDO logical schema is supported here"); //LOCALIZEME
+                throw new NotSupportedException(Properties.Resources.ErrorUnsupporteFdoSchemaXml);
 
             return prop;
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/RasterPropertyDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/RasterPropertyDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/RasterPropertyDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -82,12 +82,13 @@
         {
             var en = Utility.EncodeFDOName(this.Name);
 
-            var geom = doc.CreateElement("xs", "element", XmlNamespaces.XS);
-            geom.SetAttribute("name", en); //TODO: This may have been decoded. Should it be re-encoded?
-            geom.SetAttribute("type", "fdo:RasterPropertyType");
-            geom.SetAttribute("defaultImageXSize", XmlNamespaces.FDO, this.DefaultImageXSize.ToString());
-            geom.SetAttribute("defaultImageYSize", XmlNamespaces.FDO, this.DefaultImageYSize.ToString());
-            geom.SetAttribute("srsName", XmlNamespaces.FDO, this.SpatialContextAssociation);
+            var geom = doc.CreateElement("xs", "element", XmlNamespaces.XS); //NOXLATE
+            //TODO: This may have been decoded. Should it be re-encoded?
+            geom.SetAttribute("name", en); //NOXLATE
+            geom.SetAttribute("type", "fdo:RasterPropertyType"); //NOXLATE
+            geom.SetAttribute("defaultImageXSize", XmlNamespaces.FDO, this.DefaultImageXSize.ToString()); //NOXLATE
+            geom.SetAttribute("defaultImageYSize", XmlNamespaces.FDO, this.DefaultImageYSize.ToString()); //NOXLATE
+            geom.SetAttribute("srsName", XmlNamespaces.FDO, this.SpatialContextAssociation); //NOXLATE
 
             currentNode.AppendChild(geom);
         }
@@ -99,18 +100,18 @@
         /// <param name="mgr"></param>
         public override void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            var dix = Utility.GetFdoAttribute(node, "defaultImageXSize");
-            var diy = Utility.GetFdoAttribute(node, "defaultImageYSize");
-            var srs = Utility.GetFdoAttribute(node, "srsName");
-            var ro = Utility.GetFdoAttribute(node, "readOnly");
+            var dix = Utility.GetFdoAttribute(node, "defaultImageXSize"); //NOXLATE
+            var diy = Utility.GetFdoAttribute(node, "defaultImageYSize"); //NOXLATE
+            var srs = Utility.GetFdoAttribute(node, "srsName"); //NOXLATE
+            var ro = Utility.GetFdoAttribute(node, "readOnly"); //NOXLATE
 
             this.DefaultImageXSize = Convert.ToInt32(dix.Value);
             this.DefaultImageYSize = Convert.ToInt32(diy.Value);
 
             //TODO: Just copypasta'd from DataPropertyDefinition assuming the same attributes would be used 
             //to indicate nullability and read-only states. Would be nice to verify with an actual example property
-            this.IsNullable = (node.Attributes["minOccurs"] != null && node.Attributes["minOccurs"].Value == "0");
-            this.IsReadOnly = (ro != null && ro.Value == "true");
+            this.IsNullable = (node.Attributes["minOccurs"] != null && node.Attributes["minOccurs"].Value == "0"); //NOXLATE
+            this.IsReadOnly = (ro != null && ro.Value == "true"); //NOXLATE
 
             this.SpatialContextAssociation = (srs != null ? srs.Value : string.Empty);
         }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/XmlNamespaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/XmlNamespaces.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Schema/XmlNamespaces.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -31,26 +31,26 @@
         /// <summary>
         /// XML Schema namespace
         /// </summary>
-        public const string XS = "http://www.w3.org/2001/XMLSchema";
+        public const string XS = "http://www.w3.org/2001/XMLSchema"; //NOXLATE
         /// <summary>
         /// XML Schema Instance namespace
         /// </summary>
-        public const string XSI = "http://www.w3.org/2001/XMLSchema-instance";
+        public const string XSI = "http://www.w3.org/2001/XMLSchema-instance"; //NOXLATE
         /// <summary>
         /// XLink namespace
         /// </summary>
-        public const string XLINK = "http://www.w3.org/1999/xlink";
+        public const string XLINK = "http://www.w3.org/1999/xlink"; //NOXLATE
         /// <summary>
         /// GML (Geography Markup Language) namespace
         /// </summary>
-        public const string GML = "http://www.opengis.net/gml";
+        public const string GML = "http://www.opengis.net/gml"; //NOXLATE
         /// <summary>
         /// FDO (Feature Data Objects) namespace
         /// </summary>
-        public const string FDO = "http://fdo.osgeo.org/schemas";
+        public const string FDO = "http://fdo.osgeo.org/schemas"; //NOXLATE
         /// <summary>
         /// FDS namespace
         /// </summary>
-        public const string FDS = "http://fdo.osgeo.org/schemas/fds";
+        public const string FDS = "http://fdo.osgeo.org/schemas/fds"; //NOXLATE
     }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/ConfigurationDocument.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/ConfigurationDocument.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/ConfigurationDocument.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -149,13 +149,13 @@
         /// <param name="currentNode"></param>
         public virtual void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
         {
-            var dstore = doc.CreateElement("fdo", "DataStore", XmlNamespaces.FDO);
-            dstore.SetAttribute("xmlns:xs", XmlNamespaces.XS);
-            dstore.SetAttribute("xmlns:xsi", XmlNamespaces.XSI);
-            dstore.SetAttribute("xmlns:xlink", XmlNamespaces.XLINK);
-            dstore.SetAttribute("xmlns:gml", XmlNamespaces.GML);
-            dstore.SetAttribute("xmlns:fdo", XmlNamespaces.FDO);
-            dstore.SetAttribute("xmlns:fds", XmlNamespaces.FDS);
+            var dstore = doc.CreateElement("fdo", "DataStore", XmlNamespaces.FDO); //NOXLATE
+            dstore.SetAttribute("xmlns:xs", XmlNamespaces.XS); //NOXLATE
+            dstore.SetAttribute("xmlns:xsi", XmlNamespaces.XSI); //NOXLATE
+            dstore.SetAttribute("xmlns:xlink", XmlNamespaces.XLINK); //NOXLATE
+            dstore.SetAttribute("xmlns:gml", XmlNamespaces.GML); //NOXLATE
+            dstore.SetAttribute("xmlns:fdo", XmlNamespaces.FDO); //NOXLATE
+            dstore.SetAttribute("xmlns:fds", XmlNamespaces.FDS); //NOXLATE
             foreach (var sc in _spatialContexts)
             {
                 sc.WriteXml(doc, dstore);
@@ -190,13 +190,13 @@
         /// <param name="mgr"></param>
         public void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            if (!node.Name.Equals("fdo:DataStore"))
-                throw new Exception("Bad document. Expected element fdo:DataStore"); //LOCALIZEME
+            if (!node.Name.Equals("fdo:DataStore")) //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "fdo:DataStore")); //NOXLATE
 
             _spatialContexts.Clear();
             _schemas.Clear();
 
-            XmlNodeList csNodes = node.SelectNodes("gml:DerivedCRS", mgr);
+            XmlNodeList csNodes = node.SelectNodes("gml:DerivedCRS", mgr); //NOXLATE
             foreach (XmlNode cs in csNodes)
             {
                 var context = new FdoSpatialContextListSpatialContext();
@@ -205,7 +205,7 @@
                 AddSpatialContext(context);
             }
 
-            XmlNodeList schemaNodes = node.SelectNodes("xs:schema", mgr);
+            XmlNodeList schemaNodes = node.SelectNodes("xs:schema", mgr); //NOXLATE
             foreach (XmlNode sn in schemaNodes)
             {
                 FeatureSchema fs = new FeatureSchema();
@@ -237,16 +237,16 @@
             XmlDocument doc = new XmlDocument();
             doc.LoadXml(xml);
             var mgr = new XmlNamespaceManager(doc.NameTable);
-            mgr.AddNamespace("xs", XmlNamespaces.XS);
-            mgr.AddNamespace("xsi", XmlNamespaces.XSI);
-            mgr.AddNamespace("fdo", XmlNamespaces.FDO);
-            mgr.AddNamespace("gml", XmlNamespaces.GML);
-            mgr.AddNamespace("xlink", XmlNamespaces.XLINK);
-            mgr.AddNamespace("fds", XmlNamespaces.FDS);
+            mgr.AddNamespace("xs", XmlNamespaces.XS); //NOXLATE
+            mgr.AddNamespace("xsi", XmlNamespaces.XSI); //NOXLATE
+            mgr.AddNamespace("fdo", XmlNamespaces.FDO); //NOXLATE
+            mgr.AddNamespace("gml", XmlNamespaces.GML); //NOXLATE
+            mgr.AddNamespace("xlink", XmlNamespaces.XLINK); //NOXLATE
+            mgr.AddNamespace("fds", XmlNamespaces.FDS); //NOXLATE
 
             ConfigurationDocument conf = null;
             var root = doc.DocumentElement;
-            if (root == null || root.Name != "fdo:DataStore")
+            if (root == null || root.Name != "fdo:DataStore") //NOXLATE
                 return null;
 
             //Sample the first schema mapping node. Even if there are multiples
@@ -255,16 +255,16 @@
             //NOTE: Why does the XPath query (commented out) fail? 
 
             var map = root.LastChild; //root.SelectSingleNode("SchemaMapping"); 
-            if (map != null && map.Name == "SchemaMapping")
+            if (map != null && map.Name == "SchemaMapping") //NOXLATE
             {
-                var prov = map.Attributes["provider"];
+                var prov = map.Attributes["provider"]; //NOXLATE
                 if (prov != null)
                 {
-                    if (prov.Value.StartsWith("OSGeo.ODBC"))
+                    if (prov.Value.StartsWith("OSGeo.ODBC")) //NOXLATE
                         conf = new OdbcConfigurationDocument();
-                    else if (prov.Value.StartsWith("OSGeo.Gdal"))
+                    else if (prov.Value.StartsWith("OSGeo.Gdal")) //NOXLATE
                         conf = new GdalConfigurationDocument();
-                    else if (prov.Value.StartsWith("OSGeo.WMS"))
+                    else if (prov.Value.StartsWith("OSGeo.WMS")) //NOXLATE
                         conf = new WmsConfigurationDocument();
                     else
                         conf = new GenericConfigurationDocument();
@@ -273,7 +273,7 @@
 
             if (conf != null)
             {
-                conf.ReadXml(doc.SelectSingleNode("fdo:DataStore", mgr), mgr);
+                conf.ReadXml(doc.SelectSingleNode("fdo:DataStore", mgr), mgr); //NOXLATE
                 return conf;
             }
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/GdalConfigurationDocument.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/GdalConfigurationDocument.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/GdalConfigurationDocument.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -101,24 +101,24 @@
         {
             foreach (var schema in base._schemas)
             {
-                var map = doc.CreateElement("SchemaMapping");
-                map.SetAttribute("provider", "OSGeo.Gdal.3.2");
-                map.SetAttribute("xmlns", "http://fdogrfp.osgeo.org/schemas");
-                map.SetAttribute("name", schema.Name);
+                var map = doc.CreateElement("SchemaMapping"); //NOXLATE
+                map.SetAttribute("provider", "OSGeo.Gdal.3.2"); //NOXLATE
+                map.SetAttribute("xmlns", "http://fdogrfp.osgeo.org/schemas"); //NOXLATE
+                map.SetAttribute("name", schema.Name); //NOXLATE
                 {
-                    var ctype = doc.CreateElement("complexType");
-                    var ctypeName = doc.CreateAttribute("name");
-                    ctypeName.Value = schema.Name + "Type";
+                    var ctype = doc.CreateElement("complexType"); //NOXLATE
+                    var ctypeName = doc.CreateAttribute("name"); //NOXLATE
+                    ctypeName.Value = schema.Name + "Type"; //NOXLATE
                     ctype.Attributes.Append(ctypeName);
                     {
-                        var rasType = doc.CreateElement("complexType");
-                        var rasTypeName = doc.CreateAttribute("name");
-                        rasTypeName.Value = "RasterTypeType";
+                        var rasType = doc.CreateElement("complexType"); //NOXLATE
+                        var rasTypeName = doc.CreateAttribute("name"); //NOXLATE
+                        rasTypeName.Value = "RasterTypeType"; //NOXLATE
                         rasType.Attributes.Append(rasTypeName);
                         {
-                            var rasDef = doc.CreateElement("RasterDefinition");
-                            var rasDefName = doc.CreateAttribute("name");
-                            rasDefName.Value = "images";
+                            var rasDef = doc.CreateElement("RasterDefinition"); //NOXLATE
+                            var rasDefName = doc.CreateAttribute("name"); //NOXLATE
+                            rasDefName.Value = "images"; //NOXLATE
                             rasDef.Attributes.Append(rasDefName);
 
                             foreach (var loc in _items.Values)
@@ -145,27 +145,27 @@
             //XmlNodeList mappings = node.SelectNodes("SchemaMapping");
             foreach (XmlNode map in node.ChildNodes)
             {
-                if (map.Name != "SchemaMapping")
+                if (map.Name != "SchemaMapping") //NOXLATE
                     continue;
 
-                var prv = map.Attributes["provider"];
+                var prv = map.Attributes["provider"]; //NOXLATE
                 if (prv == null)
-                    throw new Exception("Bad document. Expected attribute: provider"); //LOCALIZEME
+                    throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "provider"));
 
-                var sn = map.Attributes["name"];
+                var sn = map.Attributes["name"]; //NOXLATE
                 if (sn == null)
-                    throw new Exception("Bad document. Expected attribute: name"); //LOCALIZEME
+                    throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "name"));
 
-                if (!prv.Value.StartsWith("OSGeo.Gdal"))
+                if (!prv.Value.StartsWith("OSGeo.Gdal")) //NOXLATE
                     continue;
 
                 //XmlNodeList list = map.SelectNodes("complexType");
                 foreach (XmlNode schemaMap in map.ChildNodes)
                 {
-                    if (schemaMap.Name != "complexType")
+                    if (schemaMap.Name != "complexType") //NOXLATE
                         continue;
 
-                    var schemaName = schemaMap.Attributes["name"].Value;
+                    var schemaName = schemaMap.Attributes["name"].Value; //NOXLATE
                     schemaName = schemaName.Substring(0, schemaName.Length - 4);
                     if (!SchemaExists(schemaName))
                         continue;
@@ -173,11 +173,11 @@
                     var rasterType = schemaMap.FirstChild;
                     var rasterDef = rasterType.FirstChild;
 
-                    if (rasterType.Name != "complexType")
-                        throw new Exception("Bad document. Expected element: complexType");
+                    if (rasterType.Name != "complexType") //NOXLATE
+                        throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "complexType"));
 
-                    if (rasterDef.Name != "RasterDefinition")
-                        throw new Exception("Bad document. Expected element: RasterDefinition");
+                    if (rasterDef.Name != "RasterDefinition") //NOXLATE
+                        throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "RasterDefinition"));
 
                     foreach (XmlNode loc in rasterDef.ChildNodes)
                     {

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/GdalRasterItem.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/GdalRasterItem.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/GdalRasterItem.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -90,8 +90,8 @@
         /// <param name="currentNode"></param>
         public void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
         {
-            var loc = doc.CreateElement("Location");
-            var locName = doc.CreateAttribute("name");
+            var loc = doc.CreateElement("Location"); //NOXLATE
+            var locName = doc.CreateAttribute("name"); //NOXLATE
             locName.Value = this.Location;
             loc.Attributes.Append(locName);
 
@@ -110,10 +110,10 @@
         /// <param name="mgr"></param>
         public void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            if (node.Name != "Location")
-                throw new Exception("Bad document. Expected element: Location");
+            if (node.Name != "Location") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "Location")); //NOXLATE
 
-            var loc = node.Attributes["name"];
+            var loc = node.Attributes["name"]; //NOXLATE
             this.Location = loc.Value;
 
             foreach (System.Xml.XmlNode item in node.ChildNodes)
@@ -172,33 +172,33 @@
         /// <param name="currentNode"></param>
         public void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
         {
-            var feat = doc.CreateElement("Feature");
+            var feat = doc.CreateElement("Feature"); //NOXLATE
 
-            var featName = doc.CreateAttribute("name");
+            var featName = doc.CreateAttribute("name"); //NOXLATE
             featName.Value = Path.GetFileNameWithoutExtension(this.FileName);
 
             feat.Attributes.Append(featName);
             {
-                var band = doc.CreateElement("Band");
-                var bandName = doc.CreateAttribute("name");
-                bandName.Value = "RGB";
-                var bandNo = doc.CreateAttribute("number");
-                bandNo.Value = "1";
+                var band = doc.CreateElement("Band"); //NOXLATE
+                var bandName = doc.CreateAttribute("name"); //NOXLATE
+                bandName.Value = "RGB"; //NOXLATE
+                var bandNo = doc.CreateAttribute("number"); //NOXLATE
+                bandNo.Value = "1"; //NOXLATE
 
                 band.Attributes.Append(bandName);
                 band.Attributes.Append(bandNo);
                 {
-                    var img = doc.CreateElement("Image");
-                    var imgFrame = doc.CreateAttribute("frame");
-                    imgFrame.Value = "1";
-                    var imgName = doc.CreateAttribute("name");
+                    var img = doc.CreateElement("Image"); //NOXLATE
+                    var imgFrame = doc.CreateAttribute("frame"); //NOXLATE
+                    imgFrame.Value = "1"; //NOXLATE
+                    var imgName = doc.CreateAttribute("name"); //NOXLATE
                     imgName.Value = this.FileName;
 
                     img.Attributes.Append(imgFrame);
                     img.Attributes.Append(imgName);
                     {
-                        var bounds = doc.CreateElement("Bounds");
-                        bounds.InnerXml = string.Format(CultureInfo.InvariantCulture, "<MinX>{0}</MinX><MinY>{1}</MinY><MaxX>{2}</MaxX><MaxY>{3}</MaxY>", this.MinX, this.MinY, this.MaxX, this.MaxY);
+                        var bounds = doc.CreateElement("Bounds"); //NOXLATE
+                        bounds.InnerXml = string.Format(CultureInfo.InvariantCulture, "<MinX>{0}</MinX><MinY>{1}</MinY><MaxX>{2}</MaxX><MaxY>{3}</MaxY>", this.MinX, this.MinY, this.MaxX, this.MaxY); //NOXLATE
 
                         img.AppendChild(bounds);
                     }
@@ -216,23 +216,23 @@
         /// <param name="mgr"></param>
         public void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            if (node.Name != "Feature")
-                throw new Exception("Bad document. Expected element: Feature");
+            if (node.Name != "Feature") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "Feature"));
 
             var band = node.FirstChild;
             var image = band.FirstChild;
             var bounds = image.FirstChild;
 
-            if (band.Name != "Band")
-                throw new Exception("Bad document. Expected element: Band");
+            if (band.Name != "Band") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "Band"));
 
-            if (image.Name != "Image")
-                throw new Exception("Bad document. Expected element: Image");
+            if (image.Name != "Image") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "Image"));
 
-            if (bounds.Name != "Bounds")
-                throw new Exception("Bad document. Expected element: Bounds");
+            if (bounds.Name != "Bounds") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "Bounds"));
 
-            var fileName = image.Attributes["name"];
+            var fileName = image.Attributes["name"]; //NOXLATE
             this.FileName = fileName.Value;
 
             var minx = bounds.ChildNodes[0];
@@ -240,17 +240,17 @@
             var maxx = bounds.ChildNodes[2];
             var maxy = bounds.ChildNodes[3];
 
-            if (minx.Name != "MinX")
-                throw new Exception("Bad document. Expected element: MinX");
+            if (minx.Name != "MinX") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "MinX"));
 
-            if (miny.Name != "MinY")
-                throw new Exception("Bad document. Expected element: MinY");
+            if (miny.Name != "MinY") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "MinY"));
 
-            if (maxx.Name != "MaxX")
-                throw new Exception("Bad document. Expected element: MaxX");
+            if (maxx.Name != "MaxX") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "MaxX"));
 
-            if (maxy.Name != "MaxY")
-                throw new Exception("Bad document. Expected element: MaxY");
+            if (maxy.Name != "MaxY") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "MaxY"));
 
             this.MinX = Convert.ToDouble(minx.InnerText);
             this.MinY = Convert.ToDouble(miny.InnerText);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcConfigurationDocument.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcConfigurationDocument.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcConfigurationDocument.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -107,13 +107,13 @@
         {
             foreach (var fs in _schemas)
             {
-                var map = doc.CreateElement("SchemaMapping");
+                var map = doc.CreateElement("SchemaMapping"); //NOXLATE
                 //The version is required for data compatiblity with FDO. I don't think
                 //the actual value matters. So use a safe version of FDO
-                map.SetAttribute("provider", "OSGeo.ODBC.3.2");
-                map.SetAttribute("xmlns:rdb", "http://fdordbms.osgeo.org/schemas");
-                map.SetAttribute("xmlns", "http://fdoodbc.osgeo.org/schemas");
-                map.SetAttribute("name", fs.Name);
+                map.SetAttribute("provider", "OSGeo.ODBC.3.2"); //NOXLATE
+                map.SetAttribute("xmlns:rdb", "http://fdordbms.osgeo.org/schemas"); //NOXLATE
+                map.SetAttribute("xmlns", "http://fdoodbc.osgeo.org/schemas"); //NOXLATE
+                map.SetAttribute("name", fs.Name); //NOXLATE
                 var items = GetMappingsForSchema(fs.Name);
                 if (items.Count > 0)
                 {
@@ -136,17 +136,16 @@
             //var mappings = node.SelectNodes("SchemaMapping", mgr);
             foreach (XmlNode map in node.ChildNodes)
             {
-                if (map.Name != "SchemaMapping")
+                if (map.Name != "SchemaMapping") //NOXLATE
                     continue;
 
-                var sn = map.Attributes["name"];
+                var sn = map.Attributes["name"]; //NOXLATE
                 if (sn == null)
-                    throw new Exception("Bad document. Expected attribute: name"); //LOCALIZEME
+                    throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "name"));
 
-                //XmlNodeList clsMaps = map.SelectNodes("complexType");
                 foreach (XmlNode clsMap in map.ChildNodes)
                 {
-                    if (clsMap.Name != "complexType")
+                    if (clsMap.Name != "complexType") //NOXLATE
                         continue;
 
                     var item = new OdbcTableItem();

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcTableItem.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcTableItem.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/OdbcTableItem.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -71,11 +71,11 @@
             var cls = this.Parent.GetClass(this.SchemaName, this.ClassName);
             if (cls != null)
             {
-                var ctype = doc.CreateElement("complexType");
-                ctype.SetAttribute("name", Utility.EncodeFDOName(this.ClassName) + "Type");
+                var ctype = doc.CreateElement("complexType"); //NOXLATE
+                ctype.SetAttribute("name", Utility.EncodeFDOName(this.ClassName) + "Type"); //NOXLATE
                 {
-                    var table = doc.CreateElement("Table");
-                    table.SetAttribute("name", this.ClassName);
+                    var table = doc.CreateElement("Table"); //NOXLATE
+                    table.SetAttribute("name", this.ClassName); //NOXLATE
                     ctype.AppendChild(table);
 
                     PropertyDefinition geomProp = null;
@@ -94,11 +94,11 @@
                             prop.Name == this.ZColumn)
                             continue;
 
-                        var el = doc.CreateElement("element");
-                        el.SetAttribute("name", Utility.EncodeFDOName(prop.Name));
+                        var el = doc.CreateElement("element"); //NOXLATE
+                        el.SetAttribute("name", Utility.EncodeFDOName(prop.Name)); //NOXLATE
 
-                        var col = doc.CreateElement("Column");
-                        col.SetAttribute("name", prop.Name);
+                        var col = doc.CreateElement("Column"); //NOXLATE
+                        col.SetAttribute("name", prop.Name); //NOXLATE
 
                         el.AppendChild(col);
                         ctype.AppendChild(el);
@@ -107,15 +107,15 @@
                     //Append geometry mapping
                     if (geomProp != null)
                     {
-                        var el = doc.CreateElement("element");
-                        el.SetAttribute("name", geomProp.Name);
+                        var el = doc.CreateElement("element"); //NOXLATE
+                        el.SetAttribute("name", geomProp.Name); //NOXLATE
 
                         if (!string.IsNullOrEmpty(this.XColumn))
-                            el.SetAttribute("xColumnName", this.XColumn);
+                            el.SetAttribute("xColumnName", this.XColumn); //NOXLATE
                         if (!string.IsNullOrEmpty(this.YColumn))
-                            el.SetAttribute("yColumnName", this.YColumn);
+                            el.SetAttribute("yColumnName", this.YColumn); //NOXLATE
                         if (!string.IsNullOrEmpty(this.ZColumn))
-                            el.SetAttribute("zColumnName", this.ZColumn);
+                            el.SetAttribute("zColumnName", this.ZColumn); //NOXLATE
 
                         ctype.AppendChild(el);
                     }
@@ -131,14 +131,14 @@
         /// <param name="mgr"></param>
         public void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            if (!node.Name.Equals("complexType"))
-                throw new Exception("Bad document. Expected element: complexType"); //LOCALIZEME
+            if (!node.Name.Equals("complexType")) //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "complexType"));
 
-            var sn = node.ParentNode.Attributes["name"];
+            var sn = node.ParentNode.Attributes["name"]; //NOXLATE
             this.SchemaName = sn.Value;
 
-            var cn = node.Attributes["name"];
-            this.ClassName = Utility.DecodeFDOName(cn.Value.Substring(0, cn.Value.Length - "Type".Length));
+            var cn = node.Attributes["name"]; //NOXLATE
+            this.ClassName = Utility.DecodeFDOName(cn.Value.Substring(0, cn.Value.Length - "Type".Length)); //NOXLATE
 
             var cls = this.Parent.GetClass(this.SchemaName, this.ClassName);
             if (!string.IsNullOrEmpty(cls.DefaultGeometryPropertyName))
@@ -147,18 +147,18 @@
                 this.SpatialContextName = geom.SpatialContextAssociation;
             }
 
-            var table = node["Table"];
+            var table = node["Table"]; //NOXLATE
             var el = table.NextSibling;
             //foreach (System.Xml.XmlNode el in table.ChildNodes)
             while(el != null)
             {
-                var colName = el.Attributes["name"];
+                var colName = el.Attributes["name"]; //NOXLATE
 
                 if (colName.Value == cls.DefaultGeometryPropertyName)
                 {
-                    var x = el.Attributes["xColumnName"];
-                    var y = el.Attributes["yColumnName"];
-                    var z = el.Attributes["zColumnName"];
+                    var x = el.Attributes["xColumnName"]; //NOXLATE
+                    var y = el.Attributes["yColumnName"]; //NOXLATE
+                    var z = el.Attributes["zColumnName"]; //NOXLATE
 
                     if (x != null)
                         this.XColumn = x.Value;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/RasterWmsItem.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/RasterWmsItem.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/RasterWmsItem.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -41,19 +41,19 @@
             /// <summary>
             /// Portable Network Graphics (PNG)
             /// </summary>
-            public const string PNG = "PNG";
+            public const string PNG = "PNG"; //NOXLATE
             /// <summary>
             /// Tagged Image File (TIF)
             /// </summary>
-            public const string TIF = "TIF";
+            public const string TIF = "TIF"; //NOXLATE
             /// <summary>
             /// Joint Photographic Experts Group (JPEG)
             /// </summary>
-            public const string JPG = "JPG";
+            public const string JPG = "JPG"; //NOXLATE
             /// <summary>
             /// Graphics Interchange Format (GIF)
             /// </summary>
-            public const string GIF = "GIF";
+            public const string GIF = "GIF"; //NOXLATE
         }
 
         internal RasterWmsItem() { }
@@ -167,50 +167,50 @@
         /// <param name="currentNode"></param>
         public void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
         {
-            var rasterDef = doc.CreateElement("RasterDefinition");
-            var n = doc.CreateAttribute("name");
+            var rasterDef = doc.CreateElement("RasterDefinition"); //NOXLATE
+            var n = doc.CreateAttribute("name"); //NOXLATE
             n.Value = this.RasterPropertyName;
             rasterDef.Attributes.Append(n);
             {
-                var format = doc.CreateElement("Format");
+                var format = doc.CreateElement("Format"); //NOXLATE
                 format.InnerText = this.ImageFormat;
 
-                var mimeType = doc.CreateElement("FormatType");
+                var mimeType = doc.CreateElement("FormatType"); //NOXLATE
                 if (!string.IsNullOrEmpty(this.ImageFormat))
                 {
                     switch (this.ImageFormat)
                     {
                         case WmsImageFormat.GIF:
-                            mimeType.InnerText = "image/gif";
+                            mimeType.InnerText = "image/gif"; //NOXLATE
                             break;
                         case WmsImageFormat.JPG:
-                            mimeType.InnerText = "image/jpg";
+                            mimeType.InnerText = "image/jpg"; //NOXLATE
                             break;
                         case WmsImageFormat.PNG:
-                            mimeType.InnerText = "image/png";
+                            mimeType.InnerText = "image/png"; //NOXLATE
                             break;
                         case WmsImageFormat.TIF:
-                            mimeType.InnerText = "image/tif";
+                            mimeType.InnerText = "image/tif"; //NOXLATE
                             break;
                     }
                 }
 
-                var transparent = doc.CreateElement("Transparent");
-                transparent.InnerText = this.IsTransparent ? "true" : "false";
+                var transparent = doc.CreateElement("Transparent"); //NOXLATE
+                transparent.InnerText = this.IsTransparent ? "true" : "false"; //NOXLATE
 
-                var bgcolor = doc.CreateElement("BackgroundColor");
-                bgcolor.InnerText = "0x" + Utility.SerializeHTMLColor(this.BackgroundColor, false);
+                var bgcolor = doc.CreateElement("BackgroundColor"); //NOXLATE
+                bgcolor.InnerText = "0x" + Utility.SerializeHTMLColor(this.BackgroundColor, false); //NOXLATE
 
-                var useTileCache = doc.CreateElement("UseTileCache");
-                useTileCache.InnerText = this.UseTileCache ? "true" : "false";
+                var useTileCache = doc.CreateElement("UseTileCache"); //NOXLATE
+                useTileCache.InnerText = this.UseTileCache ? "true" : "false"; //NOXLATE
 
-                var time = doc.CreateElement("Time");
+                var time = doc.CreateElement("Time"); //NOXLATE
                 time.InnerText = this.Time;
 
-                var elevation = doc.CreateElement("Elevation");
+                var elevation = doc.CreateElement("Elevation"); //NOXLATE
                 elevation.InnerText = this.ElevationDimension;
 
-                var sc = doc.CreateElement("SpatialContext");
+                var sc = doc.CreateElement("SpatialContext"); //NOXLATE
                 sc.InnerText = this.SpatialContextName;
 
                 rasterDef.AppendChild(format);
@@ -238,38 +238,38 @@
         /// <param name="mgr"></param>
         public void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            if (node.Name != "RasterDefinition")
-                throw new Exception("Bad document. Expected element: RasterDefinition");
+            if (node.Name != "RasterDefinition") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "RasterDefinition"));
 
-            var fc = node.ParentNode.Attributes["name"].Value;
-            this.FeatureClass = fc.Substring(0, fc.Length - "Type".Length);
-            this.RasterPropertyName = node.Attributes["name"].Value;
+            var fc = node.ParentNode.Attributes["name"].Value; //NOXLATE
+            this.FeatureClass = fc.Substring(0, fc.Length - "Type".Length); //NOXLATE
+            this.RasterPropertyName = node.Attributes["name"].Value; //NOXLATE
 
-            var format = node["Format"];
-            var transparent = node["Transparent"];
-            var useTileCache = node["UseTileCache"];
-            var bgcolor = node["BackgroundColor"];
-            var time = node["Time"];
-            var elevation = node["Elevation"];
-            var sc = node["SpatialContext"];
+            var format = node["Format"]; //NOXLATE
+            var transparent = node["Transparent"]; //NOXLATE
+            var useTileCache = node["UseTileCache"]; //NOXLATE
+            var bgcolor = node["BackgroundColor"]; //NOXLATE
+            var time = node["Time"]; //NOXLATE
+            var elevation = node["Elevation"]; //NOXLATE
+            var sc = node["SpatialContext"]; //NOXLATE
 
             if (format != null)
                 this.ImageFormat = format.InnerText;
 
             if (transparent != null)
-                this.IsTransparent = (transparent.InnerText.ToLower() == "true");
+                this.IsTransparent = (transparent.InnerText.ToLower() == "true"); //NOXLATE
 
             if (useTileCache != null)
-                this.UseTileCache = (useTileCache.InnerText.ToLower() == "true");
+                this.UseTileCache = (useTileCache.InnerText.ToLower() == "true"); //NOXLATE
 
             if (bgcolor != null)
             {
                 if (!string.IsNullOrEmpty(bgcolor.InnerText))
                 {
-                    if (bgcolor.InnerText.StartsWith("0x"))
-                        this.BackgroundColor = ColorTranslator.FromHtml("#" + bgcolor.InnerText.Substring(2));
+                    if (bgcolor.InnerText.StartsWith("0x")) //NOXLATE
+                        this.BackgroundColor = ColorTranslator.FromHtml("#" + bgcolor.InnerText.Substring(2)); //NOXLATE
                     else
-                        this.BackgroundColor = ColorTranslator.FromHtml("#" + bgcolor.InnerText);
+                        this.BackgroundColor = ColorTranslator.FromHtml("#" + bgcolor.InnerText); //NOXLATE
                 }
                 else 
                 {
@@ -288,7 +288,7 @@
 
             foreach (XmlNode ln in node.ChildNodes)
             {
-                if (ln.Name == "Layer")
+                if (ln.Name == "Layer") //NOXLATE
                 {
                     var layer = new WmsLayerDefinition();
                     layer.ReadXml(ln, mgr);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/WmsConfigurationDocument.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/WmsConfigurationDocument.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/WmsConfigurationDocument.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -55,16 +55,16 @@
         /// <param name="currentNode"></param>
         protected override void WriteSchemaMappings(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
         {
-            var map = doc.CreateElement("SchemaMapping");
-            map.SetAttribute("provider", "OSGeo.WMS.3.2");
-            map.SetAttribute("xmlns", "http://fdowms.osgeo.org/schemas");
-            map.SetAttribute("name", base._schemas[0].Name);
+            var map = doc.CreateElement("SchemaMapping"); //NOXLATE
+            map.SetAttribute("provider", "OSGeo.WMS.3.2"); //NOXLATE
+            map.SetAttribute("xmlns", "http://fdowms.osgeo.org/schemas"); //NOXLATE
+            map.SetAttribute("name", base._schemas[0].Name); //NOXLATE
             {
                 foreach(var ritem in _rasterItems)
                 {
-                    var ctype = doc.CreateElement("complexType");
-                    var ctypeName = doc.CreateAttribute("name");
-                    ctypeName.Value = ritem.FeatureClass + "Type";
+                    var ctype = doc.CreateElement("complexType"); //NOXLATE
+                    var ctypeName = doc.CreateAttribute("name"); //NOXLATE
+                    ctypeName.Value = ritem.FeatureClass + "Type"; //NOXLATE
                     ctype.Attributes.Append(ctypeName);
                     {
                         ritem.WriteXml(doc, ctype);
@@ -82,33 +82,31 @@
         /// <param name="mgr">The namespace manager.</param>
         protected override void ReadSchemaMappings(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            //XmlNodeList mappings = node.SelectNodes("SchemaMapping");
             foreach (XmlNode map in node.ChildNodes)
             {
-                if (map.Name != "SchemaMapping")
+                if (map.Name != "SchemaMapping") //NOXLATE
                     continue;
 
-                var prv = map.Attributes["provider"];
+                var prv = map.Attributes["provider"]; //NOXLATE
                 if (prv == null)
-                    throw new Exception("Bad document. Expected attribute: provider"); //LOCALIZEME
+                    throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "provider"));
 
                 var sn = map.Attributes["name"];
                 if (sn == null)
-                    throw new Exception("Bad document. Expected attribute: name"); //LOCALIZEME
+                    throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "name"));
 
-                //XmlNodeList list = map.SelectNodes("complexType");
                 foreach (XmlNode clsMap in map.ChildNodes)
                 {
-                    if (clsMap.Name != "complexType")
+                    if (clsMap.Name != "complexType") //NOXLATE
                         continue;
 
-                    var cn = clsMap.Attributes["name"];
+                    var cn = clsMap.Attributes["name"]; //NOXLATE
                     if (cn == null)
-                        throw new Exception("Bad document. Expected attribute: name"); //LOCALIZEME
+                        throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "name"));
 
                     var rdf = clsMap.FirstChild;
                     if (rdf == null || rdf.Name != "RasterDefinition")
-                        throw new Exception("Bad document. Expected element: RasterDefinition"); //LOCALIZEME
+                        throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "RasterDefinition"));
 
                     RasterWmsItem item = new RasterWmsItem();
                     item.ReadXml(rdf, mgr);

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/WmsLayerDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/WmsLayerDefinition.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/SchemaOverrides/WmsLayerDefinition.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -63,13 +63,13 @@
         /// <param name="currentNode"></param>
         public void WriteXml(System.Xml.XmlDocument doc, System.Xml.XmlNode currentNode)
         {
-            var layer = doc.CreateElement("Layer");
-            var n = doc.CreateAttribute("name");
+            var layer = doc.CreateElement("Layer"); //NOXLATE
+            var n = doc.CreateAttribute("name"); //NOXLATE
             n.Value = this.Name;
             layer.Attributes.Append(n);
             {
-                var style = doc.CreateElement("Style");
-                var s = doc.CreateAttribute("name");
+                var style = doc.CreateElement("Style"); //NOXLATE
+                var s = doc.CreateAttribute("name"); //NOXLATE
                 s.Value = this.Style;
                 style.Attributes.Append(s);
                 layer.AppendChild(style);
@@ -84,17 +84,17 @@
         /// <param name="mgr"></param>
         public void ReadXml(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
         {
-            if (node.Name != "Layer")
-                throw new Exception("Bad document. Expected element: Layer");
+            if (node.Name != "Layer") //NOXLATE
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedElement, "Layer")); //NOXLATE
 
-            var n = node.Attributes["name"];
+            var n = node.Attributes["name"]; //NOXLATE
             if (n == null)
-                throw new Exception("Bad document. Expected attribute: name");
+                throw new Exception(string.Format(Properties.Resources.ErrorBadDocumentExpectedAttribute, "name")); //NOXLATE
 
             var style = node.FirstChild;
             if (style != null)
             {
-                var s = style.Attributes["name"];
+                var s = style.Attributes["name"]; //NOXLATE
                 if (s != null)
                 {
                     this.Style = s.Value;

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinaryDeserializer.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinaryDeserializer.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinaryDeserializer.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -22,349 +22,349 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Serialization
 {
-	/// <summary>
-	/// A utility for serializing objects to the internal MapGuide Format
-	/// </summary>
-	public class MgBinaryDeserializer
-	{
-		private Stream m_stream;
-		private byte[] m_buf = new byte[Math.Max(MgBinarySerializer.DoubleLen, MgBinarySerializer.UInt64Len)];
-		private Version m_siteVersion;
+    /// <summary>
+    /// A utility for serializing objects to the internal MapGuide Format
+    /// </summary>
+    public class MgBinaryDeserializer
+    {
+        private Stream m_stream;
+        private byte[] m_buf = new byte[Math.Max(MgBinarySerializer.DoubleLen, MgBinarySerializer.UInt64Len)];
+        private Version m_siteVersion;
 
         /// <summary>
         /// Gets the site version.
         /// </summary>
         /// <value>The site version.</value>
-		public Version SiteVersion { get { return m_siteVersion; } }
+        public Version SiteVersion { get { return m_siteVersion; } }
 
         /// <summary>
         /// Initializes a new instance of the <see cref="MgBinaryDeserializer"/> class.
         /// </summary>
         /// <param name="stream">The stream.</param>
         /// <param name="siteversion">The siteversion.</param>
-		public MgBinaryDeserializer(Stream stream, Version siteversion)
-		{
-			m_stream = stream;
-			m_siteVersion = siteversion;
-		}
+        public MgBinaryDeserializer(Stream stream, Version siteversion)
+        {
+            m_stream = stream;
+            m_siteVersion = siteversion;
+        }
         
         /*
-		private MgStreamHeader ReadStreamHeader()
-		{
-			MgStreamHeader h = new MgStreamHeader();
-			m_stream.Read(m_buf, 0, MgBinarySerializer.UInt32Len);
-			h.StreamStart = (MgStreamHeaderValues)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			h.StreamVersion = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			h.StreamDataHdr = (MgStreamHeaderValues)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			return h;
-		}*/
+        private MgStreamHeader ReadStreamHeader()
+        {
+            MgStreamHeader h = new MgStreamHeader();
+            m_stream.Read(m_buf, 0, MgBinarySerializer.UInt32Len);
+            h.StreamStart = (MgStreamHeaderValues)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            h.StreamVersion = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            h.StreamDataHdr = (MgStreamHeaderValues)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            return h;
+        }*/
 
-		private MgArgumentPacket ReadArgumentPacket()
-		{
-			MgArgumentPacket p = new MgArgumentPacket();
-			p.PacketHeader = (MgPacketHeader)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			p.ArgumentType = (MgArgumentType)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			if (p.ArgumentType == MgArgumentType.String)
-				p.Length = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			return p;
-		}
+        private MgArgumentPacket ReadArgumentPacket()
+        {
+            MgArgumentPacket p = new MgArgumentPacket();
+            p.PacketHeader = (MgPacketHeader)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            p.ArgumentType = (MgArgumentType)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            if (p.ArgumentType == MgArgumentType.String)
+                p.Length = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            return p;
+        }
 
-		private MgBinaryStreamArgumentPacket ReadBinaryStreamArgumentPacket()
-		{
-			MgBinaryStreamArgumentPacket p = new MgBinaryStreamArgumentPacket();
-			p.PacketHeader = (MgPacketHeader)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			p.ArgumentType = (MgArgumentType)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			p.Version = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			p.Length = BitConverter.ToUInt64(ReadStream(MgBinarySerializer.UInt64Len), 0);
-			return p;
-		}
+        private MgBinaryStreamArgumentPacket ReadBinaryStreamArgumentPacket()
+        {
+            MgBinaryStreamArgumentPacket p = new MgBinaryStreamArgumentPacket();
+            p.PacketHeader = (MgPacketHeader)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            p.ArgumentType = (MgArgumentType)BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            p.Version = BitConverter.ToUInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            p.Length = BitConverter.ToUInt64(ReadStream(MgBinarySerializer.UInt64Len), 0);
+            return p;
+        }
 
         /// <summary>
         /// Reads the string.
         /// </summary>
         /// <returns></returns>
-		public string ReadString()
-		{
-			MgArgumentPacket p = ReadArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.String)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"string\" was expected");
+        public string ReadString()
+        {
+            MgArgumentPacket p = ReadArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.String)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "string")); //NOXLATE
 
-			if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
-			{
-				return ReadInternalString();
-			}
-			else
-			{
-				byte[] buf = ReadStreamRepeat((int)p.Length);
+            if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
+            {
+                return ReadInternalString();
+            }
+            else
+            {
+                byte[] buf = ReadStreamRepeat((int)p.Length);
 
-				string b = System.Text.Encoding.UTF8.GetString(buf);
-				//Chop of C zero terminator... Why store it, when the length is also present?
-				return b.Substring(0, b.Length - 1); 
-			}
-			
-		}
+                string b = System.Text.Encoding.UTF8.GetString(buf);
+                //Chop of C zero terminator... Why store it, when the length is also present?
+                return b.Substring(0, b.Length - 1); 
+            }
+            
+        }
 
         /// <summary>
         /// Reads the internal string.
         /// </summary>
         /// <returns></returns>
-		public string ReadInternalString()
-		{
-			int charwidth = m_stream.ReadByte();
-			System.Text.Encoding ec;
-			switch(charwidth)
-			{
-				case 1:
-					ec = System.Text.Encoding.UTF8;
-					break;
-				case 2:
-					ec = System.Text.Encoding.GetEncoding("UTF-16");
-					break;
-				default:
-					throw new Exception("Failed to get valid string char width");
-			}
+        public string ReadInternalString()
+        {
+            int charwidth = m_stream.ReadByte();
+            System.Text.Encoding ec;
+            switch(charwidth)
+            {
+                case 1:
+                    ec = System.Text.Encoding.UTF8;
+                    break;
+                case 2:
+                    ec = System.Text.Encoding.GetEncoding("UTF-16"); //NOXLATE
+                    break;
+                default:
+                    throw new Exception(Properties.Resources.ErrorBinarySerializerGetCharWidth);
+            }
 
-			byte[] t = ReadStreamRepeat(MgBinarySerializer.UInt32Len);
-			int len = BitConverter.ToInt32(t, 0);
-			string b = ec.GetString(ReadStreamRepeat(len * charwidth));
-			//Chop of C zero terminator... Why store it, when the length is also present?
-			return b.Substring(0, b.Length - 1);
-		}
+            byte[] t = ReadStreamRepeat(MgBinarySerializer.UInt32Len);
+            int len = BitConverter.ToInt32(t, 0);
+            string b = ec.GetString(ReadStreamRepeat(len * charwidth));
+            //Chop of C zero terminator... Why store it, when the length is also present?
+            return b.Substring(0, b.Length - 1);
+        }
 
         /// <summary>
         /// Reads the resource identifier.
         /// </summary>
         /// <returns></returns>
-		public string ReadResourceIdentifier()
-		{
-			int classId = ReadClassId();
-			if (classId == 0)
-				return null;
+        public string ReadResourceIdentifier()
+        {
+            int classId = ReadClassId();
+            if (classId == 0)
+                return null;
 
-			if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classId != 12003)
-				throw new Exception("Object was not a resourceidentifier");
-			if (m_siteVersion > SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classId != 11500)
-				throw new Exception("Object was not a resourceidentifier");
+            if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classId != 12003)
+                throw new Exception(Properties.Resources.ErrorInvalidResourceIdentifier);
+            if (m_siteVersion > SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classId != 11500)
+                throw new Exception(Properties.Resources.ErrorInvalidResourceIdentifier);
 
-			if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
-				return ReadInternalString();
-			else
-				return ReadString();
-		}
+            if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
+                return ReadInternalString();
+            else
+                return ReadString();
+        }
 
         /// <summary>
         /// Reads the int64.
         /// </summary>
         /// <returns></returns>
-		public long ReadInt64()
-		{
-			MgArgumentPacket p = ReadArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.INT64)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"Int64\" was expected");
+        public long ReadInt64()
+        {
+            MgArgumentPacket p = ReadArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.INT64)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Int64")); //NOXLATE
 
-			return BitConverter.ToInt64(ReadStream(MgBinarySerializer.UInt64Len), 0);
-		}
+            return BitConverter.ToInt64(ReadStream(MgBinarySerializer.UInt64Len), 0);
+        }
 
         /// <summary>
         /// Reads the int32.
         /// </summary>
         /// <returns></returns>
-		public int ReadInt32()
-		{
-			MgArgumentPacket p = ReadArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.INT32)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"Int32\" was expected");
+        public int ReadInt32()
+        {
+            MgArgumentPacket p = ReadArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.INT32)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Int32")); //NOXLATE
 
-			return BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-		}
+            return BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+        }
 
         /// <summary>
         /// Reads the int16.
         /// </summary>
         /// <returns></returns>
-		public short ReadInt16()
-		{
-			MgArgumentPacket p = ReadArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.INT16)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"Int16\" was expected");
+        public short ReadInt16()
+        {
+            MgArgumentPacket p = ReadArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.INT16)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Int16")); //NOXLATE
 
-			return BitConverter.ToInt16(ReadStream(MgBinarySerializer.UInt16Len), 0);
-		}
+            return BitConverter.ToInt16(ReadStream(MgBinarySerializer.UInt16Len), 0);
+        }
 
         /// <summary>
         /// Reads the bool.
         /// </summary>
         /// <returns></returns>
-		public bool ReadBool()
-		{
-			return ReadByte() != 0;
-		}
+        public bool ReadBool()
+        {
+            return ReadByte() != 0;
+        }
 
         /// <summary>
         /// Reads the byte.
         /// </summary>
         /// <returns></returns>
-		public byte ReadByte()
-		{
-			MgArgumentPacket p = ReadArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.INT8)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"Int8\" was expected");
+        public byte ReadByte()
+        {
+            MgArgumentPacket p = ReadArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.INT8)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Int8")); //NOXLATE
 
-			return (byte)m_stream.ReadByte();
-		}
+            return (byte)m_stream.ReadByte();
+        }
 
         /// <summary>
         /// Reads the single.
         /// </summary>
         /// <returns></returns>
-		public float ReadSingle()
-		{
-			MgArgumentPacket p = ReadArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.Float)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"Float\" was expected");
+        public float ReadSingle()
+        {
+            MgArgumentPacket p = ReadArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.Float)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Float")); //NOXLATE
 
-			return BitConverter.ToSingle(ReadStream(MgBinarySerializer.FloatLen), 0);
-		}
+            return BitConverter.ToSingle(ReadStream(MgBinarySerializer.FloatLen), 0);
+        }
 
         /// <summary>
         /// Reads the double.
         /// </summary>
         /// <returns></returns>
-		public double ReadDouble()
-		{
-			MgArgumentPacket p = ReadArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.Double)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"Double\" was expected");
+        public double ReadDouble()
+        {
+            MgArgumentPacket p = ReadArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.Double)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Double")); //NOXLATE
 
-			return BitConverter.ToDouble(ReadStream(MgBinarySerializer.DoubleLen), 0);
-		}
+            return BitConverter.ToDouble(ReadStream(MgBinarySerializer.DoubleLen), 0);
+        }
 
         /// <summary>
         /// Reads the coordinates.
         /// </summary>
         /// <returns></returns>
-		public double[] ReadCoordinates()
-		{
-			int classid = ReadClassId();
-			if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classid != 18000)
-				throw new Exception("Coordinate expected, but got object: " + classid.ToString());
-			if (m_siteVersion > SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classid != 20000)
-				throw new Exception("Coordinate expected, but got object: " + classid.ToString());
+        public double[] ReadCoordinates()
+        {
+            int classid = ReadClassId();
+            if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classid != 18000)
+                throw new Exception(string.Format(Properties.Resources.ErrorBinarySerializerCoordinateUnexpectedType, classid));
+            if (m_siteVersion > SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1) && classid != 20000)
+                throw new Exception(string.Format(Properties.Resources.ErrorBinarySerializerCoordinateUnexpectedType, classid));
 
-			int count = ReadInt32();
-			int dimensions = ReadInt32();
-			if (dimensions == 0)
-				dimensions = 2;
-			else if (dimensions > 4)
-				throw new Exception("Coordinate count reported: " + dimensions.ToString() + ", for a single coordinate");
+            int count = ReadInt32();
+            int dimensions = ReadInt32();
+            if (dimensions == 0)
+                dimensions = 2;
+            else if (dimensions > 4)
+                throw new Exception(string.Format(Properties.Resources.ErrorBinarySerializerInvalidCoordinateDimensionCount, dimensions));
 
-			double[] args = new double[dimensions * count];
-			for(int i = 0;i < (dimensions * count); i++)
-				args[i] = ReadDouble();
+            double[] args = new double[dimensions * count];
+            for(int i = 0;i < (dimensions * count); i++)
+                args[i] = ReadDouble();
 
-			return args;
-		}
+            return args;
+        }
 
         /// <summary>
         /// Reads the stream.
         /// </summary>
         /// <returns></returns>
-		public Stream ReadStream()
-		{
-			MgBinaryStreamArgumentPacket p = ReadBinaryStreamArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.Stream)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"Stream\" was expected");
+        public Stream ReadStream()
+        {
+            MgBinaryStreamArgumentPacket p = ReadBinaryStreamArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.Stream)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "Stream")); //NOXLATE
 
-			if (ReadBool())
-				return null;
+            if (ReadBool())
+                return null;
 
-			//TODO: If the stream is large, we use a lot of memory, perhaps the filebacked async stream could be used
-			//Due to the annoying embedded buffer size markers, we cannot return the stream 'as is' Grrrrrr!
+            //TODO: If the stream is large, we use a lot of memory, perhaps the filebacked async stream could be used
+            //Due to the annoying embedded buffer size markers, we cannot return the stream 'as is' Grrrrrr!
 
-			int r;
-			ulong remain = p.Length; 
-			byte[] buf = new byte[1024 * 8];
+            int r;
+            ulong remain = p.Length; 
+            byte[] buf = new byte[1024 * 8];
 
-			MemoryStream ms = new MemoryStream();
-			do
-			{
-				int blocksize = ReadInt32();
-				r = 1;
+            MemoryStream ms = new MemoryStream();
+            do
+            {
+                int blocksize = ReadInt32();
+                r = 1;
 
-				while( r > 0 && blocksize > 0)
-				{
-					r = m_stream.Read(buf, 0, (int)Math.Min((ulong)remain, (ulong)buf.Length));
-					blocksize -= r;
-					remain -= (ulong)r;
-					ms.Write(buf, 0, r);
-				}
+                while( r > 0 && blocksize > 0)
+                {
+                    r = m_stream.Read(buf, 0, (int)Math.Min((ulong)remain, (ulong)buf.Length));
+                    blocksize -= r;
+                    remain -= (ulong)r;
+                    ms.Write(buf, 0, r);
+                }
 
-				if (blocksize != 0)
-					throw new Exception("Stream ended prematurely");
+                if (blocksize != 0)
+                    throw new Exception(Properties.Resources.ErrorBinarySerializerPrematureEndOfStream);
 
-			} while (remain > 0);
+            } while (remain > 0);
 
-			ms.Position = 0;
-			return ms;
-		}
+            ms.Position = 0;
+            return ms;
+        }
 
         /// <summary>
         /// Reads the class id.
         /// </summary>
         /// <returns></returns>
-		public int ReadClassId()
-		{
-			MgArgumentPacket p = ReadArgumentPacket();
-			if (p.ArgumentType != MgArgumentType.ClassId)
-				throw new InvalidCastException("Data in stream had type: " + p.ArgumentType.ToString() + ", type \"ClassId\" was expected");
+        public int ReadClassId()
+        {
+            MgArgumentPacket p = ReadArgumentPacket();
+            if (p.ArgumentType != MgArgumentType.ClassId)
+                throw new InvalidCastException(string.Format(Properties.Resources.ErrorBinarySerializerUnexpectedType, p.ArgumentType.ToString(), "ClassId")); //NOXLATE
 
-			return BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-		}
+            return BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+        }
 
         /// <summary>
         /// Reads the stream end.
         /// </summary>
-		public void ReadStreamEnd()
-		{
-			int v = BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
-			if (v != (int)MgStreamHeaderValues.StreamEnd)
-				throw new Exception("The read value was: " + v.ToString() + " while " + ((int)MgStreamHeaderValues.StreamEnd).ToString() + " was expected");
-		}
+        public void ReadStreamEnd()
+        {
+            int v = BitConverter.ToInt32(ReadStream(MgBinarySerializer.UInt32Len), 0);
+            if (v != (int)MgStreamHeaderValues.StreamEnd)
+                throw new Exception(string.Format(Properties.Resources.ErrorBinarySerializerExpectedEndOfStream, v.ToString()));
+        }
 
         /// <summary>
         /// Reads the object.
         /// </summary>
         /// <returns></returns>
-		public IBinarySerializable ReadObject()
-		{
-			int classId = ReadClassId();
-			if (classId == 0)
-				return null;
+        public IBinarySerializable ReadObject()
+        {
+            int classId = ReadClassId();
+            if (classId == 0)
+                return null;
 
-			IBinarySerializable obj = null;
-			switch(classId)
-			{
-				case 0:
-				break;
-				default:
-					throw new Exception("Unknown object type: " + classId.ToString());
-			}
-			obj.Deserialize(this);
+            IBinarySerializable obj = null;
+            switch(classId)
+            {
+                case 0:
+                    break;
+                default:
+                    throw new Exception(string.Format(Properties.Resources.ErrorBinarySerializerUnknownObjectType, classId));
+            }
+            obj.Deserialize(this);
 
-			return obj;
-		}
+            return obj;
+        }
 
         /// <summary>
         /// Reads the stream repeat.
         /// </summary>
         /// <param name="len">The len.</param>
         /// <returns></returns>
-		public byte[] ReadStreamRepeat(int len)
-		{
-			byte[] buf = new byte[len];
-			ReadStreamRepeat(buf, 0, len);
-			return buf;
-		}
+        public byte[] ReadStreamRepeat(int len)
+        {
+            byte[] buf = new byte[len];
+            ReadStreamRepeat(buf, 0, len);
+            return buf;
+        }
 
         /// <summary>
         /// Internal helper that will read from a potentially fragmented stream
@@ -372,33 +372,33 @@
         /// <param name="buf">The buf.</param>
         /// <param name="offset">The offset.</param>
         /// <param name="len">The number of bytes to read</param>
-		public void ReadStreamRepeat(byte[] buf, int offset, int len)
-		{
-			int r;
-			int _offset = 0;
-			
-			if (buf.Length < len + offset)
-				throw new OverflowException("Buffer is too small");
+        public void ReadStreamRepeat(byte[] buf, int offset, int len)
+        {
+            int r;
+            int _offset = 0;
+            
+            if (buf.Length < len + offset)
+                throw new OverflowException(Properties.Resources.ErrorBinarySerializerBufferTooSmall);
 
-			do
-			{
-				r = m_stream.Read(buf, offset + _offset, len - _offset);
-				_offset += r;
-			} while (r > 0);
+            do
+            {
+                r = m_stream.Read(buf, offset + _offset, len - _offset);
+                _offset += r;
+            } while (r > 0);
 
-			if (_offset != len)
-				throw new Exception("Stream exhausted while reading " + len.ToString() + " bytes");
-		}
+            if (_offset != len)
+                throw new Exception(string.Format(Properties.Resources.ErrorBinarySerializerStreamExhausted, len));
+        }
 
-		/// <summary>
-		/// Helper function that will throw an exception if the stream is unexceptedly exhausted
-		/// </summary>
-		/// <param name="len">The number of bytes to read</param>
-		/// <returns>The internal buffer object</returns>
-		private byte[] ReadStream(int len)
-		{
-			ReadStreamRepeat(m_buf, 0, len); 
-			return m_buf;
-		}
-	}
+        /// <summary>
+        /// Helper function that will throw an exception if the stream is unexceptedly exhausted
+        /// </summary>
+        /// <param name="len">The number of bytes to read</param>
+        /// <returns>The internal buffer object</returns>
+        private byte[] ReadStream(int len)
+        {
+            ReadStreamRepeat(m_buf, 0, len); 
+            return m_buf;
+        }
+    }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinarySerializer.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinarySerializer.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Serialization/MgBinarySerializer.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -22,346 +22,346 @@
 
 namespace OSGeo.MapGuide.MaestroAPI.Serialization
 {
-	/// <summary>
-	/// A utility for deserializing data in the internal MapGuide format.
-	/// </summary>
-	public class MgBinarySerializer
-	{
-		private Stream m_stream;
-		private Version m_siteVersion;
+    /// <summary>
+    /// A utility for deserializing data in the internal MapGuide format.
+    /// </summary>
+    public class MgBinarySerializer
+    {
+        private Stream m_stream;
+        private Version m_siteVersion;
 
 
         /// <summary>
         /// 
         /// </summary>
-		public static int UInt16Len = BitConverter.GetBytes((UInt16)0).Length;
+        public static int UInt16Len = BitConverter.GetBytes((UInt16)0).Length;
         /// <summary>
         /// 
         /// </summary>
-		public static int UInt32Len = BitConverter.GetBytes((UInt32)0).Length;
+        public static int UInt32Len = BitConverter.GetBytes((UInt32)0).Length;
         /// <summary>
         /// 
         /// </summary>
-		public static int UInt64Len = BitConverter.GetBytes((UInt64)0).Length;
+        public static int UInt64Len = BitConverter.GetBytes((UInt64)0).Length;
         /// <summary>
         /// 
         /// </summary>
-		public static int FloatLen =  BitConverter.GetBytes((float)0).Length;
+        public static int FloatLen =  BitConverter.GetBytes((float)0).Length;
         /// <summary>
         /// 
         /// </summary>
-		public static int DoubleLen =  BitConverter.GetBytes((double)0).Length;
+        public static int DoubleLen =  BitConverter.GetBytes((double)0).Length;
         /// <summary>
         /// 
         /// </summary>
-		public static int UInt8Len =  1; //a byte...
+        public static int UInt8Len =  1; //a byte...
 
         /// <summary>
         /// Gets the site version.
         /// </summary>
         /// <value>The site version.</value>
-		public Version SiteVersion { get { return m_siteVersion; } }
+        public Version SiteVersion { get { return m_siteVersion; } }
 
         /// <summary>
         /// Initializes a new instance of the <see cref="MgBinarySerializer"/> class.
         /// </summary>
         /// <param name="stream">The stream.</param>
         /// <param name="siteversion">The siteversion.</param>
-		public MgBinarySerializer(Stream stream, Version siteversion)
-		{
-			m_stream = stream;
-			m_siteVersion = siteversion;
-		}
+        public MgBinarySerializer(Stream stream, Version siteversion)
+        {
+            m_stream = stream;
+            m_siteVersion = siteversion;
+        }
 
         /// <summary>
         /// Writes the coordinates.
         /// </summary>
         /// <param name="coordinates">The coordinates.</param>
         /// <param name="dimensions">The dimensions.</param>
-		public void WriteCoordinates(double[] coordinates, int dimensions)
-		{
-			int ndim = dimensions;
-			if (ndim == 0)
-				ndim = 2;
-			else if (ndim > 4)
-				throw new Exception("Coordinate count reported: " + dimensions.ToString() + ", for a single coordinate");
+        public void WriteCoordinates(double[] coordinates, int dimensions)
+        {
+            int ndim = dimensions;
+            if (ndim == 0)
+                ndim = 2;
+            else if (ndim > 4)
+                throw new Exception(string.Format(Properties.Resources.ErrorBinarySerializerInvalidCoordinateDimensionCount, dimensions));
 
-			if ((coordinates.Length % ndim) != 0)
-				throw new Exception("Invalid amount of coordinates...");
+            if ((coordinates.Length % ndim) != 0)
+                throw new Exception(Properties.Resources.ErrorBinarySerializerInvalidAmountOfCoordinates);
 
-			if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1))
-				WriteClassId(18000);
-			else
-				WriteClassId(20000);
-			Write(coordinates.Length / ndim);
-			Write(dimensions);
+            if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1))
+                WriteClassId(18000);
+            else
+                WriteClassId(20000);
+            Write(coordinates.Length / ndim);
+            Write(dimensions);
 
-			for(int i = 0;i < coordinates.Length; i++)
-				Write(coordinates[i]);
-		}
+            for(int i = 0;i < coordinates.Length; i++)
+                Write(coordinates[i]);
+        }
 
         /// <summary>
         /// Writes the resource identifier.
         /// </summary>
         /// <param name="resourceID">The resource ID.</param>
-		public void WriteResourceIdentifier(string resourceID)
-		{
-			if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1))
-				WriteClassId(12003);
-			else
-				WriteClassId(11500);
-			if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
-				WriteStringInternal(resourceID);
-			else
-				Write(resourceID);
-		}
+        public void WriteResourceIdentifier(string resourceID)
+        {
+            if (m_siteVersion <= SiteVersions.GetVersion(KnownSiteVersions.MapGuideEP1_1))
+                WriteClassId(12003);
+            else
+                WriteClassId(11500);
+            if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
+                WriteStringInternal(resourceID);
+            else
+                Write(resourceID);
+        }
 
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void Write(string value)
-		{
-			if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
-			{
-				Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.String, null, (ulong)value.Length + 1));
-				WriteStringInternal(value);
-			}
-			else
-			{
-				byte[] buf = System.Text.Encoding.UTF8.GetBytes(value + "\0");
-				Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.String, null, (ulong)buf.Length));
-				WriteRaw(buf);
-			}
-		}
+        public void Write(string value)
+        {
+            if (m_siteVersion >= SiteVersions.GetVersion(KnownSiteVersions.MapGuideOS1_2))
+            {
+                Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.String, null, (ulong)value.Length + 1));
+                WriteStringInternal(value);
+            }
+            else
+            {
+                byte[] buf = System.Text.Encoding.UTF8.GetBytes(value + "\0"); //NOXLATE
+                Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.String, null, (ulong)buf.Length));
+                WriteRaw(buf);
+            }
+        }
 
         /// <summary>
         /// Writes the string internal.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void WriteStringInternal(string value)
-		{
+        public void WriteStringInternal(string value)
+        {
             if (value == null)
                 value = "";
-			byte[] buf = System.Text.Encoding.Unicode.GetBytes(value + "\0");
+            byte[] buf = System.Text.Encoding.Unicode.GetBytes(value + "\0"); //NOXLATE
 
-			int charWidth = System.Text.Encoding.Unicode.GetByteCount(" ");
-			m_stream.WriteByte((byte)charWidth);
+            int charWidth = System.Text.Encoding.Unicode.GetByteCount(" "); //NOXLATE
+            m_stream.WriteByte((byte)charWidth);
 
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.Length + 1), 0, UInt32Len);
-			m_stream.Write(buf, 0, buf.Length);
-		}
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.Length + 1), 0, UInt32Len);
+            m_stream.Write(buf, 0, buf.Length);
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void Write(short value)
-		{
-			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT16, null, (ulong)UInt16Len));
-			m_stream.Write(BitConverter.GetBytes(value), 0, UInt16Len);
-		}
+        public void Write(short value)
+        {
+            Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT16, null, (ulong)UInt16Len));
+            m_stream.Write(BitConverter.GetBytes(value), 0, UInt16Len);
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void Write(int value)
-		{
-			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT32, null, (ulong)UInt32Len));
-			m_stream.Write(BitConverter.GetBytes(value), 0, UInt32Len);
-		}
+        public void Write(int value)
+        {
+            Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT32, null, (ulong)UInt32Len));
+            m_stream.Write(BitConverter.GetBytes(value), 0, UInt32Len);
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void Write(long value)
-		{
-			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT64, null, (ulong)UInt64Len));
-			m_stream.Write(BitConverter.GetBytes(value), 0, UInt64Len);
-		}
+        public void Write(long value)
+        {
+            Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT64, null, (ulong)UInt64Len));
+            m_stream.Write(BitConverter.GetBytes(value), 0, UInt64Len);
+        }
 
         /*
-		private void Write(float value)
-		{
-			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.Float, null, (ulong)FloatLen));
-			m_stream.Write(BitConverter.GetBytes(value), 0, FloatLen);
-		}*/
+        private void Write(float value)
+        {
+            Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.Float, null, (ulong)FloatLen));
+            m_stream.Write(BitConverter.GetBytes(value), 0, FloatLen);
+        }*/
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void Write(double value)
-		{
-			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.Double, null, (ulong)DoubleLen));
-			m_stream.Write(BitConverter.GetBytes(value), 0, DoubleLen);
-		}
+        public void Write(double value)
+        {
+            Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.Double, null, (ulong)DoubleLen));
+            m_stream.Write(BitConverter.GetBytes(value), 0, DoubleLen);
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">if set to <c>true</c> [value].</param>
-		public void Write(bool value)
-		{
-			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)UInt8Len));
-			m_stream.WriteByte((byte)(value ? 1 : 0));
-		}
+        public void Write(bool value)
+        {
+            Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)UInt8Len));
+            m_stream.WriteByte((byte)(value ? 1 : 0));
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void Write(byte value)
-		{
-			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)UInt8Len));
-			m_stream.WriteByte(value);
-		}
+        public void Write(byte value)
+        {
+            Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)UInt8Len));
+            m_stream.WriteByte(value);
+        }
 
         /// <summary>
         /// Writes the class id.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void WriteClassId(int value)
-		{
-			Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.ClassId, null, (ulong)UInt32Len));
-			m_stream.Write(BitConverter.GetBytes(value), 0, UInt32Len);
-		}
+        public void WriteClassId(int value)
+        {
+            Write(new MgArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.ClassId, null, (ulong)UInt32Len));
+            m_stream.Write(BitConverter.GetBytes(value), 0, UInt32Len);
+        }
 
         /// <summary>
         /// Writes the stream end.
         /// </summary>
-		public void WriteStreamEnd()
-		{
-			m_stream.Write(BitConverter.GetBytes((UInt32)MgStreamHeaderValues.StreamEnd), 0, UInt32Len);
-			m_stream.Flush();
-		}
+        public void WriteStreamEnd()
+        {
+            m_stream.Write(BitConverter.GetBytes((UInt32)MgStreamHeaderValues.StreamEnd), 0, UInt32Len);
+            m_stream.Flush();
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		public void Write(IBinarySerializable value)
-		{
-			if (value == null)
-				WriteClassId(0);
-			else
-				value.Serialize(this);
-		}
+        public void Write(IBinarySerializable value)
+        {
+            if (value == null)
+                WriteClassId(0);
+            else
+                value.Serialize(this);
+        }
 
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		private void Write(MgBinaryStreamArgumentPacket value)
-		{
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.ArgumentType), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.Version), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt64)value.Length), 0, UInt64Len);
-		}
+        private void Write(MgBinaryStreamArgumentPacket value)
+        {
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.ArgumentType), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.Version), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt64)value.Length), 0, UInt64Len);
+        }
 
         /// <summary>
         /// Writes the specified stream.
         /// </summary>
         /// <param name="stream">The stream.</param>
-		public void Write(Stream stream)
-		{
-			Write(new MgBinaryStreamArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)(stream == null ? 0 : stream.Length), MgBinaryStreamArgumentPacket.MG_STREAM_VERSION ));
-			Write(stream == null);
-			if (stream != null)
-			{
-				byte[] buf = new byte[8192];
-				int r = stream.Read(buf, 0, buf.Length);
-				while (r > 0)
-				{
-					m_stream.Write(BitConverter.GetBytes((UInt32)r), 0, UInt32Len);
-					r = stream.Read(buf, 0, buf.Length);
-				}
-				m_stream.Write(BitConverter.GetBytes((UInt32)0), 0, UInt32Len);
-			}
-		}
+        public void Write(Stream stream)
+        {
+            Write(new MgBinaryStreamArgumentPacket(MgPacketHeader.ArgumentSimple, MgArgumentType.INT8, null, (ulong)(stream == null ? 0 : stream.Length), MgBinaryStreamArgumentPacket.MG_STREAM_VERSION ));
+            Write(stream == null);
+            if (stream != null)
+            {
+                byte[] buf = new byte[8192];
+                int r = stream.Read(buf, 0, buf.Length);
+                while (r > 0)
+                {
+                    m_stream.Write(BitConverter.GetBytes((UInt32)r), 0, UInt32Len);
+                    r = stream.Read(buf, 0, buf.Length);
+                }
+                m_stream.Write(BitConverter.GetBytes((UInt32)0), 0, UInt32Len);
+            }
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		private void Write(MgArgumentPacket value)
-		{
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.ArgumentType), 0, UInt32Len);
-			if (value.ArgumentType == MgArgumentType.String)
-				m_stream.Write(BitConverter.GetBytes((UInt32)value.Length), 0, UInt32Len);
-		}
+        private void Write(MgArgumentPacket value)
+        {
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.ArgumentType), 0, UInt32Len);
+            if (value.ArgumentType == MgArgumentType.String)
+                m_stream.Write(BitConverter.GetBytes((UInt32)value.Length), 0, UInt32Len);
+        }
 
         /*
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		private void Write(MgStreamHeader value)
-		{
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.StreamStart), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.StreamVersion), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.StreamDataHdr), 0, UInt32Len);
-		}
+        private void Write(MgStreamHeader value)
+        {
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.StreamStart), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.StreamVersion), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.StreamDataHdr), 0, UInt32Len);
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		private void Write(MgOperationPacket value)
-		{
-			throw new NotImplementedException();
-		}
+        private void Write(MgOperationPacket value)
+        {
+            throw new NotImplementedException();
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		private void Write(MgOperationResponsePacket value)
-		{
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketVersion), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.ECode), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.NumReturnValues), 0, UInt32Len);
-		}
+        private void Write(MgOperationResponsePacket value)
+        {
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketVersion), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.ECode), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.NumReturnValues), 0, UInt32Len);
+        }
 
         /// <summary>
         /// Writes the specified e code.
         /// </summary>
         /// <param name="eCode">The e code.</param>
         /// <param name="noOfRetValues">The no of ret values.</param>
-		private void Write(MgECode eCode, UInt32 noOfRetValues)
-		{
-			Write(new MgStreamHeader(MgStreamHeaderValues.StreamStart, MgStreamHeader.CurrentStreamVersion, MgStreamHeaderValues.StreamData));
-			Write(new MgOperationResponsePacket(MgPacketHeader.OperationResponse, 1, eCode, noOfRetValues));
-		}
+        private void Write(MgECode eCode, UInt32 noOfRetValues)
+        {
+            Write(new MgStreamHeader(MgStreamHeaderValues.StreamStart, MgStreamHeader.CurrentStreamVersion, MgStreamHeaderValues.StreamData));
+            Write(new MgOperationResponsePacket(MgPacketHeader.OperationResponse, 1, eCode, noOfRetValues));
+        }
 
         /// <summary>
         /// Writes the specified value.
         /// </summary>
         /// <param name="value">The value.</param>
-		private void Write(MgControlPacket value)
-		{
-			Write(new MgStreamHeader(MgStreamHeaderValues.StreamStart, MgStreamHeader.CurrentStreamVersion, MgStreamHeaderValues.StreamData));
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketVersion), 0, UInt32Len);
-			m_stream.Write(BitConverter.GetBytes((UInt32)value.ControlID), 0, UInt32Len);
-			WriteStreamEnd();
-		}
+        private void Write(MgControlPacket value)
+        {
+            Write(new MgStreamHeader(MgStreamHeaderValues.StreamStart, MgStreamHeader.CurrentStreamVersion, MgStreamHeaderValues.StreamData));
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketHeader), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.PacketVersion), 0, UInt32Len);
+            m_stream.Write(BitConverter.GetBytes((UInt32)value.ControlID), 0, UInt32Len);
+            WriteStreamEnd();
+        }
         */
         /// <summary>
         /// Writes the raw.
         /// </summary>
         /// <param name="buf">The buf.</param>
-		public void WriteRaw(byte[] buf)
-		{
-			m_stream.Write(buf, 0, buf.Length);
-		}
+        public void WriteRaw(byte[] buf)
+        {
+            m_stream.Write(buf, 0, buf.Length);
+        }
 
-	}
+    }
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Services/IMappingService.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Services/IMappingService.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Services/IMappingService.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -171,7 +171,7 @@
         /// <param name="selection"></param>
         /// <param name="format"></param>
         /// <returns></returns>
-        [Obsolete("Use the version of RenderDynamicOverlay that is not marked Obsolete")]
+        [Obsolete("Use the version of RenderDynamicOverlay that is not marked Obsolete")] //NOXLATE
         System.IO.Stream RenderDynamicOverlay(RuntimeMap map, MapSelection selection, string format);
 
         /// <summary>
@@ -182,7 +182,7 @@
         /// <param name="format"></param>
         /// <param name="keepSelection"></param>
         /// <returns></returns>
-        [Obsolete("Use the version of RenderDynamicOverlay that is not marked Obsolete")]
+        [Obsolete("Use the version of RenderDynamicOverlay that is not marked Obsolete")] //NOXLATE
         System.IO.Stream RenderDynamicOverlay(RuntimeMap map, MapSelection selection, string format, bool keepSelection);
 
         /// <summary>

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Tile/BatchSettings.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Tile/BatchSettings.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Tile/BatchSettings.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -245,7 +245,7 @@
         /// <param name="password">The password to connect with</param>
         /// <param name="maps">A list of maps to process, leave empty to process all layers</param>
         public BatchSettings(string mapagent, string username, string password, params string[] maps)
-            : this(ConnectionProviderRegistry.CreateConnection("Maestro.Http", "Url", mapagent, "Username", username, "Password", password, "AllowUntestedVersions", "true"), maps)
+            : this(ConnectionProviderRegistry.CreateConnection("Maestro.Http", "Url", mapagent, "Username", username, "Password", password, "AllowUntestedVersions", "true"), maps) //NOXLATE
         {
         }
 
@@ -268,7 +268,7 @@
             if (maps == null || maps.Length == 0 || (maps.Length == 1 && maps[0].Trim().Length == 0))
             {
                 List<string> tmp = new List<string>();
-                foreach (var doc in m_connection.ResourceService.GetRepositoryResources("Library://", "MapDefinition").Children)
+                foreach (var doc in m_connection.ResourceService.GetRepositoryResources(StringConstants.RootIdentifier, ResourceTypes.MapDefinition.ToString()).Children)
                     tmp.Add(doc.ResourceId);
                 maps = tmp.ToArray();
             }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Tile/RenderThread.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Tile/RenderThread.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Tile/RenderThread.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -147,8 +147,9 @@
                                     eventToRaise.Col,
                                     ref eventToRaise.Exception);
                                 break;
-                            default: 
-                                throw new Exception("Bad event type"); //Not translated, because it is an internal error that should never happen
+                            default:
+                                //Not translated, because it is an internal error that should never happen 
+                                throw new Exception("Bad event type"); //NOXLATE
                         }
                         eventToRaise.Event.Set();
                         eventToRaise = null;
@@ -321,7 +322,7 @@
                 {
                     if (!Parent.Cancel)
                         if (Parent.Config.RenderMethod == null)
-                            tileSvc.GetTile(MapDefinition, group, (int)col, (int)row, scaleindex, "PNG").Dispose();
+                            tileSvc.GetTile(MapDefinition, group, (int)col, (int)row, scaleindex, "PNG").Dispose(); //NOXLATE
                         else
                             Parent.Config.RenderMethod(MapDefinition, group, (int)col, (int)row, scaleindex);
 

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utf8XmlWriter.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utf8XmlWriter.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utf8XmlWriter.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -73,7 +73,7 @@
 
 		private void Utf8WriteHeader()
 		{
-			base.WriteRaw("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
+            base.WriteRaw("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); //NOXLATE
 		}
 	}
 }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Utility.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -30,13 +30,13 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
-	/// <summary>
-	/// Various helper functions
-	/// </summary>
-	public class Utility
-	{
-		//Americans NEVER obey nationalization when outputting decimal values, so the rest of the world always have to work around their bugs :(
-		private static System.Globalization.CultureInfo m_enCI = new System.Globalization.CultureInfo("en-US");
+    /// <summary>
+    /// Various helper functions
+    /// </summary>
+    public class Utility
+    {
+        //Americans NEVER obey nationalization when outputting decimal values, so the rest of the world always have to work around their bugs :(
+        private static System.Globalization.CultureInfo m_enCI = new System.Globalization.CultureInfo("en-US");
 
         /// <summary>
         /// Converts the specified name value collection into a connection string
@@ -50,12 +50,12 @@
             foreach (string name in values.Keys)
             {
                 string value = values[name];
-                if (value.Contains(";"))
-                    value = "\"" + value + "\"";
-                tokens.Add(name + "=" + value);
+                if (value.Contains(";")) //NOXLATE
+                    value = "\"" + value + "\""; //NOXLATE
+                tokens.Add(name + "=" + value); //NOXLATE
             }
 
-            return string.Join(";", tokens.ToArray());
+            return string.Join(";", tokens.ToArray()); //NOXLATE
         }
 
         /// <summary>
@@ -66,46 +66,46 @@
         public static string StripVersionFromProviderName(string providername)
         {
             double x;
-            string[] parts = providername.Split('.');
+            string[] parts = providername.Split('.'); //NOXLATE
             for (int i = parts.Length - 1; i >= 0; i--)
             {
                 if (!double.TryParse(parts[i], System.Globalization.NumberStyles.Integer, null, out x))
                 {
                     if (i != 0)
-                        return string.Join(".", parts, 0, i + 1);
+                        return string.Join(".", parts, 0, i + 1); //NOXLATE
                     break;
                 }
             }
             return providername;
         }
 
-		/// <summary>
-		/// Parses a color in HTML notation (ea. #ffaabbff)
-		/// </summary>
-		/// <param name="color">The HTML representation of the color</param>
-		/// <returns>The .Net color structure that matches the color</returns>
-		public static Color ParseHTMLColor(string color)
-		{
-			if (color.Length == 8)
-			{
-				int a = int.Parse(color.Substring(0,2), System.Globalization.NumberStyles.HexNumber);
-				int r = int.Parse(color.Substring(2,2), System.Globalization.NumberStyles.HexNumber);
-				int g = int.Parse(color.Substring(4,2), System.Globalization.NumberStyles.HexNumber);
-				int b = int.Parse(color.Substring(6,2), System.Globalization.NumberStyles.HexNumber);
+        /// <summary>
+        /// Parses a color in HTML notation (ea. #ffaabbff)
+        /// </summary>
+        /// <param name="color">The HTML representation of the color</param>
+        /// <returns>The .Net color structure that matches the color</returns>
+        public static Color ParseHTMLColor(string color)
+        {
+            if (color.Length == 8)
+            {
+                int a = int.Parse(color.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
+                int r = int.Parse(color.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
+                int g = int.Parse(color.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
+                int b = int.Parse(color.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
 
-				return Color.FromArgb(a, r,g,b);
-			}
-			else if (color.Length == 6)
-			{
-				int r = int.Parse(color.Substring(0,2), System.Globalization.NumberStyles.HexNumber);
-				int g = int.Parse(color.Substring(2,2), System.Globalization.NumberStyles.HexNumber);
-				int b = int.Parse(color.Substring(4,2), System.Globalization.NumberStyles.HexNumber);
+                return Color.FromArgb(a, r, g, b);
+            }
+            else if (color.Length == 6)
+            {
+                int r = int.Parse(color.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
+                int g = int.Parse(color.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
+                int b = int.Parse(color.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
 
-				return Color.FromArgb(r,g,b);
-			}
-			else
-				throw new Exception("Bad HTML color: \"" + color + "\"");
-		}
+                return Color.FromArgb(r, g, b);
+            }
+            else
+                throw new Exception(string.Format(Properties.Resources.ErrorBadHtmlColor, color));
+        }
 
         /// <summary>
         /// Parses a color in HTML notation (ea. #ffaabbff)
@@ -132,25 +132,25 @@
                 return Color.FromArgb(r, g, b);
             }
             else
-                throw new Exception("Bad HTML color: \"" + color + "\"");
+                throw new Exception(string.Format(Properties.Resources.ErrorBadHtmlColor, color));
         }
 
-		/// <summary>
-		/// Returns the HTML ARGB representation of an .Net color structure
-		/// </summary>
-		/// <param name="color">The color to encode</param>
-		/// <param name="includeAlpha">A flag indicating if the color structures alpha value should be included</param>
-		/// <returns>The HTML representation of the color structure</returns>
-		public static string SerializeHTMLColor(Color color, bool includeAlpha)
-		{
-			string res = "";
-			if (includeAlpha)
-				res += color.A.ToString("x02");
-			res += color.R.ToString("x02");
-			res += color.G.ToString("x02");
-			res += color.B.ToString("x02");
-			return res;
-		}
+        /// <summary>
+        /// Returns the HTML ARGB representation of an .Net color structure
+        /// </summary>
+        /// <param name="color">The color to encode</param>
+        /// <param name="includeAlpha">A flag indicating if the color structures alpha value should be included</param>
+        /// <returns>The HTML representation of the color structure</returns>
+        public static string SerializeHTMLColor(Color color, bool includeAlpha)
+        {
+            string res = string.Empty;
+            if (includeAlpha)
+                res += color.A.ToString("x02"); //NOXLATE
+            res += color.R.ToString("x02"); //NOXLATE
+            res += color.G.ToString("x02"); //NOXLATE
+            res += color.B.ToString("x02"); //NOXLATE
+            return res;
+        }
 
         /// <summary>
         /// Returns the HTML RGBA representation of an .Net color structure
@@ -160,44 +160,44 @@
         /// <returns>The HTML representation of the color structure</returns>
         public static string SerializeHTMLColorRGBA(Color color, bool includeAlpha)
         {
-            string res = "";
-            res += color.R.ToString("x02");
-            res += color.G.ToString("x02");
-            res += color.B.ToString("x02");
+            string res = string.Empty;
+            res += color.R.ToString("x02"); //NOXLATE
+            res += color.G.ToString("x02"); //NOXLATE
+            res += color.B.ToString("x02"); //NOXLATE
             if (includeAlpha)
-                res += color.A.ToString("x02");
+                res += color.A.ToString("x02"); //NOXLATE
             return res;
         }
 
-		/// <summary>
-		/// Parses a string with a decimal value in EN-US format
-		/// </summary>
-		/// <param name="digit">The string value</param>
-		/// <returns>The parsed value</returns>
-		public static float ParseDigit(string digit)
-		{
-			return (float)double.Parse(digit, m_enCI);
-		}
+        /// <summary>
+        /// Parses a string with a decimal value in EN-US format
+        /// </summary>
+        /// <param name="digit">The string value</param>
+        /// <returns>The parsed value</returns>
+        public static float ParseDigit(string digit)
+        {
+            return (float)double.Parse(digit, m_enCI);
+        }
 
-		/// <summary>
-		/// Turns a decimal value into a string representation in EN-US format
-		/// </summary>
-		/// <param name="digit">The value to encode</param>
-		/// <returns>The encoded value</returns>
-		public static string SerializeDigit(float digit)
-		{
-			return digit.ToString(m_enCI);
-		}
+        /// <summary>
+        /// Turns a decimal value into a string representation in EN-US format
+        /// </summary>
+        /// <param name="digit">The value to encode</param>
+        /// <returns>The encoded value</returns>
+        public static string SerializeDigit(float digit)
+        {
+            return digit.ToString(m_enCI);
+        }
 
-		/// <summary>
-		/// Turns a decimal value into a string representation in EN-US format
-		/// </summary>
-		/// <param name="digit">The value to encode</param>
-		/// <returns>The encoded value</returns>
-		public static string SerializeDigit(double digit)
-		{
-			return digit.ToString(m_enCI);
-		}
+        /// <summary>
+        /// Turns a decimal value into a string representation in EN-US format
+        /// </summary>
+        /// <param name="digit">The value to encode</param>
+        /// <returns>The encoded value</returns>
+        public static string SerializeDigit(double digit)
+        {
+            return digit.ToString(m_enCI);
+        }
 
 
         /// <summary>
@@ -211,16 +211,16 @@
             CopyStream(source, target, true);
         }
 
-		/// <summary>
-		/// Copies the content of a stream into another stream.
-		/// </summary>
-		/// <param name="source">The source stream</param>
-		/// <param name="target">The target stream</param>
+        /// <summary>
+        /// Copies the content of a stream into another stream.
+        /// </summary>
+        /// <param name="source">The source stream</param>
+        /// <param name="target">The target stream</param>
         /// <param name="rewind">True if the source stream should be rewound before being copied</param>
-		public static void CopyStream(System.IO.Stream source, System.IO.Stream target, bool rewind)
-		{
-			int r;
-			byte[] buf = new byte[1024];
+        public static void CopyStream(System.IO.Stream source, System.IO.Stream target, bool rewind)
+        {
+            int r;
+            byte[] buf = new byte[1024];
 
             bool rewound = false;
             if (rewind)
@@ -248,12 +248,12 @@
                 //    throw new InvalidOperationException("Could not rewind the source stream. Most likely the source stream does not support seeking or rewinding"); //LOCALIZEME
             }
 
-			do
-			{
-				r  = source.Read(buf, 0, buf.Length);
-				target.Write(buf, 0, r);
-			} while (r > 0);
-		}
+            do
+            {
+                r  = source.Read(buf, 0, buf.Length);
+                target.Write(buf, 0, r);
+            } while (r > 0);
+        }
 
         /// <summary>
         /// A delegate used to update a progress bar while copying a stream.
@@ -323,96 +323,96 @@
             return ser.Deserialize(ms);
         }
 
-		/// <summary>
-		/// Makes a deep copy of an object, by copying all the public properties.
-		/// This overload tries to maintain object references by assigning properties
-		/// </summary>
-		/// <param name="source">The object to copy</param>
-		/// <param name="target">The object to assign to</param>
-		/// <returns>A copied object</returns>
-		public static object DeepCopy(object source, object target)
-		{
-			foreach(System.Reflection.PropertyInfo pi in source.GetType().GetProperties())
-			{
-				if (!pi.CanRead || !pi.CanWrite)
-					continue;
+        /// <summary>
+        /// Makes a deep copy of an object, by copying all the public properties.
+        /// This overload tries to maintain object references by assigning properties
+        /// </summary>
+        /// <param name="source">The object to copy</param>
+        /// <param name="target">The object to assign to</param>
+        /// <returns>A copied object</returns>
+        public static object DeepCopy(object source, object target)
+        {
+            foreach(System.Reflection.PropertyInfo pi in source.GetType().GetProperties())
+            {
+                if (!pi.CanRead || !pi.CanWrite)
+                    continue;
 
-				if (!pi.PropertyType.IsClass || pi.PropertyType == typeof(string) )
-					pi.SetValue(target, pi.GetValue(source, null) , null);
-				else if (pi.GetValue(source, null) == null)
-					pi.SetValue(target, null, null);
-				else if (pi.GetValue(source, null).GetType().GetInterface(typeof(System.Collections.ICollection).FullName) != null)
-				{
-					System.Collections.ICollection srcList = (System.Collections.ICollection)pi.GetValue(source, null);
-					System.Collections.ICollection trgList = (System.Collections.ICollection)Activator.CreateInstance(srcList.GetType());
-					foreach(object o in srcList)
-						trgList.GetType().GetMethod("Add").Invoke(trgList, new object[] { DeepCopy(o) } );
-					pi.SetValue(target, trgList, null);
-				}
-				else if (pi.GetValue(source, null).GetType().IsArray)
-				{
-					System.Array sourceArr = (System.Array)pi.GetValue(source, null);
-					System.Array targetArr = (System.Array)Activator.CreateInstance(sourceArr.GetType(), new object[] { sourceArr.Length });
-					for(int i = 0; i < targetArr.Length; i++)
-						targetArr.SetValue(DeepCopy(sourceArr.GetValue(i)), i);
-					pi.SetValue(target, targetArr, null);
-				}
-				else
-				{
-					if (pi.GetValue(target, null) == null)
-						pi.SetValue(target, Activator.CreateInstance(pi.GetValue(source, null).GetType()), null);
-					DeepCopy(pi.GetValue(source, null), pi.GetValue(target, null));
-				}
-			}
+                if (!pi.PropertyType.IsClass || pi.PropertyType == typeof(string) )
+                    pi.SetValue(target, pi.GetValue(source, null) , null);
+                else if (pi.GetValue(source, null) == null)
+                    pi.SetValue(target, null, null);
+                else if (pi.GetValue(source, null).GetType().GetInterface(typeof(System.Collections.ICollection).FullName) != null)
+                {
+                    System.Collections.ICollection srcList = (System.Collections.ICollection)pi.GetValue(source, null);
+                    System.Collections.ICollection trgList = (System.Collections.ICollection)Activator.CreateInstance(srcList.GetType());
+                    foreach(object o in srcList)
+                        trgList.GetType().GetMethod("Add").Invoke(trgList, new object[] { DeepCopy(o) }); //NOXLATE
+                    pi.SetValue(target, trgList, null);
+                }
+                else if (pi.GetValue(source, null).GetType().IsArray)
+                {
+                    System.Array sourceArr = (System.Array)pi.GetValue(source, null);
+                    System.Array targetArr = (System.Array)Activator.CreateInstance(sourceArr.GetType(), new object[] { sourceArr.Length });
+                    for(int i = 0; i < targetArr.Length; i++)
+                        targetArr.SetValue(DeepCopy(sourceArr.GetValue(i)), i);
+                    pi.SetValue(target, targetArr, null);
+                }
+                else
+                {
+                    if (pi.GetValue(target, null) == null)
+                        pi.SetValue(target, Activator.CreateInstance(pi.GetValue(source, null).GetType()), null);
+                    DeepCopy(pi.GetValue(source, null), pi.GetValue(target, null));
+                }
+            }
 
-			return target;
-		}
+            return target;
+        }
 
 
 
-		/// <summary>
-		/// Makes a deep copy of an object, by copying all the public properties
-		/// </summary>
-		/// <param name="source">The object to copy</param>
-		/// <returns>A copied object</returns>
-		public static object DeepCopy(object source)
-		{
+        /// <summary>
+        /// Makes a deep copy of an object, by copying all the public properties
+        /// </summary>
+        /// <param name="source">The object to copy</param>
+        /// <returns>A copied object</returns>
+        public static object DeepCopy(object source)
+        {
             if (source == null)
                 return null;
 
-			object target = Activator.CreateInstance(source.GetType());
+            object target = Activator.CreateInstance(source.GetType());
 
-			foreach(System.Reflection.PropertyInfo pi in source.GetType().GetProperties())
-			{
-				if (!pi.CanRead || !pi.CanWrite)
-					continue;
+            foreach(System.Reflection.PropertyInfo pi in source.GetType().GetProperties())
+            {
+                if (!pi.CanRead || !pi.CanWrite)
+                    continue;
 
-				if (!pi.PropertyType.IsClass || pi.PropertyType == typeof(string) )
-					pi.SetValue(target, pi.GetValue(source, null) , null);
-				else if (pi.GetValue(source, null) == null)
-					pi.SetValue(target, null, null);
-				else if (pi.GetValue(source, null).GetType().GetInterface(typeof(System.Collections.ICollection).FullName) != null)
-				{
-					System.Collections.ICollection srcList = (System.Collections.ICollection)pi.GetValue(source, null);
-					System.Collections.ICollection trgList = (System.Collections.ICollection)Activator.CreateInstance(srcList.GetType());
-					foreach(object o in srcList)
-						trgList.GetType().GetMethod("Add").Invoke(trgList, new object[] { DeepCopy(o) } );
-					pi.SetValue(target, trgList, null);
-				}
-				else if (pi.GetValue(source, null).GetType().IsArray)
-				{
-					System.Array sourceArr = (System.Array)pi.GetValue(source, null);
-					System.Array targetArr = (System.Array)Activator.CreateInstance(sourceArr.GetType(), new object[] { sourceArr.Length });
-					for(int i = 0; i < targetArr.Length; i++)
-						targetArr.SetValue(DeepCopy(sourceArr.GetValue(i)), i);
-					pi.SetValue(target, targetArr, null);
-				}
-				else
-					pi.SetValue(target, DeepCopy(pi.GetValue(source, null)), null);
-			}
+                if (!pi.PropertyType.IsClass || pi.PropertyType == typeof(string) )
+                    pi.SetValue(target, pi.GetValue(source, null) , null);
+                else if (pi.GetValue(source, null) == null)
+                    pi.SetValue(target, null, null);
+                else if (pi.GetValue(source, null).GetType().GetInterface(typeof(System.Collections.ICollection).FullName) != null)
+                {
+                    System.Collections.ICollection srcList = (System.Collections.ICollection)pi.GetValue(source, null);
+                    System.Collections.ICollection trgList = (System.Collections.ICollection)Activator.CreateInstance(srcList.GetType());
+                    foreach(object o in srcList)
+                        trgList.GetType().GetMethod("Add").Invoke(trgList, new object[] { DeepCopy(o) }); //NOXLATE
+                    pi.SetValue(target, trgList, null);
+                }
+                else if (pi.GetValue(source, null).GetType().IsArray)
+                {
+                    System.Array sourceArr = (System.Array)pi.GetValue(source, null);
+                    System.Array targetArr = (System.Array)Activator.CreateInstance(sourceArr.GetType(), new object[] { sourceArr.Length });
+                    for(int i = 0; i < targetArr.Length; i++)
+                        targetArr.SetValue(DeepCopy(sourceArr.GetValue(i)), i);
+                    pi.SetValue(target, targetArr, null);
+                }
+                else
+                    pi.SetValue(target, DeepCopy(pi.GetValue(source, null)), null);
+            }
 
-			return target;
-		}
+            return target;
+        }
 
         
 
@@ -422,52 +422,52 @@
         /// </summary>
         /// <param name="s">The stream to exhaust</param>
         /// <returns>The streams content as an array</returns>
-		public static byte[] StreamAsArray(System.IO.Stream s)
-		{
-			if (s as System.IO.MemoryStream != null)
-				return ((System.IO.MemoryStream)s).ToArray();
+        public static byte[] StreamAsArray(System.IO.Stream s)
+        {
+            if (s as System.IO.MemoryStream != null)
+                return ((System.IO.MemoryStream)s).ToArray();
 
-			if (!s.CanSeek)
-			{
-				System.IO.MemoryStream ms = new System.IO.MemoryStream();
-				byte[] buf = new byte[1024];
-				int c;
-				while((c = s.Read(buf, 0, buf.Length)) > 0)
-					ms.Write(buf, 0, c);
-				return ms.ToArray();
-			}
-			else
-			{
-				byte[] buf = new byte[s.Length];
-				s.Position = 0;
-				s.Read(buf, 0, buf.Length);
-				return buf;
-			}
-		}
+            if (!s.CanSeek)
+            {
+                System.IO.MemoryStream ms = new System.IO.MemoryStream();
+                byte[] buf = new byte[1024];
+                int c;
+                while((c = s.Read(buf, 0, buf.Length)) > 0)
+                    ms.Write(buf, 0, c);
+                return ms.ToArray();
+            }
+            else
+            {
+                byte[] buf = new byte[s.Length];
+                s.Position = 0;
+                s.Read(buf, 0, buf.Length);
+                return buf;
+            }
+        }
 
-		/// <summary>
-		/// Creates a copy of the stream, with removed Utf8 BOM, if any
-		/// </summary>
-		/// <param name="ms">The stream to fix</param>
-		/// <returns>A stream with no Utf8 BOM</returns>
-		public static System.IO.MemoryStream RemoveUTF8BOM(System.IO.MemoryStream ms)
-		{
-			//Skip UTF file header, since the MapGuide XmlParser is broken
-			ms.Position = 0;
-			byte[] utfheader = new byte[3];
-			if (ms.Read(utfheader, 0, utfheader.Length) == utfheader.Length)
-				if (utfheader[0] == 0xEF && utfheader[1] == 0xBB && utfheader[2] == 0xBF)
-				{
-					ms.Position = 3;
-					System.IO.MemoryStream mxs = new System.IO.MemoryStream();
-					Utility.CopyStream(ms, mxs, false);
-					mxs.Position = 0;
-					return mxs;
-				}
+        /// <summary>
+        /// Creates a copy of the stream, with removed Utf8 BOM, if any
+        /// </summary>
+        /// <param name="ms">The stream to fix</param>
+        /// <returns>A stream with no Utf8 BOM</returns>
+        public static System.IO.MemoryStream RemoveUTF8BOM(System.IO.MemoryStream ms)
+        {
+            //Skip UTF file header, since the MapGuide XmlParser is broken
+            ms.Position = 0;
+            byte[] utfheader = new byte[3];
+            if (ms.Read(utfheader, 0, utfheader.Length) == utfheader.Length)
+                if (utfheader[0] == 0xEF && utfheader[1] == 0xBB && utfheader[2] == 0xBF)
+                {
+                    ms.Position = 3;
+                    System.IO.MemoryStream mxs = new System.IO.MemoryStream();
+                    Utility.CopyStream(ms, mxs, false);
+                    mxs.Position = 0;
+                    return mxs;
+                }
 
-			ms.Position = 0;
-			return ms;
-		}
+            ms.Position = 0;
+            return ms;
+        }
 
         /// <summary>
         /// Returns a type used to define an unknown column type in a feature reader
@@ -515,12 +515,12 @@
                         if (m.Success && m.Groups.Count == 3)
                         {
                             html = m.Groups[2].Value;
-                            int n = html.IndexOf("</h2>");
+                            int n = html.IndexOf("</h2>"); //NOXLATE
                             if (n > 0)
-                                html = html.Substring(n + "</h2>".Length);
+                                html = html.Substring(n + "</h2>".Length); //NOXLATE
                         }
 
-                        return new Exception(wex.Message + ": " + html, wex);
+                        return new Exception(wex.Message + ": " + html, wex); //NOXLATE
                     }
                 }
                 catch
@@ -547,17 +547,17 @@
 
             System.Xml.XmlDocument doc2 = new System.Xml.XmlDocument();
 
-            System.Xml.XmlNode root1 = doc1["FeatureInformation"];
+            System.Xml.XmlNode root1 = doc1["FeatureInformation"]; //NOXLATE
             if (root1 == null)
                 root1 = doc1;
 
-            if (root1["FeatureSet"] != null)
+            if (root1["FeatureSet"] != null) //NOXLATE
             {
-                System.Xml.XmlNode root2 = doc2.AppendChild(doc2.CreateElement("FeatureSet"));
-                root2.InnerXml = root1["FeatureSet"].InnerXml;
+                System.Xml.XmlNode root2 = doc2.AppendChild(doc2.CreateElement("FeatureSet")); //NOXLATE
+                root2.InnerXml = root1["FeatureSet"].InnerXml; //NOXLATE
             }
 
-            return doc2.OuterXml == "<FeatureSet />" ? "" : doc2.OuterXml;
+            return doc2.OuterXml == "<FeatureSet />" ? "" : doc2.OuterXml; //NOXLATE
             
         }
 
@@ -569,13 +569,13 @@
         public static string FormatSizeString(long size)
         {
             if (size > 1024 * 1024 * 1024)
-                return string.Format("{0:N} GB", (double)size / (1024 * 1024 * 1024));
+                return string.Format("{0:N} GB", (double)size / (1024 * 1024 * 1024)); //NOXLATE
             else if (size > 1024 * 1024)
-                return string.Format("{0:N} MB", (double)size / (1024 * 1024));
+                return string.Format("{0:N} MB", (double)size / (1024 * 1024)); //NOXLATE
             else if (size > 1024)
-                return string.Format("{0:N} KB", (double)size / 1024);
+                return string.Format("{0:N} KB", (double)size / 1024); //NOXLATE
             else
-                return string.Format("{0} bytes", size);
+                return string.Format("{0} bytes", size); //NOXLATE
         }
 
         private static System.Text.RegularExpressions.Regex EncRegExp = new System.Text.RegularExpressions.Regex(@"(\-x([0-9]|[a-e]|[A-E])([0-9]|[a-e]|[A-E])\-)|(\-dot\-)|(\-colon\-)", System.Text.RegularExpressions.RegexOptions.Compiled);
@@ -587,13 +587,13 @@
         /// <returns></returns>
         public static string EncodeFDOName(string name)
         {
-            return name.Replace("\"", "-x22-")
-                       .Replace("&", "-x26-")
-                       .Replace("'", "-x27-")
-                       .Replace("<", "-x3C-")
-                       .Replace(">", "-x3E-")
-                       .Replace("~", "-x7E-")
-                       .Replace(" ", "-x20-");
+            return name.Replace("\"", "-x22-") //NOXLATE
+                       .Replace("&", "-x26-") //NOXLATE
+                       .Replace("'", "-x27-") //NOXLATE
+                       .Replace("<", "-x3C-") //NOXLATE
+                       .Replace(">", "-x3E-") //NOXLATE
+                       .Replace("~", "-x7E-") //NOXLATE
+                       .Replace(" ", "-x20-"); //NOXLATE
         }
 
         /// <summary>
@@ -611,10 +611,10 @@
             while (m != null && m.Success)
             {
                 string replaceval;
-                if (m.Value == "-dot-")
-                    replaceval = ".";
-                else if (m.Value == "-colon-")
-                    replaceval = ":";
+                if (m.Value == "-dot-") //NOXLATE
+                    replaceval = "."; //NOXLATE
+                else if (m.Value == "-colon-") //NOXLATE
+                    replaceval = ":"; //NOXLATE
                 else
                     replaceval = ((char)int.Parse(m.Value.Substring(2, 2), System.Globalization.NumberStyles.HexNumber)).ToString();
 
@@ -655,12 +655,12 @@
                     if (nx.NodeType == System.Xml.XmlNodeType.Element)
                         lst.Enqueue(nx);
 
-                if (n.Name == "ResourceId")
+                if (n.Name == "ResourceId") //NOXLATE
                     res.Add(new KeyValuePair<System.Xml.XmlNode, string>(n, n.InnerXml));
 
                 if (n.Attributes != null)
                     foreach (System.Xml.XmlAttribute a in n.Attributes)
-                        if (a.Name == "ResourceId")
+                        if (a.Name == "ResourceId") //NOXLATE
                             res.Add(new KeyValuePair<System.Xml.XmlNode, string>(a, a.Value));
             }
 
@@ -703,10 +703,10 @@
         /// <param name="c">The callback function</param>
         public static void EnumerateObjects(object obj, EnumerateObjectCallback c)
         {
-			if (obj == null || c == null)
-				return;
+            if (obj == null || c == null)
+                return;
 
-		    Dictionary<object, object> visited = new Dictionary<object,object>();
+            Dictionary<object, object> visited = new Dictionary<object,object>();
 
             Queue<object> items = new Queue<object>();
             items.Enqueue(obj);
@@ -793,7 +793,7 @@
         {
             var att = node.Attributes[name];
             if (att == null)
-                return node.Attributes["fdo:" + name];
+                return node.Attributes["fdo:" + name]; //NOXLATE
 
             return att;
         }
@@ -809,7 +809,7 @@
         {
             var element = el[name];
             if (element == null)
-                return el["fdo:" + name];
+                return el["fdo:" + name]; //NOXLATE
             return element;
         }
     }

Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs	2012-09-10 14:13:54 UTC (rev 6995)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/XmlValidator.cs	2012-09-10 16:47:43 UTC (rev 6996)
@@ -21,23 +21,23 @@
 
 namespace OSGeo.MapGuide.MaestroAPI
 {
-	using System;
-	using System.Collections;
-	using System.Data;
-	using System.IO;
-	using System.Xml;
-	using System.Xml.Schema;
-	using System.Text;
+    using System;
+    using System.Collections;
+    using System.Data;
+    using System.IO;
+    using System.Xml;
+    using System.Xml.Schema;
+    using System.Text;
     using System.Collections.Generic;
     using System.Collections.ObjectModel;
     using OSGeo.MapGuide.MaestroAPI.Resource;
     using OSGeo.MapGuide.MaestroAPI.Exceptions;
 
-	///<summary>
-	/// Class that makes XSD validation
-	///</summary>
-	public class XmlValidator
-	{
+    ///<summary>
+    /// Class that makes XSD validation
+    ///</summary>
+    public class XmlValidator
+    {
         private List<string> warnings = new List<string>();
         private List<string> errors = new List<string>();
 
@@ -62,8 +62,8 @@
         /// </summary>
         /// <param name="xml">The XML.</param>
         /// <param name="xsds">The array of <see cref="T:System.Xml.Schema.XmlSchema"/> objects to validate against.</param>
-		public void Validate(System.IO.Stream xml, XmlSchema[] xsds)
-		{
+        public void Validate(System.IO.Stream xml, XmlSchema[] xsds)
+        {
             this.warnings.Clear();
             this.errors.Clear();
 
@@ -95,7 +95,7 @@
             {
                 while (reader.Read()) { } //Trigger the validation
             }
-		}
+        }
 
         private static XmlSchema GetXsd(string xsdPath, string xsdFile)
         {
@@ -169,41 +169,41 @@
                 //HACK: Yes this is hard-coded because XmlSchema's dependency resolution sucks!
 
                 //Nearly all relevant xsds include this anyway so add it to the set
-                var pc = GetXsd(xsdPath, "PlatformCommon-1.0.0.xsd");
+                var pc = GetXsd(xsdPath, "PlatformCommon-1.0.0.xsd"); //NOXLATE
                 if (pc != null)
-                    xsds.Add("PlatformCommon-1.0.0.xsd", pc);
+                    xsds.Add("PlatformCommon-1.0.0.xsd", pc); //NOXLATE
 
                 if (res.ResourceType == ResourceTypes.LayerDefinition)
                 {
                     string version = res.ResourceVersion.ToString();
-                    if (version.StartsWith("1.1.0"))
+                    if (version.StartsWith("1.1.0")) //NOXLATE
                     {
-                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.0.0.xsd");
+                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.0.0.xsd"); //NOXLATE
                         if (sym != null)
-                            xsds.Add("SymbolDefinition-1.0.0.xsd", sym);
+                            xsds.Add("SymbolDefinition-1.0.0.xsd", sym); //NOXLATE
                     }
-                    else if (version.StartsWith("1.2.0") || version.StartsWith("1.3.0"))
+                    else if (version.StartsWith("1.2.0") || version.StartsWith("1.3.0")) //NOXLATE
                     {
-                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.1.0.xsd");
+                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.1.0.xsd"); //NOXLATE
                         if (sym != null)
-                            xsds.Add("SymbolDefinition-1.1.0.xsd", sym);
+                            xsds.Add("SymbolDefinition-1.1.0.xsd", sym); //NOXLATE
                     }
-                    else if (version.StartsWith("2.3.0"))
+                    else if (version.StartsWith("2.3.0")) //NOXLATE
                     {
-                        var wmd = GetXsd(xsdPath, "WatermarkDefinition-2.3.0.xsd");
+                        var wmd = GetXsd(xsdPath, "WatermarkDefinition-2.3.0.xsd"); //NOXLATE
                         if (wmd != null)
-                            xsds.Add("WatermarkDefinition-2.3.0.xsd", wmd);
+                            xsds.Add("WatermarkDefinition-2.3.0.xsd", wmd); //NOXLATE
                     }
                 }
 
                 if (res.ResourceType == ResourceTypes.WatermarkDefinition)
                 {
                     string version = res.ResourceVersion.ToString();
-                    if (version.StartsWith("2.3.0"))
+                    if (version.StartsWith("2.3.0")) //NOXLATE
                     {
-                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.1.0.xsd");
+                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.1.0.xsd"); //NOXLATE
                         if (sym != null)
-                            xsds.Add("SymbolDefinition-1.1.0.xsd", sym);
+                            xsds.Add("SymbolDefinition-1.1.0.xsd", sym); //NOXLATE
                     }
                 }
 
@@ -212,17 +212,17 @@
                     string version = res.ResourceVersion.ToString();
                     if (version.StartsWith("2.3.0"))
                     {
-                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.1.0.xsd");
+                        var sym = GetXsd(xsdPath, "SymbolDefinition-1.1.0.xsd"); //NOXLATE
                         if (sym != null)
-                            xsds.Add("SymbolDefinition-1.1.0.xsd", sym);
+                            xsds.Add("SymbolDefinition-1.1.0.xsd", sym); //NOXLATE
 
-                        var wmd = GetXsd(xsdPath, "WatermarkDefinition-2.3.0.xsd");
+                        var wmd = GetXsd(xsdPath, "WatermarkDefinition-2.3.0.xsd"); //NOXLATE
                         if (wmd != null)
-                            xsds.Add("WatermarkDefinition-2.3.0.xsd", wmd);
+                            xsds.Add("WatermarkDefinition-2.3.0.xsd", wmd); //NOXLATE
                     }
                 }
 
-                string xsdName = res.ResourceType.ToString() + "-" + res.ResourceVersion.ToString() + ".xsd";
+                string xsdName = res.ResourceType.ToString() + "-" + res.ResourceVersion.ToString() + ".xsd"; //NOXLATE
                 if (!xsds.ContainsKey(xsdName))
                 {
                     var schemaObj = GetXsd(xsdPath, xsdName);
@@ -243,5 +243,5 @@
             errors = err.ToArray();
             warnings = warn.ToArray();
         }
-	}
+    }
 }



More information about the mapguide-commits mailing list