mirror of
https://github.com/minetest-mods/intllib.git
synced 2025-01-23 16:30:18 +01:00
Remove non-working escape sequences
This commit is contained in:
parent
02b7a666f6
commit
5de9bcea76
34
intllib.lua
34
intllib.lua
@ -18,47 +18,15 @@ else
|
|||||||
TRACE = function ( ) end
|
TRACE = function ( ) end
|
||||||
end
|
end
|
||||||
|
|
||||||
local repr2esc = {
|
|
||||||
["n"] = "\n";
|
|
||||||
["r"] = "";
|
|
||||||
["t"] = "\t";
|
|
||||||
["\\"] = "\\";
|
|
||||||
["\""] = "\"";
|
|
||||||
};
|
|
||||||
|
|
||||||
local esc2repr = {
|
|
||||||
["\n"] = "\\n";
|
|
||||||
["\r"] = "";
|
|
||||||
["\t"] = "\\t";
|
|
||||||
["\\"] = "\\\\";
|
|
||||||
["\\\""] = "\"";
|
|
||||||
};
|
|
||||||
|
|
||||||
local function parse ( s )
|
|
||||||
return s:gsub("\\([nrt\"\'\\\\])", function ( c )
|
|
||||||
return (repr2esc[c] or c);
|
|
||||||
end);
|
|
||||||
end
|
|
||||||
|
|
||||||
local function repr ( s )
|
|
||||||
return s:gsub("[\n\t\"\'\\\\]", function ( c )
|
|
||||||
return (esc2repr[c] or c);
|
|
||||||
end);
|
|
||||||
end
|
|
||||||
|
|
||||||
local function do_load_strings ( f )
|
local function do_load_strings ( f )
|
||||||
local msgstr = { };
|
local msgstr = { };
|
||||||
for line in f:lines() do
|
for line in f:lines() do
|
||||||
line = line:trim();
|
line = line:trim();
|
||||||
if ((line ~= "") and (line:sub(1, 1) ~= "#")) then
|
if ((line ~= "") and (line:sub(1, 1) ~= "#")) then
|
||||||
local pos = line:find("=", 1, true);
|
local pos = line:find("=", 1, true);
|
||||||
while (pos and (line:sub(pos - 1, pos - 1) == "\\")) do
|
|
||||||
local pos = line:find("=", pos + 1, true);
|
|
||||||
end
|
|
||||||
if (pos) then
|
if (pos) then
|
||||||
local msgid = line:sub(1, pos - 1):trim();
|
local msgid = line:sub(1, pos - 1):trim();
|
||||||
local str = line:sub(pos + 1):trim();
|
msgstr[msgid] = line:sub(pos + 1):trim();
|
||||||
msgstr[msgid] = parse(str);
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user