]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - builtin/common/chatcommands.lua
ContentDB: Add reason to downloads (#10876)
[dragonfireclient.git] / builtin / common / chatcommands.lua
index 52edda659baab0a89ede36a09b6c45faf6877641..c945e7bdb2926733dfecb72dbb8f8a979e3118e9 100644 (file)
@@ -1,5 +1,9 @@
 -- Minetest: builtin/common/chatcommands.lua
 
+-- For server-side translations (if INIT == "game")
+-- Otherwise, use core.gettext
+local S = core.get_translator("__builtin")
+
 core.registered_chatcommands = {}
 
 function core.register_chatcommand(cmd, def)
@@ -29,25 +33,12 @@ function core.override_chatcommand(name, redefinition)
        core.registered_chatcommands[name] = chatcommand
 end
 
-local cmd_marker = "/"
-
-local function gettext(...)
-       return ...
-end
-
-local function gettext_replace(text, replace)
-       return text:gsub("$1", replace)
-end
-
-
-if INIT == "client" then
-       cmd_marker = "."
-       gettext = core.gettext
-       gettext_replace = fgettext_ne
-end
-
 local function do_help_cmd(name, param)
        local function format_help_line(cmd, def)
+               local cmd_marker = "/"
+               if INIT == "client" then
+                       cmd_marker = "."
+               end
                local msg = core.colorize("#00ffff", cmd_marker .. cmd)
                if def.params and def.params ~= "" then
                        msg = msg .. " " .. def.params
@@ -65,9 +56,21 @@ local function do_help_cmd(name, param)
                        end
                end
                table.sort(cmds)
-               return true, gettext("Available commands: ") .. table.concat(cmds, " ") .. "\n"
-                               .. gettext_replace("Use '$1help <cmd>' to get more information,"
-                               .. " or '$1help all' to list everything.", cmd_marker)
+               local msg
+               if INIT == "game" then
+                       msg = S("Available commands: @1",
+                               table.concat(cmds, " ")) .. "\n"
+                               .. S("Use '/help <cmd>' to get more "
+                               .. "information, or '/help all' to list "
+                               .. "everything.")
+               else
+                       msg = core.gettext("Available commands: ")
+                               .. table.concat(cmds, " ") .. "\n"
+                               .. core.gettext("Use '.help <cmd>' to get more "
+                               .. "information, or '.help all' to list "
+                               .. "everything.")
+               end
+               return true, msg
        elseif param == "all" then
                local cmds = {}
                for cmd, def in pairs(core.registered_chatcommands) do
@@ -76,19 +79,31 @@ local function do_help_cmd(name, param)
                        end
                end
                table.sort(cmds)
-               return true, gettext("Available commands:").."\n"..table.concat(cmds, "\n")
+               local msg
+               if INIT == "game" then
+                       msg = S("Available commands:")
+               else
+                       msg = core.gettext("Available commands:")
+               end
+               return true, msg.."\n"..table.concat(cmds, "\n")
        elseif INIT == "game" and param == "privs" then
                local privs = {}
                for priv, def in pairs(core.registered_privileges) do
                        privs[#privs + 1] = priv .. ": " .. def.description
                end
                table.sort(privs)
-               return true, "Available privileges:\n"..table.concat(privs, "\n")
+               return true, S("Available privileges:").."\n"..table.concat(privs, "\n")
        else
                local cmd = param
                local def = core.registered_chatcommands[cmd]
                if not def then
-                       return false, gettext("Command not available: ")..cmd
+                       local msg
+                       if INIT == "game" then
+                               msg = S("Command not available: @1", cmd)
+                       else
+                               msg = core.gettext("Command not available: ") .. cmd
+                       end
+                       return false, msg
                else
                        return true, format_help_line(cmd, def)
                end
@@ -97,16 +112,16 @@ end
 
 if INIT == "client" then
        core.register_chatcommand("help", {
-               params = gettext("[all | <cmd>]"),
-               description = gettext("Get help for commands"),
+               params = core.gettext("[all | <cmd>]"),
+               description = core.gettext("Get help for commands"),
                func = function(param)
                        return do_help_cmd(nil, param)
                end,
        })
 else
        core.register_chatcommand("help", {
-               params = "[all | privs | <cmd>]",
-               description = "Get help for commands or list privileges",
+               params = S("[all | privs | <cmd>]"),
+               description = S("Get help for commands or list privileges"),
                func = do_help_cmd,
        })
 end