*****************************************************************************/
MultiMessageItem::MultiMessageItem(const MessageItem *m)
- : m_text(m->text()),
+ : m_id(m->id()),
+ m_text(m->text()),
m_pluralText(m->pluralText()),
m_comment(m->comment()),
m_nonnullCount(0),
return -1;
}
+int MultiContextItem::findMessageById(const QString &id) const
+{
+ for (int i = 0, cnt = messageCount(); i < cnt; ++i) {
+ MultiMessageItem *m = multiMessageItem(i);
+ if (m->id() == id)
+ return i;
+ }
+ return -1;
+}
+
/******************************************************************************
*
* MultiDataModel
QList<MessageItem *> appendItems;
for (int j = 0; j < c->messageCount(); ++j) {
MessageItem *m = c->messageItem(j);
- int msgIdx = mc->findMessage(m->text(), m->comment());
+
+ int msgIdx = -1;
+ if (!m->id().isEmpty()) // id based translation
+ msgIdx = mc->findMessageById(m->id());
+
+ if (msgIdx == -1)
+ msgIdx = mc->findMessage(m->text(), m->comment());
+
if (msgIdx >= 0)
mc->putMessageItem(msgIdx, m);
else
void setTranslation(const QString &translation)
{ m_message.setTranslation(translation); }
+ QString id() const { return m_message.id(); }
QString context() const { return m_message.context(); }
QString text() const { return m_message.sourceText(); }
QString pluralText() const { return m_message.extra(QLatin1String("po-msgid_plural")); }
{
public:
MultiMessageItem(const MessageItem *m);
+ QString id() const { return m_id; }
QString text() const { return m_text; }
QString pluralText() const { return m_pluralText; }
QString comment() const { return m_comment; }
void incrementUnfinishedCount() { ++m_unfinishedCount; }
void decrementUnfinishedCount() { --m_unfinishedCount; }
+ QString m_id;
QString m_text;
QString m_pluralText;
QString m_comment;
MessageItem *messageItem(int model, int msgIdx) const { return m_messageLists[model][msgIdx]; }
int firstNonobsoleteMessageIndex(int msgIdx) const;
int findMessage(const QString &sourcetext, const QString &comment) const;
+ int findMessageById(const QString &id) const;
QString context() const { return m_context; }
QString comment() const { return m_comment; }