Make tinygettext use stk logging

This commit is contained in:
Benau 2020-09-09 14:46:29 +08:00
parent f1fb30250b
commit fd4be023d5
2 changed files with 15 additions and 8 deletions

View File

@ -27,7 +27,7 @@ namespace tinygettext {
// FIXME: very bad to have such things in the API
#define log_error if (!Log::log_error_callback); else (Log(Log::log_error_callback)).get()
#define log_warning if (!Log::log_warning_callback); else (Log(Log::log_warning_callback)).get()
#define log_info if (!Log::log_info_callback); else (Log(Log::log_warning_callback)).get()
#define log_info if (!Log::log_info_callback); else (Log(Log::log_info_callback)).get()
} // namespace tinygettext

View File

@ -62,6 +62,7 @@ Translations* translations = NULL;
#ifndef SERVER_ONLY
#include "tinygettext/file_system.hpp"
#include "tinygettext/log.hpp"
std::map<std::string, std::string> Translations::m_localized_name;
std::map<std::string, std::map<std::string, irr::core::stringw> >
@ -78,7 +79,6 @@ constexpr bool isThaiCP(char32_t c)
// ============================================================================
const bool REMOVE_BOM = false;
using namespace tinygettext;
/** The list of available languages; this is global so that it is cached (and remains
even if the translations object is deleted and re-created) */
typedef std::vector<std::string> LanguageList;
@ -115,7 +115,14 @@ Translations::Translations() //: m_dictionary_manager("UTF-16")
FileUtils::getPortableReadingPath(filename)));
}
};
m_dictionary_manager.set_filesystem(std::unique_ptr<FileSystem>(
// Hide log info because it warns about untranslated message
tinygettext::Log::set_log_info_callback([](const std::string& str) {});
tinygettext::Log::set_log_warning_callback([](const std::string& str)
{ Log::warn("tinygettext", "%s", str.c_str()); });
tinygettext::Log::set_log_error_callback([](const std::string& str)
{ Log::error("tinygettext", "%s", str.c_str()); });
m_dictionary_manager.set_filesystem(std::unique_ptr<tinygettext::FileSystem>(
new StkFileSystem()));
m_dictionary_manager.add_directory(
@ -123,12 +130,12 @@ Translations::Translations() //: m_dictionary_manager("UTF-16")
if (g_language_list.size() == 0)
{
std::set<Language> languages = m_dictionary_manager.get_languages();
std::set<tinygettext::Language> languages = m_dictionary_manager.get_languages();
// English is always there but may be not found on file system
g_language_list.push_back("en");
for (const Language& language : languages)
for (const tinygettext::Language& language : languages)
{
if (language.str() == "en")
continue;
@ -416,11 +423,11 @@ Translations::Translations() //: m_dictionary_manager("UTF-16")
if (language.find(":") != std::string::npos)
{
std::vector<std::string> langs = StringUtils::split(language, ':');
Language l;
tinygettext::Language l;
for (unsigned int curr=0; curr<langs.size(); curr++)
{
l = Language::from_env(langs[curr]);
l = tinygettext::Language::from_env(langs[curr]);
if (l)
{
Log::verbose("translation", "Language '%s'.",
@ -446,7 +453,7 @@ Translations::Translations() //: m_dictionary_manager("UTF-16")
}
else
{
const Language& tgtLang = Language::from_env(language);
const tinygettext::Language& tgtLang = tinygettext::Language::from_env(language);
if (!tgtLang)
{
Log::warn("Translation", "Unsupported language '%s'", language.c_str());