diff options
Diffstat (limited to 'subsurface-core/gettextfromc.cpp')
-rw-r--r-- | subsurface-core/gettextfromc.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/subsurface-core/gettextfromc.cpp b/subsurface-core/gettextfromc.cpp new file mode 100644 index 000000000..c579e3c3c --- /dev/null +++ b/subsurface-core/gettextfromc.cpp @@ -0,0 +1,27 @@ +#include <QCoreApplication> +#include <QString> +#include <gettextfromc.h> + +const char *gettextFromC::trGettext(const char *text) +{ + QByteArray &result = translationCache[QByteArray(text)]; + if (result.isEmpty()) + result = translationCache[QByteArray(text)] = trUtf8(text).toUtf8(); + return result.constData(); +} + +void gettextFromC::reset(void) +{ + translationCache.clear(); +} + +gettextFromC *gettextFromC::instance() +{ + static QScopedPointer<gettextFromC> self(new gettextFromC()); + return self.data(); +} + +extern "C" const char *trGettext(const char *text) +{ + return gettextFromC::instance()->trGettext(text); +} |