diff options
Diffstat (limited to 'tex')
71 files changed, 1402 insertions, 1366 deletions
diff --git a/tex/context/base/attr-eff.lua b/tex/context/base/attr-eff.lua index 60e0c08ac..4dce5419a 100644 --- a/tex/context/base/attr-eff.lua +++ b/tex/context/base/attr-eff.lua @@ -6,8 +6,6 @@ if not modules then modules = { } end modules ['attr-eff'] = { license = "see context related readme files" } -local format = string.format - local commands, interfaces = commands, interfaces local attributes, nodes, backends, utilities = attributes, nodes, backends, utilities local tex = tex @@ -18,6 +16,7 @@ local nodeinjections = backends.nodeinjections local settexattribute = tex.setattribute local allocate = utilities.storage.allocate local setmetatableindex = table.setmetatableindex +local formatters = string.formatters local variables = interfaces.variables local v_normal = variables.normal @@ -36,7 +35,7 @@ local data = effects.data local registered = effects.registered local values = effects.values -local template = "%s:%s:%s" +local f_stamp = formatters["%s:%s:%s"] storage.register("attributes/effects/registered", registered, "attributes.effects.registered") storage.register("attributes/effects/values", values, "attributes.effects.values") @@ -82,7 +81,7 @@ local function register(specification) stretch = 0 rulethickness = 0 end - local stamp = format(template,alternative,stretch,rulethickness) + local stamp = f_stamp(alternative,stretch,rulethickness) local n = registered[stamp] if not n then n = #values + 1 diff --git a/tex/context/base/attr-lay.lua b/tex/context/base/attr-lay.lua index 9762bb202..4bcc70b0c 100644 --- a/tex/context/base/attr-lay.lua +++ b/tex/context/base/attr-lay.lua @@ -13,7 +13,6 @@ if not modules then modules = { } end modules ['attr-lay'] = { -- maybe use backends.registrations here too local type = type -local format = string.format local insert, remove = table.insert, table.remove local attributes, nodes, utilities, logs, backends = attributes, nodes, utilities, logs, backends @@ -22,6 +21,7 @@ local tex = tex local allocate = utilities.storage.allocate local setmetatableindex = table.setmetatableindex +local formatters = string.formatters local report_viewerlayers = logs.reporter("viewerlayers") @@ -69,7 +69,7 @@ local listwise = viewerlayers.listwise local registered = viewerlayers.registered local scopes = viewerlayers.scopes -local template = "%s" +local f_stamp = formatters["%s"] storage.register("attributes/viewerlayers/registered", registered, "attributes.viewerlayers.registered") storage.register("attributes/viewerlayers/values", values, "attributes.viewerlayers.values") @@ -163,7 +163,7 @@ local function register(name,lw) -- if not inimode redefine data[n] in first cal if not enabled then viewerlayers.enable(true) end - local stamp = format(template,name) + local stamp = f_stamp(name) local n = registered[stamp] if not n then n = #values + 1 diff --git a/tex/context/base/back-exp.lua b/tex/context/base/back-exp.lua index 24bc9b432..c9081013d 100644 --- a/tex/context/base/back-exp.lua +++ b/tex/context/base/back-exp.lua @@ -18,7 +18,7 @@ if not modules then modules = { } end modules ['back-exp'] = { -- We can optimize the code ... currently the overhead is some 10% for xml + html so -- there is no hurry. --- todo: use more formatters.. needs testing ... also we can every 1000 results do a collapse +-- todo: move critital formatters out of functions -- todo: delay loading (apart from basic tag stuff) local next, type = next, type @@ -231,7 +231,7 @@ end) local function attribute(key,value) if value and value ~= "" then - return format(' %s="%s"',key,gsub(value,".",attribentities)) + return formatters[' %s="%s"'](key,gsub(value,".",attribentities)) else return "" end @@ -345,7 +345,7 @@ local function allusedstyles(xmlfile) for detail, data in sortedhash(details) do local s = fontspecification(data.style) local c = colorspecification(data.color) - result[#result+1] = format(styletemplate,element,detail, + result[#result+1] = formatters[styletemplate](element,detail, s.style or "inherit", s.variant or "inherit", s.weight or "inherit", @@ -377,7 +377,7 @@ local function allusedimages(xmlfile) -- temp hack .. we will have a remapper name = file.replacesuffix(name,"svg") end - result[#result+1] = format(imagetemplate,element,detail,name,data.width,data.height) + result[#result+1] = formatters[imagetemplate](element,detail,name,data.width,data.height) end end return concat(result,"\n\n") @@ -466,7 +466,7 @@ function extras.document(result,element,detail,n,fulltag,di) local key = fields[i] local value = identity[key] if value and value ~= "" then - result[#result+1] = format(" %s=%q",key,value) + result[#result+1] = formatters[" %s=%q"](key,value) end end end @@ -505,7 +505,7 @@ end function extras.synonym(result,element,detail,n,fulltag,di) local tag = synonyms[fulltag] if tag then - result[#result+1] = format(" tag='%s'",tag) + result[#result+1] = formatters[" tag='%s'"](tag) end end @@ -518,7 +518,7 @@ end function extras.sorting(result,element,detail,n,fulltag,di) local tag = sortings[fulltag] if tag then - result[#result+1] = format(" tag='%s'",tag) + result[#result+1] = formatters[" tag='%s'"](tag) end end @@ -566,14 +566,14 @@ end function extras.description(result,element,detail,n,fulltag,di) local id = linked[fulltag] if id then - result[#result+1] = format(" insert='%s'",id) -- maybe just fulltag + result[#result+1] = formatters[" insert='%s'"](id) -- maybe just fulltag end end function extras.descriptionsymbol(result,element,detail,n,fulltag,di) local id = linked[fulltag] if id then - result[#result+1] = format(" insert='%s'",id) + result[#result+1] = formatters[" insert='%s'"](id) end end @@ -593,9 +593,9 @@ function extras.image(result,element,detail,n,fulltag,di) if data then result[#result+1] = attribute("name",data.name) if tonumber(data.page) > 1 then - result[#result+1] = format(" page='%s'",data.page) + result[#result+1] = formatters[" page='%s'"](data.page) end - result[#result+1] = format(" id='%s' width='%s' height='%s'",fulltag,data.width,data.height) + result[#result+1] = formatters[" id='%s' width='%s' height='%s'"](fulltag,data.width,data.height) end end @@ -611,7 +611,7 @@ end function extras.combination(result,element,detail,n,fulltag,di) local data = combinations[fulltag] if data then - result[#result+1] = format(" nx='%s' ny='%s'",data.nx,data.ny) + result[#result+1] = formatters[" nx='%s' ny='%s'"](data.nx,data.ny) end end @@ -684,7 +684,7 @@ end function specials.internal(result,var) local internal = references.checkedurl(var.operation) if internal then - result[#result+1] = format(" location='aut:%s'",internal) + result[#result+1] = formatters[" location='aut:%s'"](internal) end end @@ -696,9 +696,9 @@ local function adddestination(result,references) -- todo: specials -> exporters if reference and reference ~= "" then local prefix = references.prefix if prefix and prefix ~= "" then - result[#result+1] = format(" prefix='%s'",prefix) + result[#result+1] = formatters[" prefix='%s'"](prefix) end - result[#result+1] = format(" destination='%s'",reference) + result[#result+1] = formatters[" destination='%s'"](reference) for i=1,#references do local r = references[i] local e = evaluators[r.kind] @@ -716,13 +716,13 @@ local function addreference(result,references) if reference and reference ~= "" then local prefix = references.prefix if prefix and prefix ~= "" then - result[#result+1] = format(" prefix='%s'",prefix) + result[#result+1] = formatters[" prefix='%s'"](prefix) end - result[#result+1] = format(" reference='%s'",reference) + result[#result+1] = formatters[" reference='%s'"](reference) end local internal = references.internal if internal and internal ~= "" then - result[#result+1] = format(" location='aut:%s'",internal) + result[#result+1] = formatters[" location='aut:%s'"](internal) end end end @@ -1153,11 +1153,11 @@ function extras.tablecell(result,element,detail,n,fulltag,di) if hash then local v = hash.columns if v and v > 1 then - result[#result+1] = format(" columns='%s'",v) + result[#result+1] = formatters[" columns='%s'"](v) end local v = hash.rows if v and v > 1 then - result[#result+1] = format(" rows='%s'",v) + result[#result+1] = formatters[" rows='%s'"](v) end local v = hash.align if not v or v == 0 then @@ -1230,19 +1230,19 @@ local function emptytag(result,element,nature,depth,di) -- currently only break local a = di.attributes -- we might add detail etc if a then -- happens seldom if linedone then - result[#result+1] = format("%s<%s",spaces[depth],namespaced[element]) + result[#result+1] = formatters["%w<%s"](depth,namespaced[element]) else - result[#result+1] = format("\n%s<%s",spaces[depth],namespaced[element]) + result[#result+1] = formatters["\n%w<%s"](depth,namespaced[element]) end for k, v in next, a do - result[#result+1] = format(" %s=%q",k,v) + result[#result+1] = formatters[" %s=%q"](k,v) end result[#result+1] = "/>\n" else if linedone then - result[#result+1] = format("%s<%s/>\n",spaces[depth],namespaced[element]) + result[#result+1] = formatters["%w<%s/>\n"](depth,namespaced[element]) else - result[#result+1] = format("\n%s<%s/>\n",spaces[depth],namespaced[element]) + result[#result+1] = formatters["\n%w<%s/>\n"](depth,namespaced[element]) end end linedone = false @@ -1258,57 +1258,57 @@ local function begintag(result,element,nature,depth,di,skip) linedone = false inlinedepth = inlinedepth + 1 if show_comment and comment then - result[#result+1] = format("<!-- %s -->",comment) + result[#result+1] = formatters["<!-- %s -->"](comment) end elseif nature == "mixed" then if inlinedepth > 0 then if show_comment and comment then - result[#result+1] = format("<!-- %s -->",comment) + result[#result+1] = formatters["<!-- %s -->"](comment) end elseif linedone then result[#result+1] = spaces[depth] if show_comment and comment then - result[#result+1] = format("<!-- %s -->",comment) + result[#result+1] = formatters["<!-- %s -->"](comment) end else - result[#result+1] = format("\n%s",spaces[depth]) + result[#result+1] = formatters["\n%w"](depth) linedone = false if show_comment and comment then - result[#result+1] = format("<!-- %s -->\n%s",comment,spaces[depth]) + result[#result+1] = formatters["<!-- %s -->\n%w"](comment,depth) end end inlinedepth = inlinedepth + 1 else if inlinedepth > 0 then if show_comment and comment then - result[#result+1] = format("<!-- %s -->",comment) + result[#result+1] = formatters["<!-- %s -->"](comment) end elseif linedone then result[#result+1] = spaces[depth] if show_comment and comment then - result[#result+1] = format("<!-- %s -->",comment) + result[#result+1] = formatters["<!-- %s -->"](comment) end else - result[#result+1] = format("\n%s",spaces[depth]) -- can introduced extra line in mixed+mixed (filtered later on) + result[#result+1] = formatters["\n%w"](depth) -- can introduced extra line in mixed+mixed (filtered later on) linedone = false if show_comment and comment then - result[#result+1] = format("<!-- %s -->\n%s",comment,spaces[depth]) + result[#result+1] = formatters["<!-- %s -->\n%w"](comment,depth) end end end if skip == "comment" then if show_comment then - result[#result+1] = format("<!-- begin %s -->",namespaced[element]) + result[#result+1] = formatters["<!-- begin %s -->"](namespaced[element]) end elseif skip then -- ignore else - result[#result+1] = format("<%s",namespaced[element]) + result[#result+1] = formatters["<%s"](namespaced[element]) if detail then - result[#result+1] = format(" detail=%q",detail) + result[#result+1] = formatters[" detail=%q"](detail) end if indexing and n then - result[#result+1] = format(" n=%q",n) + result[#result+1] = formatters[" n=%q"](n) end local extra = extras[element] if extra then @@ -1317,13 +1317,13 @@ local function begintag(result,element,nature,depth,di,skip) local u = userdata[fulltag] if u then for k, v in next, u do - result[#result+1] = format(" %s=%q",k,v) + result[#result+1] = formatters[" %s=%q"](k,v) end end local a = di.attributes if a then for k, v in next, a do - result[#result+1] = format(" %s=%q",k,v) + result[#result+1] = formatters[" %s=%q"](k,v) end end result[#result+1] = ">" @@ -1340,12 +1340,12 @@ local function begintag(result,element,nature,depth,di,skip) result[#result+1] = "\n" linedone = true end - result[#result+1] = format("%s<metadata>\n",spaces[depth]) + result[#result+1] = formatters["%w<metadata>\n"](depth) for k, v in table.sortedpairs(metadata) do v = entityremapper(v) - result[#result+1] = format("%s<metavariable name=%q>%s</metavariable>\n",spaces[depth+1],k,v) + result[#result+1] = formatters["%w<metavariable name=%q>%s</metavariable>\n"](depth+1,k,v) end - result[#result+1] = format("%s</metadata>\n",spaces[depth]) + result[#result+1] = formatters["%w</metadata>\n"](depth) end end @@ -1357,35 +1357,35 @@ local function endtag(result,element,nature,depth,skip) end if skip == "comment" then if show_comment then - result[#result+1] = format("%s<!-- end %s -->\n",spaces[depth],namespaced[element]) + result[#result+1] = formatters["%w<!-- end %s -->\n"](depth,namespaced[element]) end elseif skip then -- ignore else - result[#result+1] = format("%s</%s>\n",spaces[depth],namespaced[element]) + result[#result+1] = formatters["%w</%s>\n"](depth,namespaced[element]) end linedone = true else if skip == "comment" then if show_comment then - result[#result+1] = format("<!-- end %s -->",namespaced[element]) + result[#result+1] = formatters["<!-- end %s -->"](namespaced[element]) end elseif skip then -- ignore else - result[#result+1] = format("</%s>",namespaced[element]) + result[#result+1] = formatters["</%s>"](namespaced[element]) end end else inlinedepth = inlinedepth - 1 if skip == "comment" then if show_comment then - result[#result+1] = format("<!-- end %s -->",namespaced[element]) + result[#result+1] = formatters["<!-- end %s -->"](namespaced[element]) end elseif skip then -- ignore else - result[#result+1] = format("</%s>",namespaced[element]) + result[#result+1] = formatters["</%s>"](namespaced[element]) end linedone = false end @@ -1404,14 +1404,14 @@ local function flushtree(result,data,nature,depth) if i == nofdata and sub(content,-1) == "\n" then -- move check -- can be an end of line in par but can also be the last line if trace_spacing then - result[#result+1] = format("<c n='%s'>%s</c>",di.parnumber or 0,sub(content,1,-2)) + result[#result+1] = formatters["<c n='%s'>%s</c>"](di.parnumber or 0,sub(content,1,-2)) else result[#result+1] = sub(content,1,-2) end result[#result+1] = " " else if trace_spacing then - result[#result+1] = format("<c n='%s'>%s</c>",di.parnumber or 0,content) + result[#result+1] = formatters["<c n='%s'>%s</c>"](di.parnumber or 0,content) else result[#result+1] = content end @@ -2194,14 +2194,14 @@ local displaymapping = { local function allusedelements(xmlfile) local result = { format("/* template for file %s */",xmlfile) } - for element, details in table.sortedhash(used) do + for element, details in sortedhash(used) do result[#result+1] = format("/* category: %s */",element) - for detail, nature in table.sortedhash(details) do + for detail, nature in sortedhash(details) do local d = displaymapping[nature or "display"] or "block" if detail == "" then - result[#result+1] = format(e_template,element,d) + result[#result+1] = formatters[e_template](element,d) else - result[#result+1] = format(d_template,element,detail,d) + result[#result+1] = formatters[d_template](element,detail,d) end end end diff --git a/tex/context/base/bibl-bib.lua b/tex/context/base/bibl-bib.lua index 6ea3bc567..c86a0c0c2 100644 --- a/tex/context/base/bibl-bib.lua +++ b/tex/context/base/bibl-bib.lua @@ -21,6 +21,7 @@ local variables = interfaces and interfaces.variables local settings_to_hash = utilities.parsers.settings_to_hash local finalizers = xml.finalizers.tex local xmlfilter, xmltext, getid = xml.filter, xml.text, lxml.getid +local formatters = string.formatters local P, R, S, C, Cc, Cs, Ct = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.Ct @@ -162,7 +163,7 @@ function bibtex.new() } end -local escaped_pattern = lpegpatterns.xml.escaped +local p_escaped = lpegpatterns.xml.escaped local ihatethis = { f = "\\f", @@ -202,17 +203,16 @@ function bibtex.toxml(session,options) local convert = options.convert -- todo: interface local strip = options.strip -- todo: interface local entries = session.entries - r = r + 1 ; result[r] = format("<?xml version='1.0' standalone='yes'?>") - r = r + 1 ; result[r] = format("<bibtex>") + r = r + 1 ; result[r] = "<?xml version='1.0' standalone='yes'?>" + r = r + 1 ; result[r] = "<bibtex>" for id, categories in next, session.data do id = lower(gsub(id,"^@","")) for name, entry in next, categories do if not entries or entries[name] then - r = r + 1 ; result[r] = format("<entry tag='%s' category='%s'>",lower(name),id) + r = r + 1 ; result[r] = formatters["<entry tag='%s' category='%s'>"](lower(name),id) for key, value in next, entry do - value = gsub(value,"\\(.)",ihatethis) - value = lpegmatch(escaped_pattern,value) - + value = gsub(value,"\\(.)",ihatethis) -- this really needs checking + value = lpegmatch(p_escaped,value) if value ~= "" then if convert then value = textoutf(value,true) @@ -222,14 +222,14 @@ function bibtex.toxml(session,options) -- kind of hackery ... bibtex databases are quite unportable value = lpegmatch(filter,value) or value end - r = r + 1 ; result[r] = format(" <field name='%s'>%s</field>",key,value) + r = r + 1 ; result[r] = formatters[" <field name='%s'>%s</field>"](key,value) end end - r = r + 1 ; result[r] = format("</entry>") + r = r + 1 ; result[r] = "</entry>" end end end - r = r + 1 ; result[r] = format("</bibtex>") + r = r + 1 ; result[r] = "</bibtex>" result = concat(result,"\n") -- alternatively we could use lxml.convert session.xml = xml.convert(result, { diff --git a/tex/context/base/buff-ini.lua b/tex/context/base/buff-ini.lua index 8ed8c71b2..f45dd0728 100644 --- a/tex/context/base/buff-ini.lua +++ b/tex/context/base/buff-ini.lua @@ -23,6 +23,7 @@ local P, Cs, patterns, lpegmatch = lpeg.P, lpeg.Cs, lpeg.patterns, lpeg.match local variables = interfaces.variables local settings_to_array = utilities.parsers.settings_to_array +local formatters = string.formatters local v_yes = variables.yes @@ -321,12 +322,12 @@ end function commands.getbuffer(name) local str = getcontent(name) if str ~= "" then - context.viafile(str,format("buffer.%s",validstring(name,"noname"))) + context.viafile(str,formatters["buffer.%s"](validstring(name,"noname"))) end end function commands.getbuffermkvi(name) -- rather direct ! - context.viafile(resolvers.macros.preprocessed(getcontent(name)),format("buffer.%s.mkiv",validstring(name,"noname"))) + context.viafile(resolvers.macros.preprocessed(getcontent(name)),formatters["buffer.%s.mkiv"](validstring(name,"noname"))) end function commands.gettexbuffer(name) diff --git a/tex/context/base/buff-ver.lua b/tex/context/base/buff-ver.lua index 49e3788ac..a5dd808fd 100644 --- a/tex/context/base/buff-ver.lua +++ b/tex/context/base/buff-ver.lua @@ -198,7 +198,7 @@ local fallback = context.verbatim local function makepattern(visualizer,replacement,pattern) if not pattern then - report_visualizers("error in visualizer: %s",replacement) + report_visualizers("error in visualizer %a",replacement) return patterns.alwaystrue else if type(visualizer) == "table" and type(replacement) == "string" then diff --git a/tex/context/base/chem-str.lua b/tex/context/base/chem-str.lua index d0f0b9d29..d497007b2 100644 --- a/tex/context/base/chem-str.lua +++ b/tex/context/base/chem-str.lua @@ -36,6 +36,7 @@ local concat, insert, remove, unique, sorted = table.concat, table.insert, table local processor_tostring = typesetters and typesetters.processors.tostring local settings_to_array = utilities.parsers.settings_to_array local settings_to_array_with_repeat = utilities.parsers.settings_to_array_with_repeat +local formatters = string.formatters local lpegmatch = lpeg.match local P, R, S, C, Cs, Ct, Cc, Cmt = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cs, lpeg.Ct, lpeg.Cc, lpeg.Cmt @@ -214,21 +215,21 @@ local syntax = { sixfront = { max = 6, keys = front_keys, }, chair = { max = 6, keys = front_keys, }, boat = { max = 6, keys = front_keys, }, - pb = { direct = 'chem_pb ;' }, - pe = { direct = 'chem_pe ;' }, - save = { direct = 'chem_save ;' }, - restore = { direct = 'chem_restore ;' }, - chem = { direct = 'chem_symbol("\\chemicaltext{%s}") ;', arguments = 1 }, - space = { direct = 'chem_symbol("\\chemicalsymbol[space]") ;' }, - plus = { direct = 'chem_symbol("\\chemicalsymbol[plus]") ;' }, - minus = { direct = 'chem_symbol("\\chemicalsymbol[minus]") ;' }, - gives = { direct = 'chem_symbol("\\chemicalsymbol[gives]{%s}{%s}") ;', arguments = 2 }, - equilibrium = { direct = 'chem_symbol("\\chemicalsymbol[equilibrium]{%s}{%s}") ;', arguments = 2 }, - mesomeric = { direct = 'chem_symbol("\\chemicalsymbol[mesomeric]{%s}{%s}") ;', arguments = 2 }, - opencomplex = { direct = 'chem_symbol("\\chemicalsymbol[opencomplex]") ;' }, - closecomplex = { direct = 'chem_symbol("\\chemicalsymbol[closecomplex]") ;' }, - reset = { direct = 'chem_reset ;' }, - mp = { direct = '%s', arguments = 1 }, -- backdoor MP code - dangerous! + pb = { direct = formatters['chem_pb;'] }, + pe = { direct = formatters['chem_pe;'] }, + save = { direct = formatters['chem_save;'] }, + restore = { direct = formatters['chem_restore;'] }, + chem = { direct = formatters['chem_symbol("\\chemicaltext{%s}");'], arguments = 1 }, + space = { direct = formatters['chem_symbol("\\chemicalsymbol[space]");'] }, + plus = { direct = formatters['chem_symbol("\\chemicalsymbol[plus]");'] }, + minus = { direct = formatters['chem_symbol("\\chemicalsymbol[minus]");'] }, + gives = { direct = formatters['chem_symbol("\\chemicalsymbol[gives]{%s}{%s}");'], arguments = 2 }, + equilibrium = { direct = formatters['chem_symbol("\\chemicalsymbol[equilibrium]{%s}{%s}");'], arguments = 2 }, + mesomeric = { direct = formatters['chem_symbol("\\chemicalsymbol[mesomeric]{%s}{%s}");'], arguments = 2 }, + opencomplex = { direct = formatters['chem_symbol("\\chemicalsymbol[opencomplex]");'] }, + closecomplex = { direct = formatters['chem_symbol("\\chemicalsymbol[closecomplex]");'] }, + reset = { direct = formatters['chem_reset;'] }, + mp = { direct = formatters['%s'], arguments = 1 }, -- backdoor MP code - dangerous! } chemistry.definitions = chemistry.definitions or { } @@ -469,11 +470,11 @@ local function process(level,spec,text,n,rulethickness,rulecolor,offset,default_ local sa = ss.arguments if sa == 1 then local one ; txt, one = fetch(txt) - m = m + 1 ; metacode[m] = format(ds,one or "") + m = m + 1 ; metacode[m] = ds(one or "") elseif sa == 2 then local one ; txt, one = fetch(txt) local two ; txt, two = fetch(txt) - m = m + 1 ; metacode[m] = format(ds,one or "",two or "") + m = m + 1 ; metacode[m] = ds(one or "",two or "") else m = m + 1 ; metacode[m] = ds end diff --git a/tex/context/base/cldf-prs.lua b/tex/context/base/cldf-prs.lua index 42757be19..be3f190f7 100644 --- a/tex/context/base/cldf-prs.lua +++ b/tex/context/base/cldf-prs.lua @@ -25,18 +25,21 @@ local superscript = P("^") local utf8char = patterns.utf8char local cardinal = patterns.cardinal --- local content = Cs(csname + nested + sign^-1 * (csname + cardinal + utf8char)) --- local lowfirst = subscript * ( Cc("\\lohi{%s}{%s}") * content * superscript + Cc("\\low{%s}" ) ) * content / format --- local highfirst = superscript * ( Cc("\\hilo{%s}{%s}") * content * subscript + Cc("\\high{%s}") ) * content / format --- local scripts = Cs(lowfirst + highfirst) +-- local scripts = P { "start", +-- start = V("csname") + V("lowfirst") + V("highfirst"), +-- csname = csname, +-- content = Cs(V("csname") + nested + sign^-1 * (cardinal + utf8char)), +-- lowfirst = subscript * ( Cc("\\lohi{%s}{%s}") * V("content") * superscript + Cc("\\low{%s}" ) ) * V("content") / format, +-- highfirst = superscript * ( Cc("\\hilo{%s}{%s}") * V("content") * subscript + Cc("\\high{%s}") ) * V("content") / format, +-- } local scripts = P { "start", - start = V("csname") + V("lowfirst") + V("highfirst"), - csname = csname, - content = Cs(V("csname") + nested + sign^-1 * (cardinal + utf8char)), - lowfirst = subscript * ( Cc("\\lohi{%s}{%s}") * V("content") * superscript + Cc("\\low{%s}" ) ) * V("content") / format, - highfirst = superscript * ( Cc("\\hilo{%s}{%s}") * V("content") * subscript + Cc("\\high{%s}") ) * V("content") / format, - } + start = V("csname") + V("lowfirst") + V("highfirst"), + csname = csname, + content = Cs(V("csname") + nested + sign^-1 * (cardinal + utf8char)), + lowfirst = (subscript /"") * ( Cc("\\lohi{") * V("content") * Cc("}{") * (superscript/"") + Cc("\\low{" ) ) * V("content") * Cc("}"), + highfirst = (superscript/"") * ( Cc("\\hilo{") * V("content") * Cc("}{") * (subscript /"") + Cc("\\high{") ) * V("content") * Cc("}"), + } local scripted = Cs((csname + scripts + utf8char)^0) @@ -47,6 +50,6 @@ cpatterns.nested = nested -- inspect(scripted) --- print(lpegmatch(scripted,"10^-3")) --- print(lpegmatch(scripted,"10^-a")) +print(lpegmatch(scripted,"10^-3_x")) +print(lpegmatch(scripted,"10^-a")) diff --git a/tex/context/base/colo-ini.lua b/tex/context/base/colo-ini.lua index c94058b11..148733932 100644 --- a/tex/context/base/colo-ini.lua +++ b/tex/context/base/colo-ini.lua @@ -426,7 +426,7 @@ function colors.definemultitonecolor(name,multispec,colorspec,selfspec) max = max + 1 dd[max] = k pp[max] = v - nn[max] = format("%s_%1.3g",k,tonumber(v) or 0) -- 0 can't happen + nn[max] = formatters["%s_%1.3g"](k,tonumber(v) or 0) -- 0 can't happen end if max > 0 then nn = concat(nn,'_') diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index 5d1b5468a..80abb9ff6 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.03.15 11:59} +\newcontextversion{2013.03.15 19:22} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 3e1e00c34..26eb00a9e 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.03.15 11:59} +\newcontextversion{2013.03.15 19:22} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf Binary files differindex e2b4165ed..d34e7e92a 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png Binary files differindex 80fe04690..828e90b95 100644 --- a/tex/context/base/context-version.png +++ b/tex/context/base/context-version.png diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index ef51cfefe..fab2ab6fd 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2013.03.15 11:59} +\edef\contextversion{2013.03.15 19:22} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 2f59b4831..30a89aa46 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2013.03.15 11:59} +\edef\contextversion{2013.03.15 19:22} %D For those who want to use this: diff --git a/tex/context/base/core-con.lua b/tex/context/base/core-con.lua index 11558102e..06102188c 100644 --- a/tex/context/base/core-con.lua +++ b/tex/context/base/core-con.lua @@ -17,15 +17,15 @@ slower but look nicer this way.</p> local command, context = commands, context local floor, date, time, concat = math.floor, os.date, os.time, table.concat -local lower, format, rep, match = string.lower, string.format, string.rep, string.match +local lower, rep, match = string.lower, string.rep, string.match local utfchar, utfbyte = utf.char, utf.byte local tonumber, tostring = tonumber, tostring -local settings_to_array = utilities.parsers.settings_to_array -local allocate = utilities.storage.allocate - local context = context +local settings_to_array = utilities.parsers.settings_to_array +local allocate = utilities.storage.allocate +local formatters = string.formatters local variables = interfaces.variables converters = converters or { } @@ -164,7 +164,7 @@ local function maxchrs(n,m,cmd,t) maxchrs(floor((n-1)/m),m,cmd) n = (n-1)%m + 1 end - t[#t+1] = format("%s{%s}",cmd,n) + t[#t+1] = formatters["%s{%s}"](cmd,n) if n <= m then return concat(t) end @@ -1097,7 +1097,7 @@ function commands.currentdate(str,currentlanguage) -- second argument false : no if currentlanguage == false then -- ignore else - context("%s",converters.ordinal(whatordinal,currentlanguage)) + context(converters.ordinal(whatordinal,currentlanguage)) -- no "%s" needed end end end diff --git a/tex/context/base/core-sys.lua b/tex/context/base/core-sys.lua index a790be19e..1741bbe0a 100644 --- a/tex/context/base/core-sys.lua +++ b/tex/context/base/core-sys.lua @@ -43,7 +43,7 @@ local report_files = logs.reporter("system","files") -- end) -- -- -- statistics.register("job file properties", function() --- return format("jobname: %s, input: %s, suffix: %s",jobfilename,inputfilename,inputfilesuffix) +-- return format("jobname %a, input %a, suffix %a",jobfilename,inputfilename,inputfilesuffix) -- end) -- -- -- end diff --git a/tex/context/base/file-job.lua b/tex/context/base/file-job.lua index 9e5912bc7..ea4623d77 100644 --- a/tex/context/base/file-job.lua +++ b/tex/context/base/file-job.lua @@ -9,10 +9,11 @@ if not modules then modules = { } end modules ['file-job'] = { -- in retrospect dealing it's not that bad to deal with the nesting -- and push/poppign at the tex end -local format, gsub, match, find = string.format, string.gsub, string.match, string.find +local gsub, match, find = string.gsub, string.match, string.find local insert, remove, concat = table.insert, table.remove, table.concat local validstring = string.valid local sortedhash = table.sortedhash +local formatters = string.formatters local commands, resolvers, context = commands, resolvers, context @@ -97,9 +98,9 @@ end function commands.usezipfile(name,tree) if tree and tree ~= "" then - resolvers.usezipfile(format("zip:///%s?tree=%s",name,tree)) + resolvers.usezipfile(formatters["zip:///%s?tree=%s"](name,tree)) else - resolvers.usezipfile(format("zip:///%s",name)) + resolvers.usezipfile(formatters["zip:///%s"](name)) end end @@ -676,7 +677,7 @@ local function convertexamodes(str) local data = xml.text(e) local mode = match(label,"^mode:(.+)$") if mode then - context.enablemode { format("%s:%s",mode,data) } + context.enablemode { formatters["%s:%s"](mode,data) } end context.setvariable("exa:variables",label,(gsub(data,"([{}])","\\%1"))) end diff --git a/tex/context/base/font-ctx.lua b/tex/context/base/font-ctx.lua index 0c99268a4..2e5b9b6cd 100644 --- a/tex/context/base/font-ctx.lua +++ b/tex/context/base/font-ctx.lua @@ -147,7 +147,7 @@ end commands.resetnullfont = definers.resetnullfont -setmetatableindex(fontdata, function(t,k) return nulldata end) +setmetatableindex(fontdata, function(t,k) return k == true and t[currentfont()] or nulldata end) -- we might make an font-hsh.lua @@ -315,7 +315,6 @@ local function checkedscript(tfmdata,resources,features) script = latn and "latn" or "dflt" end if trace_automode then --- report_defining("auto script mode, using script %a in font %a",script,file.basename(tfmdata.properties.name)) report_defining("auto script mode, using script %a in font %!font:name!",script,tfmdata) end features.script = script @@ -341,8 +340,6 @@ local function checkedmode(tfmdata,resources,features) if found then -- more than one lookup if trace_automode then --- report_defining("forcing mode %a, font %a, feature %a, script %a, language %a, %s", --- "node",file.basename(tfmdata.properties.name),feature,script,language,"multiple lookups") report_defining("forcing mode %a, font %!font:name!, feature %a, script %a, language %a, %s", "node",tfmdata,feature,script,language,"multiple lookups") end @@ -350,8 +347,6 @@ local function checkedmode(tfmdata,resources,features) return "node" elseif needsnodemode[sequence.type] then if trace_automode then --- report_defining("forcing mode %a, font %a, feature %a, script %a, language %a, %s", --- "node",file.basename(tfmdata.properties.name),feature,script,language,"no base support") report_defining("forcing mode %a, font %!font:name!, feature %a, script %a, language %a, %s", "node",tfmdata,feature,script,language,"no base support") end @@ -377,7 +372,6 @@ definers.checkedmode = checkedmode local function modechecker(tfmdata,features,mode) -- we cannot adapt features as they are shared! if trace_features then --- report_features("fontname %a, features % a",file.basename(tfmdata.properties.name),features) report_features("fontname %!font:name!, features %!font:features!",tfmdata,features) end local rawdata = tfmdata.shared.rawdata @@ -391,7 +385,6 @@ local function modechecker(tfmdata,features,mode) -- we cannot adapt features as mode = checkedmode(tfmdata,resources,features) end else --- report_features("missing resources for font %a",file.basename(tfmdata.properties.name)) report_features("missing resources for font %!font:name!",tfmdata) end return mode @@ -709,11 +702,10 @@ local function registercontext(fontnumber,extraname,option) end end -local function registercontextfeature(fontnumber,extraname,how) +local function registercontextfeature(mergedname,extraname,how) local extra = setups[extraname] if extra then - local mergedfeatures, mergedname = { }, nil - mergedname = fontnumber .. how .. extraname + local mergedfeatures = { } for k, v in next, extra do mergedfeatures[k] = v end @@ -1700,25 +1692,33 @@ local cache = { } function commands.feature(how,parent,name,font) if not how then + if trace_features and texattribute[0] ~= 0 then + report_cummulative("font %!font:name!, reset",fontdata[font or true]) + end texattribute[0] = 0 + elseif how == true then + local hash = "feature > " .. parent + local done = cache[hash] + if trace_features and done then + report_cummulative("font %!font:name!, revive %a : %!font:features!",fontdata[font or true],parent,setups[numbers[done]]) + end + texattribute[0] = done or 0 else - local font = font or currentfont() local full = parent .. how .. name - local hash = font .. how .. full -- what, hm + local hash = "feature > " .. full local done = cache[hash] - if done then - else + if not done then local n = setups[full] if n then -- already defined else - n = mergecontextfeatures(parent,name,how,full) -- registers parent .. "+" .. name + n = mergecontextfeatures(parent,name,how,full) end - done = registercontextfeature(font,full,how) + done = registercontextfeature(hash,full,how) cache[hash] = done if trace_features then - report_cummulative("font %!font:name!, number %a, set %a : %!font:features!", - fontdata[font],done,full,setups[numbers[done]]) + report_cummulative("font %!font:name!, %s %a : %!font:features!", + fontdata[font or true],how == "+" and "add" or how == "-" and "subtract" or "replace",full,setups[numbers[done]]) end end texattribute[0] = done diff --git a/tex/context/base/font-fea.mkvi b/tex/context/base/font-fea.mkvi index f3d915c1b..d23e15ccc 100644 --- a/tex/context/base/font-fea.mkvi +++ b/tex/context/base/font-fea.mkvi @@ -179,6 +179,7 @@ \unexpanded\def\addfeature {\doifnextoptionalelse\font_feature_add_yes \font_feature_add_nop } \unexpanded\def\subtractfeature{\doifnextoptionalelse\font_feature_subtract_yes\font_feature_subtract_nop} \unexpanded\def\replacefeature {\doifnextoptionalelse\font_feature_replace_yes \font_feature_replace_nop } +\unexpanded\def\feature {\doifnextoptionalelse\font_feature_yes \font_feature_nop } \unexpanded\def\font_feature_add_yes [#1]{\edef\m_font_feature_asked{#1}\font_feature_add} \unexpanded\def\font_feature_add_nop #1{\edef\m_font_feature_asked{#1}\font_feature_add} @@ -249,7 +250,49 @@ \let\m_font_feature_list \s!current \ctxcommand{feature(false)}} -\let\feature\addfeature +\unexpanded\def\revivefeature + {\ifx\currentfeature\s!current \else + \font_feature_revive_indeed + \fi} + +\def\font_feature_revive_indeed + {\ctxcommand{feature(true,"\m_font_feature_list")}} + +\installcorenamespace{featureyes} +\installcorenamespace{featurenop} + +\unexpanded\def\font_feature_yes[#1]{\csname\??featureyes\ifcsname\??featureyes#1\endcsname#1\else\s!unknown\fi\endcsname} +\unexpanded\def\font_feature_nop #1{\csname\??featurenop\ifcsname\??featurenop#1\endcsname#1\else\s!unknown\fi\endcsname} + +\letvalue{\??featureyes+}\addfeature +\letvalue{\??featurenop+}\addfeature + +\letvalue{\??featureyes\v!more}\addfeature +\letvalue{\??featurenop\v!more}\addfeature + +\letvalue{\??featureyes-}\subtractfeature +\letvalue{\??featurenop-}\subtractfeature + +\letvalue{\??featureyes\v!less}\subtractfeature +\letvalue{\??featurenop\v!less}\subtractfeature + +\letvalue{\??featureyes=}\replacefeature +\letvalue{\??featurenop=}\replacefeature + +\letvalue{\??featureyes\v!new}\replacefeature +\letvalue{\??featurenop\v!new}\replacefeature + +\letvalue{\??featureyes\v!reset}\resetfeature +\letvalue{\??featurenop\v!reset}\resetfeature + +\letvalue{\??featureyes\v!default}\revivefeature +\letvalue{\??featurenop\v!default}\revivefeature + +\letvalue{\??featureyes\v!old}\revivefeature +\letvalue{\??featurenop\v!old}\revivefeature + +\letvalue{\??featureyes\s!unknown}\empty +\letvalue{\??featurenop\s!unknown}\empty %D \macros %D {os} diff --git a/tex/context/base/font-otb.lua b/tex/context/base/font-otb.lua index 0ae46c6f0..6abe7c6f4 100644 --- a/tex/context/base/font-otb.lua +++ b/tex/context/base/font-otb.lua @@ -189,7 +189,7 @@ local function finalize_ligatures(tfmdata,ligatures) if ligature then local unicode, lookupdata = ligature[1], ligature[2] if trace then - trace_ligatures_detail("building %q into %q",concat(lookupdata," "),unicode) + trace_ligatures_detail("building % a into %a",lookupdata,unicode) end local size = #lookupdata local firstcode = lookupdata[1] -- [2] @@ -202,7 +202,7 @@ local function finalize_ligatures(tfmdata,ligatures) if not firstdata then firstcode = private if trace then - trace_ligatures_detail("defining %q as %q",firstname,firstcode) + trace_ligatures_detail("defining %a as %a",firstname,firstcode) end unicodes[firstname] = firstcode firstdata = { intermediate = true, ligatures = { } } @@ -226,7 +226,7 @@ local function finalize_ligatures(tfmdata,ligatures) end end if trace then - trace_ligatures_detail("codes (%s,%s) + (%s,%s) -> %s",firstname,firstcode,secondname,secondcode,target) + trace_ligatures_detail("codes (%a,%a) + (%a,%a) -> %a",firstname,firstcode,secondname,secondcode,target) end local firstligs = firstdata.ligatures if firstligs then diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua index 8270f3410..b8abd590a 100644 --- a/tex/context/base/font-otf.lua +++ b/tex/context/base/font-otf.lua @@ -535,7 +535,7 @@ actions["add dimensions"] = function(data,filename) if not wd then d.width = defaultwidth elseif trace_markwidth and wd ~= 0 and d.class == "mark" then - report_otf("mark %a with width %b found in %s",d.name or "<noname>",wd,basename) + report_otf("mark %a with width %b found in %a",d.name or "<noname>",wd,basename) -- d.width = -wd end setmetatable(d,mt) @@ -546,7 +546,7 @@ actions["add dimensions"] = function(data,filename) if not wd then d.width = defaultwidth elseif trace_markwidth and wd ~= 0 and d.class == "mark" then - report_otf("mark %a with width %b found in %s",d.name or "<noname>",wd,basename) + report_otf("mark %a with width %b found in %a",d.name or "<noname>",wd,basename) -- d.width = -wd end -- if forcenotdef and not d.name then diff --git a/tex/context/base/font-otn.lua b/tex/context/base/font-otn.lua index 4a0052904..72216f9db 100644 --- a/tex/context/base/font-otn.lua +++ b/tex/context/base/font-otn.lua @@ -533,12 +533,12 @@ function handlers.gsub_alternate(head,start,kind,lookupname,alternative,sequence local choice = get_alternative_glyph(start,alternative,value) if choice then if trace_alternatives then - logprocess("%s: replacing %s by alternative %s (%s)",pref(kind,lookupname),gref(start.char),gref(choice),choice) + logprocess("%s: replacing %s by alternative %a to %s",pref(kind,lookupname),gref(start.char),choice,gref(choice)) end start.char = choice else if trace_alternatives then - logwarning("%s: no variant %s for %s",pref(kind,lookupname),tostring(value),gref(start.char)) + logwarning("%s: no variant %a for %s",pref(kind,lookupname),value,gref(start.char)) end end return head, start, true @@ -1161,12 +1161,12 @@ function chainprocs.gsub_alternate(head,start,stop,kind,chainname,currentcontext local choice = get_alternative_glyph(current,alternatives,value) if choice then if trace_alternatives then - logprocess("%s: replacing %s by alternative %s (%s)",cref(kind,chainname,chainlookupname,lookupname),gref(char),gref(choice),choice) + logprocess("%s: replacing %s by alternative %a to %s",cref(kind,chainname,chainlookupname,lookupname),gref(char),choice,gref(choice)) end start.char = choice else if trace_alternatives then - logwarning("%s: no variant %s for %s",cref(kind,chainname,chainlookupname,lookupname),tostring(value),gref(char)) + logwarning("%s: no variant %a for %s",cref(kind,chainname,chainlookupname,lookupname),value,gref(char)) end end elseif trace_bugs then @@ -1628,9 +1628,9 @@ end local function show_skip(kind,chainname,char,ck,class) if ck[9] then - logwarning("%s: skipping char %s (%s) in rule %s, lookuptype %s (%s=>%s)",cref(kind,chainname),gref(char),class,ck[1],ck[2],ck[9],ck[10]) + logwarning("%s: skipping char %s, class %a, rule %a, lookuptype %a, %a => %a",cref(kind,chainname),gref(char),class,ck[1],ck[2],ck[9],ck[10]) else - logwarning("%s: skipping char %s (%s) in rule %s, lookuptype %s",cref(kind,chainname),gref(char),class,ck[1],ck[2]) + logwarning("%s: skipping char %s, class %a, rule %a, lookuptype %a",cref(kind,chainname),gref(char),class,ck[1],ck[2]) end end @@ -1843,10 +1843,10 @@ local function normal_handle_contextchain(head,start,kind,chainname,contexts,seq local rule, lookuptype, f, l = ck[1], ck[2], ck[4], ck[5] local char = start.char if ck[9] then - logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %s (%s=>%s)", + logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %a, %a => %a", cref(kind,chainname),rule,gref(char),f-1,l-f+1,s-l,lookuptype,ck[9],ck[10]) else - logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %s", + logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %a", cref(kind,chainname),rule,gref(char),f-1,l-f+1,s-l,lookuptype) end end @@ -1945,7 +1945,7 @@ function otf.setcontextchain(method) end handlers.contextchain = normal_handle_contextchain else - logwarning("installing contextchain handler '%s'",method) + logwarning("installing contextchain handler %a",method) local handler = otf.chainhandlers[method] handlers.contextchain = function(...) return handler(currentfont,...) -- hm, get rid of ... @@ -1976,7 +1976,7 @@ local function report_missing_cache(typ,lookup) local t = f[typ] if not t then t = { } f[typ] = t end if not t[lookup] then t[lookup] = true - logwarning("missing cache for lookup %s of type %s in font %s (%s)",lookup,typ,currentfont,tfmdata.properties.fullname) + logwarning("missing cache for lookup %a, type %a, font %a, name %a",lookup,typ,currentfont,tfmdata.properties.fullname) end end diff --git a/tex/context/base/java-ini.lua b/tex/context/base/java-ini.lua index e9328737a..321e4e24d 100644 --- a/tex/context/base/java-ini.lua +++ b/tex/context/base/java-ini.lua @@ -13,6 +13,7 @@ local lpegmatch, P, S, C, Carg, Cc = lpeg.match, lpeg.P, lpeg.S, lpeg.C, lpeg.Ca local allocate = utilities.storage.allocate local settings_to_array = utilities.parsers.settings_to_array local variables = interfaces.variables +local formatters = string.formatters -- todo: don't flush scripts if no JS key @@ -164,11 +165,11 @@ function javascripts.code(name,arguments) if arguments then local args = lpegmatch(splitter,arguments) for i=1,#args do -- can be a helper - args[i] = format("%q",args[i]) + args[i] = formatters["%q"](args[i]) end - return format("%s(%s)",name,concat(args,",")) + return formatters["%s(%s)"](name,concat(args,",")) else - return format("%s()",name) + return formatters["%s()"](name) end end end diff --git a/tex/context/base/l-lua.lua b/tex/context/base/l-lua.lua index 401808772..39f15cd65 100644 --- a/tex/context/base/l-lua.lua +++ b/tex/context/base/l-lua.lua @@ -260,7 +260,7 @@ end local function loadedbylua(name) if helpers.trace then - helpers.report("! locating %q using normal loader",name) + helpers.report("! locating '%s' using normal loader",name) end return searchers[-2](name) end @@ -269,17 +269,17 @@ local function loadedbypath(name,rawname,paths,islib,what) local trace = helpers.trace local report = helpers.report if trace then - report("! locating %q as %q on %q paths",rawname,name,what) + report("! locating '%s' as '%s' on '%s' paths",rawname,name,what) end for p=1,#paths do local path = paths[p] local resolved = filejoin(path,name) if trace then -- mode detail - report("! checking for %q using %q path %q",name,what,path) + report("! checking for '%s' using '%s' path '%s'",name,what,path) end if isreadable(resolved) then if trace then - report("! lib %q located on %q",name,resolved) + report("! lib '%s' located on '%s'",name,resolved) end if islib then return loadedaslib(resolved,rawname) @@ -292,7 +292,7 @@ end local function notloaded(name) if helpers.trace then - helpers.report("? unable to locate library %q",name) + helpers.report("? unable to locate library '%s'",name) end end diff --git a/tex/context/base/l-string.lua b/tex/context/base/l-string.lua index b6e3576f0..77c076cc5 100644 --- a/tex/context/base/l-string.lua +++ b/tex/context/base/l-string.lua @@ -156,7 +156,7 @@ function string.escapedpattern(str,simple) end function string.topattern(str,lowercase,strict) - if str == "" then + if str=="" or type(str) ~= "string" then return ".*" elseif strict then str = lpegmatch(pattern_c,str) diff --git a/tex/context/base/lang-ini.lua b/tex/context/base/lang-ini.lua index 4dcfd2f36..771a502e4 100644 --- a/tex/context/base/lang-ini.lua +++ b/tex/context/base/lang-ini.lua @@ -311,10 +311,10 @@ function languages.logger.report() for tag, l in sortedpairs(registered) do if l.loaded then r = r + 1 - result[r] = format("%s:%s:%s", tag, l.parent, l.number) + result[r] = format("%s:%s:%s",tag,l.parent,l.number) end end - return (r > 0 and concat(result," ")) or "none" + return r > 0 and concat(result," ") or "none" end -- must happen at the tex end diff --git a/tex/context/base/lang-lab.lua b/tex/context/base/lang-lab.lua index aba068296..311c84e35 100644 --- a/tex/context/base/lang-lab.lua +++ b/tex/context/base/lang-lab.lua @@ -6,70 +6,16 @@ if not modules then modules = { } end modules ['lang-lab'] = { license = "see context related readme files" } ---~ local function complete() ---~ local function process(what) ---~ for tag, data in next, what do ---~ for k, v in next, data.labels do ---~ languages[k] = true ---~ end ---~ end ---~ end ---~ process(languages.labels.data.titles) ---~ process(languages.labels.data.texts) ---~ process(languages.labels.data.functions) ---~ process(languages.labels.data.tags) ---~ local function process(what) ---~ for tag, data in next, what do ---~ local labels = data.labels ---~ for k, v in next, languages do ---~ if not labels[k] then ---~ labels[k] = "" ---~ end ---~ end ---~ end ---~ end ---~ process(languages.data.labels.titles) ---~ process(languages.data.labels.texts) ---~ process(languages.data.labels.functions) ---~ process(languages.data.labels.tags) ---~ end ---~ ---~ local function strip(default) ---~ local function process(what) ---~ for tag, data in next, what do ---~ local labels = data.labels ---~ for k, v in next, labels do ---~ if v == "" then ---~ labels[k] = default ---~ end ---~ end ---~ end ---~ end ---~ process(languages.data.labels.titles) ---~ process(languages.data.labels.texts) ---~ process(languages.data.labels.functions) ---~ process(languages.data.labels.tags) ---~ end ---~ ---~ complete() ---~ strip(false) ---~ strip() - ---~ table.print(languages.data.labels,"languages.data.labels",false,true,true) - --- this will move - local format, find = string.format, string.find local next, rawget, type = next, rawget, type local lpegmatch = lpeg.match +local formatters = string.formatters local prtcatcodes = catcodes.numbers.prtcatcodes -- todo: use different method local trace_labels = false trackers.register("languages.labels", function(v) trace_labels = v end) local report_labels = logs.reporter("languages","labels") --- trace_labels = true - languages.labels = languages.labels or { } local labels = languages.labels @@ -116,17 +62,17 @@ function labels.define(class,name,prefixed) if second then if rawget(variables,first) then if rawget(variables,second) then - definelanguagelabels(data,class,format("\\v!%s:\\v!%s",first,second),tag) + definelanguagelabels(data,class,formatters["\\v!%s:\\v!%s"](first,second),tag) else - definelanguagelabels(data,class,format("\\v!%s:%s",first,second),tag) + definelanguagelabels(data,class,formatters["\\v!%s:%s"](first,second),tag) end - elseif rawget(variables,second) then - definelanguagelabels(data,class,format("%s:\\v!%s",first,second),tag) + elseif rawget(variables,second) then + definelanguagelabels(data,class,formatters["%s:\\v!%s"](first,second),tag) else - definelanguagelabels(data,class,format("%s:%s",first,second),tag) + definelanguagelabels(data,class,formatters["%s:%s"](first,second),tag) end elseif rawget(variables,rawtag) then - definelanguagelabels(data,class,format("\\v!%s",tag),tag) + definelanguagelabels(data,class,formatters["\\v!%s"](tag),tag) else definelanguagelabels(data,class,tag,tag) end diff --git a/tex/context/base/lpdf-ano.lua b/tex/context/base/lpdf-ano.lua index 96bb85c5f..e722446ee 100644 --- a/tex/context/base/lpdf-ano.lua +++ b/tex/context/base/lpdf-ano.lua @@ -14,6 +14,7 @@ local next, tostring = next, tostring local rep, format = string.rep, string.format local texcount = tex.count local lpegmatch = lpeg.match +local formatters = string.formatters local backends, lpdf = backends, lpdf @@ -251,6 +252,9 @@ end local hashed, nofunique, nofused = { }, 0, 0 +local f_annot = formatters["<< /Type /Annot %s /Rect [%0.3f %0.3f %0.3f %0.3f] >>"] +local f_bpnf = formatters["_bpnf_(%s,%s,%s,'%s')"] + local function use_shared_annotations() local factor = number.dimenfactors.bp @@ -259,7 +263,7 @@ local function use_shared_annotations() local h, v = pdf.h, pdf.v local llx, lly = h*factor, (v - depth)*factor local urx, ury = (h + width)*factor, (v + height)*factor - local annot = format("<< /Type /Annot %s /Rect [%0.3f %0.3f %0.3f %0.3f] >>",prerolled,llx,lly,urx,ury) + local annot = f_annot(prerolled,llx,lly,urx,ury) local n = hashed[annot] if not n then n = pdfdelayedobject(annot) @@ -277,7 +281,7 @@ local function use_shared_annotations() if trace_references then report_reference("width %p, height %p, depth %p, prerolled %a",width,height,depth,prerolled) end - local luacode = format("_bpnf_(%s,%s,%s,'%s')",width,height,depth,prerolled) + local luacode = f_bpnf(width,height,depth,prerolled) return latelua_node(luacode) end end diff --git a/tex/context/base/lpdf-col.lua b/tex/context/base/lpdf-col.lua index 0109ca602..b358d0820 100644 --- a/tex/context/base/lpdf-col.lua +++ b/tex/context/base/lpdf-col.lua @@ -6,10 +6,11 @@ if not modules then modules = { } end modules ['lpdf-col'] = { license = "see context related readme files" } -local type, next, tostring = type, next, tostring +local type, next, tostring, tonumber = type, next, tostring, tonumber local char, byte, format, gsub, rep, gmatch = string.char, string.byte, string.format, string.gsub, string.rep, string.gmatch local concat = table.concat local round = math.round +local formatters = string.formatters local backends, lpdf, nodes = backends, lpdf, nodes @@ -43,10 +44,18 @@ local forcedmodel = colors.forcedmodel local c_transparency = pdfconstant("Transparency") -local f_gray = formatters["%.3f g %.3f G"] -local f_rgb = formatters["%.3f %.3f %.3f rg %.3f %.3f %.3f RG"] -local f_cmyk = formatters["%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K"] -local f_cm = formatters["q %f %f %f %f %f %f cm"] +local f_gray = formatters["%.3f g %.3f G"] +local f_rgb = formatters["%.3f %.3f %.3f rg %.3f %.3f %.3f RG"] +local f_cmyk = formatters["%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K"] +local f_spot = formatters["/%s cs /%s CS %s SCN %s scn"] +local f_tr = formatters["Tr%s"] +local f_cm = formatters["q %f %f %f %f %f %f cm"] +local f_effect = formatters["%s Tc %s w %s Tr"] +local f_tr_gs = formatters["/Tr%s gs"] +local f_num_1 = tostring +local f_num_2 = formatters["%s %s"] +local f_num_3 = formatters["%s %s %s"] +local f_num_4 = formatters["%s %s %s %s"] local report_color = logs.reporter("colors","backend") @@ -120,11 +129,11 @@ function nodeinjections.spotcolor(n,f,d,p) if type(p) == "string" then p = gsub(p,","," ") -- brr misuse of spot end - return register(pdfliteral(format("/%s cs /%s CS %s SCN %s scn",n,n,p,p))) + return register(pdfliteral(f_spot(n,n,p,p))) end function nodeinjections.transparency(n) - return register(pdfliteral(format("/Tr%s gs",n))) + return register(pdfliteral(f_tr_gs(n))) end -- a bit weird but let's keep it here for a while @@ -143,7 +152,7 @@ function nodeinjections.effect(effect,stretch,rulethickness) -- always, no zero test (removed) rulethickness = bp * rulethickness effect = effects[effect] or effects['normal'] - return register(pdfliteral(format("%s Tc %s w %s Tr",stretch,rulethickness,effect))) -- watch order + return register(pdfliteral(f_effect(stretch,rulethickness,effect))) -- watch order end -- spot- and indexcolors @@ -199,12 +208,12 @@ local function registersomespotcolor(name,noffractions,names,p,colorspace,range, Range = range, } local calculations = pdfflushstreamobject(format("{ %s }",funct),dictionary) - -- local calculations = pdfobject { - -- type = "stream", - -- immediate = true, - -- string = format("{ %s }",funct), - -- attr = dictionary(), - -- } + -- local calculations = pdfobject { + -- type = "stream", + -- immediate = true, + -- string = format("{ %s }",funct), + -- attr = dictionary(), + -- } local array = pdfarray { pdf_separation, pdfconstant(spotcolornames[name] or name), @@ -353,7 +362,7 @@ function registrations.rgbspotcolor(name,noffractions,names,p,r,g,b) if noffractions == 1 then registersomespotcolor(name,noffractions,names,p,pdf_device_rgb,pdf_rbg_range,f_rgb_function(r,g,b)) else - registersomespotcolor(name,noffractions,names,p,pdf_device_rgb,pdf_rbg_range,format("%s %s %s",r,g,b)) + registersomespotcolor(name,noffractions,names,p,pdf_device_rgb,pdf_rbg_range,f_num_3(r,g,b)) end delayindexcolor(name,names,function() return registersomeindexcolor(name,noffractions,names,p,pdf_device_rgb,pdf_rgb_range,f_rgb_function(r,g,b)) @@ -364,7 +373,7 @@ function registrations.cmykspotcolor(name,noffractions,names,p,c,m,y,k) if noffractions == 1 then registersomespotcolor(name,noffractions,names,p,pdf_device_cmyk,pdf_cmyk_range,f_cmyk_function(c,m,y,k)) else - registersomespotcolor(name,noffractions,names,p,pdf_device_cmyk,pdf_cmyk_range,format("%s %s %s %s",c,m,y,k)) + registersomespotcolor(name,noffractions,names,p,pdf_device_cmyk,pdf_cmyk_range,f_num_4(c,m,y,k)) end delayindexcolor(name,names,function() return registersomeindexcolor(name,noffractions,names,p,pdf_device_cmyk,pdf_cmyk_range,f_cmyk_function(c,m,y,k)) @@ -375,7 +384,7 @@ function registrations.grayspotcolor(name,noffractions,names,p,s) if noffractions == 1 then registersomespotcolor(name,noffractions,names,p,pdf_device_gray,pdf_gray_range,f_gray_function(s)) else - registersomespotcolor(name,noffractions,names,p,pdf_device_gray,pdf_gray_range,s) + registersomespotcolor(name,noffractions,names,p,pdf_device_gray,pdf_gray_range,f_num_1(s)) end delayindexcolor(name,names,function() return registersomeindexcolor(name,noffractions,names,p,pdf_device_gray,pdf_gray_range,f_gray_function(s)) @@ -461,7 +470,7 @@ function registrations.transparency(n,a,t) local mr = pdfreference(m) transparencyhash[n] = m documenttransparencies[n] = mr - lpdf.adddocumentextgstate(format("Tr%s",n),mr) + lpdf.adddocumentextgstate(f_tr(n),mr) end end @@ -499,7 +508,7 @@ local function lpdfcolor(model,ca,default) -- todo: use gray when no color if type(p) == "string" then p = gsub(p,","," ") -- brr misuse of spot end - return format("/%s cs /%s CS %s SCN %s scn",n,n,p,p) + return f_spot(n,n,p,p) end else return f_gray(default or 0,default or 0) @@ -545,9 +554,9 @@ function lpdf.transparency(ct,default) -- kind of overlaps with transparencycode if transparencies.supported then local ct = transparenciesvalue(ct) if ct then - return format("/Tr%s gs",registertransparancy(nil,ct[1],ct[2],true)) + return f_tr_gs(registertransparancy(nil,ct[1],ct[2],true)) else - return "/Tr0 gs" + return f_tr_gs(0) end else return "" @@ -562,40 +571,19 @@ function lpdf.colorvalue(model,ca,default) end model = forcedmodel(model) if model == 2 then - return format("%s",cv[2]) + return f_num_1(cv[2]) elseif model == 3 then - return format("%s %s %s",cv[3],cv[4],cv[5]) + return f_num_3(cv[3],cv[4],cv[5]) elseif model == 4 then - return format("%s %s %s %s",cv[6],cv[7],cv[8],cv[9]) + return f_num_4(cv[6],cv[7],cv[8],cv[9]) else - return format("%s",cv[13]) + return f_num_1(cv[13]) end else - return format("%s",default or 0) + return f_num_1(default or 0) end end ---~ function lpdf.fdfcolor(model,ca,default) ---~ local cv = colorsvalue(ca) ---~ if cv then ---~ if model == 1 then ---~ model = cv[1] ---~ end ---~ model = forcedmodel(model) ---~ if model == 2 then ---~ return format("[%s]",cv[2]) ---~ elseif model == 3 then ---~ return format("[%s %s %s]",cv[3],cv[4],cv[5]) ---~ elseif model == 4 then ---~ return format("[%s %s %s %s]",cv[6],cv[7],cv[8],cv[9]) ---~ elseif model == 4 then ---~ return format("[%s]",cv[13]) ---~ end ---~ else ---~ return format("[%s]",default or 0) ---~ end ---~ end - function lpdf.colorvalues(model,ca,default) local cv = colorsvalue(ca) if cv then @@ -684,7 +672,7 @@ end function lpdf.transparencycode(a,t) if transparencies.supported then intransparency = true - return format("/Tr%s gs",registertransparancy(nil,a,t,true)) -- true forces resource + return f_tr_gs(registertransparancy(nil,a,t,true)) -- true forces resource else return "" end @@ -693,7 +681,7 @@ end function lpdf.finishtransparencycode() if transparencies.supported and intransparency then intransparency = false - return "/Tr0 gs" -- we happen to know this -) + return f_tr_gs(0) -- we happen to know this -) else return "" end @@ -701,6 +689,8 @@ end -- this will move to lpdf-spe.lua +local f_slant = formatters["pdf: q 1 0 %f 1 0 0 cm"] + backends.pdf.tables.vfspecials = allocate { -- todo: distinguish between glyph and rule color red = { "special", 'pdf: 1 0 0 rg 1 0 0 RG' }, @@ -721,7 +711,7 @@ backends.pdf.tables.vfspecials = allocate { -- todo: distinguish between glyph a palegray = { "special", 'pdf: .75 g' }, }, - startslant = function(a) return { "special", format("pdf: q 1 0 %f 1 0 0 cm",a) } end, + startslant = function(a) return { "special", f_slant(a) } end, stopslant = { "special", "pdf: Q" }, } diff --git a/tex/context/base/lpdf-epa.lua b/tex/context/base/lpdf-epa.lua index dc7cef310..034e6d7e2 100644 --- a/tex/context/base/lpdf-epa.lua +++ b/tex/context/base/lpdf-epa.lua @@ -11,6 +11,7 @@ if not modules then modules = { } end modules ['lpdf-epa'] = { local type, tonumber = type, tonumber local format, gsub = string.format, string.gsub +local formatters = string.formatters ----- lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns @@ -88,7 +89,7 @@ local function link_uri(x,y,w,h,document,annotation) -- url = lpegmatch(urlescaper,url) -- url = lpegmatch(utftohigh,url) url = escapetex(url) - add_link(x,y,w,h,format("url(%s)",url),"url") + add_link(x,y,w,h,formatters["url(%s)"](url),"url") end end @@ -100,15 +101,15 @@ local function link_file(x,y,w,h,document,annotation) filename = escapetex(filename) local destination = a.D if not destination then - add_link(x,y,w,h,format("file(%s)",filename),"file") + add_link(x,y,w,h,formatters["file(%s)"](filename),"file") elseif type(destination) == "string" then - add_link(x,y,w,h,format("%s::%s",filename,destination),"file (named)") + add_link(x,y,w,h,formatters["%s::%s"](filename,destination),"file (named)") else destination = destination[1] -- array if tonumber(destination) then - add_link(x,y,w,h,format("%s::page(%s)",filename,destination),"file (page)") + add_link(x,y,w,h,formatters["%s::page(%s)"](filename,destination),"file (page)") else - add_link(x,y,w,h,format("file(%s)",filename),"file") + add_link(x,y,w,h,formatters["file(%s)"](filename),"file") end end end diff --git a/tex/context/base/luat-cbk.lua b/tex/context/base/luat-cbk.lua index b59978f6d..f8c6926f0 100644 --- a/tex/context/base/luat-cbk.lua +++ b/tex/context/base/luat-cbk.lua @@ -83,11 +83,11 @@ if trace_calls then end local function frozen_message(what,name) - report_callbacks("not %s frozen %a (%s)",what,name,frozen[name]) + report_callbacks("not %s frozen %a to %a",what,name,frozen[name]) end local function frozen_callback(name) - return nil, format("callback '%s' is frozen (%s)",name,frozen[name]) -- no formatter yet + return nil, format("callback '%s' is frozen to '%s'",name,frozen[name]) -- no formatter yet end local function state(name) diff --git a/tex/context/base/luat-lua.lua b/tex/context/base/luat-lua.lua index d319508f0..972004e88 100644 --- a/tex/context/base/luat-lua.lua +++ b/tex/context/base/luat-lua.lua @@ -6,8 +6,6 @@ if not modules then modules = { } end modules ['luat-lua'] = { license = "see context related readme files" } -local concat = table.concat - if lua then do local delayed = { } @@ -25,23 +23,23 @@ if lua then do end function lua.flush(...) - context.directlua("lua.flushdelayed(%s)",concat({...},',')) + context.directlua("lua.flushdelayed(%,t)",{...}) end end end ---~ See mk.pdf for an explanation of the following code: ---~ ---~ function test(n) ---~ lua.delay(function(...) ---~ context("pi: %s %s %s",...) ---~ context.par() ---~ end) ---~ lua.delay(function(...) ---~ context("more pi: %s %s %s",...) ---~ context.par() ---~ end) ---~ context("\\setbox0=\\hbox{%s}",math.pi*n) ---~ local box = tex.box[0] ---~ lua.flush(box.width,box.height,box.depth) ---~ end +-- See mk.pdf for an explanation of the following code: +-- +-- function test(n) +-- lua.delay(function(...) +-- context("pi: %s %s %s",...) +-- context.par() +-- end) +-- lua.delay(function(...) +-- context("more pi: %s %s %s",...) +-- context.par() +-- end) +-- context("\\setbox0=\\hbox{%s}",math.pi*n) +-- local box = tex.box[0] +-- lua.flush(box.width,box.height,box.depth) +-- end diff --git a/tex/context/base/luat-sto.lua b/tex/context/base/luat-sto.lua index c2c89004f..92ac3ad41 100644 --- a/tex/context/base/luat-sto.lua +++ b/tex/context/base/luat-sto.lua @@ -51,6 +51,7 @@ function storage.register(...) return t end +local n = 0 local function dump() local max = storage.max for i=1,#data do diff --git a/tex/context/base/lxml-ctx.lua b/tex/context/base/lxml-ctx.lua index 3319dc638..968dbda71 100644 --- a/tex/context/base/lxml-ctx.lua +++ b/tex/context/base/lxml-ctx.lua @@ -23,7 +23,7 @@ function xml.ctx.enhancers.compound(root,lpath,before,tokens,after) -- todo lpeg local after = after or "[%a%d][%a%d][%a%d]" local pattern = "(" .. before .. ")(" .. tokens .. ")(" .. after .. ")" local action = function(a,b,c) - return a .. "<compound token=" .. format("%q",b) .. "/>" .. c + return a .. "<compound token=" .. format("%q",b) .. "/>" .. c -- formatters["%s<compound token=%q/>%s"](a,b,c) end xml.enhance(root,lpath,pattern,action) -- still present? end diff --git a/tex/context/base/lxml-dir.lua b/tex/context/base/lxml-dir.lua index 22a7ba3bb..3c68664ae 100644 --- a/tex/context/base/lxml-dir.lua +++ b/tex/context/base/lxml-dir.lua @@ -6,22 +6,23 @@ if not modules then modules = { } end modules ['lxml-dir'] = { license = "see context related readme files" } -local format, gsub = string.format, string.gsub +local gsub = string.gsub +local formatters = string.formatters ---~ <?xml version="1.0" standalone="yes"?> ---~ <!-- demo.cdx --> ---~ <directives> ---~ <!-- ---~ <directive attribute='id' value="100" setup="cdx:100"/> ---~ <directive attribute='id' value="101" setup="cdx:101"/> ---~ --> ---~ <!-- ---~ <directive attribute='cdx' value="colors" element="cals:table" setup="cdx:cals:table:colors"/> ---~ <directive attribute='cdx' value="vertical" element="cals:table" setup="cdx:cals:table:vertical"/> ---~ <directive attribute='cdx' value="noframe" element="cals:table" setup="cdx:cals:table:noframe"/> ---~ --> ---~ <directive attribute='cdx' value="*" element="cals:table" setup="cdx:cals:table:*"/> ---~ </directives> +-- <?xml version="1.0" standalone="yes"?> +-- <!-- demo.cdx --> +-- <directives> +-- <!-- +-- <directive attribute='id' value="100" setup="cdx:100"/> +-- <directive attribute='id' value="101" setup="cdx:101"/> +-- --> +-- <!-- +-- <directive attribute='cdx' value="colors" element="cals:table" setup="cdx:cals:table:colors"/> +-- <directive attribute='cdx' value="vertical" element="cals:table" setup="cdx:cals:table:vertical"/> +-- <directive attribute='cdx' value="noframe" element="cals:table" setup="cdx:cals:table:noframe"/> +-- --> +-- <directive attribute='cdx' value="*" element="cals:table" setup="cdx:cals:table:*"/> +-- </directives> local lxml, context = lxml, context @@ -51,7 +52,7 @@ local function load_setup(filename) local attribute, value, element = at.attribute or "", at.value or "", at.element or '*' local setup, before, after = at.setup or "", at.before or "", at.after or "" if attribute ~= "" and value ~= "" then - local key = format("%s::%s::%s",element,attribute,value) + local key = formatters["%s::%s::%s"](element,attribute,value) local t = data[key] or { } if setup ~= "" then t.setup = setup end if before ~= "" then t.before = before end @@ -79,14 +80,14 @@ local function handle_setup(category,root,attribute,element) element = ns .. ':' .. tg end end - local setup = data[format("%s::%s::%s",element,attribute,value)] + local setup = data[formatters["%s::%s::%s"](element,attribute,value)] if setup then setup = setup[category] end if setup then context.directsetup(setup) else - setup = data[format("%s::%s::*",element,attribute)] + setup = data[formatters["%s::%s::*"](element,attribute)] if setup then setup = setup[category] end diff --git a/tex/context/base/m-spreadsheet.lua b/tex/context/base/m-spreadsheet.lua index 30980684f..9d5106e35 100644 --- a/tex/context/base/m-spreadsheet.lua +++ b/tex/context/base/m-spreadsheet.lua @@ -10,6 +10,7 @@ local byte, format, gsub, find = string.byte, string.format, string.gsub, string local R, P, S, C, V, Cs, Cc, Ct, Cg, Cf, Carg = lpeg.R, lpeg.P, lpeg.S, lpeg.C, lpeg.V, lpeg.Cs, lpeg.Cc, lpeg.Ct, lpeg.Cg, lpeg.Cf, lpeg.Carg local lpegmatch, patterns = lpeg.match, lpeg.patterns local setmetatable, loadstring, next, tostring, tonumber,rawget = setmetatable, loadstring, next, tostring, tonumber, rawget +local formatters = string.formatters local context = context @@ -111,7 +112,7 @@ spreadsheets.reset() local offset = byte("A") - 1 local function assign(s,n) - return format("moduledata.spreadsheets.data['%s'].data[%s]",n,byte(s)-offset) + return formatters["moduledata.spreadsheets.data['%s'].data[%s]"](n,byte(s)-offset) end function datacell(a,b,...) @@ -124,7 +125,7 @@ function datacell(a,b,...) else n = byte(a) - offset end - return format("dat[%s]",n) + return formatters["dat[%s]"](n) end local function checktemplate(s) @@ -177,9 +178,9 @@ function functions._s_(row,col,c,f,t) return r end -functions.fmt= string.tformat +functions.fmt = string.tformat -local template = [[ +local f_code = formatters [ [[ local _m_ = moduledata.spreadsheets local dat = _m_.data['%s'].data local tmp = _m_.temp @@ -190,7 +191,7 @@ local template = [[ local sum = fnc.sum local fmt = fnc.fmt return %s -]] +]] ] -- to be considered: a weak cache @@ -223,7 +224,7 @@ local function execute(name,r,c,str) else local code = specification.code if code and code ~= "" then - code = format(template,name,r,c,code or "") + code = f_code(name,r,c,code or "") local result = loadstring(code) -- utilities.lua.strippedloadstring(code,true) -- when tracing result = result and result() if type(result) == "function" then @@ -237,7 +238,7 @@ local function execute(name,r,c,str) elseif kind == "set" then -- no return elseif kind == "format" then - return format(specification.template,result) + return formatters[specification.template](result) else return result end @@ -315,7 +316,7 @@ local function serialize(name) if s then return table.serialize(s,name) else - return format("<unknown spreadsheet %q>",name) + return formatters["<unknown spreadsheet %a>"](name) end end diff --git a/tex/context/base/m-spreadsheet.mkiv b/tex/context/base/m-spreadsheet.mkiv index ed9a92d05..a05968990 100644 --- a/tex/context/base/m-spreadsheet.mkiv +++ b/tex/context/base/m-spreadsheet.mkiv @@ -25,9 +25,9 @@ \appendtoks \ctxlua{moduledata.spreadsheets.setup{ % global ! - period = "\spreadsheetparameter\c!period", - comma = "\spreadsheetparameter\c!comma", - split = "\spreadsheetparameter\c!split", + period = \!!bs\spreadsheetparameter\c!period\!!es, + comma = \!!bs\spreadsheetparameter\c!comma\!!es, + split = \!!bs\spreadsheetparameter\c!split\!!es, }}% \to \everysetupspreadsheet @@ -54,7 +54,7 @@ \ctxlua{moduledata.spreadsheets.start("#1", { period = \!!bs\detokenize\expandafter{\m_spreadsheet_period}\!!es, comma = \!!bs\detokenize\expandafter{\m_spreadsheet_comma}\!!es, - split = "\spreadsheetparameter\c!split", + split = \!!bs\spreadsheetparameter\c!split\!!es, })}} \unexpanded\def\stopspreadsheet diff --git a/tex/context/base/math-ini.lua b/tex/context/base/math-ini.lua index 314d2ed05..52a9f8628 100644 --- a/tex/context/base/math-ini.lua +++ b/tex/context/base/math-ini.lua @@ -11,7 +11,7 @@ if not modules then modules = { } end modules ['math-ini'] = { -- -- isn't characters.data loaded already ... shortcut it here -local format = string.format +local formatters = string.formatters local utfchar, utfbyte = utf.char, utf.byte local setmathcode, setdelcode = tex.setmathcode, tex.setdelcode local texattribute = tex.attribute @@ -124,47 +124,47 @@ mathematics.families = families -- no need for " in class and family (saves space) local function delcode(target,family,slot) - return format('\\Udelcode%s="%X "%X ',target,family,slot) + return formatters['\\Udelcode%s="%X "%X '](target,family,slot) end local function mathchar(class,family,slot) - return format('\\Umathchar "%X "%X "%X ',class,family,slot) + return formatters['\\Umathchar "%X "%X "%X '](class,family,slot) end local function mathaccent(class,family,slot) - return format('\\Umathaccent "%X "%X "%X ',0,family,slot) -- no class + return formatters['\\Umathaccent "%X "%X "%X '](0,family,slot) -- no class end local function delimiter(class,family,slot) - return format('\\Udelimiter "%X "%X "%X ',class,family,slot) + return formatters['\\Udelimiter "%X "%X "%X '](class,family,slot) end local function radical(family,slot) - return format('\\Uradical "%X "%X ',family,slot) + return formatters['\\Uradical "%X "%X '](family,slot) end local function mathchardef(name,class,family,slot) - return format('\\Umathchardef\\%s "%X "%X "%X ',name,class,family,slot) + return formatters['\\Umathchardef\\%s "%X "%X "%X '](name,class,family,slot) end local function mathcode(target,class,family,slot) - return format('\\Umathcode%s="%X "%X "%X ',target,class,family,slot) + return formatters['\\Umathcode%s="%X "%X "%X '](target,class,family,slot) end local function mathtopaccent(class,family,slot) - return format('\\Umathaccent "%X "%X "%X ',0,family,slot) -- no class + return formatters['\\Umathaccent "%X "%X "%X '](0,family,slot) -- no class end local function mathbotaccent(class,family,slot) - return format('\\Umathaccent bottom "%X "%X "%X ',0,family,slot) -- no class + return formatters['\\Umathaccent bottom "%X "%X "%X '](0,family,slot) -- no class end local function mathtopdelimiter(class,family,slot) - return format('\\Udelimiterover "%X "%X ',family,slot) -- no class + return formatters['\\Udelimiterover "%X "%X '](family,slot) -- no class end local function mathbotdelimiter(class,family,slot) - return format('\\Udelimiterunder "%X "%X ',family,slot) -- no class + return formatters['\\Udelimiterunder "%X "%X '](family,slot) -- no class end local escapes = characters.filters.utf.private.escapes @@ -188,27 +188,27 @@ end local setmathsymbol = function(name,class,family,slot) -- hex is nicer for tracing if class == classes.accent then - contextsprint(format([[\ugdef\%s{\Umathaccent 0 "%X "%X }]],name,family,slot)) + contextsprint(formatters[ [[\ugdef\%s{\Umathaccent 0 "%X "%X }]] ](name,family,slot)) elseif class == classes.topaccent then - contextsprint(format([[\ugdef\%s{\Umathaccent 0 "%X "%X }]],name,family,slot)) + contextsprint(formatters[ [[\ugdef\%s{\Umathaccent 0 "%X "%X }]] ](name,family,slot)) elseif class == classes.botaccent then - contextsprint(format([[\ugdef\%s{\Umathbotaccent 0 "%X "%X }]],name,family,slot)) + contextsprint(formatters[ [[\ugdef\%s{\Umathbotaccent 0 "%X "%X }]] ](name,family,slot)) elseif class == classes.over then - contextsprint(format([[\ugdef\%s{\Udelimiterover "%X "%X }]],name,family,slot)) + contextsprint(formatters[ [[\ugdef\%s{\Udelimiterover "%X "%X }]] ](name,family,slot)) elseif class == classes.under then - contextsprint(format([[\ugdef\%s{\Udelimiterunder "%X "%X }]],name,family,slot)) + contextsprint(formatters[ [[\ugdef\%s{\Udelimiterunder "%X "%X }]] ](name,family,slot)) elseif class == classes.open or class == classes.close then setdelcode(slot,{family,slot,0,0}) - contextsprint(format([[\ugdef\%s{\Udelimiter "%X "%X "%X }]],name,class,family,slot)) + contextsprint(formatters[ [[\ugdef\%s{\Udelimiter "%X "%X "%X }]] ](name,class,family,slot)) elseif class == classes.delimiter then setdelcode(slot,{family,slot,0,0}) - contextsprint(format([[\ugdef\%s{\Udelimiter 0 "%X "%X }]],name,family,slot)) + contextsprint(formatters[ [[\ugdef\%s{\Udelimiter 0 "%X "%X }]] ](name,family,slot)) elseif class == classes.radical then - contextsprint(format([[\ugdef\%s{\Uradical "%X "%X }]],name,family,slot)) + contextsprint(formatters[ [[\ugdef\%s{\Uradical "%X "%X }]] ](name,family,slot)) else -- beware, open/close and other specials should not end up here - -- contextsprint(format([[\ugdef\%s{\Umathchar "%X "%X "%X }]],name,class,family,slot)) - contextsprint(format([[\Umathchardef\%s "%X "%X "%X ]],name,class,family,slot)) + -- contextsprint(formatters[ [[\ugdef\%s{\Umathchar "%X "%X "%X }]],name,class,family,slot)) + contextsprint(formatters[ [[\Umathchardef\%s "%X "%X "%X ]] ](name,class,family,slot)) end end diff --git a/tex/context/base/mult-chk.lua b/tex/context/base/mult-chk.lua index 33995ddcc..2a2dfcd4b 100644 --- a/tex/context/base/mult-chk.lua +++ b/tex/context/base/mult-chk.lua @@ -23,7 +23,7 @@ interfaces.syntax = allocate { } function interfaces.invalidkey(category,key) - report_interface("invalid key %a for %a in line %s",key,category,tex.inputlineno) + report_interface("invalid key %a for %a in line %a",key,category,tex.inputlineno) end function interfaces.setvalidkeys(category,list) diff --git a/tex/context/base/mult-de.mkii b/tex/context/base/mult-de.mkii index 6e489a6e3..893a9d358 100644 --- a/tex/context/base/mult-de.mkii +++ b/tex/context/base/mult-de.mkii @@ -260,6 +260,7 @@ \setinterfacevariable{leftpage}{linkerseite} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legende} +\setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{line}{zeile} \setinterfacevariable{linenote}{linenote} @@ -300,6 +301,7 @@ \setinterfacevariable{monday}{montag} \setinterfacevariable{mono}{mono} \setinterfacevariable{month}{monat} +\setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{name} \setinterfacevariable{narrow}{schmall} diff --git a/tex/context/base/mult-def.lua b/tex/context/base/mult-def.lua index 27701863e..fdb8803bf 100644 --- a/tex/context/base/mult-def.lua +++ b/tex/context/base/mult-def.lua @@ -11325,6 +11325,14 @@ return { }, }, ["variables"]={ + ["more"]={ + ["en"]="more", + ["nl"]="meer", + }, + ["less"]={ + ["en"]="less", + ["nl"]="minder", + }, ["embed"]={ ["en"]="embed", ["nl"]="sluitin", diff --git a/tex/context/base/mult-en.mkii b/tex/context/base/mult-en.mkii index f000fc308..c3ab2fc16 100644 --- a/tex/context/base/mult-en.mkii +++ b/tex/context/base/mult-en.mkii @@ -260,6 +260,7 @@ \setinterfacevariable{leftpage}{leftpage} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legend} +\setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{line}{line} \setinterfacevariable{linenote}{linenote} @@ -300,6 +301,7 @@ \setinterfacevariable{monday}{monday} \setinterfacevariable{mono}{mono} \setinterfacevariable{month}{month} +\setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{name} \setinterfacevariable{narrow}{narrow} diff --git a/tex/context/base/mult-fr.mkii b/tex/context/base/mult-fr.mkii index 53e96c2eb..1ba4f3c8c 100644 --- a/tex/context/base/mult-fr.mkii +++ b/tex/context/base/mult-fr.mkii @@ -260,6 +260,7 @@ \setinterfacevariable{leftpage}{pagegauche} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legende} +\setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{line}{ligne} \setinterfacevariable{linenote}{noteligne} @@ -300,6 +301,7 @@ \setinterfacevariable{monday}{lundi} \setinterfacevariable{mono}{mono} \setinterfacevariable{month}{mois} +\setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{nom} \setinterfacevariable{narrow}{etroit} diff --git a/tex/context/base/mult-ini.lua b/tex/context/base/mult-ini.lua index 59eed7d83..5571ee3b9 100644 --- a/tex/context/base/mult-ini.lua +++ b/tex/context/base/mult-ini.lua @@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['mult-ini'] = { license = "see context related readme files" } -local format, gmatch, gsub, match = string.format, string.gmatch, string.gsub, string.match +local format, gmatch, match = string.format, string.gmatch, string.match local lpegmatch = lpeg.match local serialize = table.serialize @@ -15,6 +15,7 @@ local mark = utilities.storage.mark local prtcatcodes = catcodes.numbers.prtcatcodes local contextsprint = context.sprint local setmetatableindex = table.setmetatableindex +local formatters = string.formatters local report_interface = logs.reporter("interface","initialization") @@ -126,9 +127,10 @@ end -- the old method: +local replacer = lpeg.replacer { { "--", "%%a" } } + local function fulltag(category,tag) - tag = gsub(tag,"%-%-","%%s") - return format("%s:%s",category,tag) + return formatters["%s:%s"](category,lpegmatch(replacer,tag)) end function interfaces.setmessages(category,str) @@ -136,13 +138,13 @@ function interfaces.setmessages(category,str) if tag == "title" then translations[tag] = translations[tag] or tag else - formats[fulltag(category,tag)] = gsub(message,"%-%-","%%s") + formats[fulltag(category,tag)] = lpegmatch(replacer,message) end end end function interfaces.setmessage(category,tag,message) - formats[fulltag(category,tag)] = gsub(message,"%-%-","%%s") + formats[fulltag(category,tag)] = lpegmatch(replacer,message) end function interfaces.getmessage(category,tag,default) @@ -233,7 +235,7 @@ function interfaces.setuserinterface(interface,response) translations[given] = translation[interface] or translation.en or given noftranslations = noftranslations + 1 end - report_interface("definitions: %s constants, %s variables, %s elements, %s commands, %s formats, %s translations", + report_interface("definitions: %a constants, %a variables, %a elements, %a commands, %a formats, %a translations", nofconstants,nofvariables,nofelements,nofcommands,nofformats,noftranslations) end end @@ -300,8 +302,8 @@ function commands.showassignerror(namespace,key,value,line) namespace = corenamespaces[tonumber(ns)] or ns end if instance then - context.writestatus("setup",format("error in line %s, namespace %q, instance %q, key %q",line,namespace,instance,key)) + context.writestatus("setup",formatters["error in line %a, namespace %a, instance %a, key %a"](line,namespace,instance,key)) else - context.writestatus("setup",format("error in line %s, namespace %q, key %q",line,namespace,key)) + context.writestatus("setup",formatters["error in line %a, namespace %a, key %a"](line,namespace,key)) end end diff --git a/tex/context/base/mult-it.mkii b/tex/context/base/mult-it.mkii index 0cff5e809..0d1ea911d 100644 --- a/tex/context/base/mult-it.mkii +++ b/tex/context/base/mult-it.mkii @@ -260,6 +260,7 @@ \setinterfacevariable{leftpage}{paginasinistra} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legenda} +\setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{line}{riga} \setinterfacevariable{linenote}{linenote} @@ -300,6 +301,7 @@ \setinterfacevariable{monday}{lunedi} \setinterfacevariable{mono}{mono} \setinterfacevariable{month}{mese} +\setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{nome} \setinterfacevariable{narrow}{stretto} diff --git a/tex/context/base/mult-mes.lua b/tex/context/base/mult-mes.lua index 68a392190..aed417c92 100644 --- a/tex/context/base/mult-mes.lua +++ b/tex/context/base/mult-mes.lua @@ -16,67 +16,67 @@ if not modules then modules = { } end modules ['mult-mes'] = { return { formats = { - ["adapted: preamble '%s', state '%s', order '%s'"] = { - nl = "aangepast: preamble '%s', status '%s', volgorde '%s'", + ["adapted: preamble %a, state %a, order %a"] = { + nl = "aangepast: preamble %a, status %a, volgorde %a", }, - ["already loaded: '%s'"] = { - nl = "al geladen: '%s'", + ["already loaded: %a"] = { + nl = "al geladen: %a", }, ["check:1"] = { - cs = "postradam '=' po '%s' na radku %s", - de = "Fehlendes '=' nach '%s' in Zeile %s", - en = "missing or ungrouped '=' after '%s' in line %s", - fr = "manquant ou dégroupé '=' après '%s' à la ligne %s", - it = "'=' mancante o non raggruppato dopo '%s' alla riga %s", - nl = "'=' ontbreekt of zonder {} na '%s' in regel %s", - no = "manglende '=' etter '%s' i linje %s", - ro = "lipseste '=' dupa '%s' in linia %s", + cs = "postradam '=' po %a na radku %a", + de = "Fehlendes '=' nach %a in Zeile %a", + en = "missing or ungrouped '=' after %a in line %a", + fr = "manquant ou dégroupé '=' après %a à la ligne %a", + it = "'=' mancante o non raggruppato dopo %a alla riga %a", + nl = "'=' ontbreekt of zonder {} na %a in regel %a", + no = "manglende '=' etter %a i linje %a", + ro = "lipseste '=' dupa %a in linia %a", }, ["check:2"] = { - cs = "ocekavam %s argument(y) na radku %s", - de = "%s Argument(e) in Zeile %s erwartet", - en = "%s argument(s) expected in line %s", - fr = "%s argument(s) attendu(s) à la ligne %s", - it = "%s argomento/i attesi alla riga %s", - nl = "%s argument(en) verwacht in regel %s", - no = "%s argument forventet i linje %s", - ro = "argumentul(ele) %s sunt asteptate in linia %s", + cs = "ocekavam %a argument(y) na radku %a", + de = "%a Argument(e) in Zeile %a erwartet", + en = "%a argument(s) expected in line %a", + fr = "%a argument(s) attendu(s) à la ligne %a", + it = "%a argomento/i attesi alla riga %a", + nl = "%a argument(en) verwacht in regel %a", + no = "%a argument forventet i linje %a", + ro = "argumentul(ele) %a sunt asteptate in linia %a", }, ["check:3"] = { - cs = "%s %s nahrazuje makro, uzijte VERZALKY!", - de = "%s %s ersetzt ein Makro, verwende VERSALIEN!", - en = "%s %s replaces a macro, use CAPITALS!", - fr = "%s %s remplace une macro, utilisez des MAJUSCULES !", - it = "%s %s sostituisce una macro, usare le MAIUSCOLE!", - nl = "%s %s vervangt een macro, gebruik HOOFDLETTERS!", - no = "%s %s overskygger en makro, bruk STORE BOKSTAVER!", - ro = "%s %s inlocuieste un macro, folositi MAJUSCULE!", + cs = "%a %a nahrazuje makro, uzijte VERZALKY!", + de = "%a %a ersetzt ein Makro, verwende VERSALIEN!", + en = "%a %a replaces a macro, use CAPITALS!", + fr = "%a %a remplace une macro, utilisez des MAJUSCULES !", + it = "%a %a sostituisce una macro, usare le MAIUSCOLE!", + nl = "%a %a vervangt een macro, gebruik HOOFDLETTERS!", + no = "%a %a overskygger en makro, bruk STORE BOKSTAVER!", + ro = "%a %a inlocuieste un macro, folositi MAJUSCULE!", }, - ["checking file: '%s'"] = { - nl = "controleren file: '%s'", + ["checking file: %a"] = { + nl = "controleren file: %a", }, - ["checking url: '%s'"] = { - nl = "controleren url: '%s'", + ["checking url: %a"] = { + nl = "controleren url: %a", }, ["colors:1"] = { - cs = "system %s je globalne aktivovana", - de = "system %s ist global aktiviert", - en = "system %s is global activated", - fr = "le système %s est globalement activé", - it = "sistema %s attivato globalmente", - nl = "systeem %s is globaal actief", - no = "system %s er aktivert globalt", - ro = "sistem %s este activata global", + cs = "system %a je globalne aktivovana", + de = "system %a ist global aktiviert", + en = "system %a is global activated", + fr = "le système %a est globalement activé", + it = "sistema %a attivato globalmente", + nl = "systeem %a is globaal actief", + no = "system %a er aktivert globalt", + ro = "sistem %a este activata global", }, ["colors:10"] = { - cs = "%s prostor barev je podporovan", - de = "%s Farbraum wird unterstuetzt", - en = "%s color space is supported", - fr = "%s l'espace de couleur est supporté", - it = "spazio dei colori %s supportato", - nl = "%s kleurruimte wordt ondersteund", - no = "%s fargerom er støttet", - ro = "spatiul de culoare %s este suportat", + cs = "%a prostor barev je podporovan", + de = "%a Farbraum wird unterstuetzt", + en = "%a color space is supported", + fr = "%a l'espace de couleur est supporté", + it = "spazio dei colori %a supportato", + nl = "%a kleurruimte wordt ondersteund", + no = "%a fargerom er støttet", + ro = "spatiul de culoare %a este suportat", }, ["colors:11"] = { cs = "barva je prevedena na sed", @@ -89,104 +89,104 @@ return { ro = "culoarea este convertita la gri", }, ["colors:12"] = { - cs = "%s is registered", - de = "%s is registered", - en = "%s is registered", - fr = "%s est enregistré", - it = "%s is registered", - nl = "%s is geregistreerd", - no = "%s is registered", - ro = "%s is registered", + cs = "%a is registered", + de = "%a is registered", + en = "%a is registered", + fr = "%a est enregistré", + it = "%a is registered", + nl = "%a is geregistreerd", + no = "%a is registered", + ro = "%a is registered", }, ["colors:2"] = { - cs = "system %s je lokalne activovana", - de = "system %s ist lokal aktiviert", - en = "system %s is local activated", - fr = "le système %s est localement activé", - it = "sistema %s attivato localmente", - nl = "systeem %s is lokaal actief", - no = "system %s er aktivert lokalt", - ro = "sistem %s este activata local", + cs = "system %a je lokalne activovana", + de = "system %a ist lokal aktiviert", + en = "system %a is local activated", + fr = "le système %a est localement activé", + it = "sistema %a attivato localmente", + nl = "systeem %a is lokaal actief", + no = "system %a er aktivert lokalt", + ro = "sistem %a este activata local", }, ["colors:3"] = { - cs = "%s neni definovana %s", - de = "%s ist undefiniert %s", - en = "%s is not defined %s", - fr = "%s n'est pas défini %s", - it = "%s non definito %s", - nl = "%s is niet gedefinieerd %s", - no = "%s er udefinert %s", - ro = "%s nu este definita %s", + cs = "%a neni definovana %a", + de = "%a ist undefiniert %a", + en = "%a is not defined %a", + fr = "%a n'est pas défini %a", + it = "%a non definito %a", + nl = "%a is niet gedefinieerd %a", + no = "%a er udefinert %a", + ro = "%a nu este definita %a", }, ["colors:4"] = { - cs = "system %s je nacten", - de = "system %s ist geladen", - en = "system %s is loaded", - fr = "le système %s est chargé", - it = "sistema %s caricato", - nl = "systeem %s wordt geladen", - no = "system %s er lest inn", - ro = "sistem %s este incarcata", + cs = "system %a je nacten", + de = "system %a ist geladen", + en = "system %a is loaded", + fr = "le système %a est chargé", + it = "sistema %a caricato", + nl = "systeem %a wordt geladen", + no = "system %a er lest inn", + ro = "sistem %a este incarcata", }, ["colors:5"] = { - cs = "neznamy system %s", - de = "unbekanntes System %s", - en = "unknown system %s", - fr = "système %s inconnu", - it = "sistema %s sconosciuto", - nl = "onbekend systeem %s", - no = "ukjent system %s", - ro = "sistem %s necunoscuta", + cs = "neznamy system %a", + de = "unbekanntes System %a", + en = "unknown system %a", + fr = "système %a inconnu", + it = "sistema %a sconosciuto", + nl = "onbekend systeem %a", + no = "ukjent system %a", + ro = "sistem %a necunoscuta", }, ["colors:6"] = { - cs = "palette %s je k dispozici", - de = "palette %s ist verfuegbar", - en = "palette %s is available", - fr = "la palette %s est disponible", - it = "tavolozza %s resa disponibile", - nl = "palet %s is beschikbaar", - no = "palett %s er tilgjengelig", - ro = "paleta %s este disponibila", + cs = "palette %a je k dispozici", + de = "palette %a ist verfuegbar", + en = "palette %a is available", + fr = "la palette %a est disponible", + it = "tavolozza %a resa disponibile", + nl = "palet %a is beschikbaar", + no = "palett %a er tilgjengelig", + ro = "paleta %a este disponibila", }, ["colors:7"] = { - cs = "palette %s neni k dispozici", - de = "palette %s ist nicht verfuegbar", - en = "palette %s is not available", - fr = "le palette %s n'est pas disponible", - it = "tavolozza %s non disponibile", - nl = "palet %s is niet beschikbaar", - no = "palett %s er ikke tilgjengelig", - ro = "palette %s nu este disponibila", + cs = "palette %a neni k dispozici", + de = "palette %a ist nicht verfuegbar", + en = "palette %a is not available", + fr = "le palette %a n'est pas disponible", + it = "tavolozza %a non disponibile", + nl = "palet %a is niet beschikbaar", + no = "palett %a er ikke tilgjengelig", + ro = "palette %a nu este disponibila", }, ["colors:8"] = { - cs = "specifikace %s v barve %s bude cerna", - de = "Spezifikation %s bei Farbe %s wird schwarz", - en = "specification %s at color %s becomes black", - fr = "la spécification %s de la couleur %s devient noire", - it = "specifica %s del colore %s convertita in nero", - nl = "specificatie %s bij %s wordt zwart", - no = "spesifikasjon %s for farge %s gir kun svart", - ro = "specificatia %s la culoarea %s devine neagra", + cs = "specifikace %a v barve %a bude cerna", + de = "Spezifikation %a bei Farbe %a wird schwarz", + en = "specification %a at color %a becomes black", + fr = "la spécification %a de la couleur %a devient noire", + it = "specifica %a del colore %a convertita in nero", + nl = "specificatie %a bij %a wordt zwart", + no = "spesifikasjon %a for farge %a gir kun svart", + ro = "specificatia %a la culoarea %a devine neagra", }, ["colors:9"] = { - cs = "%s prostor barev neni podporovan", - de = "%s Farbraum wird nicht unterstuetzt", - en = "%s color space is not supported", - fr = "l'espace de couleur %s n'est pas supporté", - it = "spazio dei colori %s non supportato", - nl = "%s kleurruimte wordt niet ondersteund", - no = "%s fargerom er ikke støttet", - ro = "spatiul de culoare %s nu este suportat", + cs = "%a prostor barev neni podporovan", + de = "%a Farbraum wird nicht unterstuetzt", + en = "%a color space is not supported", + fr = "l'espace de couleur %a n'est pas supporté", + it = "spazio dei colori %a non supportato", + nl = "%a kleurruimte wordt niet ondersteund", + no = "%a fargerom er ikke støttet", + ro = "spatiul de culoare %a nu este suportat", }, ["columns:1"] = { - cs = "je mozno pouze %s sloupcu", - de = "nur %s Spalten moeglich", - en = "only %s columns possible", - fr = "seules %s colonnes possibles", - it = "solo %s colonne possibili", - nl = "maximaal %s kolommen", - no = "maksimalt %s kolonner", - ro = "este posibil numai %s coloane", + cs = "je mozno pouze %a sloupcu", + de = "nur %a Spalten moeglich", + en = "only %a columns possible", + fr = "seules %a colonnes possibles", + it = "solo %a colonne possibili", + nl = "maximaal %a kolommen", + no = "maksimalt %a kolonner", + ro = "este posibil numai %a coloane", }, ["columns:10"] = { cs = "zbyl (mene nez) 1 radek", @@ -209,14 +209,14 @@ return { ro = "blocul este prea lat pentru coloana", }, ["columns:12"] = { - cs = "plovouci objekt je presunut do nasledujiciho sloupce / %s", - de = "Gleitobjekt in naechste Zeile verschoben / %s", - en = "float moved to next column / %s", - fr = "flottant déplacé à la colonne suivante / %s", - it = "oggetto mobile spostata alla colonna successiva / %s", - nl = "plaatsblok verplaatst naar volgende kolom / %s", - no = "flytblokk forskjøvet til neste kolonne / %s", - ro = "blocul este mutat pe urmatoarea coloana / %s", + cs = "plovouci objekt je presunut do nasledujiciho sloupce / %a", + de = "Gleitobjekt in naechste Zeile verschoben / %a", + en = "float moved to next column / %a", + fr = "flottant déplacé à la colonne suivante / %a", + it = "oggetto mobile spostata alla colonna successiva / %a", + nl = "plaatsblok verplaatst naar volgende kolom / %a", + no = "flytblokk forskjøvet til neste kolonne / %a", + ro = "blocul este mutat pe urmatoarea coloana / %a", }, ["columns:13"] = { cs = "siroky plovouci objekt je presunut nad sloupce", @@ -269,14 +269,14 @@ return { ro = "cadrele bottom (bottom float) nu sunt inca suportate", }, ["columns:6"] = { - cs = "%s plovouci objekt(y) odlozeny", - de = "%s Gleitobjekt(e) verschoben", - en = "%s float(s) postponed", - fr = "%s flottant(s) reporté(s)", - it = "%s float(s) posticipate", - nl = "%s plaatsblok(en) opgeschort", - no = "%s flytblokk forskjøvet", - ro = "%s blocurile sunt amanate", + cs = "%a plovouci objekt(y) odlozeny", + de = "%a Gleitobjekt(e) verschoben", + en = "%a float(s) postponed", + fr = "%a flottant(s) reporté(s)", + it = "%a float(s) posticipate", + nl = "%a plaatsblok(en) opgeschort", + no = "%a flytblokk forskjøvet", + ro = "%a blocurile sunt amanate", }, ["columns:7"] = { cs = "vyvazovani ukonceno po 100 krocich", @@ -289,14 +289,14 @@ return { ro = "alinierea este oprita dupa 100 de incercari", }, ["columns:8"] = { - cs = "vyvazeno v %s krocich", - de = "ausgeglichen nach %s Schritt(en)", - en = "balanced in %s step(s)", - fr = "équilibré en %s pas", - it = "bilanciamento in %s passo/i", - nl = "gebalanceerd in %s stap(pen)", - no = "balansert etter %s iterasjoner", - ro = "aliniat in %s pas(i)", + cs = "vyvazeno v %a krocich", + de = "ausgeglichen nach %a Schritt(en)", + en = "balanced in %a step(s)", + fr = "équilibré en %a pas", + it = "bilanciamento in %a passo/i", + nl = "gebalanceerd in %a stap(pen)", + no = "balansert etter %a iterasjoner", + ro = "aliniat in %a pas(i)", }, ["columns:9"] = { cs = "kontrola nerovnost", @@ -309,156 +309,156 @@ return { ro = "verificat alinierea", }, ["databases:1"] = { - cs = "%s", - de = "%s", - en = "%s", - fr = "%s", - it = "%s", - nl = "%s", - no = "%s", - ro = "%s", + cs = "%a", + de = "%a", + en = "%a", + fr = "%a", + it = "%a", + nl = "%a", + no = "%a", + ro = "%a", }, ["databases:2"] = { - cs = "local file %s", - de = "lokale Datei %s", - en = "local file %s", - fr = "fichier local %s", - it = "file locale %s", - nl = "lokaal bestand %s", - no = "lokal fil %s", - ro = "fisier local %s", + cs = "local file %a", + de = "lokale Datei %a", + en = "local file %a", + fr = "fichier local %a", + it = "file locale %a", + nl = "lokaal bestand %a", + no = "lokal fil %a", + ro = "fisier local %a", }, ["databases:3"] = { - cs = "global file %s", - de = "globale Datei %s", - en = "global file %s", - fr = "fichier global %s", - it = "file globale %s", - nl = "globaal bestand %s", - no = "global fil %s", - ro = "fisier global %s", + cs = "global file %a", + de = "globale Datei %a", + en = "global file %a", + fr = "fichier global %a", + it = "file globale %a", + nl = "globaal bestand %a", + no = "global fil %a", + ro = "fisier global %a", }, ["databases:4"] = { - cs = "unknown file %s", - de = "unbekannte Datei %s", - en = "unknown file %s", - fr = "fichier inconnu %s", - it = "file sconosciuto %s", - nl = "onbekend bestand %s", - no = "ukjent fil %s", - ro = "fisier necunoscut %s", - }, - ["extended: preamble '%s', state '%s', order '%s'"] = { - nl = "uitgebreid: preamble '%s', status '%s', volgorde '%s'", + cs = "unknown file %a", + de = "unbekannte Datei %a", + en = "unknown file %a", + fr = "fichier inconnu %a", + it = "file sconosciuto %a", + nl = "onbekend bestand %a", + no = "ukjent fil %a", + ro = "fisier necunoscut %a", + }, + ["extended: preamble %a, state %a, order %a"] = { + nl = "uitgebreid: preamble %a, status %a, volgorde %a", }, ["figures:1"] = { - cs = "obraz %s nelze nalezt", - de = "Abbildung %s kann nicht gefunden werden", - en = "figure %s can not be found", - fr = "la figure %s ne peut être trouvée", - it = "figura %s non trovata", - nl = "figuur %s is niet te vinden", - ro = "figura %s nu poate fi gasita", + cs = "obraz %a nelze nalezt", + de = "Abbildung %a kann nicht gefunden werden", + en = "figure %a can not be found", + fr = "la figure %a ne peut être trouvée", + it = "figura %a non trovata", + nl = "figuur %a is niet te vinden", + ro = "figura %a nu poate fi gasita", }, ["figures:2"] = { - cs = "obraz %s nepritomen", - de = "Abbildung %s wird nicht erstellt", - en = "figure %s is not preset", - fr = "la figure %s n'est pas pré-sélectionnée", - it = "la figura %s non è preimpostata", - nl = "figuur %s wordt niet preset", - ro = "figura %s nu este presetata", + cs = "obraz %a nepritomen", + de = "Abbildung %a wird nicht erstellt", + en = "figure %a is not preset", + fr = "la figure %a n'est pas pré-sélectionnée", + it = "la figura %a non è preimpostata", + nl = "figuur %a wordt niet preset", + ro = "figura %a nu este presetata", }, ["figures:3"] = { - cs = "dimensions of %s are determined externally", - de = "dimensions of %s are determined externally", - en = "dimensions of %s are determined externally", - fr = "dimensions of %s are determined externally", - it = "dimensions of %s are determined externally", - nl = "maten van %s worden extern vastgesteld", - ro = "dimensions of %s are determined externally", + cs = "dimensions of %a are determined externally", + de = "dimensions of %a are determined externally", + en = "dimensions of %a are determined externally", + fr = "dimensions of %a are determined externally", + it = "dimensions of %a are determined externally", + nl = "maten van %a worden extern vastgesteld", + ro = "dimensions of %a are determined externally", }, ["figures:4"] = { - cs = "dimenze obrazu %s nacteny primo z jeho souboru", - de = "Dimensionen von %s geladen aus der Abbildungsdatei selbst", - en = "dimensions of %s loaded from figurefile itself", - fr = "les dimensions de %s chargées implicitement à partir du fichier de figure", - it = "dimensioni di %s caricate dal file di immagini stesso", - nl = "maten van %s geladen uit figuurfile zelf", - ro = "dimensiunea figurii %s se incarca din fisierul insusi", + cs = "dimenze obrazu %a nacteny primo z jeho souboru", + de = "Dimensionen von %a geladen aus der Abbildungsdatei selbst", + en = "dimensions of %a loaded from figurefile itself", + fr = "les dimensions de %a chargées implicitement à partir du fichier de figure", + it = "dimensioni di %a caricate dal file di immagini stesso", + nl = "maten van %a geladen uit figuurfile zelf", + ro = "dimensiunea figurii %a se incarca din fisierul insusi", }, ["figures:5"] = { - cs = "dimensions of %s are unknown", - de = "Dimensions of %s are unknown", - en = "dimensions of %s are unknown", - fr = "dimensions of %s are unknown", - it = "dimensions of %s are unknown", - nl = "maten van %s zijn onbekend", - ro = "dimensions of %s are unknown", + cs = "dimensions of %a are unknown", + de = "Dimensions of %a are unknown", + en = "dimensions of %a are unknown", + fr = "dimensions of %a are unknown", + it = "dimensions of %a are unknown", + nl = "maten van %a zijn onbekend", + ro = "dimensions of %a are unknown", }, ["figures:6"] = { - cs = "dimenze obrazu %s spocteny programem rlxtools", - de = "Dimensionen von %s ausgerechnet durch rlxtools", - en = "dimensions of %s calculated by rlxtools", - fr = "les dimensions de %s calculées par rlxtools", - it = "dimensioni di %s calcolate da rlxtools", - nl = "maten van %s berekend door rlxtools", - ro = "dimensiunea figurii %s este calculata de rlxtools", + cs = "dimenze obrazu %a spocteny programem rlxtools", + de = "Dimensionen von %a ausgerechnet durch rlxtools", + en = "dimensions of %a calculated by rlxtools", + fr = "les dimensions de %a calculées par rlxtools", + it = "dimensioni di %a calcolate da rlxtools", + nl = "maten van %a berekend door rlxtools", + ro = "dimensiunea figurii %a este calculata de rlxtools", }, ["figures:8"] = { - cs = "obrazovy objekt %s je znovu pouzit", - de = "Abbildungobjekt %s wurde wiederverwandt", - en = "figureobject %s is reused", - fr = "figureobject %s est réutilisé", - it = "oggetto-figura %s riutilizzato", - nl = "figuurobject %s wordt opnieuw gebruikt", - ro = "obiectul figura %s este refolosit", + cs = "obrazovy objekt %a je znovu pouzit", + de = "Abbildungobjekt %a wurde wiederverwandt", + en = "figureobject %a is reused", + fr = "figureobject %a est réutilisé", + it = "oggetto-figura %a riutilizzato", + nl = "figuurobject %a wordt opnieuw gebruikt", + ro = "obiectul figura %a este refolosit", }, ["files:1"] = { - cs = "synonymum souboru %s je jiz pouzito pro %s", - de = "Dateisynonym %s wird bereits fuer %s benutzt", - en = "file synonym %s is already used for %s", - fr = "le synonyme de fichier %s est déjà utilisé pour %s", - it = "sinonimo file %s già in uso per %s", - nl = "file synoniem %s is al in gebruik voor %s", - no = "filesynonym %s er allerede brukt for %s", - ro = "sinonimul fisierelor %s este folosit deja pentru %s", + cs = "synonymum souboru %a je jiz pouzito pro %a", + de = "Dateisynonym %a wird bereits fuer %a benutzt", + en = "file synonym %a is already used for %a", + fr = "le synonyme de fichier %a est déjà utilisé pour %a", + it = "sinonimo file %a già in uso per %a", + nl = "file synoniem %a is al in gebruik voor %a", + no = "filesynonym %a er allerede brukt for %a", + ro = "sinonimul fisierelor %a este folosit deja pentru %a", }, ["filters:1"] = { - cs = "filter %s is loaded", - de = "filter %s ist geladen", - en = "filter %s is loaded", - fr = "le filtre %s est chargé", - it = "filtro %s caricato", - nl = "filter %s wordt geladen", + cs = "filter %a is loaded", + de = "filter %a ist geladen", + en = "filter %a is loaded", + fr = "le filtre %a est chargé", + it = "filtro %a caricato", + nl = "filter %a wordt geladen", }, ["filters:2"] = { - cs = "unknown filter %s", - de = "unknown filter %s", - en = "unknown filter %s", - fr = "filtre %s inconnu", - it = "filtro sconosciuto %s", - nl = "onbekend filter %s", + cs = "unknown filter %a", + de = "unknown filter %a", + en = "unknown filter %a", + fr = "filtre %a inconnu", + it = "filtro sconosciuto %a", + nl = "onbekend filter %a", }, ["floatblocks:1"] = { - cs = "%s precislovano / %s => %s", - de = "%s neu nummeriert / %s => %s", - en = "%s renumbered / %s => %s", - fr = "%s renuméroté / %s => %s", - it = "%s rinumerato / %s => %s", - nl = "%s hernummerd / %s => %s", - no = "%s renummerert / %s => %s", - ro = "%s renumerotat / %s => %s", + cs = "%a precislovano / %a => %a", + de = "%a neu nummeriert / %a => %a", + en = "%a renumbered / %a => %a", + fr = "%a renuméroté / %a => %a", + it = "%a rinumerato / %a => %a", + nl = "%a hernummerd / %a => %a", + no = "%a renummerert / %a => %a", + ro = "%a renumerotat / %a => %a", }, ["floatblocks:10"] = { - cs = "%s omezeno", - de = "%s begrenzt", - en = "%s limited", - fr = "%s limité", - it = "%s limitato", - nl = "%s begrensd", - no = "%s begrenset", - ro = "%s limitat", + cs = "%a omezeno", + de = "%a begrenzt", + en = "%a limited", + fr = "%a limité", + it = "%a limitato", + nl = "%a begrensd", + no = "%a begrenset", + ro = "%a limitat", }, ["floatblocks:11"] = { cs = "nedan zadny blok", @@ -491,34 +491,34 @@ return { ro = "there is nothing to split", }, ["floatblocks:2"] = { - cs = "%s ulozeno", - de = "%s gespeichert", - en = "%s saved", - fr = "%s sauvegardé", - it = "%s salvato", - nl = "%s bewaard", - no = "%s lagret", - ro = "%s salvat", + cs = "%a ulozeno", + de = "%a gespeichert", + en = "%a saved", + fr = "%a sauvegardé", + it = "%a salvato", + nl = "%a bewaard", + no = "%a lagret", + ro = "%a salvat", }, ["floatblocks:3"] = { - cs = "%s presunuto", - de = "%s verschoben", - en = "%s moved", - fr = "%s déplacé", - it = "%s mosso", - nl = "%s verplaatst", - no = "%s flyttet", - ro = "%s mutat", + cs = "%a presunuto", + de = "%a verschoben", + en = "%a moved", + fr = "%a déplacé", + it = "%a mosso", + nl = "%a verplaatst", + no = "%a flyttet", + ro = "%a mutat", }, ["floatblocks:4"] = { - cs = "%s umisteno", - de = "%s plaziert", - en = "%s placed", - fr = "%s placé", - it = "%s sistemato", - nl = "%s geplaatst", - no = "%s plassert", - ro = "%s plasat", + cs = "%a umisteno", + de = "%a plaziert", + en = "%a placed", + fr = "%a placé", + it = "%a sistemato", + nl = "%a geplaatst", + no = "%a plassert", + ro = "%a plasat", }, ["floatblocks:5"] = { cs = "poradi prizpusobeno", @@ -531,34 +531,34 @@ return { ro = "ordinea adaptata", }, ["floatblocks:6"] = { - cs = "pocet hornich plovoucich objektu je omezen na %s", - de = "Anz. der oberen Gleitobjekte beschraengt auf %s", - en = "n of top floats limited to %s", - fr = "n flottants de haut de page limité à %s", - it = "n di top floats limitato a %s", - nl = "maximaal %s boven", - no = "maksimalt %s flytblokker øverst", - ro = "nr. cadrelor de sus limitat la %s", + cs = "pocet hornich plovoucich objektu je omezen na %a", + de = "Anz. der oberen Gleitobjekte beschraengt auf %a", + en = "n of top floats limited to %a", + fr = "n flottants de haut de page limité à %a", + it = "n di top floats limitato a %a", + nl = "maximaal %a boven", + no = "maksimalt %a flytblokker øverst", + ro = "nr. cadrelor de sus limitat la %a", }, ["floatblocks:7"] = { - cs = "pocet spodnich plovoucich objektu je omezen na %s", - de = "Anz. der unteren Gleitobjekte beschraengt auf %s", - en = "n of bottom floats limited to %s", - fr = "n flottants de bas de page limité à %s", - it = "n di bottom floats limitato a %s", - nl = "maximaal %s onder", - no = "maksimalt %s flytblokker nederst", - ro = "nr. blocurilor de jos limitat la %s", + cs = "pocet spodnich plovoucich objektu je omezen na %a", + de = "Anz. der unteren Gleitobjekte beschraengt auf %a", + en = "n of bottom floats limited to %a", + fr = "n flottants de bas de page limité à %a", + it = "n di bottom floats limitato a %a", + nl = "maximaal %a onder", + no = "maksimalt %a flytblokker nederst", + ro = "nr. blocurilor de jos limitat la %a", }, ["floatblocks:8"] = { - cs = "radku je mene nez %s", - de = "weniger als %s zeilen", - en = "less than %s lines", - fr = "moins de %s lignes", - it = "meno di %s righe", - nl = "minder dan %s regels", - no = "mindre enn %s linjer", - ro = "mai putin de %s linii", + cs = "radku je mene nez %a", + de = "weniger als %a zeilen", + en = "less than %a lines", + fr = "moins de %a lignes", + it = "meno di %a righe", + nl = "minder dan %a regels", + no = "mindre enn %a linjer", + ro = "mai putin de %a linii", }, ["floatblocks:9"] = { cs = "poradi naruseno", @@ -570,118 +570,118 @@ return { no = "rekkefølge endret", ro = "ordinea deranjata", }, - ["flushed: preamble '%s'"] = { - nl = "weggeschreven: preamble '%s'", + ["flushed: preamble %a"] = { + nl = "weggeschreven: preamble %a", }, ["fonts:1"] = { - cs = "kodovani %s", - de = "Kodierung %s", - en = "coding %s", - fr = "encodage %s", - it = "codifica %s", - nl = "codering %s", - no = "koding %s", - ro = "codificarea %s", + cs = "kodovani %a", + de = "Kodierung %a", + en = "coding %a", + fr = "encodage %a", + it = "codifica %a", + nl = "codering %a", + no = "koding %a", + ro = "codificarea %a", }, ["fonts:10"] = { - cs = "neznamy font %s", - de = "unbekanntes Font %s", - en = "unknown font file %s", - fr = "fichier de police %s inconnu", - it = "file di font sconosciuto %s", - nl = "onbekende font file %s", - no = "ukjent fontfil %s", - ro = "fisier font necunoscut %s", + cs = "neznamy font %a", + de = "unbekanntes Font %a", + en = "unknown font file %a", + fr = "fichier de police %a inconnu", + it = "file di font sconosciuto %a", + nl = "onbekende font file %a", + no = "ukjent fontfil %a", + ro = "fisier font necunoscut %a", }, ["fonts:14"] = { - cs = "bodyfont %s is defined (can better be done global)", - de = "Fliesstext %s wurde definiert (besser waere globale Definition)", - en = "bodyfont %s is defined (can better be done global)", - fr = "policecorps %s est défini (une définition globale pourrait être plus adéquat)", - it = "corpo del testo %s definito (sarebbe meglio globale)", - nl = "korps %s is gedefinieerd (kan beter globaal plaatsvinden)", - no = "bodyfont %s is defined (can better be done global)", - ro = "bodyfont %s is defined (can better be done global)", + cs = "bodyfont %a is defined (can better be done global)", + de = "Fliesstext %a wurde definiert (besser waere globale Definition)", + en = "bodyfont %a is defined (can better be done global)", + fr = "policecorps %a est défini (une définition globale pourrait être plus adéquat)", + it = "corpo del testo %a definito (sarebbe meglio globale)", + nl = "korps %a is gedefinieerd (kan beter globaal plaatsvinden)", + no = "bodyfont %a is defined (can better be done global)", + ro = "bodyfont %a is defined (can better be done global)", }, ["fonts:2"] = { - cs = "varianta %s je nactena", - de = "Variante %s ist geladen", - en = "variant %s is loaded", - fr = "la variante %s est chargée", - it = "variante %s caricata", - nl = "variant %s wordt geladen", - no = "variant %s er lest inn", - ro = "varianta %s este incarcata", + cs = "varianta %a je nactena", + de = "Variante %a ist geladen", + en = "variant %a is loaded", + fr = "la variante %a est chargée", + it = "variante %a caricata", + nl = "variant %a wordt geladen", + no = "variant %a er lest inn", + ro = "varianta %a este incarcata", }, ["fonts:3"] = { - cs = "neznama varianta %s", - de = "Unbekannte Variante %s", - en = "unknown variant %s", - fr = "variante %s inconnue", - it = "variante sconosciuta %s", - nl = "onbekende variant %s", - no = "ukjent variant %s", - ro = "varianta necunoscuta %s", + cs = "neznama varianta %a", + de = "Unbekannte Variante %a", + en = "unknown variant %a", + fr = "variante %a inconnue", + it = "variante sconosciuta %a", + nl = "onbekende variant %a", + no = "ukjent variant %a", + ro = "varianta necunoscuta %a", }, ["fonts:4"] = { - cs = "zakladni font %s neni definovan", - de = "Fliesstext %s ist nicht definiert", - en = "bodyfont %s is not defined", - fr = "policecorps %s n'est pas définie", - it = "corpo del testo %s non definito", - nl = "korps %s is niet gedefinieerd", - no = "hovedfont %s er ikke definert", - ro = "corpul de litere %s nu este definit", + cs = "zakladni font %a neni definovan", + de = "Fliesstext %a ist nicht definiert", + en = "bodyfont %a is not defined", + fr = "policecorps %a n'est pas définie", + it = "corpo del testo %a non definito", + nl = "korps %a is niet gedefinieerd", + no = "hovedfont %a er ikke definert", + ro = "corpul de litere %a nu este definit", }, ["fonts:5"] = { - cs = "styl %s neni definovan", - de = "Stil %s ist nicht definiert", - en = "style %s is not defined", - fr = "le style %s n'est pas défini", - it = "stile %s non definito", - nl = "stijl %s is niet gedefinieerd", - no = "stil %s er ikke definert", - ro = "stilul %s nu este definit", + cs = "styl %a neni definovan", + de = "Stil %a ist nicht definiert", + en = "style %a is not defined", + fr = "le style %a n'est pas défini", + it = "stile %a non definito", + nl = "stijl %a is niet gedefinieerd", + no = "stil %a er ikke definert", + ro = "stilul %a nu este definit", }, ["fonts:6"] = { - cs = "%s je nacten", - de = "%s ist geladen", - en = "%s is loaded", - fr = "%s est chargé", - it = "%s caricato", - nl = "%s wordt geladen", - no = "%s er lest inn", - ro = "%s este incarcat", + cs = "%a je nacten", + de = "%a ist geladen", + en = "%a is loaded", + fr = "%a est chargé", + it = "%a caricato", + nl = "%a wordt geladen", + no = "%a er lest inn", + ro = "%a este incarcat", }, ["fonts:7"] = { - cs = "neznamy format %s", - de = "unbekanntes Format %s", - en = "unknown format %s", - fr = "format %s inconnu", - it = "formato sconosciuto %s", - nl = "onbekend formaat %s", - no = "ukjent format %s", - ro = "format necunoscut %s", + cs = "neznamy format %a", + de = "unbekanntes Format %a", + en = "unknown format %a", + fr = "format %a inconnu", + it = "formato sconosciuto %a", + nl = "onbekend formaat %a", + no = "ukjent format %a", + ro = "format necunoscut %a", }, ["fonts:8"] = { - cs = "styl %s definovan", - de = "Stil %s definiert", - en = "style %s defined", - fr = "style %s défini", - it = "stile %s definito", - nl = "stijl %s gedefinieerd", - no = "stil %s definert", - ro = "stilul %s definit", + cs = "styl %a definovan", + de = "Stil %a definiert", + en = "style %a defined", + fr = "style %a défini", + it = "stile %a definito", + nl = "stijl %a gedefinieerd", + no = "stil %a definert", + ro = "stilul %a definit", }, ["interactions:1"] = { - cs = "pomer %s x %s (s x v)", - de = "Seitenverhaeltnis %s x %s (B x H)", - en = "aspect ratio %s x %s (b x h)", - fr = "ratio d'aspect %s x %s (b x h)", - it = "rapporto %s x %s (b x a)", - nl = "aspect ratio %s x %s (b x h)", - no = "forholdstall %s x %s (b x h)", - ro = "aspectul %s x %s (b x h)", + cs = "pomer %a x %a (s x v)", + de = "Seitenverhaeltnis %a x %a (B x H)", + en = "aspect ratio %a x %a (b x h)", + fr = "ratio d'aspect %a x %a (b x h)", + it = "rapporto %a x %a (b x a)", + nl = "aspect ratio %a x %a (b x h)", + no = "forholdstall %a x %a (b x h)", + ro = "aspectul %a x %a (b x h)", }, ["interactions:2"] = { cs = "aktivni", @@ -694,14 +694,14 @@ return { ro = "activ", }, ["interactions:21"] = { - cs = "%s kod vlozen", - de = "%s Code eingefuegt", - en = "%s code inserted", - fr = "%s code inseré", - it = "codice %s inserito", - nl = "%s code tussengevoegd", - no = "%s kode satt inn / tilføyd", - ro = "%s cod inserat", + cs = "%a kod vlozen", + de = "%a Code eingefuegt", + en = "%a code inserted", + fr = "%a code inseré", + it = "codice %a inserito", + nl = "%a code tussengevoegd", + no = "%a kode satt inn / tilføyd", + ro = "%a cod inserat", }, ["interactions:3"] = { cs = "neaktivni", @@ -714,184 +714,184 @@ return { ro = "inactiv", }, ["interactions:4"] = { - cs = "zadna strankova synchronizace (%s) v hmode", - de = "keine Seitensynchronisation (%s) im hmode", - en = "no pagesynchronisation (%s) in hmode", - fr = "pas de synchronisation de page (%s) dans le hmode", - it = "sincronizzazione di pagina (%s) non disponibile in hmode", - nl = "geen paginasynchronisatie (%s) in hmode", - no = "ingen sidesynkronisering (%s) i hmode", - ro = "nu exista sincronizare pt. pagini (%s) in hmode", + cs = "zadna strankova synchronizace (%a) v hmode", + de = "keine Seitensynchronisation (%a) im hmode", + en = "no pagesynchronisation (%a) in hmode", + fr = "pas de synchronisation de page (%a) dans le hmode", + it = "sincronizzazione di pagina (%a) non disponibile in hmode", + nl = "geen paginasynchronisatie (%a) in hmode", + no = "ingen sidesynkronisering (%a) i hmode", + ro = "nu exista sincronizare pt. pagini (%a) in hmode", }, ["interactions:5"] = { - cs = "unknown attachment %s", - de = "unknown attachment %s", - en = "unknown attachment %s", - fr = "le fichier joint %s est inconnu", - it = "unknown attachment %s", - nl = "onbekend attachment %s", - no = "unknown attachment %s", - ro = "unknown attachment %s", + cs = "unknown attachment %a", + de = "unknown attachment %a", + en = "unknown attachment %a", + fr = "le fichier joint %a est inconnu", + it = "unknown attachment %a", + nl = "onbekend attachment %a", + no = "unknown attachment %a", + ro = "unknown attachment %a", }, ["interactions:6"] = { - cs = "attachment file %s does not exist", - de = "attachment file %s does not exist", - en = "attachment file %s does not exist", - fr = "le fichier joint %s n'existe pas", - it = "attachment file %s does not exist", - nl = "attachment file %s bestaat niet", - no = "attachment file %s does not exist", - ro = "attachment file %s does not exist", + cs = "attachment file %a does not exist", + de = "attachment file %a does not exist", + en = "attachment file %a does not exist", + fr = "le fichier joint %a n'existe pas", + it = "attachment file %a does not exist", + nl = "attachment file %a bestaat niet", + no = "attachment file %a does not exist", + ro = "attachment file %a does not exist", }, ["languages:1"] = { - cs = "vzory %s pro %s nacteny (n=%s,e=%s,m=%s)", - de = "Trennmuster %s fuer %s geladen (n=%s,e=%s,m=%s)", - en = "patterns %s for %s loaded (n=%s,e=%s,m=%s)", - fr = "les motifs %s pour %s sont chargés (n=%s,e=%s,m=%s)", - it = "schemi %s per %s caricati (n=%s,e=%s,m=%s)", - nl = "afbreekpatronen %s voor %s geladen (n=%s,e=%s,m=%s)", - no = "orddelingsmønster %s for %s er lest inn (n=%s,e=%s,m=%s)", - ro = "sablonul %s pentru %s s-a incarcat (n=%s,e=%s,m=%s)", + cs = "vzory %a pro %a nacteny (n=%a,e=%a,m=%a)", + de = "Trennmuster %a fuer %a geladen (n=%a,e=%a,m=%a)", + en = "patterns %a for %a loaded (n=%a,e=%a,m=%a)", + fr = "les motifs %a pour %a sont chargés (n=%a,e=%a,m=%a)", + it = "schemi %a per %a caricati (n=%a,e=%a,m=%a)", + nl = "afbreekpatronen %a voor %a geladen (n=%a,e=%a,m=%a)", + no = "orddelingsmønster %a for %a er lest inn (n=%a,e=%a,m=%a)", + ro = "sablonul %a pentru %a s-a incarcat (n=%a,e=%a,m=%a)", }, ["languages:10"] = { - cs = "vzory %s nacteny", - de = "Trennmuster %s geladen", - en = "patterns %s loaded", - fr = "motifs %s chargés", - it = "schemi %s caricati", - nl = "patronen %sgeladen", - no = "orddelingsmønster %s er lest inn", - ro = "sabloanele %s incarcate", + cs = "vzory %a nacteny", + de = "Trennmuster %a geladen", + en = "patterns %a loaded", + fr = "motifs %a chargés", + it = "schemi %a caricati", + nl = "patronen %ageladen", + no = "orddelingsmønster %a er lest inn", + ro = "sabloanele %a incarcate", }, ["languages:2"] = { - cs = "zadne vzory %s pro %s (n=%s,e=%s,m=%s) (%s,%s)", - de = "Keine Trennmuster %s fuer %s (n=%s,e=%s,m=%s) (%s,%s)", - en = "no patterns %s for %s (n=%s,e=%s,m=%s) (%s,%s)", - fr = "pas de motifs %s pour %s (n=%s,e=%s,m=%s) (%s,%s)", - it = "niente schemi %s per %s (n=%s,e=%s,m=%s) (%s,%s)", - nl = "geen afbreekpatronen %s voor %s (n=%s,e=%s,m=%s) (%s,%s)", - no = "ingen orddelingsmønster %s for %s (n=%s,e=%s,m=%s) (%s,%s)", - ro = "nu exista sabloane %s pentru %s (n=%s,e=%s,m=%s) (%s,%s)", + cs = "zadne vzory %a pro %a (n=%a,e=%a,m=%a) (%a,%a)", + de = "Keine Trennmuster %a fuer %a (n=%a,e=%a,m=%a) (%a,%a)", + en = "no patterns %a for %a (n=%a,e=%a,m=%a) (%a,%a)", + fr = "pas de motifs %a pour %a (n=%a,e=%a,m=%a) (%a,%a)", + it = "niente schemi %a per %a (n=%a,e=%a,m=%a) (%a,%a)", + nl = "geen afbreekpatronen %a voor %a (n=%a,e=%a,m=%a) (%a,%a)", + no = "ingen orddelingsmønster %a for %a (n=%a,e=%a,m=%a) (%a,%a)", + ro = "nu exista sabloane %a pentru %a (n=%a,e=%a,m=%a) (%a,%a)", }, ["languages:3"] = { - cs = "deleni slov %s pro %s nacteno (n=%s,e=%s,m=%s)", - de = "Trenndefinitionen %s fuer %s geladen (n=%s,e=%s,m=%s)", - en = "hyphenations %s for %s loaded (n=%s,e=%s,m=%s)", - fr = "hyphenations %s pour %s chargés (n=%s,e=%s,m=%s)", - it = "sillabazione %s per %s caricata (n=%s,e=%s,m=%s)", - nl = "afbreekdefinities %s voor %s geladen (n=%s,e=%s,m=%s)", - no = "orddelingsdefinisjon %s for %s er lest inn (n=%s,e=%s,m=%s)", - ro = "despartirea in silabe %s pentru %s s-a incarcat (n=%s,e=%s,m=%s)", + cs = "deleni slov %a pro %a nacteno (n=%a,e=%a,m=%a)", + de = "Trenndefinitionen %a fuer %a geladen (n=%a,e=%a,m=%a)", + en = "hyphenations %a for %a loaded (n=%a,e=%a,m=%a)", + fr = "hyphenations %a pour %a chargés (n=%a,e=%a,m=%a)", + it = "sillabazione %a per %a caricata (n=%a,e=%a,m=%a)", + nl = "afbreekdefinities %a voor %a geladen (n=%a,e=%a,m=%a)", + no = "orddelingsdefinisjon %a for %a er lest inn (n=%a,e=%a,m=%a)", + ro = "despartirea in silabe %a pentru %a s-a incarcat (n=%a,e=%a,m=%a)", }, ["languages:4"] = { - cs = "zadne deleni slov %s pro %s (n=%s,e=%s,m=%s)", - de = "Keine Trenndefinitionen %s fuer %s (n=%s,e=%s,m=%s)", - en = "no hyphenations %s for %s (n=%s,e=%s,m=%s)", - fr = "pas d'hyphenations %s pour %s (n=%s,e=%s,m=%s)", - it = "niente sillabazione %s per %s (n=%s,e=%s,m=%s)", - nl = "geen afbreekdefinities %s voor %s (n=%s,e=%s,m=%s)", - no = "ingen orddelingsdefinisjon %s for %s (n=%s,e=%s,m=%s)", - ro = "nu exista despartire in silabe %s pentru %s (n=%s,e=%s,m=%s)", + cs = "zadne deleni slov %a pro %a (n=%a,e=%a,m=%a)", + de = "Keine Trenndefinitionen %a fuer %a (n=%a,e=%a,m=%a)", + en = "no hyphenations %a for %a (n=%a,e=%a,m=%a)", + fr = "pas d'hyphenations %a pour %a (n=%a,e=%a,m=%a)", + it = "niente sillabazione %a per %a (n=%a,e=%a,m=%a)", + nl = "geen afbreekdefinities %a voor %a (n=%a,e=%a,m=%a)", + no = "ingen orddelingsdefinisjon %a for %a (n=%a,e=%a,m=%a)", + ro = "nu exista despartire in silabe %a pentru %a (n=%a,e=%a,m=%a)", }, ["languages:5"] = { - cs = "vzory pro %s nenacteny", - de = "Trennmuster fuer %s nicht geladen", - en = "patterns for %s not loaded", - fr = "les motifs pour %s ne sont pas chargés", - it = "schemi per %s non caricati", - nl = "afbreekpatronen voor %s niet geladen", - no = "orddelingsmønster for %s er ikke lest inn", - ro = "sabloanele pentru %s nu sunt incarcate", + cs = "vzory pro %a nenacteny", + de = "Trennmuster fuer %a nicht geladen", + en = "patterns for %a not loaded", + fr = "les motifs pour %a ne sont pas chargés", + it = "schemi per %a non caricati", + nl = "afbreekpatronen voor %a niet geladen", + no = "orddelingsmønster for %a er ikke lest inn", + ro = "sabloanele pentru %a nu sunt incarcate", }, ["languages:6"] = { - cs = "jazyk %s neni definovan", - de = "Sprache %s ist undefiniert", - en = "language %s is undefined", - fr = "langue %s non définie", - it = "lingua %s non definita", - nl = "taal %s is niet gedefinieerd", - no = "spràk %s er udefinert", - ro = "limba %s nu este definita", + cs = "jazyk %a neni definovan", + de = "Sprache %a ist undefiniert", + en = "language %a is undefined", + fr = "langue %a non définie", + it = "lingua %a non definita", + nl = "taal %a is niet gedefinieerd", + no = "spràk %a er udefinert", + ro = "limba %a nu este definita", }, ["languages:7"] = { - cs = "specificke volby jazyka [%s] zavadeji %s (zavlecenou) mezeru", - de = "Sprachenspezifische Option [%s] fuegt eine Luecke von %s ein", - en = "language specific options [%s] introduce a %s skip", - fr = "les options spécifiques de langue [%s] introduisent un %s saut", - it = "opzioni specifiche per la lingua [%s] introducono un salto %s", - nl = "taal specifieke opties [%s] introduceren een skip van %s", - no = "spràk spesifikk opsjon [%s] introduserer et %s hopp", - ro = "optiunile specifice ale limbii [%s] introduc un spatiu %s", + cs = "specificke volby jazyka [%a] zavadeji %a (zavlecenou) mezeru", + de = "Sprachenspezifische Option [%a] fuegt eine Luecke von %a ein", + en = "language specific options [%a] introduce a %a skip", + fr = "les options spécifiques de langue [%a] introduisent un %a saut", + it = "opzioni specifiche per la lingua [%a] introducono un salto %a", + nl = "taal specifieke opties [%a] introduceren een skip van %a", + no = "spràk spesifikk opsjon [%a] introduserer et %a hopp", + ro = "optiunile specifice ale limbii [%a] introduc un spatiu %a", }, ["languages:8"] = { - cs = "specificke volby jazyka [%s] bez mezer pripojeny", - de = "Sprachenspezifische Option [%s] nahtlos hinzugefuegt", - en = "language specific options [%s] seamless appended", - fr = "les options spécifiques de langue [%s] sont ajoutés en douceur", - it = "opzioni specifiche per la lingua [%s] aggiunte trasparentemente", - nl = "taal specifieke opties [%s] naadloos toegevoegd", - no = "spràk spesifikk opsjon [%s] problemfritt tilføyd", - ro = "optiunile specifice ale limbii [%s] adaugate", + cs = "specificke volby jazyka [%a] bez mezer pripojeny", + de = "Sprachenspezifische Option [%a] nahtlos hinzugefuegt", + en = "language specific options [%a] seamless appended", + fr = "les options spécifiques de langue [%a] sont ajoutés en douceur", + it = "opzioni specifiche per la lingua [%a] aggiunte trasparentemente", + nl = "taal specifieke opties [%a] naadloos toegevoegd", + no = "spràk spesifikk opsjon [%a] problemfritt tilføyd", + ro = "optiunile specifice ale limbii [%a] adaugate", }, ["languages:9"] = { - cs = "language %s is active", - de = "Sprache %s ist aktiv", - en = "language %s is active", - fr = "la langue %s est active", - it = "lingua %s attiva", - nl = "taal %s is actief", - no = "spràk %s er aktivt", - ro = "limba %s este activa", + cs = "language %a is active", + de = "Sprache %a ist aktiv", + en = "language %a is active", + fr = "la langue %a est active", + it = "lingua %a attiva", + nl = "taal %a is actief", + no = "spràk %a er aktivt", + ro = "limba %a este activa", }, ["layouts:1"] = { - cs = "vyska textu prizpusobena s %s na strane %s", - de = "Texthoehe angepasst mit %s auf Seite %s", - en = "textheight adapted with %s at page %s", - fr = "hauteurtexte adaptée avec %s à la page %s", - it = "altezza del testo adattata con %s a pagina %s", - nl = "teksthoogte aangepast met %s op pagina %s", - no = "teksthøyde tilpasset med %s på side %s", - ro = "textheight adaptat cu %s la pagina %s", + cs = "vyska textu prizpusobena s %a na strane %a", + de = "Texthoehe angepasst mit %a auf Seite %a", + en = "textheight adapted with %a at page %a", + fr = "hauteurtexte adaptée avec %a à la page %a", + it = "altezza del testo adattata con %a a pagina %a", + nl = "teksthoogte aangepast met %a op pagina %a", + no = "teksthøyde tilpasset med %a på side %a", + ro = "textheight adaptat cu %a la pagina %a", }, ["layouts:10"] = { - cs = "%s a %s nedava dohromady 1.0", - de = "%s und %s ergeben zusammen nicht 1.0", - en = "%s and %s don't add up to 1.0", - fr = "%s et %s ne sont pas ajoutés à 1.0", - it = "%s e %s non sommano a 1.0", - nl = "%s en %s tellen niet op tot 1.0", - no = "%s og %s er ikke 1.0 til sammen", - ro = "%s si %s nu se adauga pana la 1.0", + cs = "%a a %a nedava dohromady 1.0", + de = "%a und %a ergeben zusammen nicht 1.0", + en = "%a and %a don't add up to 1.0", + fr = "%a et %a ne sont pas ajoutés à 1.0", + it = "%a e %a non sommano a 1.0", + nl = "%a en %a tellen niet op tot 1.0", + no = "%a og %a er ikke 1.0 til sammen", + ro = "%a si %a nu se adauga pana la 1.0", }, ["layouts:11"] = { - cs = "svisla mezera %s neni povolena v pevnem radkovem rejstriku", - de = "Zwischenraum %s nicht im Grittermoduserlau", - en = "spacing %s not permitted in gridmode", - fr = "espacement %s non permis en modegrille", - it = "spaziatura %s non permessa in modo griglia", - nl = "interlinie %s niet toegestaan in gridmode", - no = "mellomrom %s ikke tillatt i gridmodus", - ro = "spatierea %s nu este permisa in gridmode", + cs = "svisla mezera %a neni povolena v pevnem radkovem rejstriku", + de = "Zwischenraum %a nicht im Grittermoduserlau", + en = "spacing %a not permitted in gridmode", + fr = "espacement %a non permis en modegrille", + it = "spaziatura %a non permessa in modo griglia", + nl = "interlinie %a niet toegestaan in gridmode", + no = "mellomrom %a ikke tillatt i gridmodus", + ro = "spatierea %a nu este permisa in gridmode", }, ["layouts:2"] = { - cs = "%s krat odlozeny text umisten", - de = "%s mal verschobener Text plaziert", - en = "%s times postponed text placed", - fr = "%s times postponed text placed", - it = "posizionato testo posticipato %s volte", - nl = "%s maal uitgestelde tekst tussengevoegd", - no = "%s ganger forskjøvet tekst plassert", - ro = "textul amanat de %s ori a fost plasat", + cs = "%a krat odlozeny text umisten", + de = "%a mal verschobener Text plaziert", + en = "%a times postponed text placed", + fr = "%a times postponed text placed", + it = "posizionato testo posticipato %a volte", + nl = "%a maal uitgestelde tekst tussengevoegd", + no = "%a ganger forskjøvet tekst plassert", + ro = "textul amanat de %a ori a fost plasat", }, ["layouts:3"] = { - cs = "%s krat text odlozen", - de = "%s mal Text verschoben", - en = "%s times text postponed", - fr = "%s times text postponed", - it = "testo posticipato %s volte", - nl = "%s maal tekst plaatsen uitstellen", - no = "%s ganger tekst forskjøvet", - ro = "textul amanat de %s ori", + cs = "%a krat text odlozen", + de = "%a mal Text verschoben", + en = "%a times text postponed", + fr = "%a times text postponed", + it = "testo posticipato %a volte", + nl = "%a maal tekst plaatsen uitstellen", + no = "%a ganger tekst forskjøvet", + ro = "textul amanat de %a ori", }, ["layouts:4"] = { cs = "okrajove bloky aktivni", @@ -914,14 +914,14 @@ return { ro = "blocuri marginale inactive", }, ["layouts:6"] = { - cs = "sada stran %s zpracovana (velikost %s)", - de = "Unterseitenfolge %s verarbeitet (Groesse %s)", - en = "subpage set %s processed (size %s)", - fr = "jeu de souspage %s traité (taille %s)", - it = "gruppo di sottopagine %s elaborato (dimensione %s)", - nl = "subpagina reeks %s verwerkt (aantal %s)", - no = "delside sett %s behandlet (størrelse %s)", - ro = "setul %s de subpagini procesat (dimensiunea %s)", + cs = "sada stran %a zpracovana (velikost %a)", + de = "Unterseitenfolge %a verarbeitet (Groesse %a)", + en = "subpage set %a processed (size %a)", + fr = "jeu de souspage %a traité (taille %a)", + it = "gruppo di sottopagine %a elaborato (dimensione %a)", + nl = "subpagina reeks %a verwerkt (aantal %a)", + no = "delside sett %a behandlet (størrelse %a)", + ro = "setul %a de subpagini procesat (dimensiunea %a)", }, ["layouts:7"] = { cs = "pocita se misto pro logo", @@ -944,201 +944,201 @@ return { ro = "se calculeaza fundalurile", }, ["layouts:9"] = { - cs = "aktualne ne vice nez %s urovne/urovni vyctu", - de = "z.Z. nicht mehr als %s Ebenen in Aufzaehlungen", - en = "currently no more than %s levels in itemizations", - fr = "pas plus de %s niveaux pour l'instant dans les élémentarisations", - it = "attualmente non più di %s livelli di elencazione", - nl = "momenteel maximaal %s niveaus in opsommingen", - no = "for øyeblikket maksimalt %s nivåer i opplisting", - ro = "acum nu se supota mai mult de %s nivele de adancime la iteratii", + cs = "aktualne ne vice nez %a urovne/urovni vyctu", + de = "z.Z. nicht mehr als %a Ebenen in Aufzaehlungen", + en = "currently no more than %a levels in itemizations", + fr = "pas plus de %a niveaux pour l'instant dans les élémentarisations", + it = "attualmente non più di %a livelli di elencazione", + nl = "momenteel maximaal %a niveaus in opsommingen", + no = "for øyeblikket maksimalt %a nivåer i opplisting", + ro = "acum nu se supota mai mult de %a nivele de adancime la iteratii", }, - ["loaded: '%s'"] = { - nl = "geladen: '%s'", + ["loaded: %a"] = { + nl = "geladen: %a", }, - ["loaded: library '%s'"] = { - nl = "geladen: bibliotheek '%s'", + ["loaded: library %a"] = { + nl = "geladen: bibliotheek %a", }, - ["loading: '%s'"] = { - nl = "laden: '%s'", + ["loading: %a"] = { + nl = "laden: %a", }, - ["locating: '%s'"] = { - nl = "zoeken: '%s'", + ["locating: %a"] = { + nl = "zoeken: %a", }, - ["not found: '%s'"] = { - nl = "niet gevonden: '%s'", + ["not found: %a"] = { + nl = "niet gevonden: %a", }, - ["number 1: %s, number 2: %s"] = { - en = "number 1: (%s), number 2: (%s)", - nl = "nummer 1: (%s), nummer 2: (%s)", + ["number 1: %a, number 2: %a"] = { + en = "number 1: (%a), number 2: (%a)", + nl = "nummer 1: (%a), nummer 2: (%a)", }, - ["popping level: %s"] = { - nl = "niveau omlaag: %s", + ["popping level: %a"] = { + nl = "niveau omlaag: %a", }, ["publications:1"] = { - en = "file %s not found, unknown style ignored", + en = "file %a not found, unknown style ignored", }, ["publications:2"] = { - en = "file %s not found, waiting for bibtex", + en = "file %a not found, waiting for bibtex", }, ["publications:3"] = { en = "wrote a new auxiliary file \\jobname.aux", }, ["publications:4"] = { - en = "loading database from %s", + en = "loading database from %a", }, ["publications:5"] = { - en = "warning: unknown cite argument %s on line \\the\\inputlineno", + en = "warning: unknown cite argument %a on line \\the\\inputlineno", }, ["publications:6"] = { - en = "loading formatting style from %s", + en = "loading formatting style from %a", }, ["publications:7"] = { en = "placing all entries, use 'text' to be more selective", }, - ["pushing level: %s"] = { - nl = "niveau omhoog: %s", + ["pushing level: %a"] = { + nl = "niveau omhoog: %a", }, ["references:1"] = { - cs = "neznama reference %s", - de = "unbekannte Referenz %s", - en = "unknown reference %s", - fr = "réference %s inconnue", - it = "riferimento sconosciuto %s", - nl = "onbekende verwijzing %s", - no = "ukjent referanse %s", - ro = "referinta necunoscuta %s", + cs = "neznama reference %a", + de = "unbekannte Referenz %a", + en = "unknown reference %a", + fr = "réference %a inconnue", + it = "riferimento sconosciuto %a", + nl = "onbekende verwijzing %a", + no = "ukjent referanse %a", + ro = "referinta necunoscuta %a", }, ["references:2"] = { - cs = "duplicitni reference %s na strane %s", - de = "doppelte Referenz %s auf Seite %s", - en = "duplicate reference %s on page %s", - fr = "réference %s dupliquée à la page %s", - it = "riferimento duplicato %s a pagina %s", - nl = "dubbele verwijzing %s op pagina %s", - no = "duplikat referanse %s pø side %s", - ro = "referinta duplicat %s la pagina %s", + cs = "duplicitni reference %a na strane %a", + de = "doppelte Referenz %a auf Seite %a", + en = "duplicate reference %a on page %a", + fr = "réference %a dupliquée à la page %a", + it = "riferimento duplicato %a a pagina %a", + nl = "dubbele verwijzing %a op pagina %a", + no = "duplikat referanse %a pø side %a", + ro = "referinta duplicat %a la pagina %a", }, ["references:21"] = { - cs = "dokument %s nacten", - de = "Dokument %s geladen", - en = "document %s loaded", - fr = "document %s chargé", - it = "documento %s caricato", - nl = "document %s geladen", - no = "dokument %s er lest inn", - ro = "documentul %s este incarcat", + cs = "dokument %a nacten", + de = "Dokument %a geladen", + en = "document %a loaded", + fr = "document %a chargé", + it = "documento %a caricato", + nl = "document %a geladen", + no = "dokument %a er lest inn", + ro = "documentul %a este incarcat", }, ["references:22"] = { - cs = "dokument %s neni interaktivni", - de = "Dokument %s ist nicht aktiv", - en = "document %s is not interactive", - fr = "le document %s n'est pas interactif", - it = "il documento %s non ø interattivo", - nl = "document %s is niet interactief", - no = "dokument %s er ikke interaktivt", - ro = "documentul %s nu este interactiv", + cs = "dokument %a neni interaktivni", + de = "Dokument %a ist nicht aktiv", + en = "document %a is not interactive", + fr = "le document %a n'est pas interactif", + it = "il documento %a non ø interattivo", + nl = "document %a is niet interactief", + no = "dokument %a er ikke interaktivt", + ro = "documentul %a nu este interactiv", }, ["references:23"] = { - cs = "obskurni (nejasna) reference %s (prefix=%s)", - de = "Obskure Referenz %s (Prefix=%s)", - en = "obscure reference %s (prefix=%s)", - fr = "reference %s indéterminé (préfixe=%s)", - it = "riferimento ambiguo %s (prefisso=%s)", - nl = "onduidelijke verwijzing %s (prefix=%s)", - no = "obskur referanse %s (Prefix=%s)", - ro = "referinta obscura %s (prefix=%s)", + cs = "obskurni (nejasna) reference %a (prefix=%a)", + de = "Obskure Referenz %a (Prefix=%a)", + en = "obscure reference %a (prefix=%a)", + fr = "reference %a indéterminé (préfixe=%a)", + it = "riferimento ambiguo %a (prefisso=%a)", + nl = "onduidelijke verwijzing %a (prefix=%a)", + no = "obskur referanse %a (Prefix=%a)", + ro = "referinta obscura %a (prefix=%a)", }, ["references:24"] = { - en = "references from document '%s' are not exported", + en = "references from document %a are not exported", }, ["references:25"] = { - en = "references from document '%s' are not imported (export again)", + en = "references from document %a are not imported (export again)", }, ["references:26"] = { - en = "references from document '%s' are imported", + en = "references from document %a are imported", }, ["references:3"] = { - cs = "neznamy typ reference %s", - de = "unbekannte Referenz Typ %s", - en = "unknown reference type %s", - fr = "type %s de réference inconnu", - it = "riferimento di tipo sconosciuto %s", - nl = "type verwijzing %s onbekend", - no = "ukjent referansetype %s", - ro = "tip necunoscut de referinta %s", + cs = "neznamy typ reference %a", + de = "unbekannte Referenz Typ %a", + en = "unknown reference type %a", + fr = "type %a de réference inconnu", + it = "riferimento di tipo sconosciuto %a", + nl = "type verwijzing %a onbekend", + no = "ukjent referansetype %a", + ro = "tip necunoscut de referinta %a", }, ["references:30"] = { - cs = "neznamy objekt %s", - de = "unbekanntes Object %s", - en = "unknown object %s", - fr = "objet %s inconnu", - it = "oggetto sconosciuto %s", - nl = "onbekend object %s", - no = "ukjent objekt %s", - ro = "obiect necunoscut %s", + cs = "neznamy objekt %a", + de = "unbekanntes Object %a", + en = "unknown object %a", + fr = "objet %a inconnu", + it = "oggetto sconosciuto %a", + nl = "onbekend object %a", + no = "ukjent objekt %a", + ro = "obiect necunoscut %a", }, ["references:31"] = { - cs = "duplicitni object %s", - de = "doppeltes Object %s", - en = "duplicate object %s", - fr = "objet %s dupliqué", - it = "oggetto duplicato %s", - nl = "dubbel object %s", - no = "duplikat objekt %s", - ro = "obiect duplicat %s", + cs = "duplicitni object %a", + de = "doppeltes Object %a", + en = "duplicate object %a", + fr = "objet %a dupliqué", + it = "oggetto duplicato %a", + nl = "dubbel object %a", + no = "duplikat objekt %a", + ro = "obiect duplicat %a", }, ["references:4"] = { - cs = "nedovolena reference %s", - de = "illegale Referenz %s", - en = "illegal reference %s", - fr = "réference %s inconnue", - it = "riferimento illecito %s", - nl = "verboden verwijzing %s", - no = "ulovlig referanse %s", - ro = "referinta eronata %s", - }, - -- ["number of unknown references: %s"] = { + cs = "nedovolena reference %a", + de = "illegale Referenz %a", + en = "illegal reference %a", + fr = "réference %a inconnue", + it = "riferimento illecito %a", + nl = "verboden verwijzing %a", + no = "ulovlig referanse %a", + ro = "referinta eronata %a", + }, + -- ["number of unknown references: %a"] = { -- }, ["references:6"] = { - en = "number of illegal references: %s", + en = "number of illegal references: %a", }, - ["start: '%s'"] = { + ["start: %a"] = { }, - ["stop: '%s'"] = { + ["stop: %a"] = { }, - ["stored: preamble '%s', state '%s', order '%s'"] = { - nl = "opgeslagen: preamble '%s', status '%s', volgorde '%s'", + ["stored: preamble %a, state %a, order %a"] = { + nl = "opgeslagen: preamble %a, status %a, volgorde %a", }, ["structures:1"] = { - cs = "zacatek oddilu (sekce) %s", - de = "Begin des Abschnittsblocks %s", - en = "begin of sectionblock %s", - fr = "début de blocsection %s", - it = "inizio del blocco (sezione) %s", - nl = "begin van sectieblok %s", - no = "starten av blokk %s (seksjon)", - ro = "inceput de bloc sectiune %s", + cs = "zacatek oddilu (sekce) %a", + de = "Begin des Abschnittsblocks %a", + en = "begin of sectionblock %a", + fr = "début de blocsection %a", + it = "inizio del blocco (sezione) %a", + nl = "begin van sectieblok %a", + no = "starten av blokk %a (seksjon)", + ro = "inceput de bloc sectiune %a", }, ["structures:2"] = { - cs = "konec oddilu (sekce) %s", - de = "Ende des Abschnittsblocks %s", - en = "end of sectionblock %s", - fr = "fin de blocsection %s", - it = "fine del blocco (sezione) %s", - nl = "eind van sectieblok %s", - no = "slutten av blokk %s (seksjon)", - ro = "sfarsit de bloc sectiune %s", + cs = "konec oddilu (sekce) %a", + de = "Ende des Abschnittsblocks %a", + en = "end of sectionblock %a", + fr = "fin de blocsection %a", + it = "fine del blocco (sezione) %a", + nl = "eind van sectieblok %a", + no = "slutten av blokk %a (seksjon)", + ro = "sfarsit de bloc sectiune %a", }, ["symbols:1"] = { - cs = "nacita se soubor symbolu %s", - de = "Lade Symboldatei %s", - en = "loading symbolset %s", - fr = "chargement du jeu de symbole %s", - it = "caricamento gruppo di simboli %s", - nl = "symboolset %s wordt geladen", - no = "leser inn symbolsett %s", - ro = "se incarca setul de simboluri %s", + cs = "nacita se soubor symbolu %a", + de = "Lade Symboldatei %a", + en = "loading symbolset %a", + fr = "chargement du jeu de symbole %a", + it = "caricamento gruppo di simboli %a", + nl = "symboolset %a wordt geladen", + no = "leser inn symbolsett %a", + ro = "se incarca setul de simboluri %a", }, ["system:1"] = { cs = "nacteni pomocneho souboru odlozeno (typemode)", @@ -1151,14 +1151,14 @@ return { ro = "se incarca utilitarul-fisierul este amanat (typemode)", }, ["system:10"] = { - cs = "nepouzivejte em v %s", - de = "Benutzte kein em in %s", - en = "don't use em in %s", - fr = "n'utilisez pas em dans %s", - it = "non usare em in %s", - nl = "gebruik geen em in %s", - no = "ikke bruk em i %s", - ro = "nu folositi em in %s", + cs = "nepouzivejte em v %a", + de = "Benutzte kein em in %a", + en = "don't use em in %a", + fr = "n'utilisez pas em dans %a", + it = "non usare em in %a", + nl = "gebruik geen em in %a", + no = "ikke bruk em i %a", + ro = "nu folositi em in %a", }, ["system:11"] = { cs = "vytvarim jednoduchy pomocny soubor", @@ -1181,94 +1181,94 @@ return { ro = "fisierul utilitar nu este sortat, folositi texutil", }, ["system:13"] = { - cs = "znacka %s definovana %s", - de = "Beschriftung %s definiert %s", - en = "mark %s defined %s", - fr = "marquage %s defini %s", - it = "marcatura %s definita %s", - nl = "markering %s gedefinieerd %s", - no = "markering %s definert %s", - ro = "marcajul %s definit %s", + cs = "znacka %a definovana %a", + de = "Beschriftung %a definiert %a", + en = "mark %a defined %a", + fr = "marquage %a defini %a", + it = "marcatura %a definita %a", + nl = "markering %a gedefinieerd %a", + no = "markering %a definert %a", + ro = "marcajul %a definit %a", }, ["system:14"] = { - cs = "vynucena nova stranka v seznamu na %s", - de = "Erzwungendes Seitenumbruch in Liste bei %s", - en = "forced newpage in list at %s", - fr = "nouvellepage forcée dans la liste à %s", - it = "nuova pagina obbligata in lista a %s", - nl = "geforceerde paginaovergang in lijst voor %s", - no = "tvunget sideskift i liste ved %s", - ro = "s-a fortat trecere pa pagina noua in lista la %s", + cs = "vynucena nova stranka v seznamu na %a", + de = "Erzwungendes Seitenumbruch in Liste bei %a", + en = "forced newpage in list at %a", + fr = "nouvellepage forcée dans la liste à %a", + it = "nuova pagina obbligata in lista a %a", + nl = "geforceerde paginaovergang in lijst voor %a", + no = "tvunget sideskift i liste ved %a", + ro = "s-a fortat trecere pa pagina noua in lista la %a", }, ["system:15"] = { - cs = "uklada se buffer %s", - de = "Speichere Buffer %s", - en = "saving buffer %s", - fr = "sauvegarde du tampon (buffer) %s", - it = "salvataggio del buffer %s", - nl = "wegschrijven buffer %s", - no = "lagrer Buffer %s", - ro = "buffer salvat %s", + cs = "uklada se buffer %a", + de = "Speichere Buffer %a", + en = "saving buffer %a", + fr = "sauvegarde du tampon (buffer) %a", + it = "salvataggio del buffer %a", + nl = "wegschrijven buffer %a", + no = "lagrer Buffer %a", + ro = "buffer salvat %a", }, ["system:16"] = { - cs = "sazi se buffer %s", - de = "Setzte Buffer %s", - en = "typesetting buffer %s", - fr = "composition du tampon (buffer) %s", - it = "composizione del buffer %s", - nl = "inlezen buffer %s", - no = "tegnsetter buffer %s", - ro = "buffer-ul %s s-a cules", + cs = "sazi se buffer %a", + de = "Setzte Buffer %a", + en = "typesetting buffer %a", + fr = "composition du tampon (buffer) %a", + it = "composizione del buffer %a", + nl = "inlezen buffer %a", + no = "tegnsetter buffer %a", + ro = "buffer-ul %a s-a cules", }, ["system:17"] = { - cs = "sazi se doslovny (verbatim) buffer %s", - de = "Setzte tippen-Buffer %s", - en = "typesetting verbatim buffer %s", - fr = "composition textuelle du tampon (buffer) %s", - it = "composizione verbatim del buffer %s", - nl = "verbatim inlezen buffer %s", - no = "tegnsetter verbatim-buffer %s", - ro = "se culege buffer-ul verbatim %s", + cs = "sazi se doslovny (verbatim) buffer %a", + de = "Setzte tippen-Buffer %a", + en = "typesetting verbatim buffer %a", + fr = "composition textuelle du tampon (buffer) %a", + it = "composizione verbatim del buffer %a", + nl = "verbatim inlezen buffer %a", + no = "tegnsetter verbatim-buffer %a", + ro = "se culege buffer-ul verbatim %a", }, ["system:18"] = { - cs = "synonymum %s %s neexistuje", - de = "Synonym %s %s existiert nicht", - en = "synonym %s %s does not exist", - fr = "le synonyme %s %s n'existe pas", - it = "sinonimo %s %s non esistente", - nl = "synoniem %s %s bestaat niet", - no = "synonym %s %s eksisterer ikke", - ro = "sinonimul %s %s nu exista", + cs = "synonymum %a %a neexistuje", + de = "Synonym %a %a existiert nicht", + en = "synonym %a %a does not exist", + fr = "le synonyme %a %a n'existe pas", + it = "sinonimo %a %a non esistente", + nl = "synoniem %a %a bestaat niet", + no = "synonym %a %a eksisterer ikke", + ro = "sinonimul %a %a nu exista", }, ["system:19"] = { - cs = "vyznam (synonyma) %s nacten", - de = "Bedeutung (synonyme) von %s geladen", - en = "meaning (synonyms) of %s loaded", - fr = "signification (synonymes) de %s chargée", - it = "significato (sinonimi) di %s caricato", - nl = "betekenissen (synoniemen) van %s geladen", - no = "betydning (synonymer) av %s er lest inn", - ro = "intelesul (sinonimele) pentru %s incarcat", + cs = "vyznam (synonyma) %a nacten", + de = "Bedeutung (synonyme) von %a geladen", + en = "meaning (synonyms) of %a loaded", + fr = "signification (synonymes) de %a chargée", + it = "significato (sinonimi) di %a caricato", + nl = "betekenissen (synoniemen) van %a geladen", + no = "betydning (synonymer) av %a er lest inn", + ro = "intelesul (sinonimele) pentru %a incarcat", }, ["system:2"] = { - cs = "%s nacteno", - de = "%s geladen", - en = "%s loaded", - fr = "%s chargé", - it = "%s caricato", - nl = "%s geladen", - no = "%s er lest inn", - ro = "%s s-a incarcat", + cs = "%a nacteno", + de = "%a geladen", + en = "%a loaded", + fr = "%a chargé", + it = "%a caricato", + nl = "%a geladen", + no = "%a er lest inn", + ro = "%a s-a incarcat", }, ["system:20"] = { - cs = "vyznam (trideni) %s nacten", - de = "Bedeutung (sortieren) von %s geladen", - en = "meaning (sorts) of %s loaded", - fr = "signification (tris) de %s chargée", - it = "significato (specie) di %s caricato", - nl = "betekenissen (sorteren) van %s geladen", - no = "betydning (sorterer) av %s er lest inn", - ro = "intelesul (ordinea) pentru %s incarcat", + cs = "vyznam (trideni) %a nacten", + de = "Bedeutung (sortieren) von %a geladen", + en = "meaning (sorts) of %a loaded", + fr = "signification (tris) de %a chargée", + it = "significato (specie) di %a caricato", + nl = "betekenissen (sorteren) van %a geladen", + no = "betydning (sorterer) av %a er lest inn", + ro = "intelesul (ordinea) pentru %a incarcat", }, ["system:21"] = { cs = "pomocny soubor necten", @@ -1291,14 +1291,14 @@ return { ro = "folositi un fisier utilitar valid", }, ["system:23"] = { - cs = "%s upraveno na %s", - de = "%s angeordnet auf %s", - en = "%s arranged at %s", - fr = "%s arrangé à %s", - it = "%s sistemato a %s", - nl = "%s gearrangeerd op %s", - no = "%s arrangert på %s", - ro = "%s aranjat la %s", + cs = "%a upraveno na %a", + de = "%a angeordnet auf %a", + en = "%a arranged at %a", + fr = "%a arrangé à %a", + it = "%a sistemato a %a", + nl = "%a gearrangeerd op %a", + no = "%a arrangert på %a", + ro = "%a aranjat la %a", }, ["system:24"] = { cs = "plovouci bloky", @@ -1341,54 +1341,54 @@ return { ro = "Versiune", }, ["system:4"] = { - cs = "prikaz %s je jiz definovan", - de = "Befehl %s ist bereits definiert", - en = "command %s is already defined", - fr = "la commande %s est déjà définie", - it = "comando %s già definito", - nl = "commando %s is al gedefinieerd", - no = "kommando %s er allerede definert", - ro = "comanda %s este deja definita", + cs = "prikaz %a je jiz definovan", + de = "Befehl %a ist bereits definiert", + en = "command %a is already defined", + fr = "la commande %a est déjà définie", + it = "comando %a già definito", + nl = "commando %a is al gedefinieerd", + no = "kommando %a er allerede definert", + ro = "comanda %a este deja definita", }, ["system:41"] = { - cs = "externi soubor %s ve skupine %s neexistuje", - de = "Externe Datei %s in Gruppe %s existiert nicht", - en = "external file %s in group %s does not exist", - fr = "le fichier externe %s du groupe %s n'existe pas", - it = "il file esterno %s del gruppo %s non esiste", - nl = "externe file %s in groep %s bestaat niet", - no = "ekstern fil %s i gruppe %s eksisterer ikke", - ro = "fisierul extern %s din grupul %s nu exista", + cs = "externi soubor %a ve skupine %a neexistuje", + de = "Externe Datei %a in Gruppe %a existiert nicht", + en = "external file %a in group %a does not exist", + fr = "le fichier externe %a du groupe %a n'existe pas", + it = "il file esterno %a del gruppo %a non esiste", + nl = "externe file %a in groep %a bestaat niet", + no = "ekstern fil %a i gruppe %a eksisterer ikke", + ro = "fisierul extern %a din grupul %a nu exista", }, ["system:5"] = { - cs = "makra z %s nactena", - de = "Modul %s geladen", - en = "module %s loaded", - fr = "module %s chargé", - it = "macro del modulo %s caricate", - nl = "module %s geladen", - no = "makroene i modul %s er lest inn", - ro = "macro-urile din modulul %s s-au incarcat", + cs = "makra z %a nactena", + de = "Modul %a geladen", + en = "module %a loaded", + fr = "module %a chargé", + it = "macro del modulo %a caricate", + nl = "module %a geladen", + no = "makroene i modul %a er lest inn", + ro = "macro-urile din modulul %a s-au incarcat", }, ["system:6"] = { - cs = "zadna makra v %s nenalezena", - de = "Modul %s gefunden", - en = "module %s not found", - fr = "module %s non trouvé", - it = "nessuna macro trovata nel modulo %s", - nl = "geen module %s gevonden", - no = "ingen makroer funnet i modul %s-", - ro = "nu s-au gasit macro-uri in modulul %s", + cs = "zadna makra v %a nenalezena", + de = "Modul %a gefunden", + en = "module %a not found", + fr = "module %a non trouvé", + it = "nessuna macro trovata nel modulo %a", + nl = "geen module %a gevonden", + no = "ingen makroer funnet i modul %a-", + ro = "nu s-au gasit macro-uri in modulul %a", }, ["system:7"] = { - cs = "makra z %s jsou jiz nactena", - de = "Modul %s bereits geladen", - en = "module %s already loaded", - fr = "module %s déjà chargé", - it = "macro del modulo %s già caricate", - nl = "module %s reeds geladen", - no = "makroene i modul %s er allerede lest inn", - ro = "macro-urile din modulul %s s-au incarcat deja", + cs = "makra z %a jsou jiz nactena", + de = "Modul %a bereits geladen", + en = "module %a already loaded", + fr = "module %a déjà chargé", + it = "macro del modulo %a già caricate", + nl = "module %a reeds geladen", + no = "makroene i modul %a er allerede lest inn", + ro = "macro-urile din modulul %a s-au incarcat deja", }, ["system:8"] = { cs = "nova verze pomocneho souboru, je treba druheho behu", @@ -1401,18 +1401,18 @@ return { ro = "o noua versiune de fisier utilitar, este necesara o noua trecere", }, ["system:9"] = { - cs = "%s nenalezeno/nezpracovano", - de = "%s nicht gefunden/verarbeitet", - en = "%s not found/processed", - fr = "%s non trouvé/traité", - it = "%s non trovato/elaborato", - nl = "%s niet gevonden/geplaatst", - no = "%s ikke funnet/behandlet", - ro = "%s nu este gasit/procesat", + cs = "%a nenalezeno/nezpracovano", + de = "%a nicht gefunden/verarbeitet", + en = "%a not found/processed", + fr = "%a non trouvé/traité", + it = "%a non trovato/elaborato", + nl = "%a niet gevonden/geplaatst", + no = "%a ikke funnet/behandlet", + ro = "%a nu este gasit/procesat", }, ["system:91"] = { - en = "papertray %s", - nl = "papierlade %s", + en = "papertray %a", + nl = "papierlade %a", }, ["textblocks:1"] = { cs = "nova verze, je treba druhy beh", @@ -1425,54 +1425,54 @@ return { ro = "o noua versiune, este nevoie de inca o trecere", }, ["textblocks:10"] = { - cs = "%s nacteno a zpracovano", - de = "%s geladen und verarbeitet", - en = "%s loaded and processed", - fr = "%s chargé et traité", - it = "%s caricato ed elaborato", - nl = "%s geladen en verwerkt", - no = "%s lest inn og behandlet", - ro = "%s incarcat si procesat", + cs = "%a nacteno a zpracovano", + de = "%a geladen und verarbeitet", + en = "%a loaded and processed", + fr = "%a chargé et traité", + it = "%a caricato ed elaborato", + nl = "%a geladen en verwerkt", + no = "%a lest inn og behandlet", + ro = "%a incarcat si procesat", }, ["textblocks:11"] = { - cs = "%s nacteno a vysazeno", - de = "%s geladen und gesetzt", - en = "%s loaded and typeset", - fr = "%s chargé et composé", - it = "%s caricato e composto", - nl = "%s geladen en geplaatst", - no = "%s lest inn og tegnsatt", - ro = "%s incarcat si cules", + cs = "%a nacteno a vysazeno", + de = "%a geladen und gesetzt", + en = "%a loaded and typeset", + fr = "%a chargé et composé", + it = "%a caricato e composto", + nl = "%a geladen en geplaatst", + no = "%a lest inn og tegnsatt", + ro = "%a incarcat si cules", }, ["textblocks:12"] = { - cs = "%s preskoceno", - de = "%s ausgelassen", - en = "%s skipped", - fr = "%s sauté", - it = "%s saltato", - nl = "%s overgeslagen", - no = "%s utelatt", - ro = "%s sarit peste", + cs = "%a preskoceno", + de = "%a ausgelassen", + en = "%a skipped", + fr = "%a sauté", + it = "%a saltato", + nl = "%a overgeslagen", + no = "%a utelatt", + ro = "%a sarit peste", }, ["textblocks:2"] = { - cs = "zapisuji bloky do %s", - de = "schreibe Bloecke zu %s", - en = "writing blocks to %s", - fr = "ecriture des blocs vers %s", - it = "scrittura dei blocchi su %s", - nl = "wegschrijven blokken naar %s", - no = "skriver blokker til %s", - ro = "se scriu blocurile in %s", + cs = "zapisuji bloky do %a", + de = "schreibe Bloecke zu %a", + en = "writing blocks to %a", + fr = "ecriture des blocs vers %a", + it = "scrittura dei blocchi su %a", + nl = "wegschrijven blokken naar %a", + no = "skriver blokker til %a", + ro = "se scriu blocurile in %a", }, ["textblocks:3"] = { - cs = "ctu bloky z %s", - de = "lese Bloecke von %s", - en = "reading blocks from %s", - fr = "lecture des blocs en provenance de %s", - it = "lettura dei blocchi da %s", - nl = "inlezen blokken uit %s", - no = "leser blokker fra %s", - ro = "se citesc blocurile din %s", + cs = "ctu bloky z %a", + de = "lese Bloecke von %a", + en = "reading blocks from %a", + fr = "lecture des blocs en provenance de %a", + it = "lettura dei blocchi da %a", + nl = "inlezen blokken uit %a", + no = "leser blokker fra %a", + ro = "se citesc blocurile din %a", }, ["textblocks:4"] = { cs = "je treba druhy beh", @@ -1485,85 +1485,85 @@ return { ro = "este nevoie de inca o trecere", }, ["textblocks:5"] = { - cs = "%s neni skryto", - de = "%s nicht verborgen", - en = "%s not hidden", - fr = "%s non caché", - it = "%s non nascosto", - nl = "%s niet verborgen", - no = "%s ikke skjult", - ro = "%s nu este ascuns", + cs = "%a neni skryto", + de = "%a nicht verborgen", + en = "%a not hidden", + fr = "%a non caché", + it = "%a non nascosto", + nl = "%a niet verborgen", + no = "%a ikke skjult", + ro = "%a nu este ascuns", }, ["textblocks:6"] = { - cs = "%s skryto a zpracovano", - de = "%s verborgen und verarbeitet", - en = "%s hidden and processed", - fr = "%s caché et traité", - it = "%s nascosto ed elaborato", - nl = "%s verborgen en verwerkt", - no = "%s skjult og behandlet", - ro = "%s ascuns si procesat", + cs = "%a skryto a zpracovano", + de = "%a verborgen und verarbeitet", + en = "%a hidden and processed", + fr = "%a caché et traité", + it = "%a nascosto ed elaborato", + nl = "%a verborgen en verwerkt", + no = "%a skjult og behandlet", + ro = "%a ascuns si procesat", }, ["textblocks:7"] = { - cs = "%s skryto", - de = "%s verborgen", - en = "%s hidden", - fr = "%s caché", - it = "%s nascosto", - nl = "%s verborgen", - no = "%s skjult", - ro = "%s ascuns", + cs = "%a skryto", + de = "%a verborgen", + en = "%a hidden", + fr = "%a caché", + it = "%a nascosto", + nl = "%a verborgen", + no = "%a skjult", + ro = "%a ascuns", }, ["textblocks:8"] = { - cs = "%s vysazeno", - de = "%s gesetzt", - en = "%s typeset", - fr = "%s composé", - it = "%s composto", - nl = "%s gehandhaafd", - no = "%s tegnsatt", - ro = "%s cules", + cs = "%a vysazeno", + de = "%a gesetzt", + en = "%a typeset", + fr = "%a composé", + it = "%a composto", + nl = "%a gehandhaafd", + no = "%a tegnsatt", + ro = "%a cules", }, ["textblocks:9"] = { - cs = "%s nevysazeno", - de = "%s nicht gesetzt", - en = "%s not typeset", - fr = "%s non composé", - it = "%s non composto", - nl = "%s niet gehandhaafd", - no = "%s ikke tegnsatt", - ro = "%s nu este cules", + cs = "%a nevysazeno", + de = "%a nicht gesetzt", + en = "%a not typeset", + fr = "%a non composé", + it = "%a non composto", + nl = "%a niet gehandhaafd", + no = "%a ikke tegnsatt", + ro = "%a nu este cules", }, - ["unknown: library '%s'"] = { - nl = "onbekend: bibliotheek '%s'", + ["unknown: library %a"] = { + nl = "onbekend: bibliotheek %a", }, - ["used: code '%s'"] = { - nl = "gebruikt: code '%s'", + ["used: code %a"] = { + nl = "gebruikt: code %a", }, - ["used: code '%s', preamble '%s'"] = { - nl = "gebruikt: code '%s', preamble '%s'", + ["used: code %a, preamble %a"] = { + nl = "gebruikt: code %a, preamble %a", }, - ["used: function '%s'"] = { - nl = "gebruikt: functie '%s'", + ["used: function %a"] = { + nl = "gebruikt: functie %a", }, - ["used: preamble '%s', state '%s', order '%s'"] = { - nl = "gebruikt: preamble '%s', status '%s', volgorde '%s'", + ["used: preamble %a, state %a, order %a"] = { + nl = "gebruikt: preamble %a, status %a, volgorde %a", }, - ["vector '%s' is loaded"] = { - nl = "vector '%s' is geladen", + ["vector %a is loaded"] = { + nl = "vector %a is geladen", }, - ["vector '%s' is unknown"] = { - nl = "onbekende vector '%s'", + ["vector %a is unknown"] = { + nl = "onbekende vector %a", }, ["verbatims:1"] = { - cs = "soubor %s neexistuje", - de = "Datei %s existiert nicht", - en = "file %s does not exist", - fr = "le fichier %s n'existe pas", - it = "il file %s non esiste", - nl = "file %s bestaat niet", - no = "fil %s eksisterer ikke", - ro = "fisierul %s nu exista", + cs = "soubor %a neexistuje", + de = "Datei %a existiert nicht", + en = "file %a does not exist", + fr = "le fichier %a n'existe pas", + it = "il file %a non esiste", + nl = "file %a bestaat niet", + no = "fil %a eksisterer ikke", + ro = "fisierul %a nu exista", }, }, translations = { diff --git a/tex/context/base/mult-nl.mkii b/tex/context/base/mult-nl.mkii index cb0e25052..5f1bada7a 100644 --- a/tex/context/base/mult-nl.mkii +++ b/tex/context/base/mult-nl.mkii @@ -260,6 +260,7 @@ \setinterfacevariable{leftpage}{linkerpagina} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legenda} +\setinterfacevariable{less}{minder} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{line}{regel} \setinterfacevariable{linenote}{regelnoot} @@ -300,6 +301,7 @@ \setinterfacevariable{monday}{maandag} \setinterfacevariable{mono}{mono} \setinterfacevariable{month}{maand} +\setinterfacevariable{more}{meer} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{naam} \setinterfacevariable{narrow}{smal} diff --git a/tex/context/base/mult-pe.mkii b/tex/context/base/mult-pe.mkii index fdd2d5eda..f55a7ab59 100644 --- a/tex/context/base/mult-pe.mkii +++ b/tex/context/base/mult-pe.mkii @@ -260,6 +260,7 @@ \setinterfacevariable{leftpage}{صفحهچپ} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{راهنما} +\setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{شکستکلماتکمتر} \setinterfacevariable{line}{خط} \setinterfacevariable{linenote}{خطنوشت} @@ -300,6 +301,7 @@ \setinterfacevariable{monday}{دوشنبه} \setinterfacevariable{mono}{مونو} \setinterfacevariable{month}{ماه} +\setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{شکستکلماتبیشتر} \setinterfacevariable{name}{نام} \setinterfacevariable{narrow}{نازک} diff --git a/tex/context/base/mult-ro.mkii b/tex/context/base/mult-ro.mkii index 17a870310..34dd385a3 100644 --- a/tex/context/base/mult-ro.mkii +++ b/tex/context/base/mult-ro.mkii @@ -260,6 +260,7 @@ \setinterfacevariable{leftpage}{paginastanga} \setinterfacevariable{lefttoright}{lefttoright} \setinterfacevariable{legend}{legenda} +\setinterfacevariable{less}{less} \setinterfacevariable{lesshyphenation}{lesshyphenation} \setinterfacevariable{line}{linie} \setinterfacevariable{linenote}{linenote} @@ -300,6 +301,7 @@ \setinterfacevariable{monday}{luni} \setinterfacevariable{mono}{mono} \setinterfacevariable{month}{luna} +\setinterfacevariable{more}{more} \setinterfacevariable{morehyphenation}{morehyphenation} \setinterfacevariable{name}{nume} \setinterfacevariable{narrow}{ingust} diff --git a/tex/context/base/scrn-but.lua b/tex/context/base/scrn-but.lua index b5b0a8ae4..e49372ce9 100644 --- a/tex/context/base/scrn-but.lua +++ b/tex/context/base/scrn-but.lua @@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['scrn-but'] = { license = "see context related readme files" } -local format = string.format +local f_two_colon = string.formatters["%s:%s"] function commands.registerbuttons(tag,register,language) local data = sorters.definitions[language] @@ -14,6 +14,6 @@ function commands.registerbuttons(tag,register,language) local tag = tag == "" and { "" } or { tag } for i=1,#orders do local order = orders[i] - context.menubutton(tag,format("%s:%s",register,order),order) + context.menubutton(tag,f_two_colon(register,order),order) end end diff --git a/tex/context/base/spac-ver.lua b/tex/context/base/spac-ver.lua index 1120675f1..cb38a4d66 100644 --- a/tex/context/base/spac-ver.lua +++ b/tex/context/base/spac-ver.lua @@ -767,7 +767,7 @@ function vspacing.snapbox(n,how) if false then -- todo: already_done -- assume that the box is already snapped if trace_vsnapping then - report_snapper("box list already snapped at (%s,%s): %s", + report_snapper("box list already snapped at (%p,%p): %s", ht,dp,listtoutf(list)) end else diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf Binary files differindex 7b3262411..91c1fcf64 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf Binary files differindex 36f38780e..877cdb237 100644 --- a/tex/context/base/status-lua.pdf +++ b/tex/context/base/status-lua.pdf diff --git a/tex/context/base/strc-ini.lua b/tex/context/base/strc-ini.lua index 2e30d9310..fd7c10f79 100644 --- a/tex/context/base/strc-ini.lua +++ b/tex/context/base/strc-ini.lua @@ -20,7 +20,7 @@ but it does not make sense to store all processdata. ]]-- -local format = string.format +local formatters = string.formatters local lpegmatch = lpeg.match local count = tex.count local type, next, tonumber, select = type, next, tonumber, select @@ -190,7 +190,7 @@ local tags = { -- (optionally) as a setups to be applied but keep in mind that document setups -- also get applied (when they use #1's). -- --- local command = format("\\xmlprocessbuffer{%s}{%s}{}",metadata.xmlroot or "main",tag) +-- local command = formatters["\\xmlprocessbuffer{%s}{%s}{}"](metadata.xmlroot or "main",tag) local experiment = true @@ -201,7 +201,7 @@ function helpers.title(title,metadata) -- coding is xml is rather old and not th if metadata.coding == "xml" then -- title can contain raw xml local tag = tags[metadata.kind] or tags.generic - local xmldata = format("<?xml version='1.0'?><%s>%s</%s>",tag,title,tag) + local xmldata = formatters["<?xml version='1.0'?><%s>%s</%s>"](tag,title,tag) if not experiment then buffers.assign(tag,xmldata) end diff --git a/tex/context/base/strc-lev.lua b/tex/context/base/strc-lev.lua index 4ca049d7a..50a63c938 100644 --- a/tex/context/base/strc-lev.lua +++ b/tex/context/base/strc-lev.lua @@ -6,7 +6,6 @@ if not modules then modules = { } end modules ['strc-lev'] = { license = "see context related readme files" } -local format = string.format local insert, remove = table.insert, table.remove local sections = structures.sections @@ -18,6 +17,8 @@ local level, levels, categories = 0, sections.levels, { } storage.register("structures/sections/levels", levels, "structures.sections.levels") +local f_two_colon = string.formatters["%s:%s"] + function commands.definesectionlevels(category,list) levels[category] = utilities.parsers.settings_to_array(list) end @@ -27,7 +28,7 @@ function commands.startsectionlevel(category) level = level + 1 local lc = levels[category] if not lc or level > #lc then - context.nostarthead { format("%s:%s",category,level) } + context.nostarthead { f_two_colon(category,level) } else context.dostarthead { lc[level] } end @@ -39,7 +40,7 @@ function commands.stopsectionlevel() if category then local lc = levels[category] if not lc or level > #lc then - context.nostophead { format("%s:%s",category,level) } + context.nostophead { f_two_colon(category,level) } else context.dostophead { lc[level] } end diff --git a/tex/context/base/strc-lst.lua b/tex/context/base/strc-lst.lua index 104a7b7bb..e3c0d60a9 100644 --- a/tex/context/base/strc-lst.lua +++ b/tex/context/base/strc-lst.lua @@ -411,7 +411,7 @@ local function filtercollected(names, criterium, number, collected, forced, nest local number = tonumber(number) or numberatdepth(depth) or 0 if trace_lists then local t = sections.numbers() - detail = format("depth: %s, number: %s, numbers: %s, startset: %s",depth,number,(#t>0 and concat(t,".",1,depth)) or "?",#collected) + detail = format("depth %s, number %s, numbers %s, startset %s",depth,number,(#t>0 and concat(t,".",1,depth)) or "?",#collected) end if number > 0 then local pnumbers = nil diff --git a/tex/context/base/strc-pag.lua b/tex/context/base/strc-pag.lua index bce965546..f70d37d63 100644 --- a/tex/context/base/strc-pag.lua +++ b/tex/context/base/strc-pag.lua @@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['strc-pag'] = { license = "see context related readme files" } -local texcount, format = tex.count, string.format +local texcount = tex.count local allocate, mark = utilities.storage.allocate, utilities.storage.mark @@ -94,8 +94,10 @@ function counters.specials.userpage() end end +local f_convert = string.formatters["\\convertnumber{%s}{%s}"] + local function convertnumber(str,n) - return format("\\convertnumber{%s}{%s}",str or "numbers",n) + return f_convert(str or "numbers",n) end function pages.number(realdata,pagespec) diff --git a/tex/context/base/strc-ref.lua b/tex/context/base/strc-ref.lua index 88a1dc480..b38608966 100644 --- a/tex/context/base/strc-ref.lua +++ b/tex/context/base/strc-ref.lua @@ -19,6 +19,7 @@ local texcount, texsetcount = tex.count, tex.setcount local rawget, tonumber = rawget, tonumber local lpegmatch = lpeg.match local copytable = table.copy +local formatters = string.formatters local allocate = utilities.storage.allocate local mark = utilities.storage.mark @@ -433,7 +434,7 @@ function references.urls.get(name) if u then local url, file = u[1], u[2] if file and file ~= "" then - return format("%s/%s",url,file) + return formatters["%s/%s"](url,file) else return url end @@ -1576,14 +1577,14 @@ end references.identify = identify -local unknowns, nofunknowns = { }, 0 +local unknowns, nofunknowns, f_valid = { }, 0, formatters["[%s][%s]"] function references.valid(prefix,reference,highlight,newwindow,layer) local set, bug = identify(prefix,reference) local unknown = bug or #set == 0 if unknown then currentreference = nil -- will go away - local str = format("[%s][%s]",prefix,reference) + local str = f_valid(prefix,reference) local u = unknowns[str] if not u then interfaces.showmessage("references",1,str) -- 1 = unknown, 4 = illegal @@ -1593,7 +1594,7 @@ function references.valid(prefix,reference,highlight,newwindow,layer) unknowns[str] = u + 1 end else - set.highlight, set.newwindow,set.layer = highlight, newwindow, layer + set.highlight, set.newwindow, set.layer = highlight, newwindow, layer currentreference = set[1] end -- we can do the expansion here which saves a call diff --git a/tex/context/base/trac-vis.lua b/tex/context/base/trac-vis.lua index 05b6c724c..39dc2b34d 100644 --- a/tex/context/base/trac-vis.lua +++ b/tex/context/base/trac-vis.lua @@ -10,6 +10,7 @@ local string, number, table = string, number, table local node, nodes, attributes, fonts, tex = node, nodes, attributes, fonts, tex local type = type local format = string.format +local formatters = string.formatters -- This module started out in the early days of mkiv and luatex with -- visualizing kerns related to fonts. In the process of cleaning up the @@ -200,10 +201,10 @@ local function setvisual(n,a,what) -- this will become more efficient when we ha visualizers.setfont(fonts.definers.define { name = "lmmonoltcond10regular", size = tex.sp("4pt") }) end for mode, value in next, modes do - local tag = format("v_%s",mode) + local tag = formatters["v_%s"](mode) attributes.viewerlayers.define { - tag = format(tag), - title = format("visualizer %s",mode), + tag = tag, + title = formatters["visualizer %s"](mode), visible = "start", editable = "yes", printable = "yes" @@ -248,7 +249,7 @@ local function set(mode,v) end for mode, value in next, modes do - trackers.register(format("visualizers.%s",mode), function(v) set(mode,v) end) + trackers.register(formatters["visualizers.%s"](mode), function(v) set(mode,v) end) end trackers.register("visualizers.reset", function(v) set("reset", v) end) @@ -305,7 +306,7 @@ local function fontkern(head,current) if info then -- print("hit fontkern") else - local text = fast_hpack_string(format(" %0.3f",kern*pt_factor),usedfont) + local text = fast_hpack_string(formatters[" %0.3f"](kern*pt_factor),usedfont) local rule = new_rule(emwidth/10,6*exheight,2*exheight) local list = text.list if kern > 0 then @@ -373,7 +374,7 @@ local function whatsit(head,current) -- print("hit whatsit") else local tag = whatsitcodes[what] - info = sometext(format("W:%s",tag and tags[tag] or what),usedfont) + info = sometext(formatters["W:%s"](tag and tags[tag] or what),usedfont) info[a_layer] = l_whatsit w_cache[what] = info end @@ -387,7 +388,7 @@ local function user(head,current) if info then -- print("hit user") else - info = sometext(format("U:%s",what),usedfont) + info = sometext(formatters["U:%s"](what),usedfont) info[a_layer] = l_user w_cache[what] = info end @@ -587,7 +588,7 @@ local function ruledglue(head,current,vertical) local spec = current.spec local width = spec.width local subtype = current.subtype - local amount = format("%s:%0.3f",tags[subtype] or (vertical and "VS") or "HS",width*pt_factor) + local amount = formatters["%s:%0.3f"](tags[subtype] or (vertical and "VS") or "HS",width*pt_factor) local info = g_cache[amount] if info then -- print("glue hit") @@ -625,7 +626,7 @@ local function ruledkern(head,current,vertical) if info then -- print("kern hit") else - local amount = format("%s:%0.3f",vertical and "VK" or "HK",kern*pt_factor) + local amount = formatters["%s:%0.3f"](vertical and "VK" or "HK",kern*pt_factor) if kern > 0 then info = sometext(amount,l_kern,c_positive) elseif kern < 0 then @@ -651,7 +652,7 @@ local function ruledpenalty(head,current,vertical) if info then -- print("penalty hit") else - local amount = format("%s:%s",vertical and "VP" or "HP",penalty) + local amount = formatters["%s:%s"](vertical and "VP" or "HP",penalty) if penalty > 0 then info = sometext(amount,l_penalty,c_positive) elseif penalty < 0 then diff --git a/tex/context/base/typo-mar.lua b/tex/context/base/typo-mar.lua index 9f9fe9168..ec827883d 100644 --- a/tex/context/base/typo-mar.lua +++ b/tex/context/base/typo-mar.lua @@ -56,19 +56,19 @@ if not modules then modules = { } end modules ['typo-mar'] = { -- local latelua = nodes.pool.latelua -- -- function anchors.node_set(tag) --- return latelua(format("anchors.set(%q)",tag)) +-- return latelua(formatters["anchors.set(%q)"](tag)) -- end -- -- function anchors.node_reset(tag) --- return latelua(format("anchors.reset(%q)",tag)) +-- return latelua(formatters["anchors.reset(%q)"](tag)) -- end -- -- function anchors.node_start_move(tag,how) --- return latelua(format("anchors.startmove(%q,%q)",tag,how)) +-- return latelua(formatters["anchors.startmove(%q,%q)](tag,how)) -- end -- -- function anchors.node_stop_move(tag) --- return latelua(format("anchors.stopmove(%q)",tag)) +-- return latelua(formatters["anchors.stopmove(%q)"](tag)) -- end -- so far diff --git a/tex/context/base/x-chemml.lua b/tex/context/base/x-chemml.lua index 64bbb3408..79c1d9525 100644 --- a/tex/context/base/x-chemml.lua +++ b/tex/context/base/x-chemml.lua @@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['x-chemml'] = { -- not yet acceptable cld -local format, lower, upper, gsub, sub = string.format, string.lower, string.upper, string.gsub, string.sub +local format, lower, upper, gsub, sub, match = string.format, string.lower, string.upper, string.gsub, string.sub, string.match local concat = table.concat local chemml = { } @@ -17,7 +17,7 @@ moduledata.chemml = chemml function chemml.pi(id) local str = xml.content(lxml.id(id)) - local _, class, key, value = str:match("^(%S+)%s+(%S+)%s+(%S+)%s+(%S+)%s*$") + local _, class, key, value = match(str,"^(%S+)%s+(%S+)%s+(%S+)%s+(%S+)%s*$") if key and value then context("\\setupCMLappearance[%s][%s=%s]",class, key, value) end diff --git a/tex/context/interface/keys-cs.xml b/tex/context/interface/keys-cs.xml index d23b118bf..ad0cf2dca 100644 --- a/tex/context/interface/keys-cs.xml +++ b/tex/context/interface/keys-cs.xml @@ -263,6 +263,7 @@ <cd:variable name='leftpage' value='levastranka'/> <cd:variable name='lefttoright' value='lefttoright'/> <cd:variable name='legend' value='legenda'/> + <cd:variable name='less' value='less'/> <cd:variable name='lesshyphenation' value='lesshyphenation'/> <cd:variable name='line' value='radek'/> <cd:variable name='linenote' value='linenote'/> @@ -303,6 +304,7 @@ <cd:variable name='monday' value='pondeli'/> <cd:variable name='mono' value='mono'/> <cd:variable name='month' value='mesic'/> + <cd:variable name='more' value='more'/> <cd:variable name='morehyphenation' value='morehyphenation'/> <cd:variable name='name' value='jmeno'/> <cd:variable name='narrow' value='uzky'/> diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml index 8212bbcee..5d107ca40 100644 --- a/tex/context/interface/keys-de.xml +++ b/tex/context/interface/keys-de.xml @@ -263,6 +263,7 @@ <cd:variable name='leftpage' value='linkerseite'/> <cd:variable name='lefttoright' value='lefttoright'/> <cd:variable name='legend' value='legende'/> + <cd:variable name='less' value='less'/> <cd:variable name='lesshyphenation' value='lesshyphenation'/> <cd:variable name='line' value='zeile'/> <cd:variable name='linenote' value='linenote'/> @@ -303,6 +304,7 @@ <cd:variable name='monday' value='montag'/> <cd:variable name='mono' value='mono'/> <cd:variable name='month' value='monat'/> + <cd:variable name='more' value='more'/> <cd:variable name='morehyphenation' value='morehyphenation'/> <cd:variable name='name' value='name'/> <cd:variable name='narrow' value='schmall'/> diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml index a45d0fa74..d9166d107 100644 --- a/tex/context/interface/keys-en.xml +++ b/tex/context/interface/keys-en.xml @@ -263,6 +263,7 @@ <cd:variable name='leftpage' value='leftpage'/> <cd:variable name='lefttoright' value='lefttoright'/> <cd:variable name='legend' value='legend'/> + <cd:variable name='less' value='less'/> <cd:variable name='lesshyphenation' value='lesshyphenation'/> <cd:variable name='line' value='line'/> <cd:variable name='linenote' value='linenote'/> @@ -303,6 +304,7 @@ <cd:variable name='monday' value='monday'/> <cd:variable name='mono' value='mono'/> <cd:variable name='month' value='month'/> + <cd:variable name='more' value='more'/> <cd:variable name='morehyphenation' value='morehyphenation'/> <cd:variable name='name' value='name'/> <cd:variable name='narrow' value='narrow'/> diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml index 3736c85db..c98826cf3 100644 --- a/tex/context/interface/keys-fr.xml +++ b/tex/context/interface/keys-fr.xml @@ -263,6 +263,7 @@ <cd:variable name='leftpage' value='pagegauche'/> <cd:variable name='lefttoright' value='lefttoright'/> <cd:variable name='legend' value='legende'/> + <cd:variable name='less' value='less'/> <cd:variable name='lesshyphenation' value='lesshyphenation'/> <cd:variable name='line' value='ligne'/> <cd:variable name='linenote' value='noteligne'/> @@ -303,6 +304,7 @@ <cd:variable name='monday' value='lundi'/> <cd:variable name='mono' value='mono'/> <cd:variable name='month' value='mois'/> + <cd:variable name='more' value='more'/> <cd:variable name='morehyphenation' value='morehyphenation'/> <cd:variable name='name' value='nom'/> <cd:variable name='narrow' value='etroit'/> diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml index a007be298..afe3b8360 100644 --- a/tex/context/interface/keys-it.xml +++ b/tex/context/interface/keys-it.xml @@ -263,6 +263,7 @@ <cd:variable name='leftpage' value='paginasinistra'/> <cd:variable name='lefttoright' value='lefttoright'/> <cd:variable name='legend' value='legenda'/> + <cd:variable name='less' value='less'/> <cd:variable name='lesshyphenation' value='lesshyphenation'/> <cd:variable name='line' value='riga'/> <cd:variable name='linenote' value='linenote'/> @@ -303,6 +304,7 @@ <cd:variable name='monday' value='lunedi'/> <cd:variable name='mono' value='mono'/> <cd:variable name='month' value='mese'/> + <cd:variable name='more' value='more'/> <cd:variable name='morehyphenation' value='morehyphenation'/> <cd:variable name='name' value='nome'/> <cd:variable name='narrow' value='stretto'/> diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml index cfa2d94bf..226c96839 100644 --- a/tex/context/interface/keys-nl.xml +++ b/tex/context/interface/keys-nl.xml @@ -263,6 +263,7 @@ <cd:variable name='leftpage' value='linkerpagina'/> <cd:variable name='lefttoright' value='lefttoright'/> <cd:variable name='legend' value='legenda'/> + <cd:variable name='less' value='minder'/> <cd:variable name='lesshyphenation' value='lesshyphenation'/> <cd:variable name='line' value='regel'/> <cd:variable name='linenote' value='regelnoot'/> @@ -303,6 +304,7 @@ <cd:variable name='monday' value='maandag'/> <cd:variable name='mono' value='mono'/> <cd:variable name='month' value='maand'/> + <cd:variable name='more' value='meer'/> <cd:variable name='morehyphenation' value='morehyphenation'/> <cd:variable name='name' value='naam'/> <cd:variable name='narrow' value='smal'/> diff --git a/tex/context/interface/keys-pe.xml b/tex/context/interface/keys-pe.xml index 5c3420a21..9303c29fd 100644 --- a/tex/context/interface/keys-pe.xml +++ b/tex/context/interface/keys-pe.xml @@ -263,6 +263,7 @@ <cd:variable name='leftpage' value='صفحهچپ'/> <cd:variable name='lefttoright' value='lefttoright'/> <cd:variable name='legend' value='راهنما'/> + <cd:variable name='less' value='less'/> <cd:variable name='lesshyphenation' value='شکستکلماتکمتر'/> <cd:variable name='line' value='خط'/> <cd:variable name='linenote' value='خطنوشت'/> @@ -303,6 +304,7 @@ <cd:variable name='monday' value='دوشنبه'/> <cd:variable name='mono' value='مونو'/> <cd:variable name='month' value='ماه'/> + <cd:variable name='more' value='more'/> <cd:variable name='morehyphenation' value='شکستکلماتبیشتر'/> <cd:variable name='name' value='نام'/> <cd:variable name='narrow' value='نازک'/> diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml index b4f8f6276..29368c9bc 100644 --- a/tex/context/interface/keys-ro.xml +++ b/tex/context/interface/keys-ro.xml @@ -263,6 +263,7 @@ <cd:variable name='leftpage' value='paginastanga'/> <cd:variable name='lefttoright' value='lefttoright'/> <cd:variable name='legend' value='legenda'/> + <cd:variable name='less' value='less'/> <cd:variable name='lesshyphenation' value='lesshyphenation'/> <cd:variable name='line' value='linie'/> <cd:variable name='linenote' value='linenote'/> @@ -303,6 +304,7 @@ <cd:variable name='monday' value='luni'/> <cd:variable name='mono' value='mono'/> <cd:variable name='month' value='luna'/> + <cd:variable name='more' value='more'/> <cd:variable name='morehyphenation' value='morehyphenation'/> <cd:variable name='name' value='nume'/> <cd:variable name='narrow' value='ingust'/> diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 9445993e2..4aac7d36b 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 03/15/13 11:59:36 +-- merge date : 03/15/13 19:22:42 do -- begin closure to overcome local limits and interference @@ -164,7 +164,7 @@ local function loadedaslib(resolved,rawname) end local function loadedbylua(name) if helpers.trace then - helpers.report("! locating %q using normal loader",name) + helpers.report("! locating '%s' using normal loader",name) end return searchers[-2](name) end @@ -172,17 +172,17 @@ local function loadedbypath(name,rawname,paths,islib,what) local trace=helpers.trace local report=helpers.report if trace then - report("! locating %q as %q on %q paths",rawname,name,what) + report("! locating '%s' as '%s' on '%s' paths",rawname,name,what) end for p=1,#paths do local path=paths[p] local resolved=filejoin(path,name) if trace then - report("! checking for %q using %q path %q",name,what,path) + report("! checking for '%s' using '%s' path '%s'",name,what,path) end if isreadable(resolved) then if trace then - report("! lib %q located on %q",name,resolved) + report("! lib '%s' located on '%s'",name,resolved) end if islib then return loadedaslib(resolved,rawname) @@ -194,7 +194,7 @@ local function loadedbypath(name,rawname,paths,islib,what) end local function notloaded(name) if helpers.trace then - helpers.report("? unable to locate library %q",name) + helpers.report("? unable to locate library '%s'",name) end end helpers.loadedaslib=loadedaslib @@ -869,7 +869,7 @@ function string.escapedpattern(str,simple) return lpegmatch(simple and pattern_b or pattern_a,str) end function string.topattern(str,lowercase,strict) - if str=="" then + if str=="" or type(str)~="string" then return ".*" elseif strict then str=lpegmatch(pattern_c,str) @@ -5582,7 +5582,7 @@ actions["add dimensions"]=function(data,filename) if not wd then d.width=defaultwidth elseif trace_markwidth and wd~=0 and d.class=="mark" then - report_otf("mark %a with width %b found in %s",d.name or "<noname>",wd,basename) + report_otf("mark %a with width %b found in %a",d.name or "<noname>",wd,basename) end setmetatable(d,mt) end @@ -5592,7 +5592,7 @@ actions["add dimensions"]=function(data,filename) if not wd then d.width=defaultwidth elseif trace_markwidth and wd~=0 and d.class=="mark" then - report_otf("mark %a with width %b found in %s",d.name or "<noname>",wd,basename) + report_otf("mark %a with width %b found in %a",d.name or "<noname>",wd,basename) end if bb then local ht,dp=bb[4],-bb[2] @@ -7075,7 +7075,7 @@ local function finalize_ligatures(tfmdata,ligatures) if ligature then local unicode,lookupdata=ligature[1],ligature[2] if trace then - trace_ligatures_detail("building %q into %q",concat(lookupdata," "),unicode) + trace_ligatures_detail("building % a into %a",lookupdata,unicode) end local size=#lookupdata local firstcode=lookupdata[1] @@ -7088,7 +7088,7 @@ local function finalize_ligatures(tfmdata,ligatures) if not firstdata then firstcode=private if trace then - trace_ligatures_detail("defining %q as %q",firstname,firstcode) + trace_ligatures_detail("defining %a as %a",firstname,firstcode) end unicodes[firstname]=firstcode firstdata={ intermediate=true,ligatures={} } @@ -7112,7 +7112,7 @@ local function finalize_ligatures(tfmdata,ligatures) end end if trace then - trace_ligatures_detail("codes (%s,%s) + (%s,%s) -> %s",firstname,firstcode,secondname,secondcode,target) + trace_ligatures_detail("codes (%a,%a) + (%a,%a) -> %a",firstname,firstcode,secondname,secondcode,target) end local firstligs=firstdata.ligatures if firstligs then @@ -8588,12 +8588,12 @@ function handlers.gsub_alternate(head,start,kind,lookupname,alternative,sequence local choice=get_alternative_glyph(start,alternative,value) if choice then if trace_alternatives then - logprocess("%s: replacing %s by alternative %s (%s)",pref(kind,lookupname),gref(start.char),gref(choice),choice) + logprocess("%s: replacing %s by alternative %a to %s",pref(kind,lookupname),gref(start.char),choice,gref(choice)) end start.char=choice else if trace_alternatives then - logwarning("%s: no variant %s for %s",pref(kind,lookupname),tostring(value),gref(start.char)) + logwarning("%s: no variant %a for %s",pref(kind,lookupname),value,gref(start.char)) end end return head,start,true @@ -9116,12 +9116,12 @@ function chainprocs.gsub_alternate(head,start,stop,kind,chainname,currentcontext local choice=get_alternative_glyph(current,alternatives,value) if choice then if trace_alternatives then - logprocess("%s: replacing %s by alternative %s (%s)",cref(kind,chainname,chainlookupname,lookupname),gref(char),gref(choice),choice) + logprocess("%s: replacing %s by alternative %a to %s",cref(kind,chainname,chainlookupname,lookupname),gref(char),choice,gref(choice)) end start.char=choice else if trace_alternatives then - logwarning("%s: no variant %s for %s",cref(kind,chainname,chainlookupname,lookupname),tostring(value),gref(char)) + logwarning("%s: no variant %a for %s",cref(kind,chainname,chainlookupname,lookupname),value,gref(char)) end end elseif trace_bugs then @@ -9545,9 +9545,9 @@ function chainprocs.gpos_pair(head,start,stop,kind,chainname,currentcontext,look end local function show_skip(kind,chainname,char,ck,class) if ck[9] then - logwarning("%s: skipping char %s (%s) in rule %s, lookuptype %s (%s=>%s)",cref(kind,chainname),gref(char),class,ck[1],ck[2],ck[9],ck[10]) + logwarning("%s: skipping char %s, class %a, rule %a, lookuptype %a, %a => %a",cref(kind,chainname),gref(char),class,ck[1],ck[2],ck[9],ck[10]) else - logwarning("%s: skipping char %s (%s) in rule %s, lookuptype %s",cref(kind,chainname),gref(char),class,ck[1],ck[2]) + logwarning("%s: skipping char %s, class %a, rule %a, lookuptype %a",cref(kind,chainname),gref(char),class,ck[1],ck[2]) end end local function normal_handle_contextchain(head,start,kind,chainname,contexts,sequence,lookuphash) @@ -9743,10 +9743,10 @@ local function normal_handle_contextchain(head,start,kind,chainname,contexts,seq local rule,lookuptype,f,l=ck[1],ck[2],ck[4],ck[5] local char=start.char if ck[9] then - logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %s (%s=>%s)", + logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %a, %a => %a", cref(kind,chainname),rule,gref(char),f-1,l-f+1,s-l,lookuptype,ck[9],ck[10]) else - logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %s", + logwarning("%s: rule %s matches at char %s for (%s,%s,%s) chars, lookuptype %a", cref(kind,chainname),rule,gref(char),f-1,l-f+1,s-l,lookuptype) end end @@ -9834,7 +9834,7 @@ function otf.setcontextchain(method) end handlers.contextchain=normal_handle_contextchain else - logwarning("installing contextchain handler '%s'",method) + logwarning("installing contextchain handler %a",method) local handler=otf.chainhandlers[method] handlers.contextchain=function(...) return handler(currentfont,...) @@ -9860,7 +9860,7 @@ local function report_missing_cache(typ,lookup) local t=f[typ] if not t then t={} f[typ]=t end if not t[lookup] then t[lookup]=true - logwarning("missing cache for lookup %s of type %s in font %s (%s)",lookup,typ,currentfont,tfmdata.properties.fullname) + logwarning("missing cache for lookup %a, type %a, font %a, name %a",lookup,typ,currentfont,tfmdata.properties.fullname) end end local resolved={} |