本文整理汇总了C++中TranslatorMessage::utf8方法的典型用法代码示例。如果您正苦于以下问题:C++ TranslatorMessage::utf8方法的具体用法?C++ TranslatorMessage::utf8怎么用?C++ TranslatorMessage::utf8使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TranslatorMessage
的用法示例。
在下文中一共展示了TranslatorMessage::utf8方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeComment
static void writeComment(QTextStream *t, const TranslatorMessage &msg, int indent)
{
if (!msg.comment().isEmpty()) {
writeIndent(t, indent);
(*t) << "<note>" << evilBytes(msg.comment(), msg.utf8()) << "</note>\n";
}
}
示例2: writeTransUnit
static void writeTransUnit(QTextStream *t, const TranslatorMessage &msg, int msgid,
int indent, const QString &translation = QString())
{
static int plural = 0;
static int prevMsgId = -1;
writeIndent(t, indent);
(*t) << "<trans-unit id=\"msg";
QString strid;
QByteArray transl;
if (msg.isPlural()) {
if (prevMsgId != msgid)
plural = 0;
strid = QString::fromAscii("%1[%2]").arg(msgid).arg(plural);
++plural;
transl = translation.toUtf8();
} else {
strid = QString::fromAscii("%1").arg(msgid);
plural = 0;
transl = msg.translation().toUtf8();
}
prevMsgId = msgid;
(*t) << strid << "\"";
QString state;
indent+=2;
if (msg.type() == TranslatorMessage::Obsolete) {
(*t) << " translate=\"no\"";
} else {
state = msg.type() == TranslatorMessage::Finished
? QLatin1String("final") : QLatin1String("new");
state = QString::fromAscii(" state=\"%1\"").arg(state);
}
(*t) << ">\n";
writeIndent(t, indent);
(*t) << "<source xml:space=\"preserve\">" << evilBytes(msg.sourceText(), msg.utf8()) << "</source>\n";
writeIndent(t, indent);
(*t) << "<target xml:space=\"preserve\"" << state << ">" << evilBytes2(transl, msg.utf8()) << "</target>\n";
// ### In XLIFF 1.1, name is marked as required, and it must be unique
// This is questionable behaviour, and was brought up at the xliff-comments mailinglist.
if (!msg.isPlural()) {
writeLineNumber(t, msg, indent);
writeComment(t, msg, indent);
}
indent-=2;
writeIndent(t, indent);
(*t) << "</trans-unit>\n";
}
示例3: saveXLIFF
bool MetaTranslator::saveXLIFF( const QString& filename) const
{
QFile f( filename );
if ( !f.open(QIODevice::WriteOnly | QIODevice::Text) )
return false;
int indent = 2;
int currentindent = 0;
QTextStream t( &f );
t.setCodec( QTextCodec::codecForName("ISO-8859-1") );
QMap<QString, TranslatorMessage> mtSortByFileName;
TMM::ConstIterator m = mm.begin();
while ( m != mm.end() ) {
TranslatorMessage msg = m.key();
QString location = msg.fileName() + QLatin1String(msg.context()) + QString::number(msg.lineNumber());
mtSortByFileName.insertMulti(location, msg);
++m;
}
t.setFieldAlignment(QTextStream::AlignRight);
t << "<?xml version=\"1.0\"";
t << " encoding=\"utf-8\"?>\n";
t << "<xliff version=\"1.1\" xmlns=\"" << XLIFF11namespaceURI << "\">\n";
currentindent += indent;
QMap<QString, TranslatorMessage>::iterator mi = mtSortByFileName.begin();
TranslatorMessage msg;
QByteArray ctx;
QString fn;
bool ctxdiffer = false;
bool filediffer = false;
while (mi != mtSortByFileName.end()) {
msg = mi.value();
ctxdiffer = msg.context() != ctx;
filediffer = msg.fileName() != fn;
if (ctxdiffer || filediffer) {
if (!ctx.isEmpty()) {
writeIndent(&t, currentindent);
t << "</group>\n";
currentindent -= indent;
}
}
if (filediffer) {
if (!fn.isEmpty()) {
writeIndent(&t, currentindent);
t << "</body></file>\n";
currentindent -= indent;
}
fn = msg.fileName();
writeIndent(&t, currentindent);
t << "<file original=\"" << fn << "\""
<< " datatype=\"" << dataType(msg) << "\""
<< " source-language=\"" << "en" << "\"" //###
<< " target-language=\"" << languageCode() << "\""
<< "><body>\n";
currentindent += indent;
}
if (ctxdiffer || filediffer) {
ctx = msg.context();
writeIndent(&t, currentindent);
t << "<group restype=\"" << restypeContext << "\""
<< " resname=\"" << evilBytes(ctx, msg.utf8()) << "\""
<< ">\n";
currentindent += indent;
}
writeMessage(&t, msg, currentindent, m_language);
++mi;
}
currentindent-=indent;
writeIndent(&t, currentindent);
t << "</group>\n";
currentindent-=indent;
writeIndent(&t, currentindent);
t << "</body></file>\n";
t << "</xliff>\n";
f.close();
return true;
}