feat(settings): About section — vendor, versions, license, contact
Some checks are pending
Security / Security check (push) Waiting to run

Procurement personas found no vendor, version, license, or
support information anywhere in the app (a hard checklist fail
for regulated buyers). Settings gains an About category:
product name, Studio + running-hub version, vendor Flemming.AI,
author, Apache 2.0 license, contact address, and the docs URL —
every value selectable and one-click copyable. Studio version
constant moved to data/about_info.dart so sidebar tag and About
can never drift. Bumps Studio to 0.71.0.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-07-17 23:40:21 +02:00
parent c436e12601
commit c253f5d23e
9 changed files with 352 additions and 5 deletions

View file

@ -1549,6 +1549,21 @@
"doctorPathStudioErrors": "Studio-Fehler",
"settingsCategoryGeneral": "Allgemein",
"settingsCategoryAppearance": "Darstellung",
"settingsCategoryAbout": "Über",
"aboutPanelTitle": "Über Ch∆In",
"aboutPanelBody": "Produkt-, Hersteller- und Lizenzangaben dieser Installation — alle Werte sind kopierbar.",
"aboutProduct": "Produkt",
"aboutStudioVersion": "Studio-Version",
"aboutHubVersion": "Hub-Version",
"aboutHubVersionUnknown": "nicht verbunden",
"aboutVendor": "Hersteller",
"aboutAuthor": "Autor",
"aboutLicense": "Lizenz",
"aboutContact": "Kontakt",
"aboutDocs": "Dokumentation",
"aboutOpenLink": "Im Browser öffnen",
"aboutCopyTooltip": "Kopieren",
"aboutCopiedToast": "In die Zwischenablage kopiert.",
"sidebarSearchLabel": "Suchen & Befehle",
"settingsSidebarPinnedTitle": "Navigation immer ausgeklappt",
"settingsSidebarPinnedBody": "Zeigt die Beschriftungen der Seitenleiste dauerhaft an, statt sie nur beim Überfahren mit der Maus einzublenden.",

View file

@ -1573,6 +1573,21 @@
"doctorPathStudioErrors": "Studio errors",
"settingsCategoryGeneral": "General",
"settingsCategoryAppearance": "Appearance",
"settingsCategoryAbout": "About",
"aboutPanelTitle": "About Ch∆In",
"aboutPanelBody": "Product, vendor, and license details of this installation — every value is copyable.",
"aboutProduct": "Product",
"aboutStudioVersion": "Studio version",
"aboutHubVersion": "Hub version",
"aboutHubVersionUnknown": "not connected",
"aboutVendor": "Vendor",
"aboutAuthor": "Author",
"aboutLicense": "License",
"aboutContact": "Contact",
"aboutDocs": "Documentation",
"aboutOpenLink": "Open in browser",
"aboutCopyTooltip": "Copy",
"aboutCopiedToast": "Copied to the clipboard.",
"sidebarSearchLabel": "Search & commands",
"settingsSidebarPinnedTitle": "Keep the navigation expanded",
"settingsSidebarPinnedBody": "Shows the sidebar labels permanently instead of only while hovering with the mouse.",

View file

@ -4544,6 +4544,96 @@ abstract class AppLocalizations {
/// **'Appearance'**
String get settingsCategoryAppearance;
/// No description provided for @settingsCategoryAbout.
///
/// In en, this message translates to:
/// **'About'**
String get settingsCategoryAbout;
/// No description provided for @aboutPanelTitle.
///
/// In en, this message translates to:
/// **'About Ch∆In'**
String get aboutPanelTitle;
/// No description provided for @aboutPanelBody.
///
/// In en, this message translates to:
/// **'Product, vendor, and license details of this installation — every value is copyable.'**
String get aboutPanelBody;
/// No description provided for @aboutProduct.
///
/// In en, this message translates to:
/// **'Product'**
String get aboutProduct;
/// No description provided for @aboutStudioVersion.
///
/// In en, this message translates to:
/// **'Studio version'**
String get aboutStudioVersion;
/// No description provided for @aboutHubVersion.
///
/// In en, this message translates to:
/// **'Hub version'**
String get aboutHubVersion;
/// No description provided for @aboutHubVersionUnknown.
///
/// In en, this message translates to:
/// **'not connected'**
String get aboutHubVersionUnknown;
/// No description provided for @aboutVendor.
///
/// In en, this message translates to:
/// **'Vendor'**
String get aboutVendor;
/// No description provided for @aboutAuthor.
///
/// In en, this message translates to:
/// **'Author'**
String get aboutAuthor;
/// No description provided for @aboutLicense.
///
/// In en, this message translates to:
/// **'License'**
String get aboutLicense;
/// No description provided for @aboutContact.
///
/// In en, this message translates to:
/// **'Contact'**
String get aboutContact;
/// No description provided for @aboutDocs.
///
/// In en, this message translates to:
/// **'Documentation'**
String get aboutDocs;
/// No description provided for @aboutOpenLink.
///
/// In en, this message translates to:
/// **'Open in browser'**
String get aboutOpenLink;
/// No description provided for @aboutCopyTooltip.
///
/// In en, this message translates to:
/// **'Copy'**
String get aboutCopyTooltip;
/// No description provided for @aboutCopiedToast.
///
/// In en, this message translates to:
/// **'Copied to the clipboard.'**
String get aboutCopiedToast;
/// No description provided for @sidebarSearchLabel.
///
/// In en, this message translates to:

View file

@ -2666,6 +2666,52 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get settingsCategoryAppearance => 'Darstellung';
@override
String get settingsCategoryAbout => 'Über';
@override
String get aboutPanelTitle => 'Über Ch∆In';
@override
String get aboutPanelBody =>
'Produkt-, Hersteller- und Lizenzangaben dieser Installation — alle Werte sind kopierbar.';
@override
String get aboutProduct => 'Produkt';
@override
String get aboutStudioVersion => 'Studio-Version';
@override
String get aboutHubVersion => 'Hub-Version';
@override
String get aboutHubVersionUnknown => 'nicht verbunden';
@override
String get aboutVendor => 'Hersteller';
@override
String get aboutAuthor => 'Autor';
@override
String get aboutLicense => 'Lizenz';
@override
String get aboutContact => 'Kontakt';
@override
String get aboutDocs => 'Dokumentation';
@override
String get aboutOpenLink => 'Im Browser öffnen';
@override
String get aboutCopyTooltip => 'Kopieren';
@override
String get aboutCopiedToast => 'In die Zwischenablage kopiert.';
@override
String get sidebarSearchLabel => 'Suchen & Befehle';

View file

@ -2668,6 +2668,52 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get settingsCategoryAppearance => 'Appearance';
@override
String get settingsCategoryAbout => 'About';
@override
String get aboutPanelTitle => 'About Ch∆In';
@override
String get aboutPanelBody =>
'Product, vendor, and license details of this installation — every value is copyable.';
@override
String get aboutProduct => 'Product';
@override
String get aboutStudioVersion => 'Studio version';
@override
String get aboutHubVersion => 'Hub version';
@override
String get aboutHubVersionUnknown => 'not connected';
@override
String get aboutVendor => 'Vendor';
@override
String get aboutAuthor => 'Author';
@override
String get aboutLicense => 'License';
@override
String get aboutContact => 'Contact';
@override
String get aboutDocs => 'Documentation';
@override
String get aboutOpenLink => 'Open in browser';
@override
String get aboutCopyTooltip => 'Copy';
@override
String get aboutCopiedToast => 'Copied to the clipboard.';
@override
String get sidebarSearchLabel => 'Search & commands';