Доброй ночи.
Похоже, с проблемой разбираются тут https://bugs.kde.org/show_bug.cgi?id=415541
Но есть ещё одна проблема с переводом.
Я в том баге не могу выкладывать патчи.
Мне там рекомендовали выкладывать патчи на phabricator,
но у меня нет доступа на создание темы на страницах phabricator.
Приложу патч сюда, в надежде на помощь Юрия.
Текст без перевода виден здесь https://phabricator.kde.org/D26665#594287
Сделал на всякий случай снимок, где пометил проблемные строки, только он без миниатюр для загружаемых файлов,
так как нахожусь за прокси с авторизацией, а knewstuff не работает с такой сетью.
Фото https://i.imgur.com/VzH5VoZ.jpg
После применения патча, эти строки выглядят так
Фото https://i.imgur.com/3duXhCO.jpg
 
Видна малая часть текста.
На самом деле такого текста довольно много.
 
 
 
15.01.2020, 21:12, "Виктор" <victorr2...@yandex.ru>:
Да уж, проблема всё множится https://cgit.kde.org/plasma-desktop.git/commit/?id=442c43b3ca98807a7b93c757ffbd090c892e0e44
Поправить патчем недолго.
Но всё же странная идея, составлять трансформер из фраз.
Ну вызвали кнопкой действие помощью knewstuff, а текст оставить только на кнопке вызова.
Ну ладно, придётся патчить.
 
14.01.2020, 20:30, "Виктор" <victorr2...@yandex.ru>:
Похоже, проблема не исправляется. :(
И даже множится.
Сегодня повторилась здесь https://phabricator.kde.org/D26665
Я там написал немного с картинками и патчами.
Может обратят на неё более пристальное внимание.
 
25.12.2019, 04:32, "Alexander Potashev" <aspotas...@gmail.com>:

Спасибо, Виктор, что напомнили. Накидал жалоб:

https://bugs.kde.org/show_bug.cgi?id=415541
https://bugs.kde.org/show_bug.cgi?id=415539

ср, 25 дек. 2019 г. в 03:46, Виктор <victorr2...@yandex.ru>:


 Оказывается, ранее в файле
 /plasma-desktop.git/kcms/lookandfeel/package/contents/ui/main.qml
 был текст

 QtControls.Button {
 text: i18n("Get New Global Themes...")
 icon.name: "get-hot-new-stuff"
 onClicked: kcm.getNewStuff(this);
 visible: KAuthorized.authorize("ghns")

 А теперь его заменили на

 NewStuff.Button {
 downloadNewWhat: i18n("Global Themes")
 configFile: "lookandfeel.knsrc"
 viewMode: NewStuff.Page.ViewMode.Preview
 onChangedEntriesChanged: kcm.reloadModel();





 24.12.2019, 14:22, "Yuri Chornoivan" <yurc...@ukr.net>:



 24 грудня 2019, 12:00:49, від "Виктор" <victorr2...@yandex.ru>:


  Добрый день.
  Пишу просто для информации, какие иногда бывают ошибки.
  Полагаю, что это просто временное проявление на стадии разработки.
  А по существу, то текст на кнопке в текущий момент состоит из двух разных строк.
  Первая часть текста без перевода «Download New», и откуда он идёт, я не понял.
  Вторая часть текста, это перевод строки
  i18n("Global Theme")
  из файла https://cgit.kde.org/plasma-desktop.git/tree/kcms/lookandfeel/kcm.cpp
  пакета plasma-desktop.
  Проверял, меняя перевод этой строки в файле kcm_lookandfeel.po, и перевод строки на кнопке менялся.
  Думал, может это я что-то не так сделал, но проверил в Neon, там так же.
  Ошибка вылезла вчера.
  Здесь есть картинка, где отметил стрелкой кнопу со странной строкой.
  https://forum.rosalinux.ru/viewtopic.php?p=103248#p103248


 Добрый день,

 После разделения строк на кнопку и заголовок окна переведенным оказалось не всё (строка 606):

 https://websvn.kde.org/trunk/l10n-kf5/ru/messages/frameworks/knewstuff5.po?revision=1558574&view=markup

 Это может объяснить то, что заголовок не переведен. Проблема с переводом текста на кнопке связана или с тем, что он слишком «свеж», или с тем, что снова кто-то не использует i18nd().

 С уважением,
 Юрий

 _______________________________________________
 kde-russian mailing list
 kde-russian@lists.kde.ru
 https://lists.kde.ru/mailman/listinfo/kde-russian



 --
 С Уважением,
 Виктор

 victorr2...@yandex.ru

 _______________________________________________
 kde-russian mailing list
 kde-russian@lists.kde.ru
 https://lists.kde.ru/mailman/listinfo/kde-russian



 

--
Alexander Potashev
_______________________________________________
kde-russian mailing list
kde-russian@lists.kde.ru
https://lists.kde.ru/mailman/listinfo/kde-russian
 
 
-- 
С Уважением,
Виктор
 
 
,

_______________________________________________
kde-russian mailing list
kde-russian@lists.kde.ru
https://lists.kde.ru/mailman/listinfo/kde-russian

 
 
-- 
С Уважением,
Виктор
 
victorr2...@yandex.ru
 
 
 
-- 
С Уважением,
Виктор
 
victorr2...@yandex.ru
 
diff -urN knewstuff-5.66.0/src/qtquick/qml/Button.qml knewstuff-5.66.0-patched/src/qtquick/qml/Button.qml
--- knewstuff-5.66.0/src/qtquick/qml/Button.qml	2020-01-29 07:33:55.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/Button.qml	2020-01-30 02:29:17.306315694 +0300
@@ -51,12 +51,12 @@
 
     /**
      * Set the text that should appear on the button. Will be set as
-     * i18n("Download New %1...").
+     * i18nd("knewstuff5", "Download New %1...").
      *
      * @note For the sake of consistency, you should NOT override the text propety, just set this one
      */
-    property string downloadNewWhat: i18nc("Used to contruct the button's label (which will become Download New 'this value'...)", "Stuff")
-    text: i18n("Download New %1...", downloadNewWhat)
+    property string downloadNewWhat: i18ndc("knewstuff5", "Used to contruct the button's label (which will become Download New 'this value'...)", "Stuff")
+    text: i18nd("knewstuff5", "Download New %1...", downloadNewWhat)
 
     /**
      * The default view mode of the dialog spawned by this button. This should be
diff -urN knewstuff-5.66.0/src/qtquick/qml/Dialog.qml knewstuff-5.66.0-patched/src/qtquick/qml/Dialog.qml
--- knewstuff-5.66.0/src/qtquick/qml/Dialog.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/Dialog.qml	2020-01-29 22:40:20.816227401 +0300
@@ -46,13 +46,13 @@
 
     /**
      * Set the text that should appear as the dialog's title. Will be set as
-     * i18n("Download New %1").
+     * i18nd("knewstuff5", "Download New %1").
      *
      * @default The name defined by your knsrc config file
      * @note For the sake of consistency, you should NOT override the title property, just set this one
      */
     property string downloadNewWhat: engine.name
-    title: component.downloadNewWhat.length > 0 ? i18nc("The dialog title when we know which type of stuff is being requested", "Download New %1", component.downloadNewWhat) : i18nc("A placeholder title used in the dialog when there is no better title available", "Download New Stuff")
+    title: component.downloadNewWhat.length > 0 ? i18ndc("knewstuff5", "The dialog title when we know which type of stuff is being requested", "Download New %1", component.downloadNewWhat) : i18ndc("knewstuff5", "A placeholder title used in the dialog when there is no better title available", "Download New Stuff")
 
     /**
      * The engine which handles the content in this dialog
@@ -97,7 +97,7 @@
             QtLayouts.Layout.fillWidth: true
             QtControls.Button {
                 action: QtControls.Action {
-                    text: i18n("Close")
+                    text: i18nd("knewstuff5", "Close")
                     shortcut: "esc"
                     onTriggered: {
                         component.close();
diff -urN knewstuff-5.66.0/src/qtquick/qml/DownloadItemsSheet.qml knewstuff-5.66.0-patched/src/qtquick/qml/DownloadItemsSheet.qml
--- knewstuff-5.66.0/src/qtquick/qml/DownloadItemsSheet.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/DownloadItemsSheet.qml	2020-01-29 22:41:09.289563204 +0300
@@ -46,13 +46,13 @@
         spacing: Kirigami.Units.largeSpacing
         Kirigami.Heading {
             QtLayouts.Layout.fillWidth: true
-            text: i18n("Pick Your Installation Option")
+            text: i18nd("knewstuff5", "Pick Your Installation Option")
             elide: Text.ElideRight
         }
         QtControls.Label {
             QtLayouts.Layout.fillWidth: true
             QtLayouts.Layout.margins: Kirigami.Units.largeSpacing
-            text: i18n("Please select the option you wish to install from the list of downloadable items below. If it is unclear which you should chose out of the available options, please contact the author of this item and ask that they clarify this through the naming of the items.")
+            text: i18nd("knewstuff5", "Please select the option you wish to install from the list of downloadable items below. If it is unclear which you should chose out of the available options, please contact the author of this item and ask that they clarify this through the naming of the items.")
             wrapMode: Text.Wrap
         }
     }
@@ -69,7 +69,7 @@
             text: modelData.name
             icon: "download"
             QtControls.ToolButton {
-                text: i18n("Install")
+                text: i18nd("knewstuff5", "Install")
                 icon.name: "install"
                 QtLayouts.Layout.alignment: Qt.AlignRight
                 onClicked: {
diff -urN knewstuff-5.66.0/src/qtquick/qml/EntryDetails.qml knewstuff-5.66.0-patched/src/qtquick/qml/EntryDetails.qml
--- knewstuff-5.66.0/src/qtquick/qml/EntryDetails.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/EntryDetails.qml	2020-01-29 22:41:41.596231520 +0300
@@ -60,7 +60,7 @@
         id: downloadItemsSheet
         onItemPicked: {
             var entryName = newStuffModel.data(newStuffModel.index(entryId, 0), NewStuff.ItemsModel.NameRole);
-            applicationWindow().showPassiveNotification(i18nc("A passive notification shown when installation of an item is initiated", "Installing %1 from %2", downloadName, entryName), 1500);
+            applicationWindow().showPassiveNotification(i18ndc("knewstuff5", "A passive notification shown when installation of an item is initiated", "Installing %1 from %2", downloadName, entryName), 1500);
             newStuffModel.installItem(entryId, downloadItemId);
         }
     }
@@ -75,11 +75,11 @@
              || status == NewStuff.ItemsModel.DeletedStatus) {
                 statusCard.message = "";
             } else if (status == NewStuff.ItemsModel.InstallingStatus) {
-                statusCard.message = i18nc("Status message to be shown when the entry is in the process of being installed", "Currently installing the item %1 by %2. Please wait...", component.name, entryAuthor.name);
+                statusCard.message = i18ndc("knewstuff5", "Status message to be shown when the entry is in the process of being installed", "Currently installing the item %1 by %2. Please wait...", component.name, entryAuthor.name);
             } else if (status == NewStuff.ItemsModel.UpdatingStatus) {
-                statusCard.message = i18nc("Status message to be shown when the entry is in the process of being updated", "Currently updating the item %1 by %2. Please wait...", component.name, entryAuthor.name);
+                statusCard.message = i18ndc("knewstuff5", "Status message to be shown when the entry is in the process of being updated", "Currently updating the item %1 by %2. Please wait...", component.name, entryAuthor.name);
             } else {
-                statusCard.message = i18nc("Status message which should only be shown when the entry has been given some unknown or invalid status.", "This item is currently in an invalid or unknown state. <a href=\"https://bugs.kde.org/enter_bug.cgi?product=frameworks-knewstuff\";>Please report this to the KDE Community in a bug report</a>.");
+                statusCard.message = i18ndc("knewstuff5", "Status message which should only be shown when the entry has been given some unknown or invalid status.", "This item is currently in an invalid or unknown state. <a href=\"https://bugs.kde.org/enter_bug.cgi?product=frameworks-knewstuff\";>Please report this to the KDE Community in a bug report</a>.");
             }
         }
     }
@@ -90,11 +90,11 @@
         providerId: component.providerId
         username: author.name
     }
-    title: i18nc("Combined title for the entry details page made of the name of the entry, and the author's name", "%1 by %2", component.name, entryAuthor.name)
+    title: i18ndc("knewstuff5", "Combined title for the entry details page made of the name of the entry, and the author's name", "%1 by %2", component.name, entryAuthor.name)
     actions {
         contextualActions: [
             Kirigami.Action {
-                text: component.downloadCount == 1 ? i18nc("Request installation of this item, available when there is exactly one downloadable item", "Install") : i18nc("Show installation options, where there is more than one downloadable item", "Install...");
+                text: component.downloadCount == 1 ? i18ndc("knewstuff5", "Request installation of this item, available when there is exactly one downloadable item", "Install") : i18ndc("knewstuff5", "Show installation options, where there is more than one downloadable item", "Install...");
                 icon.name: "install"
                 onTriggered: {
                     if (component.downloadCount == 1) {
@@ -109,14 +109,14 @@
                 visible: enabled;
             },
             Kirigami.Action {
-                text: i18nc("Request updating of this item", "Update");
+                text: i18ndc("knewstuff5", "Request updating of this item", "Update");
                 icon.name: "update"
                 onTriggered: { newStuffModel.installItem(component.index); }
                 enabled: component.status == NewStuff.ItemsModel.UpdateableStatus;
                 visible: enabled;
             },
             Kirigami.Action {
-                text: i18nc("Request uninstallation of this item", "Uninstall");
+                text: i18ndc("knewstuff5", "Request uninstallation of this item", "Uninstall");
                 icon.name: "uninstall"
                 onTriggered: { newStuffModel.uninstallItem(component.index); }
                 enabled: component.status == NewStuff.ItemsModel.InstalledStatus
@@ -172,24 +172,24 @@
         Kirigami.FormLayout {
             QtLayouts.Layout.fillWidth: true
             Kirigami.LinkButton {
-                Kirigami.FormData.label: i18n("Comments and Reviews:")
+                Kirigami.FormData.label: i18nd("knewstuff5", "Comments and Reviews:")
                 enabled: component.commentsCount > 0
-                text: i18nc("A link which, when clicked, opens a new sub page with comments (comments with or without ratings) for this entry", "%1 Reviews and Comments", component.commentsCount)
+                text: i18ndc("knewstuff5", "A link which, when clicked, opens a new sub page with comments (comments with or without ratings) for this entry", "%1 Reviews and Comments", component.commentsCount)
                 onClicked: pageStack.push(commentsPage)
             }
             Private.Rating {
                 id: ratingsItem
-                Kirigami.FormData.label: i18n("Rating:")
+                Kirigami.FormData.label: i18nd("knewstuff5", "Rating:")
                 rating: Math.floor(component.rating / 10)
             }
             Kirigami.LinkButton {
-                Kirigami.FormData.label: i18n("Homepage:")
-                text: i18nc("A link which, when clicked, opens the website associated with the entry (this could be either one specific to the project, the author's homepage, or any other website they have chosen for the purpose)", "Open the homepage for %1", component.name)
+                Kirigami.FormData.label: i18nd("knewstuff5", "Homepage:")
+                text: i18ndc("knewstuff5", "A link which, when clicked, opens the website associated with the entry (this could be either one specific to the project, the author's homepage, or any other website they have chosen for the purpose)", "Open the homepage for %1", component.name)
                 onClicked: Qt.openUrlExternally(component.homepage)
             }
             Kirigami.LinkButton {
-                Kirigami.FormData.label: i18n("How To Donate:")
-                text: i18nc("A link which, when clicked, opens a website with information on donation in support of the entry", "Find out how to donate to this project")
+                Kirigami.FormData.label: i18nd("knewstuff5", "How To Donate:")
+                text: i18ndc("knewstuff5", "A link which, when clicked, opens a website with information on donation in support of the entry", "Find out how to donate to this project")
                 onClicked: Qt.openUrlExternally(component.donationLink)
             }
         }
diff -urN knewstuff-5.66.0/src/qtquick/qml/NewStuffItem.qml knewstuff-5.66.0-patched/src/qtquick/qml/NewStuffItem.qml
--- knewstuff-5.66.0/src/qtquick/qml/NewStuffItem.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/NewStuffItem.qml	2020-01-29 22:42:12.589566441 +0300
@@ -34,21 +34,21 @@
     enabled: true;
     actions: [
         Kirigami.Action {
-            text: i18nc("Request installation of this item", "Install");
+            text: i18ndc("knewstuff5", "Request installation of this item", "Install");
             iconName: "list-add"
             onTriggered: { listModel.installItem(model.index, 1); }
             enabled: model.status == NewStuff.ItemsModel.DownloadableStatus || model.status == NewStuff.ItemsModel.DeletedStatus;
             visible: enabled;
         },
         Kirigami.Action {
-            text: i18nc("Request updating of this item", "Update");
+            text: i18ndc("knewstuff5", "Request updating of this item", "Update");
             iconName: "refresh"
             onTriggered: { listModel.installItem(model.index, 1); }
             enabled: model.status == NewStuff.ItemsModel.UpdateableStatus;
             visible: enabled;
         },
         Kirigami.Action {
-            text: i18nc("Request uninstallation of this item", "Uninstall");
+            text: i18ndc("knewstuff5", "Request uninstallation of this item", "Uninstall");
             iconName: "list-remove"
             onTriggered: { listModel.uninstallItem(model.index); }
             enabled: model.status == NewStuff.ItemsModel.InstalledStatus
diff -urN knewstuff-5.66.0/src/qtquick/qml/NewStuffList.qml knewstuff-5.66.0-patched/src/qtquick/qml/NewStuffList.qml
--- knewstuff-5.66.0/src/qtquick/qml/NewStuffList.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/NewStuffList.qml	2020-01-29 22:42:33.979567530 +0300
@@ -80,9 +80,9 @@
             QtLayouts.Layout.fillWidth: true
             model: ListModel {}
             Component.onCompleted: {
-                filterCombo.model.append({ text: i18nc("List option which will set the filter to show everything", "Show Everything") });
-                filterCombo.model.append({ text: i18nc("List option which will set the filter so only installed items are shown", "Installed Only") });
-                filterCombo.model.append({ text: i18nc("List option which will set the filter so only installed items with updates available are shown", "Updateable Only") });
+                filterCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the filter to show everything", "Show Everything") });
+                filterCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the filter so only installed items are shown", "Installed Only") });
+                filterCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the filter so only installed items with updates available are shown", "Updateable Only") });
                 filterCombo.currentIndex = newStuffEngine.filter;
             }
             onCurrentIndexChanged: {
@@ -94,10 +94,10 @@
             QtLayouts.Layout.fillWidth: true
             model: ListModel { }
             Component.onCompleted: {
-                sortCombo.model.append({ text: i18nc("List option which will set the sort order to based on when items were most recently updated", "Show most recent first") });
-                sortCombo.model.append({ text: i18nc("List option which will set the sort order to be alphabetical based on the name", "Sort alphabetically") });
-                sortCombo.model.append({ text: i18nc("List option which will set the sort order to based on user ratings", "Show highest rated first") });
-                sortCombo.model.append({ text: i18nc("List option which will set the sort order to based on number of downloads", "Show most downloaded first") });
+                sortCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the sort order to based on when items were most recently updated", "Show most recent first") });
+                sortCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the sort order to be alphabetical based on the name", "Sort alphabetically") });
+                sortCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the sort order to based on user ratings", "Show highest rated first") });
+                sortCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the sort order to based on number of downloads", "Show most downloaded first") });
                 sortCombo.currentIndex = newStuffEngine.sortOrder;
             }
             onCurrentIndexChanged: {
diff -urN knewstuff-5.66.0/src/qtquick/qml/Page.qml knewstuff-5.66.0-patched/src/qtquick/qml/Page.qml
--- knewstuff-5.66.0/src/qtquick/qml/Page.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/Page.qml	2020-01-29 22:42:57.392902059 +0300
@@ -74,8 +74,8 @@
      */
     signal errorMessage(string message);
 
-    property string uninstallLabel: i18nc("Request uninstallation of this item", "Uninstall");
-    property string useLabel: i18nc("If a knsrc file defines an adoption command, the option to run this command and 'use' an item becomes available. This is the text for an action to do so.", "Use");
+    property string uninstallLabel: i18ndc("knewstuff5", "Request uninstallation of this item", "Uninstall");
+    property string useLabel: i18ndc("knewstuff5", "If a knsrc file defines an adoption command, the option to run this command and 'use' an item becomes available. This is the text for an action to do so.", "Use");
 
     property int viewMode: Page.ViewMode.Tiles
     enum ViewMode {
@@ -143,7 +143,7 @@
         }
         Kirigami.ActionTextField {
             id: searchField
-            placeholderText: i18n("Search...")
+            placeholderText: i18nd("knewstuff5", "Search...")
             focusSequence: "Ctrl+F"
             rightActions: [
                 Kirigami.Action {
@@ -176,9 +176,9 @@
             QtLayouts.Layout.fillWidth: true
             model: ListModel {}
             Component.onCompleted: {
-                filterCombo.model.append({ text: i18nc("List option which will set the filter to show everything", "Show Everything") });
-                filterCombo.model.append({ text: i18nc("List option which will set the filter so only installed items are shown", "Installed Only") });
-                filterCombo.model.append({ text: i18nc("List option which will set the filter so only installed items with updates available are shown", "Updateable Only") });
+                filterCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the filter to show everything", "Show Everything") });
+                filterCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the filter so only installed items are shown", "Installed Only") });
+                filterCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the filter so only installed items with updates available are shown", "Updateable Only") });
                 filterCombo.currentIndex = newStuffEngine.filter;
             }
             onCurrentIndexChanged: {
@@ -190,10 +190,10 @@
             QtLayouts.Layout.fillWidth: true
             model: ListModel { }
             Component.onCompleted: {
-                sortCombo.model.append({ text: i18nc("List option which will set the sort order to based on when items were most recently updated", "Show most recent first") });
-                sortCombo.model.append({ text: i18nc("List option which will set the sort order to be alphabetical based on the name", "Sort alphabetically") });
-                sortCombo.model.append({ text: i18nc("List option which will set the sort order to based on user ratings", "Show highest rated first") });
-                sortCombo.model.append({ text: i18nc("List option which will set the sort order to based on number of downloads", "Show most downloaded first") });
+                sortCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the sort order to based on when items were most recently updated", "Show most recent first") });
+                sortCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the sort order to be alphabetical based on the name", "Sort alphabetically") });
+                sortCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the sort order to based on user ratings", "Show highest rated first") });
+                sortCombo.model.append({ text: i18ndc("knewstuff5", "List option which will set the sort order to based on number of downloads", "Show most downloaded first") });
                 sortCombo.currentIndex = newStuffEngine.sortOrder;
             }
             onCurrentIndexChanged: {
@@ -240,7 +240,7 @@
                     leftMargin: Kirigami.Units.largeSpacing
                     bottom: parent.bottom
                 }
-                text: i18nc("A text shown beside a busy indicator suggesting that data is being fetched", "Loading more...")
+                text: i18ndc("knewstuff5", "A text shown beside a busy indicator suggesting that data is being fetched", "Loading more...")
                 verticalAlignment: Text.AlignVCenter
             }
         }
diff -urN knewstuff-5.66.0/src/qtquick/qml/private/EntryCommentDelegate.qml knewstuff-5.66.0-patched/src/qtquick/qml/private/EntryCommentDelegate.qml
--- knewstuff-5.66.0/src/qtquick/qml/private/EntryCommentDelegate.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/private/EntryCommentDelegate.qml	2020-01-30 02:02:54.916234224 +0300
@@ -122,7 +122,7 @@
             QtLayouts.Layout.leftMargin: Kirigami.Units.largeSpacing
             Kirigami.Heading {
                 id: titleLabel
-                text: ((component.title === "") ? i18nc("Placeholder title for when a comment has no subject, but does have a rating", "<i>(no title)</i>") : component.title)
+                text: ((component.title === "") ? i18ndc("knewstuff5", "Placeholder title for when a comment has no subject, but does have a rating", "<i>(no title)</i>") : component.title)
                 level: 4
                 QtLayouts.Layout.fillWidth: true
             }
@@ -153,7 +153,7 @@
                 id: authorLabel
                 visible: (url !== "")
                 url: (component.commentAuthor.homepage === "") ? component.commentAuthor.profilepage : component.commentAuthor.homepage
-                text: (component.author === component.entryAuthorId) ? i18nc("The author label in case the comment was written by the author of the content entry the comment is attached to", "%1 <i>(author)</i>", component.commentAuthor.name) : component.commentAuthor.name
+                text: (component.author === component.entryAuthorId) ? i18ndc("knewstuff5", "The author label in case the comment was written by the author of the content entry the comment is attached to", "%1 <i>(author)</i>", component.commentAuthor.name) : component.commentAuthor.name
             }
             QtControls.Label {
                 visible: !authorLabel.visible
diff -urN knewstuff-5.66.0/src/qtquick/qml/private/EntryCommentsPage.qml knewstuff-5.66.0-patched/src/qtquick/qml/private/EntryCommentsPage.qml
--- knewstuff-5.66.0/src/qtquick/qml/private/EntryCommentsPage.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/private/EntryCommentsPage.qml	2020-01-30 02:03:36.529569700 +0300
@@ -38,23 +38,23 @@
     property string entryProviderId
     property alias entryIndex: commentsModel.entryIndex
     property alias itemsModel: commentsModel.itemsModel
-    title: i18nc("Title for the page containing a view of the comments for the entry", "Comments and Reviews for %1", component.entryName)
+    title: i18ndc("knewstuff5", "Title for the page containing a view of the comments for the entry", "Comments and Reviews for %1", component.entryName)
     actions {
         contextualActions: [
             Kirigami.Action {
-                text: i18nc("Title for the item which is checked when all comments should be shown", "Show All Comments")
+                text: i18ndc("knewstuff5", "Title for the item which is checked when all comments should be shown", "Show All Comments")
                 checked: commentsModel.includedComments == NewStuff.CommentsModel.IncludeAllComments
                 checkable: true
                 onTriggered: commentsModel.includedComments = NewStuff.CommentsModel.IncludeAllComments
             },
             Kirigami.Action {
-                text: i18nc("Title for the item which is checked when only comments which are reviews should be shown", "Show Reviews Only")
+                text: i18ndc("knewstuff5", "Title for the item which is checked when only comments which are reviews should be shown", "Show Reviews Only")
                 checked: commentsModel.includedComments == NewStuff.CommentsModel.IncludeOnlyReviews
                 checkable: true
                 onTriggered: commentsModel.includedComments = NewStuff.CommentsModel.IncludeOnlyReviews
             },
             Kirigami.Action {
-                text: i18nc("Title for the item which is checked when comments which are reviews, and their children should be shown", "Show Reviews and Replies")
+                text: i18ndc("knewstuff5", "Title for the item which is checked when comments which are reviews, and their children should be shown", "Show Reviews and Replies")
                 checked: commentsModel.includedComments == NewStuff.CommentsModel.IncludeReviewsAndReplies
                 checkable: true
                 onTriggered: commentsModel.includedComments = NewStuff.CommentsModel.IncludeReviewsAndReplies
diff -urN knewstuff-5.66.0/src/qtquick/qml/private/entrygriddelegates/BigPreviewDelegate.qml knewstuff-5.66.0-patched/src/qtquick/qml/private/entrygriddelegates/BigPreviewDelegate.qml
--- knewstuff-5.66.0/src/qtquick/qml/private/entrygriddelegates/BigPreviewDelegate.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/private/entrygriddelegates/BigPreviewDelegate.qml	2020-01-30 02:05:15.156241444 +0300
@@ -61,7 +61,7 @@
             visible: enabled
         },
         Kirigami.Action {
-            text: model.downloadLinks.length === 1 ? i18nc("Request installation of this item, available when there is exactly one downloadable item", "Install") : i18nc("Show installation options, where there is more than one downloadable item", "Install...");
+            text: model.downloadLinks.length === 1 ? i18ndc("knewstuff5", "Request installation of this item, available when there is exactly one downloadable item", "Install") : i18ndc("knewstuff5", "Show installation options, where there is more than one downloadable item", "Install...");
             iconName: "install"
             onTriggered: {
                 if (model.downloadLinks.length === 1) {
@@ -76,7 +76,7 @@
             visible: enabled;
         },
         Kirigami.Action {
-            text: i18nc("Request updating of this item", "Update");
+            text: i18ndc("knewstuff5", "Request updating of this item", "Update");
             iconName: "update"
             onTriggered: { newStuffModel.installItem(model.index); }
             enabled: model.status == NewStuff.ItemsModel.UpdateableStatus;
@@ -152,7 +152,7 @@
                 QtLayouts.Layout.fillWidth: true
                 level: 5
                 elide: Text.ElideRight
-                text: i18nc("The number of times the item has been downloaded", "%1 downloads", model.downloadCount)
+                text: i18ndc("knewstuff5", "The number of times the item has been downloaded", "%1 downloads", model.downloadCount)
             }
             Kirigami.Heading {
                 QtLayouts.Layout.fillWidth: true
@@ -165,7 +165,7 @@
                 elide: Text.ElideRight
                 level: 4
                 textFormat: Text.StyledText
-                text: i18nc("Subheading for the tile view, located immediately underneath the name of the item", "By <i>%1</i>", model.author.name)
+                text: i18ndc("knewstuff5", "Subheading for the tile view, located immediately underneath the name of the item", "By <i>%1</i>", model.author.name)
             }
             QtControls.Label {
                 QtLayouts.Layout.fillWidth: true
diff -urN knewstuff-5.66.0/src/qtquick/qml/private/entrygriddelegates/FeedbackOverlay.qml knewstuff-5.66.0-patched/src/qtquick/qml/private/entrygriddelegates/FeedbackOverlay.qml
--- knewstuff-5.66.0/src/qtquick/qml/private/entrygriddelegates/FeedbackOverlay.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/private/entrygriddelegates/FeedbackOverlay.qml	2020-01-30 02:05:46.406243053 +0300
@@ -56,11 +56,11 @@
                 || status == NewStuff.ItemsModel.DeletedStatus) {
                     statusLabel.text = "";
                 } else if (status == NewStuff.ItemsModel.InstallingStatus) {
-                    statusLabel.text = i18nc("Label for the busy indicator showing an item is being installed", "Installing...");
+                    statusLabel.text = i18ndc("knewstuff5", "Label for the busy indicator showing an item is being installed", "Installing...");
                 } else if (status == NewStuff.ItemsModel.UpdatingStatus) {
-                    statusLabel.text = i18nc("Label for the busy indicator showing an item is in the process of being updated", "Updating...");
+                    statusLabel.text = i18ndc("knewstuff5", "Label for the busy indicator showing an item is in the process of being updated", "Updating...");
                 } else {
-                    statusLabel.text = i18nc("Label for the busy indicator which should only be shown when the entry has been given some unknown or invalid status.", "Invalid or unknown state. <a href=\"https://bugs.kde.org/enter_bug.cgi?product=frameworks-knewstuff\";>Please report this to the KDE Community in a bug report</a>.");
+                    statusLabel.text = i18ndc("knewstuff5", "Label for the busy indicator which should only be shown when the entry has been given some unknown or invalid status.", "Invalid or unknown state. <a href=\"https://bugs.kde.org/enter_bug.cgi?product=frameworks-knewstuff\";>Please report this to the KDE Community in a bug report</a>.");
                 }
             }
         }
@@ -73,6 +73,6 @@
         }
         horizontalAlignment: Text.AlignHCenter
         // TODO: This is where we'd want to put the download progress and cancel button as well
-        text: i18nc("Label for the busy indicator showing an item is installing", "Installing...");
+        text: i18ndc("knewstuff5", "Label for the busy indicator showing an item is installing", "Installing...");
     }
 }
diff -urN knewstuff-5.66.0/src/qtquick/qml/private/entrygriddelegates/ThumbDelegate.qml knewstuff-5.66.0-patched/src/qtquick/qml/private/entrygriddelegates/ThumbDelegate.qml
--- knewstuff-5.66.0/src/qtquick/qml/private/entrygriddelegates/ThumbDelegate.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/private/entrygriddelegates/ThumbDelegate.qml	2020-01-30 02:06:15.009577859 +0300
@@ -54,7 +54,7 @@
             visible: enabled
         },
         Kirigami.Action {
-            text: model.downloadLinks.length === 1 ? i18nc("Request installation of this item, available when there is exactly one downloadable item", "Install") : i18nc("Show installation options, where there is more than one downloadable item", "Install...");
+            text: model.downloadLinks.length === 1 ? i18ndc("knewstuff5", "Request installation of this item, available when there is exactly one downloadable item", "Install") : i18ndc("knewstuff5", "Show installation options, where there is more than one downloadable item", "Install...");
             iconName: "install"
             onTriggered: {
                 if (model.downloadLinks.length === 1) {
@@ -69,7 +69,7 @@
             visible: enabled;
         },
         Kirigami.Action {
-            text: i18nc("Request updating of this item", "Update");
+            text: i18ndc("knewstuff5", "Request updating of this item", "Update");
             iconName: "update"
             onTriggered: { newStuffModel.installItem(model.index); }
             enabled: model.status == NewStuff.ItemsModel.UpdateableStatus;
diff -urN knewstuff-5.66.0/src/qtquick/qml/private/entrygriddelegates/TileDelegate.qml knewstuff-5.66.0-patched/src/qtquick/qml/private/entrygriddelegates/TileDelegate.qml
--- knewstuff-5.66.0/src/qtquick/qml/private/entrygriddelegates/TileDelegate.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/private/entrygriddelegates/TileDelegate.qml	2020-01-30 02:06:44.739579390 +0300
@@ -62,7 +62,7 @@
             visible: enabled
         },
         Kirigami.Action {
-            text: model.downloadLinks.length === 1 ? i18nc("Request installation of this item, available when there is exactly one downloadable item", "Install") : i18nc("Show installation options, where there is more than one downloadable item", "Install...");
+            text: model.downloadLinks.length === 1 ? i18ndc("knewstuff5", "Request installation of this item, available when there is exactly one downloadable item", "Install") : i18ndc("knewstuff5", "Show installation options, where there is more than one downloadable item", "Install...");
             iconName: "install"
             onTriggered: {
                 if (model.downloadLinks.length === 1) {
@@ -77,7 +77,7 @@
             visible: enabled;
         },
         Kirigami.Action {
-            text: i18nc("Request updating of this item", "Update");
+            text: i18ndc("knewstuff5", "Request updating of this item", "Update");
             iconName: "update"
             onTriggered: { newStuffModel.installItem(model.index); }
             enabled: model.status == NewStuff.ItemsModel.UpdateableStatus;
@@ -91,7 +91,7 @@
             visible: enabled;
         },
         Kirigami.Action {
-            text: i18nc("Show a page with details for this item", "Details...")
+            text: i18ndc("knewstuff5", "Show a page with details for this item", "Details...")
             iconName: "documentinfo"
             onTriggered: { component.showDetails(); }
         }
@@ -177,7 +177,7 @@
                     elide: Text.ElideRight
                     level: 4
                     textFormat: Text.StyledText
-                    text: i18nc("Subheading for the tile view, located immediately underneath the name of the item", "By <i>%1</i>", model.author.name)
+                    text: i18ndc("knewstuff5", "Subheading for the tile view, located immediately underneath the name of the item", "By <i>%1</i>", model.author.name)
                 }
                 QtControls.Label {
                     QtLayouts.Layout.fillWidth: true
@@ -195,7 +195,7 @@
                 QtLayouts.Layout.fillWidth: true
                 level: 5
                 elide: Text.ElideRight
-                text: i18nc("The number of times the item has been downloaded", "%1 downloads", model.downloadCount)
+                text: i18ndc("knewstuff5", "The number of times the item has been downloaded", "%1 downloads", model.downloadCount)
             }
         }
         FeedbackOverlay {
diff -urN knewstuff-5.66.0/src/qtquick/qml/private/GridTileDelegate.qml knewstuff-5.66.0-patched/src/qtquick/qml/private/GridTileDelegate.qml
--- knewstuff-5.66.0/src/qtquick/qml/private/GridTileDelegate.qml	2020-01-04 13:11:01.000000000 +0300
+++ knewstuff-5.66.0-patched/src/qtquick/qml/private/GridTileDelegate.qml	2020-01-30 02:04:28.416239038 +0300
@@ -110,7 +110,7 @@
                 anchors.centerIn: parent
                 width: Kirigami.Units.iconSizes.large
                 height: width
-                source: delegate.text === i18n("None") ? "edit-none" : "view-preview"
+                source: delegate.text === i18nd("knewstuff5", "None") ? "edit-none" : "view-preview"
             }
         }
 
_______________________________________________
kde-russian mailing list
kde-russian@lists.kde.ru
https://lists.kde.ru/mailman/listinfo/kde-russian

Ответить