diff options
Diffstat (limited to 'src/WixToolset.Core/Localizer.cs')
-rw-r--r-- | src/WixToolset.Core/Localizer.cs | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/WixToolset.Core/Localizer.cs b/src/WixToolset.Core/Localizer.cs index 72d0955b..a19c32fb 100644 --- a/src/WixToolset.Core/Localizer.cs +++ b/src/WixToolset.Core/Localizer.cs | |||
@@ -18,7 +18,7 @@ namespace WixToolset | |||
18 | public static readonly XNamespace WxlNamespace = "http://wixtoolset.org/schemas/v4/wxl"; | 18 | public static readonly XNamespace WxlNamespace = "http://wixtoolset.org/schemas/v4/wxl"; |
19 | private static string XmlElementName = "WixLocalization"; | 19 | private static string XmlElementName = "WixLocalization"; |
20 | 20 | ||
21 | private Dictionary<string, WixVariableRow> variables; | 21 | private Dictionary<string, BindVariable> variables; |
22 | private Dictionary<string, LocalizedControl> localizedControls; | 22 | private Dictionary<string, LocalizedControl> localizedControls; |
23 | 23 | ||
24 | /// <summary> | 24 | /// <summary> |
@@ -27,7 +27,7 @@ namespace WixToolset | |||
27 | public Localizer(IEnumerable<Localization> localizations) | 27 | public Localizer(IEnumerable<Localization> localizations) |
28 | { | 28 | { |
29 | this.Codepage = -1; | 29 | this.Codepage = -1; |
30 | this.variables = new Dictionary<string, WixVariableRow>(); | 30 | this.variables = new Dictionary<string, BindVariable>(); |
31 | this.localizedControls = new Dictionary<string, LocalizedControl>(); | 31 | this.localizedControls = new Dictionary<string, LocalizedControl>(); |
32 | 32 | ||
33 | foreach (var localization in localizations) | 33 | foreach (var localization in localizations) |
@@ -37,9 +37,9 @@ namespace WixToolset | |||
37 | this.Codepage = localization.Codepage; | 37 | this.Codepage = localization.Codepage; |
38 | } | 38 | } |
39 | 39 | ||
40 | foreach (WixVariableRow wixVariableRow in localization.Variables) | 40 | foreach (var variable in localization.Variables) |
41 | { | 41 | { |
42 | Localizer.AddWixVariable(this.variables, wixVariableRow); | 42 | Localizer.AddWixVariable(this.variables, variable); |
43 | } | 43 | } |
44 | 44 | ||
45 | foreach (KeyValuePair<string, LocalizedControl> localizedControl in localization.LocalizedControls) | 45 | foreach (KeyValuePair<string, LocalizedControl> localizedControl in localization.LocalizedControls) |
@@ -86,7 +86,7 @@ namespace WixToolset | |||
86 | /// <param name="tableDefinitions">Collection containing TableDefinitions to use when loading the localization file.</param> | 86 | /// <param name="tableDefinitions">Collection containing TableDefinitions to use when loading the localization file.</param> |
87 | /// <param name="suppressSchema">Suppress xml schema validation while loading.</param> | 87 | /// <param name="suppressSchema">Suppress xml schema validation while loading.</param> |
88 | /// <returns>Returns the loaded localization file.</returns> | 88 | /// <returns>Returns the loaded localization file.</returns> |
89 | public static Localization ParseLocalizationFile(string path, TableDefinitionCollection tableDefinitions) | 89 | public static Localization ParseLocalizationFile(string path) |
90 | { | 90 | { |
91 | XElement root = XDocument.Load(path).Root; | 91 | XElement root = XDocument.Load(path).Root; |
92 | Localization localization = null; | 92 | Localization localization = null; |
@@ -96,7 +96,7 @@ namespace WixToolset | |||
96 | { | 96 | { |
97 | if (Localizer.WxlNamespace == root.Name.Namespace) | 97 | if (Localizer.WxlNamespace == root.Name.Namespace) |
98 | { | 98 | { |
99 | localization = ParseWixLocalizationElement(root, tableDefinitions); | 99 | localization = ParseWixLocalizationElement(root); |
100 | } | 100 | } |
101 | else // invalid or missing namespace | 101 | else // invalid or missing namespace |
102 | { | 102 | { |
@@ -123,7 +123,7 @@ namespace WixToolset | |||
123 | /// </summary> | 123 | /// </summary> |
124 | /// <param name="variables">Dictionary of variable rows.</param> | 124 | /// <param name="variables">Dictionary of variable rows.</param> |
125 | /// <param name="wixVariableRow">Row to add to the variables dictionary.</param> | 125 | /// <param name="wixVariableRow">Row to add to the variables dictionary.</param> |
126 | private static void AddWixVariable(IDictionary<string, WixVariableRow> variables, WixVariableRow wixVariableRow) | 126 | private static void AddWixVariable(IDictionary<string, BindVariable> variables, BindVariable wixVariableRow) |
127 | { | 127 | { |
128 | if (!variables.TryGetValue(wixVariableRow.Id, out var existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable)) | 128 | if (!variables.TryGetValue(wixVariableRow.Id, out var existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable)) |
129 | { | 129 | { |
@@ -139,7 +139,7 @@ namespace WixToolset | |||
139 | /// Parses the WixLocalization element. | 139 | /// Parses the WixLocalization element. |
140 | /// </summary> | 140 | /// </summary> |
141 | /// <param name="node">Element to parse.</param> | 141 | /// <param name="node">Element to parse.</param> |
142 | private static Localization ParseWixLocalizationElement(XElement node, TableDefinitionCollection tableDefinitions) | 142 | private static Localization ParseWixLocalizationElement(XElement node) |
143 | { | 143 | { |
144 | int codepage = -1; | 144 | int codepage = -1; |
145 | string culture = null; | 145 | string culture = null; |
@@ -171,7 +171,7 @@ namespace WixToolset | |||
171 | } | 171 | } |
172 | } | 172 | } |
173 | 173 | ||
174 | Dictionary<string, WixVariableRow> variables = new Dictionary<string,WixVariableRow>(); | 174 | Dictionary<string, BindVariable> variables = new Dictionary<string, BindVariable>(); |
175 | Dictionary<string, LocalizedControl> localizedControls = new Dictionary<string, LocalizedControl>(); | 175 | Dictionary<string, LocalizedControl> localizedControls = new Dictionary<string, LocalizedControl>(); |
176 | 176 | ||
177 | foreach (XElement child in node.Elements()) | 177 | foreach (XElement child in node.Elements()) |
@@ -181,7 +181,7 @@ namespace WixToolset | |||
181 | switch (child.Name.LocalName) | 181 | switch (child.Name.LocalName) |
182 | { | 182 | { |
183 | case "String": | 183 | case "String": |
184 | Localizer.ParseString(child, variables, tableDefinitions); | 184 | Localizer.ParseString(child, variables); |
185 | break; | 185 | break; |
186 | 186 | ||
187 | case "UI": | 187 | case "UI": |
@@ -206,7 +206,7 @@ namespace WixToolset | |||
206 | /// Parse a localization string into a WixVariableRow. | 206 | /// Parse a localization string into a WixVariableRow. |
207 | /// </summary> | 207 | /// </summary> |
208 | /// <param name="node">Element to parse.</param> | 208 | /// <param name="node">Element to parse.</param> |
209 | private static void ParseString(XElement node, IDictionary<string, WixVariableRow> variables, TableDefinitionCollection tableDefinitions) | 209 | private static void ParseString(XElement node, IDictionary<string, BindVariable> variables) |
210 | { | 210 | { |
211 | string id = null; | 211 | string id = null; |
212 | bool overridable = false; | 212 | bool overridable = false; |
@@ -251,12 +251,15 @@ namespace WixToolset | |||
251 | 251 | ||
252 | if (!Messaging.Instance.EncounteredError) | 252 | if (!Messaging.Instance.EncounteredError) |
253 | { | 253 | { |
254 | WixVariableRow wixVariableRow = new WixVariableRow(sourceLineNumbers, tableDefinitions["WixVariable"]); | 254 | var variable = new BindVariable |
255 | wixVariableRow.Id = id; | 255 | { |
256 | wixVariableRow.Overridable = overridable; | 256 | SourceLineNumbers = sourceLineNumbers, |
257 | wixVariableRow.Value = value; | 257 | Id = id, |
258 | Overridable = overridable, | ||
259 | Value = value, | ||
260 | }; | ||
258 | 261 | ||
259 | Localizer.AddWixVariable(variables, wixVariableRow); | 262 | Localizer.AddWixVariable(variables, variable); |
260 | } | 263 | } |
261 | } | 264 | } |
262 | 265 | ||