aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/Localizer.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2018-08-01 03:02:34 -0700
committerRob Mensching <rob@firegiant.com>2018-08-01 03:02:34 -0700
commit52005c7e6917f9866dd0b0de6993def16a72ed4b (patch)
tree59e32ad17a3ca5915c4cddbeaa83b58a73f0c3a5 /src/WixToolset.Core/Localizer.cs
parent79473d778b6cc4c8eec93b92e3b244aed904dac1 (diff)
downloadwix-52005c7e6917f9866dd0b0de6993def16a72ed4b.tar.gz
wix-52005c7e6917f9866dd0b0de6993def16a72ed4b.tar.bz2
wix-52005c7e6917f9866dd0b0de6993def16a72ed4b.zip
Major reduction in public surface area of WixToolset.Core
Diffstat (limited to 'src/WixToolset.Core/Localizer.cs')
-rw-r--r--src/WixToolset.Core/Localizer.cs36
1 files changed, 15 insertions, 21 deletions
diff --git a/src/WixToolset.Core/Localizer.cs b/src/WixToolset.Core/Localizer.cs
index cb9a4406..a545f844 100644
--- a/src/WixToolset.Core/Localizer.cs
+++ b/src/WixToolset.Core/Localizer.cs
@@ -11,31 +11,25 @@ namespace WixToolset.Core
11 using WixToolset.Extensibility; 11 using WixToolset.Extensibility;
12 using WixToolset.Extensibility.Services; 12 using WixToolset.Extensibility.Services;
13 13
14 /// <summary> 14 internal class Localizer : ILocalizer
15 /// Parses localization files and localizes database values.
16 /// </summary>
17 public sealed class Localizer
18 { 15 {
19 public static readonly XNamespace WxlNamespace = "http://wixtoolset.org/schemas/v4/wxl"; 16 public static readonly XNamespace WxlNamespace = "http://wixtoolset.org/schemas/v4/wxl";
20 private static string XmlElementName = "WixLocalization"; 17 private static string XmlElementName = "WixLocalization";
21 18
22 /// <summary> 19 internal Localizer(IServiceProvider serviceProvider)
23 /// Loads a localization file from a path on disk. 20 {
24 /// </summary> 21 this.Messaging = serviceProvider.GetService<IMessaging>();
25 /// <param name="path">Path to localization file saved on disk.</param> 22 }
26 /// <returns>Returns the loaded localization file.</returns> 23
27 public static Localization ParseLocalizationFile(IMessaging messaging, string path) 24 private IMessaging Messaging { get; }
25
26 public Localization ParseLocalizationFile(string path)
28 { 27 {
29 var document = XDocument.Load(path); 28 var document = XDocument.Load(path);
30 return ParseLocalizationFile(messaging, document); 29 return ParseLocalizationFile(document);
31 } 30 }
32 31
33 /// <summary> 32 public Localization ParseLocalizationFile(XDocument document)
34 /// Loads a localization file from memory.
35 /// </summary>
36 /// <param name="document">Document to parse as localization file.</param>
37 /// <returns>Returns the loaded localization file.</returns>
38 public static Localization ParseLocalizationFile(IMessaging messaging, XDocument document)
39 { 33 {
40 XElement root = document.Root; 34 XElement root = document.Root;
41 Localization localization = null; 35 Localization localization = null;
@@ -45,23 +39,23 @@ namespace WixToolset.Core
45 { 39 {
46 if (Localizer.WxlNamespace == root.Name.Namespace) 40 if (Localizer.WxlNamespace == root.Name.Namespace)
47 { 41 {
48 localization = ParseWixLocalizationElement(messaging, root); 42 localization = ParseWixLocalizationElement(this.Messaging, root);
49 } 43 }
50 else // invalid or missing namespace 44 else // invalid or missing namespace
51 { 45 {
52 if (null == root.Name.Namespace) 46 if (null == root.Name.Namespace)
53 { 47 {
54 messaging.Write(ErrorMessages.InvalidWixXmlNamespace(sourceLineNumbers, Localizer.XmlElementName, Localizer.WxlNamespace.NamespaceName)); 48 this.Messaging.Write(ErrorMessages.InvalidWixXmlNamespace(sourceLineNumbers, Localizer.XmlElementName, Localizer.WxlNamespace.NamespaceName));
55 } 49 }
56 else 50 else
57 { 51 {
58 messaging.Write(ErrorMessages.InvalidWixXmlNamespace(sourceLineNumbers, Localizer.XmlElementName, root.Name.LocalName, Localizer.WxlNamespace.NamespaceName)); 52 this.Messaging.Write(ErrorMessages.InvalidWixXmlNamespace(sourceLineNumbers, Localizer.XmlElementName, root.Name.LocalName, Localizer.WxlNamespace.NamespaceName));
59 } 53 }
60 } 54 }
61 } 55 }
62 else 56 else
63 { 57 {
64 messaging.Write(ErrorMessages.InvalidDocumentElement(sourceLineNumbers, root.Name.LocalName, "localization", Localizer.XmlElementName)); 58 this.Messaging.Write(ErrorMessages.InvalidDocumentElement(sourceLineNumbers, root.Name.LocalName, "localization", Localizer.XmlElementName));
65 } 59 }
66 60
67 return localization; 61 return localization;