+def parse_creator(doc):
+ """Generates readable versions of creator and translator tags.
+
+ Finds all dc:creator and dc.contributor.translator tags
+ and adds *_parsed versions with forenames first.
+ """
+ for person in doc.xpath("|".join('//dc:'+(tag) for tag in (
+ 'creator', 'contributor.translator')),
+ namespaces = {'dc': str(DCNS)})[::-1]:
+ if not person.text:
+ continue
+ p = Person.from_text(person.text)
+ person_parsed = deepcopy(person)
+ person_parsed.tag = person.tag + '_parsed'
+ person_parsed.set('sortkey', person.text)
+ person_parsed.text = p.readable()
+ person.getparent().insert(0, person_parsed)
+