diff --git a/packages/app-gnome/data/metainfo/eu.jumplink.Learn6502.metainfo.xml b/packages/app-gnome/data/metainfo/eu.jumplink.Learn6502.metainfo.xml
index aed275ce..08434fed 100644
--- a/packages/app-gnome/data/metainfo/eu.jumplink.Learn6502.metainfo.xml
+++ b/packages/app-gnome/data/metainfo/eu.jumplink.Learn6502.metainfo.xml
@@ -281,6 +281,9 @@
https://jumplink.eu/Learn6502/
https://github.com/JumpLink/Learn6502/issues
https://github.com/JumpLink/Learn6502
+ https://github.com/JumpLink/Learn6502
+ https://github.com/JumpLink/Learn6502/issues
+ https://jumplink.eu/Learn6502/#support
https://hosted.weblate.org/projects/eu-jumplink-learn6502/app/
mild
diff --git a/packages/app-gnome/data/metainfo/eu.jumplink.Learn6502.metainfo.xml.in b/packages/app-gnome/data/metainfo/eu.jumplink.Learn6502.metainfo.xml.in
index b5b6e208..30bd46ce 100644
--- a/packages/app-gnome/data/metainfo/eu.jumplink.Learn6502.metainfo.xml.in
+++ b/packages/app-gnome/data/metainfo/eu.jumplink.Learn6502.metainfo.xml.in
@@ -57,6 +57,9 @@
https://flathub.org/apps/eu.jumplink.Learn6502
https://github.com/JumpLink/Learn6502/issues
https://github.com/JumpLink/Learn6502
+ https://github.com/JumpLink/Learn6502
+ https://github.com/JumpLink/Learn6502/issues
+ https://jumplink.eu/Learn6502/#support
https://hosted.weblate.org/projects/eu-jumplink-learn6502/app/
mild
diff --git a/packages/app-gnome/src/about-dialog.ts b/packages/app-gnome/src/about-dialog.ts
index 4d88f25c..532e096e 100644
--- a/packages/app-gnome/src/about-dialog.ts
+++ b/packages/app-gnome/src/about-dialog.ts
@@ -3,6 +3,8 @@ import Gio from "@girs/gio-2.0";
import GLib from "@girs/glib-2.0";
import Gtk from "@girs/gtk-4.0";
+import { getAboutInfo } from "@learn6502/ui";
+
import { APPLICATION_ID, RESOURCES_PATH, PACKAGE_VERSION } from "./constants.ts";
import { parseAppdata } from "./appdata.ts";
@@ -78,6 +80,14 @@ const buildFromAppdata = (): Adw.AboutDialog => {
* fallback deliberately does not.
*/
export const createAboutDialog = (): Adw.AboutDialog => {
+ const dialog = createFromAppdata();
+ // new_from_appdata() does not map , so the link is added by hand.
+ const { title, url } = getAboutInfo().supportLink;
+ dialog.add_link(title, url);
+ return dialog;
+};
+
+const createFromAppdata = (): Adw.AboutDialog => {
try {
return Adw.AboutDialog.new_from_appdata(APPDATA_RESOURCE, PACKAGE_VERSION) as Adw.AboutDialog;
} catch (error) {
diff --git a/packages/translations/de.po b/packages/translations/de.po
index 4776d134..43ee5a27 100644
--- a/packages/translations/de.po
+++ b/packages/translations/de.po
@@ -1548,6 +1548,10 @@ msgstr "Stil"
msgid "Submit"
msgstr "Einreichen"
+#. TRANSLATORS: Link in the About dialog to the project's page about supporting it. Not "Donate".
+msgid "Support"
+msgstr "Unterstützen"
+
#. TRANSLATORS: Assembly syntax error with line number and offending line
#, javascript-format
msgid "Syntax error line %d: %s"
diff --git a/packages/translations/eu.jumplink.Learn6502.pot b/packages/translations/eu.jumplink.Learn6502.pot
index 1cdf2e1a..8665f096 100644
--- a/packages/translations/eu.jumplink.Learn6502.pot
+++ b/packages/translations/eu.jumplink.Learn6502.pot
@@ -1537,6 +1537,10 @@ msgstr ""
msgid "Submit"
msgstr ""
+#. TRANSLATORS: Link in the About dialog to the project's page about supporting it. Not "Donate".
+msgid "Support"
+msgstr ""
+
#. TRANSLATORS: Assembly syntax error with line number and offending line
#, javascript-format
msgid "Syntax error line %d: %s"
diff --git a/packages/ui/src/main-window/about.ts b/packages/ui/src/main-window/about.ts
index 69eebe01..5ab1ccf5 100644
--- a/packages/ui/src/main-window/about.ts
+++ b/packages/ui/src/main-window/about.ts
@@ -13,8 +13,13 @@ export interface AboutInfo {
issueUrl: string;
/** SPDX identifier */
license: string;
+ /** Link to the landing page's support section; labelled "Support", never "Donate" (business income, no deduction). */
+ supportLink: { title: string; url: string };
}
+/** Same URL as `` in the metainfo. */
+const SUPPORT_URL = "https://jumplink.eu/Learn6502/#support";
+
export function getAboutInfo(): AboutInfo {
return {
applicationName: _("Learn 6502 Assembly"),
@@ -24,5 +29,6 @@ export function getAboutInfo(): AboutInfo {
website: "https://flathub.org/apps/eu.jumplink.Learn6502",
issueUrl: "https://github.com/JumpLink/Learn6502/issues",
license: "GPL-3.0-or-later",
+ supportLink: { title: _("Support"), url: SUPPORT_URL },
};
}