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 }, }; }