本文整理汇总了C++中translatormessage::ExtraData类的典型用法代码示例。如果您正苦于以下问题:C++ ExtraData类的具体用法?C++ ExtraData怎么用?C++ ExtraData使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ExtraData类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: writeExtras
static void writeExtras(QTextStream &ts, int indent,
const TranslatorMessage::ExtraData &extras, const QRegExp &drops)
{
for (Translator::ExtraData::ConstIterator it = extras.begin(); it != extras.end(); ++it) {
if (!drops.exactMatch(it.key())) {
writeIndent(ts, indent);
ts << "<trolltech:" << it.key() << '>'
<< protect(it.value())
<< "</trolltech:" << it.key() << ">\n";
}
}
}
开发者ID:wpbest,项目名称:copperspice,代码行数:12,代码来源:xliff.cpp
示例2: writeExtras
static void writeExtras(QTextStream &t, const char *indent,
const TranslatorMessage::ExtraData &extras, QRegExp drops)
{
QStringList outs;
for (Translator::ExtraData::ConstIterator it = extras.begin(); it != extras.end(); ++it) {
if (!drops.exactMatch(it.key())) {
outs << (QStringLiteral("<extra-") + it.key() + QLatin1Char('>')
+ protect(it.value())
+ QStringLiteral("</extra-") + it.key() + QLatin1Char('>'));
}
}
outs.sort();
foreach (const QString &out, outs)
t << indent << out << endl;
}
开发者ID:RobinWuDev,项目名称:Qt,代码行数:15,代码来源:ts.cpp
示例3: consumeComment
void FindTrCalls::consumeComment()
{
// keep the current `trcontext'
extracomment.clear();
msgid.clear();
extra.clear();
sourcetext.clear();
}
开发者ID:adenexter,项目名称:qttools,代码行数:8,代码来源:qdeclarative.cpp
示例4: finalizeMessage
bool XLIFFHandler::finalizeMessage(bool isPlural)
{
if (m_sources.isEmpty()) {
m_cd.appendError(QLatin1String("XLIFF syntax error: Message without source string."));
return false;
}
if (!m_translate && m_refs.size() == 1
&& m_refs.at(0).fileName() == QLatin1String(MAGIC_OBSOLETE_REFERENCE))
m_refs.clear();
TranslatorMessage::Type type
= m_translate ? (m_approved ? TranslatorMessage::Finished : TranslatorMessage::Unfinished)
: (m_approved ? TranslatorMessage::Vanished : TranslatorMessage::Obsolete);
TranslatorMessage msg(m_context, m_sources[0],
m_comment, QString(), QString(), -1,
m_translations, type, isPlural);
msg.setId(m_id);
msg.setReferences(m_refs);
msg.setOldComment(m_oldComment);
msg.setExtraComment(m_extraComment);
msg.setTranslatorComment(m_translatorComment);
if (m_sources.count() > 1 && m_sources[1] != m_sources[0])
m_extra.insert(QLatin1String("po-msgid_plural"), m_sources[1]);
if (!m_oldSources.isEmpty()) {
if (!m_oldSources[0].isEmpty())
msg.setOldSourceText(m_oldSources[0]);
if (m_oldSources.count() > 1 && m_oldSources[1] != m_oldSources[0])
m_extra.insert(QLatin1String("po-old_msgid_plural"), m_oldSources[1]);
}
msg.setExtras(m_extra);
m_translator.append(msg);
m_id.clear();
m_sources.clear();
m_oldSources.clear();
m_translations.clear();
m_comment.clear();
m_oldComment.clear();
m_extraComment.clear();
m_translatorComment.clear();
m_extra.clear();
m_refs.clear();
m_translate = true;
m_approved = true;
return true;
}
开发者ID:venkatarajasekhar,项目名称:Qt,代码行数:45,代码来源:xliff.cpp
示例5: processComment
void FindTrCalls::processComment(const AST::SourceLocation &loc)
{
if (!loc.length)
return;
const QStringRef commentStr = engine->midRef(loc.begin(), loc.length);
const QChar *chars = commentStr.constData();
const int length = commentStr.length();
// Try to match the logic of the C++ parser.
if (*chars == QLatin1Char(':') && chars[1].isSpace()) {
if (!extracomment.isEmpty())
extracomment += QLatin1Char(' ');
extracomment += QString(chars+2, length-2);
} else if (*chars == QLatin1Char('=') && chars[1].isSpace()) {
msgid = QString(chars+2, length-2).simplified();
} else if (*chars == QLatin1Char('~') && chars[1].isSpace()) {
QString text = QString(chars+2, length-2).trimmed();
int k = text.indexOf(QLatin1Char(' '));
if (k > -1)
extra.insert(text.left(k), text.mid(k + 1).trimmed());
} else if (*chars == QLatin1Char('%') && chars[1].isSpace()) {
sourcetext.reserve(sourcetext.length() + length-2);
ushort *ptr = (ushort *)sourcetext.data() + sourcetext.length();
int p = 2, c;
forever {
if (p >= length)
break;
c = chars[p++].unicode();
if (std::isspace(c))
continue;
if (c != '"') {
yyMsg(loc.startLine) << qPrintable(LU::tr("Unexpected character in meta string\n"));
break;
}
forever {
if (p >= length) {
whoops:
yyMsg(loc.startLine) << qPrintable(LU::tr("Unterminated meta string\n"));
break;
}
c = chars[p++].unicode();
if (c == '"')
break;
if (c == '\\') {
if (p >= length)
goto whoops;
c = chars[p++].unicode();
if (c == '\r' || c == '\n')
goto whoops;
*ptr++ = '\\';
}
*ptr++ = c;
}
}
sourcetext.resize(ptr - (ushort *)sourcetext.data());
} else {
开发者ID:adenexter,项目名称:qttools,代码行数:57,代码来源:qdeclarative.cpp
示例6: postVisit
void FindTrCalls::postVisit(AST::Node *node)
{
if (node->statementCast() != 0 || node->uiObjectMemberCast()) {
processComments(node->lastSourceLocation().end());
if (!sourcetext.isEmpty() || !extracomment.isEmpty() || !msgid.isEmpty() || !extra.isEmpty()) {
yyMsg(node->lastSourceLocation().startLine) << qPrintable(LU::tr("Discarding unconsumed meta data\n"));
consumeComment();
}
}
}
开发者ID:adenexter,项目名称:qttools,代码行数:11,代码来源:qdeclarative.cpp
示例7: isValid
bool isValid() const
{ return !extracomment.isEmpty() || !msgid.isEmpty() || !sourcetext.isEmpty() || !extra.isEmpty(); }
开发者ID:AtlantisCD9,项目名称:Qt,代码行数:2,代码来源:qdeclarative.cpp
注:本文中的translatormessage::ExtraData类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论