mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-20 17:05:41 -04:00
Host: Backport translations cache
Note: You'll need a new command line for lupdate. ..\..\..\dep\msvc\qt\6.5.0\msvc2022_64\bin\lupdate.exe ../ ../../core/ ../../util/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP -ts duckstation-qt_LANGUAGE.ts
This commit is contained in:
@ -3,6 +3,8 @@
|
||||
|
||||
#include "qthost.h"
|
||||
|
||||
#include "core/host.h"
|
||||
|
||||
#include "util/imgui_manager.h"
|
||||
|
||||
#include "common/assert.h"
|
||||
@ -122,6 +124,25 @@ void QtHost::InstallTranslator()
|
||||
s_translators.push_back(translator);
|
||||
|
||||
UpdateGlyphRanges(language.toStdString());
|
||||
|
||||
Host::ClearTranslationCache();
|
||||
}
|
||||
|
||||
s32 Host::Internal::GetTranslatedStringImpl(const std::string_view& context, const std::string_view& msg, char* tbuf,
|
||||
size_t tbuf_space)
|
||||
{
|
||||
// This is really awful. Thankfully we're caching the results...
|
||||
const std::string temp_context(context);
|
||||
const std::string temp_msg(msg);
|
||||
const QString translated_msg = qApp->translate(temp_context.c_str(), temp_msg.c_str());
|
||||
const QByteArray translated_utf8 = translated_msg.toUtf8();
|
||||
const size_t translated_size = translated_utf8.size();
|
||||
if (translated_size > tbuf_space)
|
||||
return -1;
|
||||
else if (translated_size > 0)
|
||||
std::memcpy(tbuf, translated_utf8.constData(), translated_size);
|
||||
|
||||
return static_cast<s32>(translated_size);
|
||||
}
|
||||
|
||||
static std::string QtHost::GetFontPath(const GlyphInfo* gi)
|
||||
|
Reference in New Issue
Block a user