summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2012-09-08 17:36:43 -0400
committerShaun McCance <shaunm@gnome.org>2012-09-08 17:36:43 -0400
commit231548b2539e281a3e68b08a052cb4b03c5368a0 (patch)
tree7f5fb1cbe6eae6d59cd97ec1a2a3dbc312706f9b
parent7ee29a46d229bde60c86703730b24d5ac49a1e75 (diff)
downloaditstool-231548b2539e281a3e68b08a052cb4b03c5368a0.tar.gz
Implemented ITS 2.0 Preserve Space data category
-rwxr-xr-xitstool.in20
-rw-r--r--tests/preservespace1xml.pot23
-rw-r--r--tests/preservespace1xml.xml15
-rw-r--r--tests/preservespace2xml.pot23
-rw-r--r--tests/preservespace2xml.xml10
-rw-r--r--tests/preservespace3XmlRule.xml3
-rw-r--r--tests/preservespace3xml.pot23
-rw-r--r--tests/preservespace3xml.xml12
-rw-r--r--tests/preservespace4xml.pot23
-rw-r--r--tests/preservespace4xml.xml10
-rw-r--r--tests/run_tests.py12
11 files changed, 167 insertions, 7 deletions
diff --git a/itstool.in b/itstool.in
index 3a21aaf..620b756 100755
--- a/itstool.in
+++ b/itstool.in
@@ -393,7 +393,7 @@ class Document (object):
else:
sys.stderr.write('Warning: ITS file %s missing version attribute\n' %
os.path.basename(href))
- if version is not None and version != '1.0':
+ if version is not None and version not in ('1.0', '2.0'):
sys.stderr.write('Warning: Skipping ITS file %s with unknown version %s\n' %
(os.path.basename(href), root.nsProp('version', None)))
else:
@@ -407,7 +407,7 @@ class Document (object):
version = root.nsProp('version', NS_ITS)
else:
sys.stderr.write('Warning: Local ITS rules missing version attribute\n')
- if version is not None and version != '1.0':
+ if version is not None and version not in ('1.0', '2.0'):
sys.stderr.write('Warning: Skipping local ITS rules with unknown version %s\n' %
version)
else:
@@ -423,7 +423,7 @@ class Document (object):
self._its_translate_nodes = {}
self._its_within_text_nodes = {}
self._its_loc_notes = {}
- self._itst_preserve_space_nodes = {}
+ self._its_preserve_space_nodes = {}
self._itst_drop_nodes = {}
self._itst_contexts = {}
self._its_lang = {}
@@ -449,7 +449,13 @@ class Document (object):
elif xml_is_ns_name(rule, NS_ITST, 'preserveSpaceRule'):
if rule.nsProp('selector', None) is not None:
for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)):
- self._itst_preserve_space_nodes[node] = rule.nsProp('preserveSpace', None)
+ val = rule.nsProp('preserveSpace', None)
+ if val == 'yes':
+ self._its_preserve_space_nodes[node] = 'preserve'
+ elif xml_is_ns_name(rule, NS_ITS, 'preserveSpaceRule'):
+ if rule.nsProp('selector', None) is not None:
+ for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)):
+ self._its_preserve_space_nodes[node] = rule.nsProp('space', None)
elif xml_is_ns_name(rule, NS_ITST, 'dropRule'):
if rule.nsProp('selector', None) is not None:
for node in self._try_xpath_eval(xpath, rule.nsProp('selector', None)):
@@ -585,7 +591,7 @@ class Document (object):
else:
sys.stderr.write('Warning: ITS file %s missing version attribute\n' %
os.path.basename(filename))
- if version is not None and version != '1.0':
+ if version is not None and version not in ('1.0', '2.0'):
sys.stderr.write('Warning: Skipping ITS file %s with unknown version %s\n' %
(os.path.basename(filename), root.nsProp('version', None)))
return
@@ -1006,8 +1012,8 @@ class Document (object):
return True
else:
while node.type == 'element':
- if self._itst_preserve_space_nodes.has_key(node):
- return (self._itst_preserve_space_nodes[node] == 'yes')
+ if self._its_preserve_space_nodes.has_key(node):
+ return (self._its_preserve_space_nodes[node] == 'preserve')
node = node.parent
return False
diff --git a/tests/preservespace1xml.pot b/tests/preservespace1xml.pot
new file mode 100644
index 0000000..ab6ea7d
--- /dev/null
+++ b/tests/preservespace1xml.pot
@@ -0,0 +1,23 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-09-08 13:24-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. (itstool) path: book/verse
+#: tests/preservespace1xml.xml:9
+#, no-wrap
+msgid ""
+"\n"
+" ’Twas brillig, and the slithy toves\n"
+" Did gyre and gimble in the wabe;\n"
+" All mimsy were the borogoves,\n"
+" And the mome raths outgrabe.\n"
+" "
+msgstr ""
+
diff --git a/tests/preservespace1xml.xml b/tests/preservespace1xml.xml
new file mode 100644
index 0000000..3282291
--- /dev/null
+++ b/tests/preservespace1xml.xml
@@ -0,0 +1,15 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its" >
+ <info>
+ <its:rules
+ its:version="2.0">
+ <its:preserveSpaceRule selector="//verse" space="preserve"/>
+ </its:rules>
+ </info>
+ <verse>
+ ’Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </verse>
+</book>
diff --git a/tests/preservespace2xml.pot b/tests/preservespace2xml.pot
new file mode 100644
index 0000000..c9c5b90
--- /dev/null
+++ b/tests/preservespace2xml.pot
@@ -0,0 +1,23 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-09-08 13:24-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. (itstool) path: book/verse
+#: tests/preservespace2xml.xml:4
+#, no-wrap
+msgid ""
+"\n"
+" 'Twas brillig, and the slithy toves\n"
+" Did gyre and gimble in the wabe;\n"
+" All mimsy were the borogoves,\n"
+" And the mome raths outgrabe.\n"
+" "
+msgstr ""
+
diff --git a/tests/preservespace2xml.xml b/tests/preservespace2xml.xml
new file mode 100644
index 0000000..cdc082d
--- /dev/null
+++ b/tests/preservespace2xml.xml
@@ -0,0 +1,10 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its"
+ its:version="2.0">
+ <verse xml:space="preserve">
+ 'Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </verse>
+</book>
diff --git a/tests/preservespace3XmlRule.xml b/tests/preservespace3XmlRule.xml
new file mode 100644
index 0000000..8b05d41
--- /dev/null
+++ b/tests/preservespace3XmlRule.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:preserveSpaceRule selector="//verse" space="preserve"/>
+ </its:rules>
diff --git a/tests/preservespace3xml.pot b/tests/preservespace3xml.pot
new file mode 100644
index 0000000..ea21748
--- /dev/null
+++ b/tests/preservespace3xml.pot
@@ -0,0 +1,23 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-09-08 13:24-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. (itstool) path: book/verse
+#: tests/preservespace3xml.xml:6
+#, no-wrap
+msgid ""
+"\n"
+" ’Twas brillig, and the slithy toves\n"
+" Did gyre and gimble in the wabe;\n"
+" All mimsy were the borogoves,\n"
+" And the mome raths outgrabe.\n"
+" "
+msgstr ""
+
diff --git a/tests/preservespace3xml.xml b/tests/preservespace3xml.xml
new file mode 100644
index 0000000..6291c40
--- /dev/null
+++ b/tests/preservespace3xml.xml
@@ -0,0 +1,12 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its" >
+ <info>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" xlink:type="simple" xlink:href="preservespace3XmlRule.xml"/>
+ </info>
+ <verse>
+ ’Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </verse>
+</book>
diff --git a/tests/preservespace4xml.pot b/tests/preservespace4xml.pot
new file mode 100644
index 0000000..6ae58e1
--- /dev/null
+++ b/tests/preservespace4xml.pot
@@ -0,0 +1,23 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-09-08 13:24-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. (itstool) path: book/span
+#: tests/preservespace4xml.xml:4
+#, no-wrap
+msgid ""
+"\n"
+" 'Twas brillig, and the slithy toves\n"
+" Did gyre and gimble in the wabe;\n"
+" All mimsy were the borogoves,\n"
+" And the mome raths outgrabe.\n"
+" "
+msgstr ""
+
diff --git a/tests/preservespace4xml.xml b/tests/preservespace4xml.xml
new file mode 100644
index 0000000..61cea70
--- /dev/null
+++ b/tests/preservespace4xml.xml
@@ -0,0 +1,10 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its"
+ its:version="2.0">
+ <its:span xml:space="preserve">
+ 'Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </its:span >
+</book>
diff --git a/tests/run_tests.py b/tests/run_tests.py
index 5c108e5..c6a40a2 100644
--- a/tests/run_tests.py
+++ b/tests/run_tests.py
@@ -122,6 +122,18 @@ class ItstoolTests(unittest.TestCase):
def test_EX_locNoteRefPointer_attribute_1(self):
self._test_pot_generation('EX-locNoteRefPointer-attribute-1.xml')
+ def test_PreserveSpace1(self):
+ self._test_pot_generation('preservespace1xml.xml')
+
+ def test_PreserveSpace2(self):
+ self._test_pot_generation('preservespace2xml.xml')
+
+ def test_PreserveSpace3(self):
+ self._test_pot_generation('preservespace3xml.xml')
+
+ def test_PreserveSpace4(self):
+ self._test_pot_generation('preservespace4xml.xml')
+
def test_Translate1(self):
self._test_translation_process('Translate1.xml')