diff --git a/src/tl/tl/tlInternational.cc b/src/tl/tl/tlInternational.cc index f9d4e60b8..998baca4f 100644 --- a/src/tl/tl/tlInternational.cc +++ b/src/tl/tl/tlInternational.cc @@ -119,12 +119,12 @@ std::string tr (const char *s) } -#if ! defined(HAVE_QT) - -std::string tr (const char *s) +std::string tr_fallback (const char *s) { +#if defined(HAVE_QT) + return tl::to_string (QObject::tr (s)); +#else // TODO: this is a fallback implementation without translation return std::string (s); -} - #endif +} diff --git a/src/tl/tl/tlInternational.h b/src/tl/tl/tlInternational.h index dd0bf473e..99038676f 100644 --- a/src/tl/tl/tlInternational.h +++ b/src/tl/tl/tlInternational.h @@ -43,7 +43,18 @@ inline QString tr (const char *s) return QObject::tr (s); } #else -std::string TL_PUBLIC tr (const char *s); + +// NOTE: with this definition in place, we can build plugins without Qt, +// by using "tr" and falling back here, even if Qt is enabled + +#define __KLAYOUT_TL_HAVE_TR_FALLBACK +std::string TL_PUBLIC tr_fallback (const char *s); + +inline std::string tr (const char *s) +{ + return tl::tr_fallback (s); +} + #endif namespace tl