Add support for ContentDB package translation (#14410)

This commit is contained in:
rubenwardy 2024-02-25 22:09:52 +00:00 committed by GitHub
parent 4caf0e4cb9
commit f4eba3bfba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 32 additions and 2 deletions

@ -154,7 +154,9 @@ local function start_install(package, reason)
if conf_path then if conf_path then
local conf = Settings(conf_path) local conf = Settings(conf_path)
conf:set("title", package.title) if not conf:get("title") then
conf:set("title", package.title)
end
if not name_is_title then if not name_is_title then
conf:set("name", package.name) conf:set("name", package.name)
end end
@ -642,8 +644,21 @@ local function fetch_pkgs()
end end
end end
local languages
local current_language = core.get_language()
if current_language ~= "" then
languages = { current_language, "en;q=0.8" }
else
languages = { "en" }
end
local http = core.get_http_api() local http = core.get_http_api()
local response = http.fetch_sync({ url = url }) local response = http.fetch_sync({
url = url,
extra_headers = {
"Accept-Language: " .. table.concat(languages, ", ")
},
})
if not response.succeeded then if not response.succeeded then
return return
end end

@ -933,6 +933,17 @@ int ModApiMainMenu::l_get_video_drivers(lua_State *L)
return 1; return 1;
} }
/******************************************************************************/
int ModApiMainMenu::l_get_language(lua_State *L)
{
std::string lang = gettext("LANG_CODE");
if (lang == "LANG_CODE")
lang = "";
lua_pushstring(L, lang.c_str());
return 1;
}
/******************************************************************************/ /******************************************************************************/
int ModApiMainMenu::l_gettext(lua_State *L) int ModApiMainMenu::l_gettext(lua_State *L)
{ {
@ -1151,6 +1162,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top)
API_FCT(get_mainmenu_path); API_FCT(get_mainmenu_path);
API_FCT(show_path_select_dialog); API_FCT(show_path_select_dialog);
API_FCT(download_file); API_FCT(download_file);
API_FCT(get_language);
API_FCT(gettext); API_FCT(gettext);
API_FCT(get_video_drivers); API_FCT(get_video_drivers);
API_FCT(get_window_info); API_FCT(get_window_info);
@ -1191,5 +1203,6 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top)
API_FCT(download_file); API_FCT(download_file);
API_FCT(get_min_supp_proto); API_FCT(get_min_supp_proto);
API_FCT(get_max_supp_proto); API_FCT(get_max_supp_proto);
API_FCT(get_language);
API_FCT(gettext); API_FCT(gettext);
} }

@ -74,6 +74,8 @@ private:
static int l_get_mapgen_names(lua_State *L); static int l_get_mapgen_names(lua_State *L);
static int l_get_language(lua_State *L);
static int l_gettext(lua_State *L); static int l_gettext(lua_State *L);
//packages //packages