Mercurial > repos > IBBoard
comparison Lang/XmlTranslationSet.cs @ 80:a23c07137fa4
Re #32: Add staged loading of translations
* Move from passing entire document to XmlTranslationSet to just passing XmlNodeList of translation nodes
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 10 Apr 2010 19:05:26 +0000 |
parents | da339d10c5fe |
children |
comparison
equal
deleted
inserted
replaced
79:a70d89de1435 | 80:a23c07137fa4 |
---|---|
9 namespace IBBoard.Lang | 9 namespace IBBoard.Lang |
10 { | 10 { |
11 public class XmlTranslationSet : AbstractTranslationSet | 11 public class XmlTranslationSet : AbstractTranslationSet |
12 { | 12 { |
13 private string parentLanguage; | 13 private string parentLanguage; |
14 private XmlDocument doc; | 14 private XmlNodeList nodes; |
15 | 15 |
16 public XmlTranslationSet(String languageCode) : base(languageCode) | 16 public XmlTranslationSet(String languageCode) : base(languageCode) |
17 { | 17 { |
18 //Do nothing extra | 18 //Do nothing extra |
19 } | 19 } |
20 | 20 |
21 public override string this[string key] | 21 public override string this[string key] |
22 { | 22 { |
23 get | 23 get |
24 { | 24 { |
25 if (translations.Count == 0 && doc != null) | 25 if (translations.Count == 0 && nodes != null) |
26 { | 26 { |
27 PopulateTranslations(); | 27 PopulateTranslations(); |
28 } | 28 } |
29 | 29 |
30 return base[key]; | 30 return base[key]; |
31 } | 31 } |
32 } | 32 } |
33 | 33 |
34 private void PopulateTranslations() | 34 private void PopulateTranslations() |
35 { | 35 { |
36 Dictionary<string, string> docTranslations = new TranslationXmlExtractor().ExtractTranslationsFromDocument(doc); | 36 foreach (XmlElement node in nodes) |
37 | |
38 foreach (KeyValuePair<string, string> pair in docTranslations) | |
39 { | 37 { |
40 translations.Add(pair.Key, pair.Value); | 38 translations.Add(node.GetAttribute("id"), node.InnerText); |
41 } | 39 } |
42 } | 40 } |
43 | |
44 | |
45 | 41 |
46 public void SetParentLanguage(string parentLanguageCode) | 42 public void SetParentLanguage(string parentLanguageCode) |
47 { | 43 { |
48 parentLanguage = parentLanguageCode; | 44 parentLanguage = parentLanguageCode; |
49 } | 45 } |
51 protected override AbstractTranslationSet GetParentTranslations() | 47 protected override AbstractTranslationSet GetParentTranslations() |
52 { | 48 { |
53 return Translation.GetTranslationSet(parentLanguage); | 49 return Translation.GetTranslationSet(parentLanguage); |
54 } | 50 } |
55 | 51 |
56 public void SetSourceXml(XmlDocument sourceDocument) | 52 public void SetTranslationNodes(XmlNodeList translationNodes) |
57 { | 53 { |
58 doc = sourceDocument; | 54 nodes = translationNodes; |
59 } | 55 } |
60 } | 56 } |
61 } | 57 } |