edouard@3108: // i18n.ysl2 edouard@3108: edouard@3108: edouard@3108: template "svg:tspan", mode="extract_i18n" { edouard@3108: if "string-length(.) > 0" line { edouard@3108: value "."; edouard@3108: } edouard@3108: } edouard@3108: edouard@3108: template "svg:text", mode="extract_i18n" { edouard@3108: msg { edouard@3108: attrib "id" value "@id"; Edouard@3112: attrib "label" value "substring(@inkscape:label,2)"; edouard@3108: apply "svg:*", mode="extract_i18n"; edouard@3108: } edouard@3108: } edouard@3108: edouard@3108: const "translatable_texts", "//svg:text[starts-with(@inkscape:label, '_')]"; edouard@3108: const "translatable_strings" apply "$translatable_texts", mode="extract_i18n"; edouard@3108: edouard@3108: emit "preamble:i18n" { edouard@3108: const "translations", "ns:GetTranslations($translatable_strings)"; edouard@3144: > var langs = [ ["Default", "C"], Edouard@3116: foreach "$translations/langs/lang" { edouard@3144: > ["«.»","«@code»"] Edouard@3116: if "position()!=last()" > , edouard@3108: } Edouard@3116: | ]; Edouard@3116: | var translations = [ Edouard@3116: foreach "$translatable_texts" { Edouard@3116: const "n","position()"; edouard@3126: const "current_id","@id"; edouard@3126: const "text_unlinked_uses","$result_svg_ns//svg:text[@original = $current_id]/@id"; edouard@3126: > [[ edouard@3126: foreach "@id | $text_unlinked_uses" { edouard@3126: > id("«.»") edouard@3126: if "position()!=last()" > , edouard@3126: } edouard@3126: > ],[ Edouard@3116: foreach "$translations/messages/msgid[$n]/msg" { Edouard@3116: > " Edouard@3116: foreach "line" { Edouard@3116: value "."; Edouard@3116: if "position()!=last()" > \\\\n Edouard@3116: } Edouard@3116: > " Edouard@3116: if "position()!=last()" > , Edouard@3116: } Edouard@3116: > ]] Edouard@3116: if "position()!=last()" > , Edouard@3116: > \n Edouard@3116: } Edouard@3116: | ] edouard@3108: }