1
0
forked from 0ad/0ad

Internationalized rank names

In order to do so, I had to extend the XML message extractor to support
using XML tags as context.
This is because one of the ranks is “Advanced”, which is a pretty common
string.

This was SVN commit r14986.
This commit is contained in:
Adrián Chaves 2014-04-25 01:47:42 +00:00
parent bc1ed335e2
commit 0c88edc2f2
3 changed files with 19 additions and 12 deletions

View File

@ -47,7 +47,7 @@ function displaySingle(entState, template)
// Rank
if (entState.identity && entState.identity.rank && entState.identity.classes)
{
Engine.GetGUIObjectByName("rankIcon").tooltip = sprintf(translate("%(rank)s Rank"), { rank: entState.identity.rank });
Engine.GetGUIObjectByName("rankIcon").tooltip = sprintf(translate("%(rank)s Rank"), { rank: translateWithContext("Rank", entState.identity.rank) });
Engine.GetGUIObjectByName("rankIcon").sprite = getRankIconSprite(entState);
Engine.GetGUIObjectByName("rankIcon").hidden = false;
}

View File

@ -143,7 +143,10 @@
"Tooltip": {},
"DisabledTooltip": {},
"FormationName": {},
"FromClass": {}
"FromClass": {},
"Rank": {
"tagAsContext": true
}
}
}
},

View File

@ -399,13 +399,17 @@ class xml(Extractor):
for keyword in self.keywords:
for element in xmlDocument.iter(keyword):
position = str(element.sourceline)
if "extractJson" in self.keywords[keyword]:
jsonExtractor = self.getJsonExtractor()
jsonExtractor.setOptions(self.keywords[keyword]["extractJson"])
for message, breadcrumbs in jsonExtractor.extractFromString(element.text):
yield message, None, position + ":" + json.formatBreadcrumbs(breadcrumbs), []
elif element.text is not None:
if "locationAttributes" in self.keywords[keyword]:
attributes = [element.get(attribute) for attribute in self.keywords[keyword]["locationAttributes"] if attribute in element.attrib]
position += " ({attributes})".format(attributes=", ".join(attributes))
yield element.text, None, position, []
if element.text is not None:
context = None
if "extractJson" in self.keywords[keyword]:
jsonExtractor = self.getJsonExtractor()
jsonExtractor.setOptions(self.keywords[keyword]["extractJson"])
for message, breadcrumbs in jsonExtractor.extractFromString(element.text):
yield message, context, position + ":" + json.formatBreadcrumbs(breadcrumbs), []
else:
if "locationAttributes" in self.keywords[keyword]:
attributes = [element.get(attribute) for attribute in self.keywords[keyword]["locationAttributes"] if attribute in element.attrib]
position += " ({attributes})".format(attributes=", ".join(attributes))
if "tagAsContext" in self.keywords[keyword]:
context = keyword
yield element.text, context, position, []