diff options
author | Shaun McCance <shaunm@gnome.org> | 2012-09-08 17:36:43 -0400 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2012-09-08 17:36:43 -0400 |
commit | 231548b2539e281a3e68b08a052cb4b03c5368a0 (patch) | |
tree | 7f5fb1cbe6eae6d59cd97ec1a2a3dbc312706f9b | |
parent | 7ee29a46d229bde60c86703730b24d5ac49a1e75 (diff) | |
download | itstool-231548b2539e281a3e68b08a052cb4b03c5368a0.tar.gz |
Implemented ITS 2.0 Preserve Space data category
-rwxr-xr-x | itstool.in | 20 | ||||
-rw-r--r-- | tests/preservespace1xml.pot | 23 | ||||
-rw-r--r-- | tests/preservespace1xml.xml | 15 | ||||
-rw-r--r-- | tests/preservespace2xml.pot | 23 | ||||
-rw-r--r-- | tests/preservespace2xml.xml | 10 | ||||
-rw-r--r-- | tests/preservespace3XmlRule.xml | 3 | ||||
-rw-r--r-- | tests/preservespace3xml.pot | 23 | ||||
-rw-r--r-- | tests/preservespace3xml.xml | 12 | ||||
-rw-r--r-- | tests/preservespace4xml.pot | 23 | ||||
-rw-r--r-- | tests/preservespace4xml.xml | 10 | ||||
-rw-r--r-- | tests/run_tests.py | 12 |
11 files changed, 167 insertions, 7 deletions
@@ -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') |