lib/isodoc/presentation_function/terms.rb in isodoc-1.8.2.2 vs lib/isodoc/presentation_function/terms.rb in isodoc-1.8.3

- old
+ new

@@ -119,12 +119,12 @@ designation_annotate(desgn, name) s and desgn.next = s end def designation_annotate(desgn, name) - designation_field(desgn, name) designation_boldface(desgn) + designation_field(desgn, name) g = desgn.at(ns("./expression/grammar")) and name << ", #{designation_grammar(g).join(', ')}" designation_localization(desgn, name) designation_pronunciation(desgn, name) desgn.children = name.children @@ -216,8 +216,29 @@ %w(verbal-definition non-verbal-representation).each do |e| v = d&.at(ns("./#{e}")) v&.replace(v.children) end end + end + + def termsource(docxml) + docxml.xpath(ns("//termsource")).each do |f| + termsource1(f) + end + end + + def termsource1(elem) + mod = elem.at(ns("./modification")) and + termsource_modification(mod) + elem.children = l10n("[#{@i18n.source}: #{elem.children.to_xml.strip}]") + elem&.next_element&.name == "termsource" and elem.next = "; " + end + + def termsource_modification(mod) + mod.previous_element.next = ", #{@i18n.modified}" + mod.text.strip.empty? or mod.previous = " &#x2013; " + mod.elements.size == 1 and + mod.elements[0].replace(mod.elements[0].children) + mod.replace(mod.children) end end end