Skip to content

Commit 47a9cee

Browse files
Expand StringExt with L10N
1 parent 5be4668 commit 47a9cee

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

src/ProgramConstants.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
#include <QSize>
77
#include <QObject>
88

9+
#include "StringExt.hpp"
910
#include "Settings.hpp"
1011

11-
#define L10N(x) QCoreApplication::translate("QObject",x.toUtf8().constData())
1212
#define PROGRAM_CONSTANTS ProgramConstants::Instance
1313

1414
enum class GameObjectTypes

src/StringExt.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include <QCoreApplication>
2+
#include <QObject>
3+
#include "StringExt.hpp"
4+
5+
QString StringExt::l10n(const char* string) { return QCoreApplication::translate("QObject", QString(string).toUtf8().constData()); }
6+
QString StringExt::l10n(const QString& string) { return QCoreApplication::translate("QObject", string.toUtf8().constData()); }
7+
QString StringExt::l10n(const std::string& string) { return QCoreApplication::translate("QObject", QString::fromStdString(string).toUtf8().constData()); }
8+
QString StringExt::l10n(const std::wstring& string) { return QCoreApplication::translate("QObject", QString::fromStdWString(string).toUtf8().constData()); }

src/StringExt.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include <concepts>
44
#include <QString>
55

6+
#define L10N(x) StringExt::l10n(x)
7+
68
template<class T>
79
concept IsSymbol = std::same_as<T, char> || std::same_as<T, wchar_t> || std::same_as<T, QChar>;
810

@@ -27,3 +29,11 @@ template<IsSymbol C> inline QString operator+ (const C& ch, cons
2729
inline QString operator+ (const std::wstring& stdwstr, const QString& qstr) { return QString::fromStdWString(stdwstr).append(qstr); }
2830
inline QString operator+ (const QString& qstr, const std::string& stdstr) { return QString(qstr).append(QString::fromStdString(stdstr)); }
2931
inline QString operator+ (const std::string& stdstr, const QString& qstr) { return QString::fromStdString(stdstr).append(qstr); }
32+
33+
namespace StringExt
34+
{
35+
QString l10n(const char* string);
36+
QString l10n(const QString& string);
37+
QString l10n(const std::string& string);
38+
QString l10n(const std::wstring& string);
39+
}

0 commit comments

Comments
 (0)