]> git.lizzy.rs Git - minetest.git/blobdiff - builtin/common/information_formspecs.lua
Translate builtin (#10693)
[minetest.git] / builtin / common / information_formspecs.lua
index 4e893f7aa164be4d1b2d6a3587499922111e346d..e814b4c43c8e50bba5b1bd435941b1f3461f0fe0 100644 (file)
@@ -20,7 +20,8 @@ local LIST_FORMSPEC_DESCRIPTION = [[
                button_exit[5,7;3,1;quit;%s]
        ]]
 
-local formspec_escape = core.formspec_escape
+local F = core.formspec_escape
+local S = core.get_translator("__builtin")
 local check_player_privs = core.check_player_privs
 
 
@@ -31,7 +32,6 @@ local mod_cmds = {}
 local function load_mod_command_tree()
        mod_cmds = {}
 
-       local check_player_privs = core.check_player_privs
        for name, def in pairs(core.registered_chatcommands) do
                mod_cmds[def.mod_origin] = mod_cmds[def.mod_origin] or {}
                local cmds = mod_cmds[def.mod_origin]
@@ -52,22 +52,23 @@ core.after(0, load_mod_command_tree)
 
 local function build_chatcommands_formspec(name, sel, copy)
        local rows = {}
-       rows[1] = "#FFF,0,Command,Parameters"
+       rows[1] = "#FFF,0,"..F(S("Command"))..","..F(S("Parameters"))
 
-       local description = "For more information, click on any entry in the list.\n" ..
-               "Double-click to copy the entry to the chat history."
+       local description = S("For more information, click on "
+               .. "any entry in the list.").. "\n" ..
+               S("Double-click to copy the entry to the chat history.")
 
        for i, data in ipairs(mod_cmds) do
-               rows[#rows + 1] = COLOR_BLUE .. ",0," .. formspec_escape(data[1]) .. ","
+               rows[#rows + 1] = COLOR_BLUE .. ",0," .. F(data[1]) .. ","
                for j, cmds in ipairs(data[2]) do
                        local has_priv = check_player_privs(name, cmds[2].privs)
                        rows[#rows + 1] = ("%s,1,%s,%s"):format(
                                has_priv and COLOR_GREEN or COLOR_GRAY,
-                               cmds[1], formspec_escape(cmds[2].params))
+                               cmds[1], F(cmds[2].params))
                        if sel == #rows then
                                description = cmds[2].description
                                if copy then
-                                       core.chat_send_player(name, ("Command: %s %s"):format(
+                                       core.chat_send_player(name, S("Command: @1 @2",
                                                core.colorize("#0FF", "/" .. cmds[1]), cmds[2].params))
                                end
                        end
@@ -75,36 +76,36 @@ local function build_chatcommands_formspec(name, sel, copy)
        end
 
        return LIST_FORMSPEC_DESCRIPTION:format(
-                       "Available commands: (see also: /help <cmd>)",
+                       F(S("Available commands: (see also: /help <cmd>)")),
                        table.concat(rows, ","), sel or 0,
-                       description, "Close"
+                       F(description), F(S("Close"))
                )
 end
 
 
---     PRIVILEGES FORMSPEC
+-- PRIVILEGES FORMSPEC
 
 local function build_privs_formspec(name)
        local privs = {}
-       for name, def in pairs(core.registered_privileges) do
-               privs[#privs + 1] = { name, def }
+       for priv_name, def in pairs(core.registered_privileges) do
+               privs[#privs + 1] = { priv_name, def }
        end
        table.sort(privs, function(a, b) return a[1] < b[1] end)
 
        local rows = {}
-       rows[1] = "#FFF,0,Privilege,Description"
+       rows[1] = "#FFF,0,"..F(S("Privilege"))..","..F(S("Description"))
 
        local player_privs = core.get_player_privs(name)
        for i, data in ipairs(privs) do
                rows[#rows + 1] = ("%s,0,%s,%s"):format(
                        player_privs[data[1]] and COLOR_GREEN or COLOR_GRAY,
-                               data[1], formspec_escape(data[2].description))
+                               data[1], F(data[2].description))
        end
 
        return LIST_FORMSPEC:format(
-                       "Available privileges:",
+                       F(S("Available privileges:")),
                        table.concat(rows, ","),
-                       "Close"
+                       F(S("Close"))
                )
 end
 
@@ -116,7 +117,7 @@ core.register_on_player_receive_fields(function(player, formname, fields)
                return
        end
 
-       local event = minetest.explode_table_event(fields.list)
+       local event = core.explode_table_event(fields.list)
        if event.type ~= "INV" then
                local name = player:get_player_name()
                core.show_formspec(name, "__builtin:help_cmds",
@@ -129,17 +130,25 @@ local help_command = core.registered_chatcommands["help"]
 local old_help_func = help_command.func
 
 help_command.func = function(name, param)
+       local admin = core.settings:get("name")
+
+       -- If the admin ran help, put the output in the chat buffer as well to
+       -- work with the server terminal
        if param == "privs" then
                core.show_formspec(name, "__builtin:help_privs",
                        build_privs_formspec(name))
-               return
+               if name ~= admin then
+                       return true
+               end
        end
        if param == "" or param == "all" then
                core.show_formspec(name, "__builtin:help_cmds",
                        build_chatcommands_formspec(name))
-               return 
+               if name ~= admin then
+                       return true
+               end
        end
 
-       old_help_func(name, param)
+       return old_help_func(name, param)
 end