66 virtual void addTranslatableString(
const DtString&,
const DtString& module =
"DtDefaultTranslation",
67 const DtString& originalString =
"");
68 virtual void addArgument(
const DtString&);
72 virtual std::string toFormattedString()
const;
80 virtual std::vector<int> typesFrom(
const std::string& fmt, std::string& reformatted)
const;
82 template <
typename QStringType,
typename QCoreApp>
83 QStringType translate(
bool finalCR =
true)
const
87 unsigned int argsTranslated = 0;
91 std::vector<std::string> results;
92 std::string source(iterator.
current()->
name().c_str());
94 oldBoostSplit(results, source, boost::algorithm::is_any_of(
"="));
98 if (results[0] ==
"translate")
101 std::string toTranslate = (*iterator.
current()).c_str();
102 if (results.size() >= 2)
106 if (results.size() == 3)
108 toTranslate = results[2];
116 QStringType translated = QCoreApp::translate(module.c_str(), toTranslate.c_str(),
117 0, QCoreApp::UnicodeUTF8);
119 if (translated == toTranslate.c_str())
121 translated = (*iterator.
current()).c_str();
124 result += translated;
126 else if (results[0] ==
"argument")
128 result = result.arg(iterator.
current()->c_str());
132 result = result.replace(
"%" + QStringType::number(argsTranslated + 1),
"%" + QStringType::number(argsTranslated));
143 if (finalCR && (!result.length() || result[result.length() - 1] !=
'\n'))
155 namespace DtBufferSerialize