summaryrefslogtreecommitdiff
path: root/tex/context/base/mult-ini.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mult-ini.lua')
-rw-r--r--tex/context/base/mult-ini.lua74
1 files changed, 49 insertions, 25 deletions
diff --git a/tex/context/base/mult-ini.lua b/tex/context/base/mult-ini.lua
index 383ad0287..73de836db 100644
--- a/tex/context/base/mult-ini.lua
+++ b/tex/context/base/mult-ini.lua
@@ -14,16 +14,20 @@ local texsprint = tex.sprint
local report_interface = logs.reporter("interface","initialization")
-interfaces = interfaces or { }
-interfaces.messages = interfaces.messages or { }
-interfaces.constants = interfaces.constants or { }
-interfaces.variables = interfaces.variables or { }
-interfaces.elements = interfaces.elements or { }
-
-storage.register("interfaces/messages", interfaces.messages, "interfaces.messages")
-storage.register("interfaces/constants", interfaces.constants, "interfaces.constants")
-storage.register("interfaces/variables", interfaces.variables, "interfaces.variables")
-storage.register("interfaces/elements", interfaces.elements, "interfaces.elements")
+interfaces = interfaces or { }
+interfaces.messages = interfaces.messages or { }
+interfaces.constants = interfaces.constants or { }
+interfaces.variables = interfaces.variables or { }
+interfaces.elements = interfaces.elements or { }
+interfaces.formats = interfaces.formats or { }
+interfaces.translations = interfaces.translations or { }
+
+storage.register("interfaces/messages", interfaces.messages, "interfaces.messages")
+storage.register("interfaces/constants", interfaces.constants, "interfaces.constants")
+storage.register("interfaces/variables", interfaces.variables, "interfaces.variables")
+storage.register("interfaces/elements", interfaces.elements, "interfaces.elements")
+storage.register("interfaces/formats", interfaces.formats, "interfaces.formats")
+storage.register("interfaces/translations", interfaces.translations, "interfaces.translations")
interfaces.interfaces = {
"cs", "de", "en", "fr", "it", "nl", "ro", "pe",
@@ -37,28 +41,32 @@ local currentresponse = storage.shared.currentresponse
local complete = { } interfaces.complete = complete
-setmetatable(complete, { __index = function(t,k)
+setmetatable(complete, { __index = function(t,k) -- one access needed to get loaded
report_interface("loading interface definitions from 'mult-def.lua'")
complete = dofile(resolvers.findfile("mult-def.lua"))
report_interface("loading interface messages from 'mult-mes.lua'")
complete.messages = dofile(resolvers.findfile("mult-mes.lua"))
interfaces.complete = complete
- return complete[k]
+ return rawget(complete,k)
end } )
-local messages = interfaces.messages
-local constants = interfaces.constants
-local variables = interfaces.variables
-local elements = interfaces.elements
-local reporters = { } -- just an optimization
+local messages = interfaces.messages
+local constants = interfaces.constants
+local variables = interfaces.variables
+local elements = interfaces.elements
+local formats = interfaces.formats
+local translations = interfaces.translations
+local reporters = { } -- just an optimization
-local valueiskey = { __index = function(t,k) t[k] = k return k end }
+local valueiskey = { __index = function(t,k) t[k] = k return k end } -- will be helper
-setmetatable(variables,valueiskey)
-setmetatable(constants,valueiskey)
-setmetatable(elements, valueiskey)
+setmetatable(variables, valueiskey)
+setmetatable(constants, valueiskey)
+setmetatable(elements, valueiskey)
+setmetatable(formats, valueiskey)
+setmetatable(translations, valueiskey)
-setmetatable(messages, { __index = function(t,k) local v = { } ; t[k] = v ; return v end })
+setmetatable(messages, { __index = function(t,k) local v = { } ; t[k] = v ; return v end })
setmetatable(reporters, { __index = function(t,k) local v = logs.reporter(k) ; t[k] = v ; return v end })
for category, m in next, messages do
@@ -127,6 +135,10 @@ function interfaces.setelement(element,given)
elements[given] = element
end
+-- the real thing:
+
+logs.setmessenger(context.verbatim.ctxreport)
+
-- status
function commands.writestatus(category,message)
@@ -172,7 +184,7 @@ function interfaces.setuserinterface(interface,response)
nofcommands = nofcommands + 1
end
local nofmessages = 0
- for category, message in next, complete.messages do
+ for category, message in next, complete.messages.originals do
local m = messages[category]
for tag, set in next, message do
if tag ~= "files" then
@@ -181,8 +193,20 @@ function interfaces.setuserinterface(interface,response)
end
nofmessages = nofmessages + 1
end
- report_interface("definitions: %s constants, %s variables, %s elements, %s commands, %s message groups",
- nofconstants,nofvariables,nofelements,nofcommands,nofmessages)
+ -- experimental code:
+ local nofformats = 0
+ for given, format in next, complete.messages.formats do
+ formats[given] = format[interface] or format.en or given
+ nofformats = nofformats + 1
+ end
+ local noftranslations = 0
+ for given, translation in next, complete.messages.translations do
+ 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 message groups, % formats, %s translations",
+ nofconstants,nofvariables,nofelements,nofcommands,nofmessages,nofformats,noftranslations)
end
end