rev |
line source |
jbe@324
|
1 --[[--
|
jbe@324
|
2 translated_string = -- translated string
|
jbe@324
|
3 _(
|
jbe@324
|
4 string_to_translate, -- string to translate
|
jbe@324
|
5 {
|
jbe@324
|
6 placeholder_name1 = text1, -- replace all occurrences of "#{placeholder_name1}" with the string text1
|
jbe@324
|
7 placeholder_name2 = text2, -- replace all occurrences of "#{placeholder_name2}" with the string text2
|
jbe@324
|
8 ...
|
jbe@324
|
9 }
|
jbe@324
|
10 )
|
jbe@324
|
11
|
jbe@325
|
12 Translation function for localization. The "_" function translates a given string to the currently selected language (see locale.set{...}). If the translated string contains placeholders in the form #{name}, then those placeholders may be automatically replaced with a corresponding substring which is taken from the table passed as optional second argument.
|
jbe@325
|
13
|
jbe@325
|
14 Hint: Lua's syntax rules allow to write _"text" as a shortcut for _("text"), or _'text' instead of _('text') respectivly.
|
jbe@324
|
15
|
jbe@324
|
16 --]]--
|
jbe@324
|
17
|
jbe@324
|
18 function _G._(text, replacements)
|
jbe/bsw@0
|
19 local text = locale._get_translation_table()[text] or text
|
jbe/bsw@0
|
20 if replacements then
|
jbe/bsw@0
|
21 return (
|
jbe/bsw@0
|
22 string.gsub(
|
jbe/bsw@0
|
23 text,
|
jbe/bsw@0
|
24 "#{(.-)}",
|
jbe/bsw@0
|
25 function (placeholder)
|
jbe/bsw@0
|
26 return replacements[placeholder]
|
jbe/bsw@0
|
27 end
|
jbe/bsw@0
|
28 )
|
jbe/bsw@0
|
29 )
|
jbe/bsw@0
|
30 else
|
jbe/bsw@0
|
31 return text
|
jbe/bsw@0
|
32 end
|
jbe/bsw@0
|
33 end
|
jbe@324
|
34 --//--
|
jbe@203
|
35
|
jbe@203
|
36 --[[--
|
jbe@203
|
37 cloned_table = -- newly generated table
|
jbe@203
|
38 table.new(
|
jbe@203
|
39 table_or_nil -- keys of a given table will be copied to the new table
|
jbe@203
|
40 )
|
jbe@203
|
41
|
jbe@203
|
42 If a table is given, then a cloned table is returned.
|
jbe@203
|
43 If nil is given, then a new empty table is returned.
|
jbe@203
|
44
|
jbe@203
|
45 --]]--
|
jbe@203
|
46 function table.new(tbl)
|
jbe@240
|
47 local new_tbl = {}
|
jbe@203
|
48 if tbl then
|
jbe@203
|
49 for key, value in pairs(tbl) do
|
jbe@203
|
50 new_tbl[key] = value
|
jbe@203
|
51 end
|
jbe@203
|
52 end
|
jbe@203
|
53 return new_tbl
|
jbe@203
|
54 end
|
jbe@203
|
55 --//--
|
jbe@203
|
56
|
jbe@495
|
57 --[[--
|
jbe@495
|
58 table.insert(
|
jbe@495
|
59 t, -- table
|
jbe@495
|
60 index, -- optional index
|
jbe@495
|
61 value -- value
|
jbe@495
|
62 )
|
jbe@495
|
63
|
jbe@495
|
64 Custom implementation of Lua's table.insert(...) where table.insert(table, value) also respects metamethods in Lua 5.2 (this behavior is already supported by Lua 5.3).
|
jbe@495
|
65
|
jbe@495
|
66 --]]--
|
jbe@498
|
67 if _VERSION == "Lua 5.2" then
|
jbe@495
|
68 local old_insert = table.insert
|
jbe@495
|
69 function table.insert(...)
|
jbe@498
|
70 if select("#", ...) == 2 then
|
jbe@495
|
71 local t, value = ...
|
jbe@495
|
72 t[#t+1] = value
|
jbe@495
|
73 return
|
jbe@495
|
74 end
|
jbe@495
|
75 return old_insert(...)
|
jbe@495
|
76 end
|
jbe@495
|
77 end
|
jbe@495
|
78 --//--
|
jbe@495
|
79
|
jbe@352
|
80 -- load libraries
|
jbe@352
|
81 -- (except "extos", which has to be loaded earlier, and "multirand", which must be loaded after forking)
|
jbe@324
|
82 _G.nihil = require 'nihil'
|
jbe@324
|
83 _G.mondelefant = require 'mondelefant'
|
jbe@324
|
84 _G.atom = require 'atom'
|
jbe@324
|
85 _G.json = require 'json'
|
jbe@203
|
86 require 'mondelefant_atom_connector'
|
jbe@286
|
87 -- NOTE: "multirand" library is loaded in mcp.lua after forking
|
jbe@203
|
88
|
jbe@295
|
89 -- setup mondelefant
|
jbe@295
|
90 mondelefant.connection_prototype.error_objects = true
|
jbe@295
|
91 function mondelefant.connection_prototype:sql_tracer(command)
|
jbe@295
|
92 if trace.is_disabled() then
|
jbe@295
|
93 return
|
jbe@295
|
94 end
|
jbe@295
|
95 local start_time = extos.monotonic_hires_time()
|
jbe@295
|
96 return function(error_info)
|
jbe@295
|
97 trace.sql{
|
jbe@295
|
98 command = command,
|
jbe@295
|
99 execution_time = extos.monotonic_hires_time() - start_time,
|
jbe@295
|
100 error_position = error_info and error_info.position or nil
|
jbe@295
|
101 }
|
jbe@295
|
102 end
|
jbe@295
|
103 end
|
jbe@295
|
104
|
jbe@206
|
105 --[[--
|
jbe@206
|
106 config -- table to store application configuration
|
jbe@206
|
107
|
jbe@206
|
108 'config' is a global table, which can be modified by a config file of an application to modify the behaviour of that application.
|
jbe@206
|
109 --]]--
|
jbe@324
|
110 _G.config = {}
|
jbe@206
|
111 --//--
|
jbe@206
|
112
|