diff options
Diffstat (limited to 'tex/context/base/lang-def.lua')
| -rw-r--r-- | tex/context/base/lang-def.lua | 47 | 
1 files changed, 20 insertions, 27 deletions
| diff --git a/tex/context/base/lang-def.lua b/tex/context/base/lang-def.lua index c6bbcf3ae..80ff13beb 100644 --- a/tex/context/base/lang-def.lua +++ b/tex/context/base/lang-def.lua @@ -1,18 +1,15 @@ -if not modules then modules = { } end modules ['lang-def'] = { +if not modules then modules = { } end modules ['lang-ini'] = {      version   = 1.001,      comment   = "companion to lang-ini.mkiv",      author    = "Hans Hagen, PRAGMA-ADE, Hasselt NL",      copyright = "PRAGMA ADE / ConTeXt Development Team",      license   = "see context related readme files" - -- dataonly  = true, -- saves 10K  } -local rawget = rawget  local lower = string.lower  languages               = languages or { }  local languages         = languages -languages.data          = languages.data or { }  local data              = languages.data  local allocate          = utilities.storage.allocate @@ -379,54 +376,50 @@ local contexts  = { }   data.contexts  = contexts  local records   = { }   data.records   = records  for k=1,#specifications do -    local specification = specifications[k] -    local variant = specification.variant -    if variant then -        variants[lower(variant)] = specification +    local v = specifications[k] +    if v.variant then +        variants[v.variant] = v      end -    local opentype = specification.opentype -    if opentype then -        opentypes[lower(opentype)] = specification +    if v.opentype then +        opentypes[v.opentype] = v      end -    local context = context -    if context then -        if type(context) == "table" then -            for k=1,#context do -                contexts[context[k]] = specification +    local vc = v.context +    if vc then +        if type(vc) == "table" then +            for k=1,#vc do +                contexts[v] = vc[k]              end          else -            contexts[context] = specification +            contexts[vc] = v          end      end  end -local defaultvariant = variants["en-us"] -  setmetatableindex(variants, function(t,k) -    k = lower(k) -    local v = (rawget(variants,k) or rawget(opentypes,k) or rawget(contexts,k) or defaultvariant).language +    str = lower(str) +    local v = (l_variant[str] or l_opentype[str] or l_context[str] or l_variant.en).language      t[k] = v      return v  end)  setmetatableindex(opentypes, function(t,k) -    k = lower(k) -    local v = (rawget(variants,k) or rawget(opentypes,k) or rawget(contexts,k) or defaultvariant).opentype +    str = lower(str) +    local v = (l_variant[str] or l_opentype[str] or l_context[str] or l_variant.en).opentype      t[k] = v      return v  end)  setmetatableindex(contexts, function(t,k) -    k = lower(str) -    local v = (rawget(variants,k) or rawget(opentypes,k) or rawget(contexts,k) or defaultvariant).context +    str = lower(str) +    local v = (l_variant[str] or l_opentype[str] or l_context[str] or l_variant[languages.default]).context      v = (type(v) == "table" and v[1]) or v      t[k] = v      return v  end)  setmetatableindex(records, function(t,k) -- how useful is this one? -    k = lower(k) -    local v = rawget(variants,k) or rawget(opentypes,k) or rawget(contexts,k) or defaultvariant +    str = lower(str) +    local v = variants[str] or opentypes[str] or contexts[str] or variants.en      t[k] = v      return v  end) | 
