[pim/korganizer] src/kontactplugin: Add kuit context markers

Allen Winter <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 560dd6d664e2db23aa1bab7c5ec0082b0f88d121 by Allen Winter.
Committed on 22/07/2026 at 20:02.
Pushed by winterz into branch 'master'.

Add kuit context markers

M  +6    -5    src/kontactplugin/korganizer/apptsummarywidget.cpp
M  +29   -18   src/kontactplugin/korganizer/summaryeventinfo.cpp
M  +24   -23   src/kontactplugin/korganizer/todosummarywidget.cpp
M  +22   -19   src/kontactplugin/specialdates/sdsummarywidget.cpp

https://invent.kde.org/pim/korganizer/-/commit/560dd6d664e2db23aa1bab7c5ec0082b0f88d121

diff --git a/src/kontactplugin/korganizer/apptsummarywidget.cpp b/src/kontactplugin/korganizer/apptsummarywidget.cpp
index 2e4654f45..309a815ee 100644
--- a/src/kontactplugin/korganizer/apptsummarywidget.cpp
+++ b/src/kontactplugin/korganizer/apptsummarywidget.cpp
@@ -46,7 +46,7 @@ ApptSummaryWidget::ApptSummaryWidget(KOrganizerPlugin *plugin, QWidget *parent)
     mainLayout->setSpacing(3);
     mainLayout->setContentsMargins(3, 3, 3, 3);
 
-    QWidget *header = createHeader(this, QStringLiteral("view-calendar-upcoming-events"), i18n("Upcoming Events"));
+    QWidget *header = createHeader(this, QStringLiteral("view-calendar-upcoming-events"), i18nc("@title:group", "Upcoming Events"));
     mainLayout->addWidget(header);
 
     mLayout = new QGridLayout();
@@ -196,7 +196,8 @@ void ApptSummaryWidget::updateView()
 
     if (!counter) {
         auto noEvents =
-            new QLabel(i18np("No upcoming events starting within the next day", "No upcoming events starting within the next %1 days", mDaysAhead), this);
+            new QLabel(i18ncp("@label", "No upcoming events starting within the next day", "No upcoming events starting within the next %1 days", mDaysAhead),
+                       this);
         noEvents->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
         mLayout->addWidget(noEvents, 0, 0);
         mLabels.append(noEvents);
@@ -236,9 +237,9 @@ void ApptSummaryWidget::popupMenu(const QString &uid)
 
     // FIXME: Should say "Show Appointment" if we don't have rights to edit
     // Doesn't make sense to edit events from birthday resource for example
-    QAction *editIt = popup.addAction(i18n("&Edit Appointment…"));
+    QAction *editIt = popup.addAction(i18nc("@action:inmenu", "&Edit Appointment…"));
     editIt->setIcon(QIcon::fromTheme(QStringLiteral("document-edit")));
-    QAction *delIt = popup.addAction(i18n("&Delete Appointment"));
+    QAction *delIt = popup.addAction(i18nc("@action:inmenu", "&Delete Appointment"));
     delIt->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete")));
 
     const Akonadi::Item item = mCalendar->item(uid);
@@ -257,7 +258,7 @@ bool ApptSummaryWidget::eventFilter(QObject *obj, QEvent *e)
     if (obj->inherits("KUrlLabel")) {
         auto label = static_cast<KUrlLabel *>(obj);
         if (e->type() == QEvent::Enter) {
-            Q_EMIT message(i18n("Edit Event: \"%1\"", label->text()));
+            Q_EMIT message(i18nc("@info:status", "Edit Event: \"%1\"", label->text()));
         }
         if (e->type() == QEvent::Leave) {
             Q_EMIT message(QString());
diff --git a/src/kontactplugin/korganizer/summaryeventinfo.cpp b/src/kontactplugin/korganizer/summaryeventinfo.cpp
index 84a8b22f5..cf3860d28 100644
--- a/src/kontactplugin/korganizer/summaryeventinfo.cpp
+++ b/src/kontactplugin/korganizer/summaryeventinfo.cpp
@@ -134,21 +134,27 @@ SummaryEventInfo::List SummaryEventInfo::eventsForRange(QDate start, QDate end,
         QString str;
         const QDate sD = occurrenceStartDate;
         if (currentDate >= sD) {
-            str = i18nc("the appointment is today", "Today");
+            str = i18nc("@label the appointment is today", "Today");
             summaryEvent->makeBold = true;
         } else if (sD == currentDate.addDays(1)) {
-            str = i18nc("the appointment is tomorrow", "Tomorrow");
+            str = i18nc("@label the appointment is tomorrow", "Tomorrow");
         } else {
             for (int i = 3; i < 8; ++i) {
                 if (currentDate.daysTo(sD) < 6) {
-                    str = i18nc("1. weekday", "%1", locale.dayName(sD.dayOfWeek(), QLocale::LongFormat));
+                    str = i18nc("@label 1. weekday", "%1", locale.dayName(sD.dayOfWeek(), QLocale::LongFormat));
                 } else {
-                    str = i18nc("1. weekday, 2. date", "%1 %2", locale.dayName(sD.dayOfWeek(), QLocale::LongFormat), locale.toString(sD, QLocale::ShortFormat));
+                    str = i18nc("@label 1. weekday, 2. date",
+                                "%1 %2",
+                                locale.dayName(sD.dayOfWeek(), QLocale::LongFormat),
+                                locale.toString(sD, QLocale::ShortFormat));
                 }
                 break;
             }
             if (str.isEmpty()) {
-                str = i18nc("1. weekday, 2. date", "%1 %2", locale.dayName(sD.dayOfWeek(), QLocale::LongFormat), locale.toString(sD, QLocale::ShortFormat));
+                str = i18nc("@label 1. weekday, 2. date",
+                            "%1 %2",
+                            locale.dayName(sD.dayOfWeek(), QLocale::LongFormat),
+                            locale.toString(sD, QLocale::ShortFormat));
             }
         }
         summaryEvent->startDate = str;
@@ -163,10 +169,15 @@ SummaryEventInfo::List SummaryEventInfo::eventsForRange(QDate start, QDate end,
         if (ev->isMultiDay() && ev->allDay() && firstDayOfMultiday && span > 1) {
             const QDate dtStart = ev->dtStart().toLocalTime().date();
             const QDate dtEnd = ev->dtEnd().toLocalTime().date();
-            str =
-                i18nc("1. weekday, 2. date", "%1 %2", locale.dayName(dtStart.dayOfWeek(), QLocale::LongFormat), locale.toString(dtStart, QLocale::ShortFormat))
+            str = i18nc("@label 1. weekday, 2. date",
+                        "%1 %2",
+                        locale.dayName(dtStart.dayOfWeek(), QLocale::LongFormat),
+                        locale.toString(dtStart, QLocale::ShortFormat))
                 + QLatin1StringView(" -\n ")
-                + i18nc("1. weekday, 2. date", "%1 %2", locale.dayName(dtEnd.dayOfWeek(), QLocale::LongFormat), locale.toString(dtEnd, QLocale::ShortFormat));
+                + i18nc("@label 1. weekday, 2. date",
+                        "%1 %2",
+                        locale.dayName(dtEnd.dayOfWeek(), QLocale::LongFormat),
+                        locale.toString(dtEnd, QLocale::ShortFormat));
         }
         summaryEvent->dateSpan = str;
 
@@ -174,7 +185,7 @@ SummaryEventInfo::List SummaryEventInfo::eventsForRange(QDate start, QDate end,
         str.clear();
         const qint64 daysTo = currentDate.daysTo(occurrenceStartDate);
         if (daysTo > 0) {
-            str = i18np("in 1 day", "in %1 days", daysTo);
+            str = i18ncp("@label", "in 1 day", "in %1 days", daysTo);
         } else {
             if (!ev->allDay()) {
                 int secs;
@@ -187,16 +198,16 @@ SummaryEventInfo::List SummaryEventInfo::eventsForRange(QDate start, QDate end,
                     secs = currentDateTime.secsTo(next);
                 }
                 if (secs > 0) {
-                    str = i18nc("eg. in 1 hour 2 minutes", "in ");
+                    str = i18nc("@label eg. in 1 hour 2 minutes", "in ");
                     const int hours = secs / 3600;
                     if (hours > 0) {
-                        str += i18ncp("use abbreviation for hour to keep the text short", "1 hr", "%1 hrs", hours);
+                        str += i18ncp("@label use abbreviation for hour to keep the text short", "1 hr", "%1 hrs", hours);
                         str += u' ';
                         secs -= (hours * 3600);
                     }
                     const int mins = secs / 60;
                     if (mins > 0) {
-                        str += i18ncp("use abbreviation for minute to keep the text short", "1 min", "%1 mins", mins);
+                        str += i18ncp("@label use abbreviation for minute to keep the text short", "1 min", "%1 mins", mins);
                         if (hours < 1) {
                             // happens in less than 1 hour
                             summaryEvent->makeUrgent = true;
@@ -215,18 +226,18 @@ SummaryEventInfo::List SummaryEventInfo::eventsForRange(QDate start, QDate end,
                         secsToEnd = currentDateTime.secsTo(next);
                     }
                     if (secsToEnd > 0) {
-                        str = i18nc("the event is currently in-progress", "in-progress");
+                        str = i18nc("@label the event is currently in-progress", "in-progress");
                         summaryEvent->makeUrgent = true;
                     } else {
                         const int hours = -secsToEnd / 60 / 60;
                         if (hours > 0) {
-                            str = i18ncp("use abbreviation for hour to keep the text short. the event ended at least 1 hour ago",
+                            str = i18ncp("@label use abbreviation for hour to keep the text short. the event ended at least 1 hour ago",
                                          "ended 1 hr ago",
                                          "ended %1 hrs ago",
                                          hours);
                         } else {
                             const int mins = -secsToEnd / 60;
-                            str = i18ncp("use abbreviation for min to keep the text short. the event ended a few minutes ago",
+                            str = i18ncp("@label use abbreviation for min to keep the text short. the event ended a few minutes ago",
                                          "ended 1 min ago",
                                          "ended %1 mins ago",
                                          mins);
@@ -235,7 +246,7 @@ SummaryEventInfo::List SummaryEventInfo::eventsForRange(QDate start, QDate end,
                     }
                 }
             } else {
-                str = i18n("all day");
+                str = i18nc("@label", "all day");
             }
         }
         summaryEvent->daysToGo = str;
@@ -274,7 +285,7 @@ SummaryEventInfo::List SummaryEventInfo::eventsForRange(QDate start, QDate end,
                     sET = QTime(23, 59);
                 }
             }
-            str = i18nc("Time from - to",
+            str = i18nc("@label Time from - to",
                         "%1 - %2",
                         QLocale::system().toString(sST, QLocale::ShortFormat),
                         QLocale::system().toString(sET, QLocale::ShortFormat));
@@ -291,7 +302,7 @@ SummaryEventInfo::List SummaryEventInfo::eventsForRange(QDate start, QDate end,
                 summaryEvent->timeRange += QLatin1StringView("<br>");
             }
             summaryEvent->timeRange +=
-                QLatin1StringView("<font size=\"small\"><i>") + i18nc("next occurrence", "Next: %1", tmp) + QLatin1StringView("</i></font>");
+                QLatin1StringView("<font size=\"small\"><i>") + i18nc("@label next occurrence", "Next: %1", tmp) + QLatin1StringView("</i></font>");
         }
     }
 
diff --git a/src/kontactplugin/korganizer/todosummarywidget.cpp b/src/kontactplugin/korganizer/todosummarywidget.cpp
index fd8e67672..c8175bcc0 100644
--- a/src/kontactplugin/korganizer/todosummarywidget.cpp
+++ b/src/kontactplugin/korganizer/todosummarywidget.cpp
@@ -44,7 +44,7 @@ TodoSummaryWidget::TodoSummaryWidget(TodoPlugin *plugin, QWidget *parent)
     mainLayout->setSpacing(3);
     mainLayout->setContentsMargins(3, 3, 3, 3);
 
-    QWidget *header = createHeader(this, QStringLiteral("view-calendar-tasks"), i18n("Pending To-dos"));
+    QWidget *header = createHeader(this, QStringLiteral("view-calendar-tasks"), i18nc("@title:group", "Pending To-dos"));
     mainLayout->addWidget(header);
 
     mLayout = new QGridLayout();
@@ -180,23 +180,23 @@ void TodoSummaryWidget::updateView()
 
                 if (daysTo == 0) {
                     makeBold = true;
-                    str = i18nc("the to-do is due today", "Today");
+                    str = i18nc("@label the to-do is due today", "Today");
                 } else if (daysTo == 1) {
-                    str = i18nc("the to-do is due tomorrow", "Tomorrow");
+                    str = i18nc("@label the to-do is due tomorrow", "Tomorrow");
                 } else {
                     const auto locale = QLocale::system();
                     for (int i = 3; i < 8; ++i) {
                         if (daysTo < i * 24 * 60 * 60) {
                             if (todo->dtDue().time() != QTime(0, 0)) {
-                                str = i18nc("1. weekday, 2. time",
+                                str = i18nc("@label 1. weekday, 2. time",
                                             "%1 %2",
                                             locale.dayName(todo->dtDue().date().dayOfWeek(), QLocale::LongFormat),
                                             locale.toString(todo->dtDue().time(), QLocale::ShortFormat));
                             } else {
                                 if (daysTo < 6 && daysTo > 0) {
-                                    str = i18nc("1. weekday", "%1", locale.dayName(todo->dtDue().date().dayOfWeek(), QLocale::LongFormat));
+                                    str = i18nc("@label 1. weekday", "%1", locale.dayName(todo->dtDue().date().dayOfWeek(), QLocale::LongFormat));
                                 } else {
-                                    str = i18nc("1. weekday, 2. date",
+                                    str = i18nc("@label 1. weekday, 2. date",
                                                 "%1 %2",
                                                 locale.dayName(todo->dtDue().date().dayOfWeek(), QLocale::LongFormat),
                                                 locale.toString(todo->dtDue().date(), QLocale::ShortFormat));
@@ -241,19 +241,19 @@ void TodoSummaryWidget::updateView()
             str.clear();
             if (todo->hasDueDate() && todo->dtDue().date().isValid()) {
                 if (daysTo > 0) {
-                    str = i18np("in 1 day", "in %1 days", daysTo);
+                    str = i18ncp("@label", "in 1 day", "in %1 days", daysTo);
                 } else if (daysTo < 0) {
-                    str = i18np("1 day ago", "%1 days ago", -daysTo);
+                    str = i18ncp("@label", "1 day ago", "%1 days ago", -daysTo);
                 } else {
                     if (todo->allDay()) {
-                        str = i18nc("the to-do is due today", "due any time today");
+                        str = i18nc("@label the to-do is due today", "due any time today");
                     } else {
                         if (currTime < todo->dtDue().time()) {
-                            str = i18nc("the to-do is due at specified time",
+                            str = i18nc("@label the to-do is due at specified time",
                                         "is due at %1",
                                         QLocale::system().toString(todo->dtDue().time(), QLocale::ShortFormat));
                         } else {
-                            str = i18nc("the to-do was due at specified time",
+                            str = i18nc("@label the to-do was due at specified time",
                                         "was due at %1",
                                         QLocale::system().toString(todo->dtDue().time(), QLocale::ShortFormat));
                         }
@@ -321,7 +321,8 @@ void TodoSummaryWidget::updateView()
     } // foreach
 
     if (counter == 0) {
-        auto noTodos = new QLabel(i18np("No pending to-dos due within the next day", "No pending to-dos due within the next %1 days", mDaysToGo), this);
+        auto noTodos =
+            new QLabel(i18ncp("@label", "No pending to-dos due within the next day", "No pending to-dos due within the next %1 days", mDaysToGo), this);
         noTodos->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
         mLayout->addWidget(noTodos, 0, 0);
         mLabels.append(noTodos);
@@ -378,15 +379,15 @@ void TodoSummaryWidget::popupMenu(const QString &uid)
     }
     Akonadi::Item const item = mCalendar->item(uid);
     QMenu popup(this);
-    QAction *editIt = popup.addAction(i18n("&Edit To-do…"));
+    QAction *editIt = popup.addAction(i18nc("@action:inmenu", "&Edit To-do…"));
     editIt->setIcon(QIcon::fromTheme(QStringLiteral("document-edit")));
-    QAction *delIt = popup.addAction(i18n("&Delete To-do"));
+    QAction *delIt = popup.addAction(i18nc("@action:inmenu", "&Delete To-do"));
     delIt->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete")));
     delIt->setEnabled(mCalendar->hasRight(item, Akonadi::Collection::CanDeleteItem));
 
     QAction *doneIt = nullptr;
     if (!todo->isCompleted()) {
-        doneIt = popup.addAction(i18n("&Mark To-do Completed"));
+        doneIt = popup.addAction(i18nc("@action:inmenu", "&Mark To-do Completed"));
         doneIt->setIcon(QIcon::fromTheme(QStringLiteral("task-complete")));
         doneIt->setEnabled(mCalendar->hasRight(item, Akonadi::Collection::CanChangeItem));
     }
@@ -406,7 +407,7 @@ bool TodoSummaryWidget::eventFilter(QObject *obj, QEvent *e)
     if (obj->inherits("KUrlLabel")) {
         auto label = static_cast<KUrlLabel *>(obj);
         if (e->type() == QEvent::Enter) {
-            Q_EMIT message(i18n("Edit To-do: \"%1\"", label->text()));
+            Q_EMIT message(i18nc("@info:status", "Edit To-do: \"%1\"", label->text()));
         }
         if (e->type() == QEvent::Leave) {
             Q_EMIT message(QString());
@@ -426,24 +427,24 @@ QString TodoSummaryWidget::stateStr(const KCalendarCore::Todo::Ptr &todo) const
     QString str2;
 
     if (todo->isOpenEnded()) {
-        str1 = i18n("open-ended");
+        str1 = i18nc("@label", "open-ended");
     } else if (todo->isOverdue()) {
-        str1 = QLatin1StringView("<font color=\"red\">") + i18nc("the to-do is overdue", "overdue") + QLatin1StringView("</font>");
+        str1 = QLatin1StringView("<font color=\"red\">") + i18nc("@label the to-do is overdue", "overdue") + QLatin1StringView("</font>");
     } else if (startsToday(todo)) {
-        str1 = i18nc("the to-do starts today", "starts today");
+        str1 = i18nc("@label the to-do starts today", "starts today");
     }
 
     if (todo->isNotStarted(false)) {
-        str2 += i18nc("the to-do has not been started yet", "not-started");
+        str2 += i18nc("@label the to-do has not been started yet", "not-started");
     } else if (todo->isCompleted()) {
-        str2 += i18nc("the to-do is completed", "completed");
+        str2 += i18nc("@label the to-do is completed", "completed");
     } else if (todo->isInProgress(false)) {
-        str2 += i18nc("the to-do is in-progress", "in-progress ");
+        str2 += i18nc("@label the to-do is in-progress", "in-progress ");
         str2 += QLatin1StringView(" (") + QString::number(todo->percentComplete()) + QLatin1StringView("%)");
     }
 
     if (!str1.isEmpty() && !str2.isEmpty()) {
-        str1 += i18nc("Separator for status like this: overdue, completed", ",");
+        str1 += i18nc("@label Separator for status like this: overdue, completed", ",");
     }
 
     return str1 + str2;
diff --git a/src/kontactplugin/specialdates/sdsummarywidget.cpp b/src/kontactplugin/specialdates/sdsummarywidget.cpp
index ab50f5a85..da50819cc 100644
--- a/src/kontactplugin/specialdates/sdsummarywidget.cpp
+++ b/src/kontactplugin/specialdates/sdsummarywidget.cpp
@@ -104,7 +104,7 @@ SDSummaryWidget::SDSummaryWidget(KontactInterface::Plugin *plugin, QWidget *pare
     mainLayout->setSpacing(3);
     mainLayout->setContentsMargins(3, 3, 3, 3);
 
-    QWidget *header = createHeader(this, QStringLiteral("view-calendar-special-occasion"), i18n("Upcoming Special Dates"));
+    QWidget *header = createHeader(this, QStringLiteral("view-calendar-special-occasion"), i18nc("@title:group", "Upcoming Special Dates"));
     mainLayout->addWidget(header);
 
     mLayout = new QGridLayout();
@@ -455,17 +455,17 @@ void SDSummaryWidget::createLabels()
             QDate const sD = QDate(year, (*addrIt).date.month(), (*addrIt).date.day());
 
             if ((*addrIt).daysTo == 0) {
-                datestr = i18nc("the special day is today", "Today");
+                datestr = i18nc("@label the special day is today", "Today");
             } else if ((*addrIt).daysTo == 1) {
-                datestr = i18nc("the special day is tomorrow", "Tomorrow");
+                datestr = i18nc("@label the special day is tomorrow", "Tomorrow");
             } else {
                 const auto locale = QLocale::system();
                 for (int i = 3; i < 8; ++i) {
                     if ((*addrIt).daysTo < i) {
                         if ((*addrIt).daysTo < 6) {
-                            datestr = i18nc("1. weekday", "%1", locale.dayName(sD.dayOfWeek(), QLocale::LongFormat));
+                            datestr = i18nc("@label 1. weekday", "%1", locale.dayName(sD.dayOfWeek(), QLocale::LongFormat));
                         } else {
-                            datestr = i18nc("1. weekday, 2. date",
+                            datestr = i18nc("@label 1. weekday, 2. date",
                                             "%1 %2",
                                             locale.dayName(sD.dayOfWeek(), QLocale::LongFormat),
                                             locale.toString(sD, QLocale::ShortFormat));
@@ -474,8 +474,10 @@ void SDSummaryWidget::createLabels()
                     }
                 }
                 if (datestr.isEmpty()) {
-                    datestr =
-                        i18nc("1. weekday, 2. date", "%1 %2", locale.dayName(sD.dayOfWeek(), QLocale::LongFormat), locale.toString(sD, QLocale::ShortFormat));
+                    datestr = i18nc("@label 1. weekday, 2. date",
+                                    "%1 %2",
+                                    locale.dayName(sD.dayOfWeek(), QLocale::LongFormat),
+                                    locale.toString(sD, QLocale::ShortFormat));
                 }
             }
             // Print the date span for multiday, floating events, for the
@@ -500,9 +502,9 @@ void SDSummaryWidget::createLabels()
             // Countdown
             label = new QLabel(this);
             if ((*addrIt).daysTo == 0) {
-                label->setText(i18n("now"));
+                label->setText(i18nc("@label", "now"));
             } else {
-                label->setText(i18np("in 1 day", "in %1 days", (*addrIt).daysTo));
+                label->setText(i18ncp("@label", "in 1 day", "in %1 days", (*addrIt).daysTo));
             }
 
             label->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
@@ -513,19 +515,19 @@ void SDSummaryWidget::createLabels()
             QString what;
             switch ((*addrIt).category) {
             case CategoryBirthday:
-                what = i18n("Birthday");
+                what = i18nc("@label", "Birthday");
                 break;
             case CategoryAnniversary:
-                what = i18n("Anniversary");
+                what = i18nc("@label", "Anniversary");
                 break;
             case CategoryHoliday:
-                what = i18n("Holiday");
+                what = i18nc("@label", "Holiday");
                 break;
             case CategorySeasonal:
-                what = i18n("Change of Seasons");
+                what = i18nc("@label", "Change of Seasons");
                 break;
             case CategoryOther:
-                what = i18n("Special Occasion");
+                what = i18nc("@label", "Special Occasion");
                 break;
             }
             label = new QLabel(this);
@@ -567,7 +569,7 @@ void SDSummaryWidget::createLabels()
                 if ((*addrIt).yearsOld <= 0) {
                     label->setText(QString());
                 } else {
-                    label->setText(i18np("one year", "%1 years", (*addrIt).yearsOld));
+                    label->setText(i18ncp("@label", "one year", "%1 years", (*addrIt).yearsOld));
                 }
                 label->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
                 mLayout->addWidget(label, counter, 5);
@@ -577,7 +579,8 @@ void SDSummaryWidget::createLabels()
             counter++;
         }
     } else {
-        auto label = new QLabel(i18np("No special dates within the next 1 day", "No special dates pending within the next %1 days", mDaysAhead), this);
+        auto label =
+            new QLabel(i18ncp("@label", "No special dates within the next 1 day", "No special dates pending within the next %1 days", mDaysAhead), this);
         label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
         mLayout->addWidget(label, 0, 0);
         mLabels.append(label);
@@ -671,8 +674,8 @@ void SDSummaryWidget::viewContact(const QString &url)
 void SDSummaryWidget::popupMenu(const QString &url)
 {
     QMenu popup(this);
-    const QAction *sendMailAction = popup.addAction(QIcon::fromTheme(QStringLiteral("mail-message-new")), i18n("Send &Mail"));
-    const QAction *viewContactAction = popup.addAction(QIcon::fromTheme(QStringLiteral("view-pim-contacts")), i18n("View &Contact"));
+    const QAction *sendMailAction = popup.addAction(QIcon::fromTheme(QStringLiteral("mail-message-new")), i18nc("@action:inmenu", "Send &Mail"));
+    const QAction *viewContactAction = popup.addAction(QIcon::fromTheme(QStringLiteral("view-pim-contacts")), i18nc("@action:inmenu", "View &Contact"));
 
     const QAction *ret = popup.exec(QCursor::pos());
     if (ret == sendMailAction) {
@@ -687,7 +690,7 @@ bool SDSummaryWidget::eventFilter(QObject *obj, QEvent *e)
     if (obj->inherits("KUrlLabel")) {
         auto label = static_cast<KUrlLabel *>(obj);
         if (e->type() == QEvent::Enter) {
-            Q_EMIT message(i18n("Mail to:\"%1\"", label->text()));
+            Q_EMIT message(i18nc("@info:status", "Mail to:\"%1\"", label->text()));
         }
         if (e->type() == QEvent::Leave) {
             Q_EMIT message(QString());
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.