summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2012-09-19 16:49:47 -0400
committerShaun McCance <shaunm@gnome.org>2012-09-19 16:49:47 -0400
commita0880365b8562d59e81889e980429aef840f89c4 (patch)
treee231633e8c22c63c647066f994817f7009fa5b46
parentfee986b054284b029b7b870eff6ded9fd53e43a0 (diff)
downloaditstool-a0880365b8562d59e81889e980429aef840f89c4.tar.gz
Use External Resource implementation for itst:externalRefRule
-rwxr-xr-xitstool.in46
-rw-r--r--tests/IT-externalRef1.ll.po12
-rw-r--r--tests/IT-externalRef1.pot12
3 files changed, 18 insertions, 52 deletions
diff --git a/itstool.in b/itstool.in
index 8f047d6..d3271b8 100755
--- a/itstool.in
+++ b/itstool.in
@@ -474,7 +474,6 @@ class Document (object):
self._itst_lang_attr = {}
self._itst_credits = None
self._its_externals = {}
- self._itst_externals = []
def _check_errors(self):
if self._xml_err:
@@ -592,9 +591,13 @@ class Document (object):
for node in self._try_xpath_eval(xpath, rule.nsProp('appendTo', None)):
self._itst_credits = (node, rule)
break
- elif xml_is_ns_name(rule, NS_ITS, 'externalResourceRefRule'):
+ elif (xml_is_ns_name(rule, NS_ITS, 'externalResourceRefRule') or
+ xml_is_ns_name(rule, NS_ITST, 'externalRefRule')):
sel = rule.nsProp('selector', None)
- ptr = rule.nsProp('externalResourceRefPointer', None)
+ if xml_is_ns_name(rule, NS_ITS, 'externalResourceRefRule'):
+ ptr = rule.nsProp('externalResourceRefPointer', None)
+ else:
+ ptr = rule.nsProp('refPointer', None)
if sel is not None and ptr is not None:
for node in self._try_xpath_eval(xpath, sel):
try:
@@ -606,18 +609,6 @@ class Document (object):
if len(res) > 0:
self._its_externals[node] = res[0].content
xpath.setContextNode(oldnode)
- elif xml_is_ns_name(rule, NS_ITST, 'externalRefRule'):
- if rule.nsProp('selector', None) is not None and rule.nsProp('refPointer', None) is not None:
- for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)):
- try:
- oldnode = xpath.contextNode()
- except:
- oldnode = None
- xpath.setContextNode(node)
- res = self._try_xpath_eval(xpath, rule.nsProp('refPointer', None))
- if len(res) > 0:
- self._itst_externals.append((node, res[0].content))
- xpath.setContextNode(oldnode)
def apply_its_rules (self, builtins):
if builtins:
@@ -946,31 +937,6 @@ class Document (object):
def generate_messages(self, comments=True):
if self._itst_credits is not None:
self._msgs.add_credits()
- for ext in self._itst_externals:
- translate = None
- node = ext[0]
- translate = self.get_its_translate(node)
- if translate == 'no':
- continue
- msg = Message()
- try:
- fullfile = os.path.join(os.path.dirname(self._filename), ext[1])
- filefp = open(fullfile)
- filemd5 = hashlib.md5(filefp.read()).hexdigest()
- filefp.close()
- except:
- filemd5 = '__failed__'
- txt = "external ref='%s' md5='%s'" % (ext[1], filemd5)
- msg.set_context('_')
- msg.add_text(txt)
- msg.add_source('%s:%i' % (self._doc.name, ext[0].lineNo()))
- msg.add_marker(ext[0].name)
- msg.add_comment(Comment('This is a reference to an external file such as an image or'
- ' video. When the file changes, the md5 hash will change to'
- ' let you know you need to update your localized copy. The'
- ' msgstr is not used at all. Set it to whatever you like'
- ' once you have updated your copy of the file.'))
- self._msgs.add_message(msg, None)
for child in xml_child_iter(self._doc):
if child.type == 'element':
self.generate_message(child, None, comments=comments)
diff --git a/tests/IT-externalRef1.ll.po b/tests/IT-externalRef1.ll.po
index 204a58a..eb26d94 100644
--- a/tests/IT-externalRef1.ll.po
+++ b/tests/IT-externalRef1.ll.po
@@ -9,7 +9,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#. (itstool) path: external
+#. (itstool) path: doc/p
+#: tests/IT-externalRef1.xml:6
+msgid "This is a test of the externalRefRule extension."
+msgstr "Ceci est un test de l'extension externalRefRule."
+
+#. (itstool) path: doc/external
#. This is a reference to an external file such as an image or video. When
#. the file changes, the md5 hash will change to let you know you need to
#. update your localized copy. The msgstr is not used at all. Set it to
@@ -20,11 +25,6 @@ msgid "external ref='IT-externalRef1.txt' md5='9cb75ee59c2c7a70be17c5887517a34b'
msgstr "external ref='IT-externalRef1.txt' md5='9cb75ee59c2c7a70be17c5887517a34b'"
#. (itstool) path: doc/p
-#: tests/IT-externalRef1.xml:6
-msgid "This is a test of the externalRefRule extension."
-msgstr "Ceci est un test de l'extension externalRefRule."
-
-#. (itstool) path: doc/p
#: tests/IT-externalRef1.xml:9
msgid "This has been a test."
msgstr "Cela a été un test."
diff --git a/tests/IT-externalRef1.pot b/tests/IT-externalRef1.pot
index f86c901..901b280 100644
--- a/tests/IT-externalRef1.pot
+++ b/tests/IT-externalRef1.pot
@@ -9,7 +9,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#. (itstool) path: external
+#. (itstool) path: doc/p
+#: tests/IT-externalRef1.xml:6
+msgid "This is a test of the externalRefRule extension."
+msgstr ""
+
+#. (itstool) path: doc/external
#. This is a reference to an external file such as an image or video. When
#. the file changes, the md5 hash will change to let you know you need to
#. update your localized copy. The msgstr is not used at all. Set it to
@@ -20,11 +25,6 @@ msgid "external ref='IT-externalRef1.txt' md5='9cb75ee59c2c7a70be17c5887517a34b'
msgstr ""
#. (itstool) path: doc/p
-#: tests/IT-externalRef1.xml:6
-msgid "This is a test of the externalRefRule extension."
-msgstr ""
-
-#. (itstool) path: doc/p
#: tests/IT-externalRef1.xml:9
msgid "This has been a test."
msgstr ""