diff --git a/clientmods/preview/init.lua b/clientmods/preview/init.lua index 2e679b866..5777adcaf 100644 --- a/clientmods/preview/init.lua +++ b/clientmods/preview/init.lua @@ -9,13 +9,18 @@ core.register_on_shutdown(function() end) local id = nil -local server_info = core.get_server_info() -print("Server version: " .. server_info.protocol_version) -print("Server ip: " .. server_info.ip) -print("Server address: " .. server_info.address) -print("Server port: " .. server_info.port) +do + local server_info = core.get_server_info() + print("Server version: " .. server_info.protocol_version) + print("Server ip: " .. server_info.ip) + print("Server address: " .. server_info.address) + print("Server port: " .. server_info.port) -print("CSM restrictions: " .. dump(core.get_csm_restrictions())) + print("CSM restrictions: " .. dump(core.get_csm_restrictions())) + + local l1, l2 = core.get_language() + print("Configured language: " .. l1 .. " / " .. l2) +end mod_channel = core.mod_channel_join("experimental_preview") diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt index a7e928f56..c24de8d85 100644 --- a/doc/client_lua_api.txt +++ b/doc/client_lua_api.txt @@ -634,7 +634,9 @@ Minetest namespace reference the trailing separator. This is useful to load additional Lua files contained in your mod: e.g. `dofile(minetest.get_modpath(minetest.get_current_modname()) .. "stuff.lua")` -* `minetest.get_language()`: returns the currently set gettext language. +* `minetest.get_language()`: returns two strings + * the current gettext locale + * the current language code (the same as used for client-side translations) * `minetest.get_version()`: returns a table containing components of the engine version. Components: * `project`: Name of the project, eg, "Minetest" diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp index fa369a360..4aa7d814d 100644 --- a/src/script/lua_api/l_client.cpp +++ b/src/script/lua_api/l_client.cpp @@ -230,9 +230,14 @@ int ModApiClient::l_get_node_or_nil(lua_State *L) int ModApiClient::l_get_language(lua_State *L) { - char *locale = setlocale(LC_ALL, ""); + char *locale = setlocale(LC_MESSAGES, NULL); + std::string lang = gettext("LANG_CODE"); + if (lang == "LANG_CODE") + lang = ""; + lua_pushstring(L, locale); - return 1; + lua_pushstring(L, lang.c_str()); + return 2; } int ModApiClient::l_get_wielded_item(lua_State *L)