diff options
author | EvidenceB Kidscode <49488517+EvidenceBKidscode@users.noreply.github.com> | 2020-04-25 07:20:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-25 07:20:00 +0200 |
commit | cee3c5e73d7af2a876aa76275234ee76e7cb1bbc (patch) | |
tree | 66abf52902be5c4d7ccc7aa40d20ed77a2a263e0 /src/script/lua_api/l_env.cpp | |
parent | 914dbeaa0be4b5ef87506b605ef4e241cd3732dc (diff) | |
download | minetest-cee3c5e73d7af2a876aa76275234ee76e7cb1bbc.tar.gz minetest-cee3c5e73d7af2a876aa76275234ee76e7cb1bbc.tar.bz2 minetest-cee3c5e73d7af2a876aa76275234ee76e7cb1bbc.zip |
Add server side translations capability (#9733)
* Add server side translations capability
Diffstat (limited to 'src/script/lua_api/l_env.cpp')
-rw-r--r-- | src/script/lua_api/l_env.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index 831464d3b..3fb58b8c8 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -40,6 +40,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "remoteplayer.h" #include "server/luaentity_sao.h" #include "server/player_sao.h" +#include "util/string.h" +#include "translation.h" #ifndef SERVER #include "client/client.h" #endif @@ -1302,6 +1304,19 @@ int ModApiEnvMod::l_forceload_free_block(lua_State *L) return 0; } +// get_translated_string(lang_code, string) +int ModApiEnvMod::l_get_translated_string(lua_State * L) +{ + GET_ENV_PTR; + std::string lang_code = luaL_checkstring(L, 1); + std::string string = luaL_checkstring(L, 2); + getServer(L)->loadTranslationLanguage(lang_code); + string = wide_to_utf8(translate_string(utf8_to_wide(string), + &(*g_server_translations)[lang_code])); + lua_pushstring(L, string.c_str()); + return 1; +} + void ModApiEnvMod::Initialize(lua_State *L, int top) { API_FCT(set_node); @@ -1349,6 +1364,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top) API_FCT(transforming_liquid_add); API_FCT(forceload_block); API_FCT(forceload_free_block); + API_FCT(get_translated_string); } void ModApiEnvMod::InitializeClient(lua_State *L, int top) |