5621: alternative to use of 'intltool-extract'
svn: r19168
This commit is contained in:
parent
4bbae2d469
commit
ac5875c38f
@ -83,9 +83,9 @@ def tests():
|
|||||||
|
|
||||||
# See also 'get_string' from Gramps 2.0 (sample with SAX)
|
# See also 'get_string' from Gramps 2.0 (sample with SAX)
|
||||||
|
|
||||||
def XMLParse(filename, mark):
|
def TipsParse(filename, mark):
|
||||||
"""
|
"""
|
||||||
Experimental alternative to 'intltool-extract' for XML based files.
|
Experimental alternative to 'intltool-extract' for 'tips.xml'.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# in progress ...
|
# in progress ...
|
||||||
@ -115,6 +115,13 @@ def XMLParse(filename, mark):
|
|||||||
different calendars. Try the button next to the date field in the
|
different calendars. Try the button next to the date field in the
|
||||||
Events Editor.
|
Events Editor.
|
||||||
</_tip>
|
</_tip>
|
||||||
|
|
||||||
|
char *s = N_("<b>Working with Dates</b><br/>A range of dates can be
|
||||||
|
given by using the format "between January 4, 2000 and March 20,
|
||||||
|
2003". You can also indicate the level of confidence in a date
|
||||||
|
and even choose between seven different calendars. Try the button
|
||||||
|
next to the date field in the Events Editor.");
|
||||||
|
|
||||||
gramps.pot:
|
gramps.pot:
|
||||||
msgid ""
|
msgid ""
|
||||||
"<b>Working with Dates</b><br/>A range of dates can be given by using the "
|
"<b>Working with Dates</b><br/>A range of dates can be given by using the "
|
||||||
@ -124,14 +131,21 @@ def XMLParse(filename, mark):
|
|||||||
"Editor."
|
"Editor."
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
tips = open('../src/data/tips.xml.in.h', 'w')
|
||||||
|
|
||||||
for key in root.getiterator(mark):
|
for key in root.getiterator(mark):
|
||||||
tip = ElementTree.tostring(key, encoding="UTF-8")
|
tip = ElementTree.tostring(key, encoding="UTF-8")
|
||||||
tip = tip.replace("<?xml version='1.0' encoding='UTF-8'?>", "")
|
tip = tip.replace("<?xml version='1.0' encoding='UTF-8'?>", "")
|
||||||
tip = tip.replace('<_tip number="%(number)s">' % key.attrib, "")
|
tip = tip.replace('\n<_tip number="%(number)s">' % key.attrib, "")
|
||||||
tip = tip.replace("<br />", "<br/>")
|
tip = tip.replace("<br />", "<br/>")
|
||||||
|
tip = tip.replace("\n</_tip>\n", "</_tip>\n") # special case tip 7
|
||||||
|
tip = tip.replace("\n<b>", "<b>") # special case tip 18
|
||||||
tip = tip.replace("</_tip>\n\n", "")
|
tip = tip.replace("</_tip>\n\n", "")
|
||||||
print('_("%s")' % tip)
|
tip = tip.replace('"', '"')
|
||||||
|
tips.write('char *s = N_("%s");\n' % tip)
|
||||||
|
|
||||||
|
tips.close()
|
||||||
|
|
||||||
'''
|
'''
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
calendar>
|
calendar>
|
||||||
@ -139,18 +153,80 @@ def XMLParse(filename, mark):
|
|||||||
..
|
..
|
||||||
<country _name="Jewish Holidays">
|
<country _name="Jewish Holidays">
|
||||||
<date _name="Yom Kippur" value="> passover(y)" offset="172"/>
|
<date _name="Yom Kippur" value="> passover(y)" offset="172"/>
|
||||||
|
|
||||||
|
char *s = N_("Bulgaria");
|
||||||
|
char *s = N_("Jewish Holidays");
|
||||||
|
char *s = N_("Yom Kippur");
|
||||||
|
|
||||||
gramps.pot:
|
gramps.pot:
|
||||||
msgid "Bulgaria"
|
msgid "Bulgaria"
|
||||||
msgid "Jewish Holidays"
|
msgid "Jewish Holidays"
|
||||||
msgid "Yom Kippur"
|
msgid "Yom Kippur"
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
holidays = open('../src/plugins/lib/holidays.xml.in.h', 'w')
|
||||||
|
|
||||||
for key in root.getiterator():
|
for key in root.getiterator():
|
||||||
if key.attrib.get(mark):
|
if key.attrib.get(mark):
|
||||||
line = key.attrib
|
line = key.attrib
|
||||||
string = line.items
|
string = line.items
|
||||||
name = '_("%(_name)s")' % line
|
name = 'char *s = N_("%(_name)s");\n' % line
|
||||||
print(name)
|
holidays.write(name)
|
||||||
|
|
||||||
|
holidays.close()
|
||||||
|
|
||||||
|
root.clear()
|
||||||
|
|
||||||
|
def HolidaysParse(filename, mark):
|
||||||
|
"""
|
||||||
|
Experimental alternative to 'intltool-extract' for 'holidays.xml'.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# in progress ...
|
||||||
|
from xml.etree import ElementTree
|
||||||
|
|
||||||
|
tree = ElementTree.parse(filename)
|
||||||
|
root = tree.getroot()
|
||||||
|
|
||||||
|
python_v = sys.version_info
|
||||||
|
|
||||||
|
#if python_v[1] != 6:
|
||||||
|
|
||||||
|
# python 2.7
|
||||||
|
# iter() is the new name for getiterator;
|
||||||
|
# in ET 1.3, it is implemented as a generator method,
|
||||||
|
# but is otherwise identical
|
||||||
|
|
||||||
|
'''
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
calendar>
|
||||||
|
<country _name="Bulgaria">
|
||||||
|
..
|
||||||
|
<country _name="Jewish Holidays">
|
||||||
|
<date _name="Yom Kippur" value="> passover(y)" offset="172"/>
|
||||||
|
|
||||||
|
char *s = N_("Bulgaria");
|
||||||
|
char *s = N_("Jewish Holidays");
|
||||||
|
char *s = N_("Yom Kippur");
|
||||||
|
|
||||||
|
gramps.pot:
|
||||||
|
msgid "Bulgaria"
|
||||||
|
msgid "Jewish Holidays"
|
||||||
|
msgid "Yom Kippur"
|
||||||
|
'''
|
||||||
|
|
||||||
|
holidays = open('../src/plugins/lib/holidays.xml.in.h', 'w')
|
||||||
|
|
||||||
|
for key in root.getiterator():
|
||||||
|
if key.attrib.get(mark):
|
||||||
|
line = key.attrib
|
||||||
|
string = line.items
|
||||||
|
name = 'char *s = N_("%(_name)s");\n' % line
|
||||||
|
holidays.write(name)
|
||||||
|
|
||||||
|
holidays.close()
|
||||||
|
|
||||||
|
root.clear()
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -303,11 +379,11 @@ def extract_xml():
|
|||||||
Need to look at own XML files parsing and custom translation marks.
|
Need to look at own XML files parsing and custom translation marks.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
os.system('''intltool-extract --type=gettext/xml ../src/data/tips.xml.in''')
|
#os.system('''intltool-extract --type=gettext/xml ../src/data/tips.xml.in''')
|
||||||
os.system('''intltool-extract --type=gettext/xml ../src/plugins/lib/holidays.xml.in''')
|
#os.system('''intltool-extract --type=gettext/xml ../src/plugins/lib/holidays.xml.in''')
|
||||||
|
|
||||||
XMLParse('../src/data/tips.xml.in', '_tip')
|
TipsParse('../src/data/tips.xml.in', '_tip')
|
||||||
XMLParse('../src/plugins/lib/holidays.xml.in', '_name')
|
HolidaysParse('../src/plugins/lib/holidays.xml.in', '_name')
|
||||||
|
|
||||||
# cosmetic
|
# cosmetic
|
||||||
# could be simple copies without .in extension
|
# could be simple copies without .in extension
|
||||||
|
Loading…
Reference in New Issue
Block a user