pgkiln 0.57.0 → 0.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/apex-feature-parity.md +1 -1
- package/docs/guide/03-builder.md +6 -3
- package/docs/guide/12-development.md +2 -1
- package/package.json +1 -1
- package/src/builder/i18n/de.ts +340 -0
- package/src/builder/i18n/en.ts +340 -0
- package/src/builder/i18n/es.ts +340 -0
- package/src/builder/i18n/fr.ts +340 -0
- package/src/builder/i18n/nl.ts +340 -0
- package/src/builder/i18n/pt.ts +340 -0
- package/src/builder/routes.ts +88 -87
- package/src/builder/shared.ts +86 -77
|
@@ -249,7 +249,7 @@ row above where there is one.
|
|
|
249
249
|
| WS-4 AI Agents with tools | ✅ | (sprint 111) AI Agents and AI Tools as shared components, a Navigate tool, Gemini and OpenAI-compatible services ([Workflow, automation and AI](#workflow-automation-and-ai)) |
|
|
250
250
|
| WS-5 AI interactive reports: chips, computed columns | ✅ | (sprint 112) *Ask in your own words* with chips, Undo and computed columns; a phrase parser that needs no AI service; (sprint 122) phrases set faceted search and smart filter facets |
|
|
251
251
|
| WS-6 Workflow 26.2: outcomes, migrating running instances, drafts, diagram export | ✅ | (sprint 114) Custom task outcomes, task events, Send E-Mail and draft steps, migrating running instances, the diagram as SVG / PNG ([Workflow, automation and AI](#workflow-automation-and-ai)) |
|
|
252
|
-
| WS-7 The builder in more languages | ✅ | (sprint 121) The builder in Deutsch, English, Español, Français, Nederlands and Português: links on the sign-in page, a language menu in the status bar, the choice stored per developer (migration 127). Translated: the builder's frame, sign-in page, Workspace home, App Builder home, an application's home and tabs, the Page Designer's toolbar, menus, tree and gallery, the SQL Workshop's home and tabs; other screens move over incrementally (English until then). Builder texts are keyed message files with a coverage check in CI (sprint 123) Also the SQL Worksheet, the Object Browser and Table Properties, with the texts of the browser code. |
|
|
252
|
+
| WS-7 The builder in more languages | ✅ | (sprint 121) The builder in Deutsch, English, Español, Français, Nederlands and Português: links on the sign-in page, a language menu in the status bar, the choice stored per developer (migration 127). Translated: the builder's frame, sign-in page, Workspace home, App Builder home, an application's home and tabs, the Page Designer's toolbar, menus, tree and gallery, the SQL Workshop's home and tabs; other screens move over incrementally (English until then). Builder texts are keyed message files with a coverage check in CI (sprint 123) Also the SQL Worksheet, the Object Browser and Table Properties, with the texts of the browser code. (sprint 124) Shared Components and the application settings. |
|
|
253
253
|
| WS-8 App Gallery: more sample apps, Utility Apps | ✅ | (sprint 120) Four tabs with counts and a search that also works without JavaScript ([chapter 3](guide/03-builder.md#app-gallery)). *Sample Apps*: HR Demo, Tasks, ten single-topic apps (Sample Charts, Sample Cards, Sample Calendar, Sample Interactive Grids, Sample Dynamic Actions, Sample Reporting; sprint 122: Sample Maps, Sample Approvals, Sample Data Loading, Sample Files) and the **UX Pattern Catalog**, each with its own schema, data, demo account and explanatory texts, installed by administrators from one SQL file in one transaction; *Utility Apps*: Lookup Lists, Release Notes and Announcements as blueprints any developer installs into the workspace. APEX's 27 sample apps include topics pgkiln shows in HR Demo instead (REST, trees, collections); no remote catalogue |
|
|
254
254
|
| WS-9 Mail queue reporting, workspace SMTP, workspace network ACLs | ✅ | (sprint 118) Administration → Mail queue (per hour and per workspace / application, the slowest provider calls, failures with the provider's answer, Retry and Purge), a workspace's own mail service, and a workspace's network access list that narrows the installation's allow-list for every outgoing call ([Administration](#administration)) |
|
|
255
255
|
| WS-10 Universal Theme 26.2: Pillar appearances, navigation polish | ✅ | (sprint 117) Theme Roller → Navigation appearance Pillar Light / Pillar Dark per application or style, with a header strip colour for light and dark mode; the current page filled, its parents bold with an accent guide line; `u-color-*-subtle` utilities; a lighter processing indicator; RTL mirrored |
|
package/docs/guide/03-builder.md
CHANGED
|
@@ -275,9 +275,12 @@ device; other developers keep their own. It only changes the builder: your appli
|
|
|
275
275
|
What is translated: the builder's frame (the rail, the top bar and its search, your account menu, the status bar,
|
|
276
276
|
standard messages and error pages), the sign-in page, the Workspace home, the App Builder home, an application's
|
|
277
277
|
home page and its tabs, the Page Designer's toolbar, menus, component tree, panes and gallery, the SQL Workshop's
|
|
278
|
-
home page and tabs,
|
|
279
|
-
and **Table Properties
|
|
280
|
-
|
|
278
|
+
home page and tabs, (sprint 123) the **SQL Worksheet** (with its messages in the browser), the **Object Browser**
|
|
279
|
+
and **Table Properties**, and (sprint 124) **Shared Components** (the overview, every component type's list and
|
|
280
|
+
editor frame, access control, breadcrumbs, component settings) and an application's **Settings**. Other builder
|
|
281
|
+
pages are still in English (they move over screen by screen); so are the
|
|
282
|
+
Page Designer's property names and their help (and, the same way, the field names and help of a shared component's
|
|
283
|
+
form), the links to this guide, and any SQL the builder generates.
|
|
281
284
|
|
|
282
285
|
## Workspace home
|
|
283
286
|
|
|
@@ -603,7 +603,8 @@ announce(msg('js.ws.copied', { what }));
|
|
|
603
603
|
The coverage check also scans `public/*.js` for `msg('js.…')` and fails when a key has no English text. Text
|
|
604
604
|
from the server (a JSON answer's `message`) is translated on the server.
|
|
605
605
|
|
|
606
|
-
Stays English by design: the property editor's field names and help
|
|
606
|
+
Stays English by design: the property editor's field names and help (and a shared component form's field names and
|
|
607
|
+
help, which work the same way), links to the guide, generated SQL, and pages
|
|
607
608
|
not moved yet. The builder's language is separate from an application's languages (`src/i18n.ts`).
|
|
608
609
|
|
|
609
610
|
## Principles
|
package/package.json
CHANGED
package/src/builder/i18n/de.ts
CHANGED
|
@@ -1043,4 +1043,344 @@ export const de: BuilderMessages = {
|
|
|
1043
1043
|
'te.failed_stmt': 'Fehlgeschlagene Anweisung',
|
|
1044
1044
|
'te.title_table': 'Tabelle {table}',
|
|
1045
1045
|
'te.title_create': 'Tabelle erstellen',
|
|
1046
|
+
// ------------------------------------------------------------ Shared Components (sprint 124)
|
|
1047
|
+
'comp.nav_entry': 'Navigationseintrag',
|
|
1048
|
+
'comp.nav_entry.plural': 'Navigationsmenü',
|
|
1049
|
+
'comp.authz_scheme': 'Autorisierungsschema',
|
|
1050
|
+
'comp.authz_scheme.plural': 'Autorisierungsschemas',
|
|
1051
|
+
'comp.build_option': 'Build-Option',
|
|
1052
|
+
'comp.build_option.plural': 'Build-Optionen',
|
|
1053
|
+
'comp.page_group': 'Seitengruppe',
|
|
1054
|
+
'comp.page_group.plural': 'Seitengruppen',
|
|
1055
|
+
'comp.lov': 'Werteliste',
|
|
1056
|
+
'comp.lov.plural': 'Wertelisten',
|
|
1057
|
+
'comp.app_item': 'Anwendungselement',
|
|
1058
|
+
'comp.app_item.plural': 'Anwendungselemente',
|
|
1059
|
+
'comp.app_process': 'Anwendungsprozess',
|
|
1060
|
+
'comp.app_process.plural': 'Anwendungsprozesse',
|
|
1061
|
+
'comp.app_computation': 'Anwendungsberechnung',
|
|
1062
|
+
'comp.app_computation.plural': 'Anwendungsberechnungen',
|
|
1063
|
+
'comp.shortcut': 'Kürzel',
|
|
1064
|
+
'comp.shortcut.plural': 'Kürzel',
|
|
1065
|
+
'comp.report_query': 'Berichtsabfrage',
|
|
1066
|
+
'comp.report_query.plural': 'Berichtsabfragen',
|
|
1067
|
+
'comp.component_group': 'Komponentengruppe',
|
|
1068
|
+
'comp.component_group.plural': 'Komponentengruppen',
|
|
1069
|
+
'comp.automation': 'Automatisierung',
|
|
1070
|
+
'comp.automation.plural': 'Automatisierungen',
|
|
1071
|
+
'comp.automation_action': 'Automatisierungsaktion',
|
|
1072
|
+
'comp.automation_action.plural': 'Automatisierungsaktionen',
|
|
1073
|
+
'comp.report_layout': 'Berichtslayout',
|
|
1074
|
+
'comp.report_layout.plural': 'Berichtslayouts',
|
|
1075
|
+
'comp.document_template': 'Dokumentvorlage',
|
|
1076
|
+
'comp.document_template.plural': 'Dokumentvorlagen',
|
|
1077
|
+
'comp.task_definition': 'Aufgabendefinition',
|
|
1078
|
+
'comp.task_definition.plural': 'Aufgabendefinitionen',
|
|
1079
|
+
'comp.workflow_definition': 'Workflow',
|
|
1080
|
+
'comp.workflow_definition.plural': 'Workflows',
|
|
1081
|
+
'comp.rest_module': 'REST-Modul',
|
|
1082
|
+
'comp.rest_module.plural': 'REST-Module',
|
|
1083
|
+
'comp.template_component': 'Vorlagenkomponente',
|
|
1084
|
+
'comp.template_component.plural': 'Vorlagenkomponenten',
|
|
1085
|
+
'comp.web_credential': 'Web-Anmeldedaten',
|
|
1086
|
+
'comp.web_credential.plural': 'Web-Anmeldedaten',
|
|
1087
|
+
'comp.rest_source': 'REST-Datenquelle',
|
|
1088
|
+
'comp.rest_source.plural': 'REST-Datenquellen',
|
|
1089
|
+
'comp.data_load_def': 'Datenladedefinition',
|
|
1090
|
+
'comp.data_load_def.plural': 'Datenladedefinitionen',
|
|
1091
|
+
'comp.list': 'Liste',
|
|
1092
|
+
'comp.list.plural': 'Listen',
|
|
1093
|
+
'comp.list_entry': 'Listeneintrag',
|
|
1094
|
+
'comp.list_entry.plural': 'Listeneinträge',
|
|
1095
|
+
'comp.supporting_script': 'Unterstützendes Skript',
|
|
1096
|
+
'comp.supporting_script.plural': 'Unterstützende Objekte',
|
|
1097
|
+
'comp.search_config': 'Suchkonfiguration',
|
|
1098
|
+
'comp.search_config.plural': 'Suchkonfigurationen',
|
|
1099
|
+
'comp.email_template': 'E-Mail-Vorlage',
|
|
1100
|
+
'comp.email_template.plural': 'E-Mail-Vorlagen',
|
|
1101
|
+
'comp.app_setting': 'Anwendungseinstellung',
|
|
1102
|
+
'comp.app_setting.plural': 'Anwendungseinstellungen',
|
|
1103
|
+
'comp.dynamic_translation': 'Dynamische Übersetzung',
|
|
1104
|
+
'comp.dynamic_translation.plural': 'Dynamische Übersetzungen',
|
|
1105
|
+
'sc.group.logic': 'Anwendungslogik',
|
|
1106
|
+
'sc.group.security': 'Sicherheit',
|
|
1107
|
+
'sc.group.other': 'Weitere Komponenten',
|
|
1108
|
+
'sc.group.navigation': 'Navigation und Suche',
|
|
1109
|
+
'sc.group.ui': 'Benutzeroberfläche',
|
|
1110
|
+
'sc.group.files': 'Dateien und Berichte',
|
|
1111
|
+
'sc.group.data': 'Datenquellen',
|
|
1112
|
+
'sc.group.workflows': 'Workflows und Automatisierungen',
|
|
1113
|
+
'sc.group.globalization': 'Globalisierung',
|
|
1114
|
+
'sc.group.ai': 'Generative KI',
|
|
1115
|
+
'sc.item.application_items': 'Anwendungselemente',
|
|
1116
|
+
'sc.item.application_processes': 'Anwendungsprozesse',
|
|
1117
|
+
'sc.item.application_computations': 'Anwendungsberechnungen',
|
|
1118
|
+
'sc.item.application_settings': 'Anwendungseinstellungen',
|
|
1119
|
+
'sc.item.build_options': 'Build-Optionen',
|
|
1120
|
+
'sc.item.application_definition': 'Anwendungsdefinition',
|
|
1121
|
+
'sc.item.access_control': 'Zugriffskontrolle',
|
|
1122
|
+
'sc.item.authentication': 'Authentifizierung',
|
|
1123
|
+
'sc.item.authorization_schemes': 'Autorisierungsschemas',
|
|
1124
|
+
'sc.item.security_attributes': 'Sicherheitsattribute',
|
|
1125
|
+
'sc.item.sign_in_and_session_management': 'Anmeldung und Sitzungsverwaltung',
|
|
1126
|
+
'sc.item.lists_of_values': 'Wertelisten',
|
|
1127
|
+
'sc.item.lists': 'Listen',
|
|
1128
|
+
'sc.item.list_entries': 'Listeneinträge',
|
|
1129
|
+
'sc.item.email_templates': 'E-Mail-Vorlagen',
|
|
1130
|
+
'sc.item.shortcuts': 'Kürzel',
|
|
1131
|
+
'sc.item.component_groups': 'Komponentengruppen',
|
|
1132
|
+
'sc.item.supporting_objects': 'Unterstützende Objekte',
|
|
1133
|
+
'sc.item.subscriptions': 'Abonnements',
|
|
1134
|
+
'sc.item.navigation_menu': 'Navigationsmenü',
|
|
1135
|
+
'sc.item.navigation_bar_list': 'Navigationsleiste',
|
|
1136
|
+
'sc.item.breadcrumbs': 'Breadcrumbs',
|
|
1137
|
+
'sc.item.page_groups': 'Seitengruppen',
|
|
1138
|
+
'sc.item.search_configurations': 'Suchkonfigurationen',
|
|
1139
|
+
'sc.item.themes_and_theme_roller': 'Themes und Theme Roller',
|
|
1140
|
+
'sc.item.user_interface_attributes': 'Attribute der Benutzeroberfläche',
|
|
1141
|
+
'sc.item.template_components': 'Vorlagenkomponenten',
|
|
1142
|
+
'sc.item.plug_ins': 'Plug-ins',
|
|
1143
|
+
'sc.item.component_settings': 'Komponenteneinstellungen',
|
|
1144
|
+
'sc.item.progressive_web_app': 'Progressive Web App',
|
|
1145
|
+
'sc.item.static_application_files': 'Statische Anwendungsdateien',
|
|
1146
|
+
'sc.item.report_layouts': 'Berichtslayouts',
|
|
1147
|
+
'sc.item.report_queries': 'Berichtsabfragen',
|
|
1148
|
+
'sc.item.document_templates': 'Dokumentvorlagen',
|
|
1149
|
+
'sc.item.rest_data_sources': 'REST-Datenquellen',
|
|
1150
|
+
'sc.item.web_credentials': 'Web-Anmeldedaten',
|
|
1151
|
+
'sc.item.restful_services': 'RESTful-Dienste',
|
|
1152
|
+
'sc.item.data_load_definitions': 'Datenladedefinitionen',
|
|
1153
|
+
'sc.item.workflows': 'Workflows',
|
|
1154
|
+
'sc.item.task_definitions': 'Aufgabendefinitionen',
|
|
1155
|
+
'sc.item.automations': 'Automatisierungen',
|
|
1156
|
+
'sc.item.translations_and_text_messages': 'Übersetzungen und Textmeldungen',
|
|
1157
|
+
'sc.item.dynamic_translations': 'Dynamische Übersetzungen',
|
|
1158
|
+
'sc.item.globalization_attributes': 'Globalisierungsattribute',
|
|
1159
|
+
'sc.item.ai_services': 'KI-Dienste',
|
|
1160
|
+
'sc.item.ai_agents': 'KI-Agenten',
|
|
1161
|
+
'sc.entries': 'Einträge',
|
|
1162
|
+
'sc.list_sql': 'Diese Liste zeigt die Zeilen ihrer Abfrage; die Einträge unten werden nicht verwendet.',
|
|
1163
|
+
'sc.no_entries': 'Noch keine Einträge.',
|
|
1164
|
+
'sc.add_entry': '+ Eintrag hinzufügen',
|
|
1165
|
+
'sc.breadcrumbs_help': 'Der Breadcrumb einer Seite zeigt die Seiten darüber: Jede Seite nennt ihre übergeordnete Breadcrumb-Seite (Page Designer → Seite → Breadcrumb parent). Seiten ohne sie zeigen Home.',
|
|
1166
|
+
'sc.cs_help': 'Standardwerte für die eingebauten Komponententypen der Anwendung, wo eine Komponente selbst nichts festlegt. Leer: der Standardwert von pgkiln.',
|
|
1167
|
+
'sc.cs_now': '{help} {min}–{max}; jetzt {now}.',
|
|
1168
|
+
'sc.cs_saved': 'Komponenteneinstellungen gespeichert.',
|
|
1169
|
+
'sc.intro': 'Die Komponenten, die die Seiten von {app} gemeinsam nutzen.',
|
|
1170
|
+
'sc.tree_view': 'Baumansicht',
|
|
1171
|
+
'sc.create': 'Erstellen',
|
|
1172
|
+
'sc.search': 'Suchen',
|
|
1173
|
+
'sc.name': 'Name',
|
|
1174
|
+
'sc.details': 'Details',
|
|
1175
|
+
'sc.nothing_matches': 'Keine Treffer.',
|
|
1176
|
+
'sc.none_yet': 'Noch keine {what}.',
|
|
1177
|
+
'sc.count': '{n} von {total}',
|
|
1178
|
+
'sc.new': 'Neu: {what}',
|
|
1179
|
+
'sc.save': 'Speichern',
|
|
1180
|
+
'sc.run_supporting': 'Unterstützende Objekte ausführen …',
|
|
1181
|
+
'sc.delete_confirm': '{what} löschen?',
|
|
1182
|
+
'sc.delete': 'Löschen',
|
|
1183
|
+
'sc.not_found': 'Nicht gefunden.',
|
|
1184
|
+
'sc.groups_title': 'Gruppen des Identitätsanbieters → Rollen',
|
|
1185
|
+
'sc.groups_help': 'Bei Single Sign-on erhalten Mitglieder dieser Gruppen die Rolle in dieser Anwendung und dürfen sich anmelden, auch ohne oben aufgeführt zu sein.',
|
|
1186
|
+
'sc.remove_mapping': 'Zuordnung {group} zu {role} entfernen',
|
|
1187
|
+
'sc.no_groups': 'Keine Gruppenzuordnungen.',
|
|
1188
|
+
'sc.group_label': 'Gruppe (wie im Token)',
|
|
1189
|
+
'sc.group_ph': 'z. B. hr-managers',
|
|
1190
|
+
'sc.role_label': 'Rolle in dieser Anwendung',
|
|
1191
|
+
'sc.role_ph': 'z. B. manager',
|
|
1192
|
+
'sc.add_mapping': 'Zuordnung hinzufügen',
|
|
1193
|
+
'sc.access': 'Zugriffskontrolle',
|
|
1194
|
+
'sc.who': 'Wer sich anmelden darf',
|
|
1195
|
+
'sc.who.assigned': 'Nur die unten aufgeführten Konten (rollenbasierter Zugriff)',
|
|
1196
|
+
'sc.who.any': 'Jedes aktive Konto im Verzeichnis',
|
|
1197
|
+
'sc.access_help': 'Konten befinden sich im {directory}; hier geben Sie ihnen Zugriff auf {app} und weisen Rollen zu, die Autorisierungsschemas und {fn} prüfen. Rollenänderungen gelten bei der nächsten Anmeldung (die Sitzungen in dieser Anwendung enden).',
|
|
1198
|
+
'sc.directory': 'Benutzerverzeichnis',
|
|
1199
|
+
'sc.account': 'Konto',
|
|
1200
|
+
'sc.roles_in_app': 'Rollen in dieser Anwendung',
|
|
1201
|
+
'sc.last_signin': 'Letzte Anmeldung',
|
|
1202
|
+
'sc.roles': 'Rollen',
|
|
1203
|
+
'sc.inactive': '(inaktiv)',
|
|
1204
|
+
'sc.roles_of': 'Rollen von {user}',
|
|
1205
|
+
'sc.no_roles': 'keine Rollen',
|
|
1206
|
+
'sc.revoke_confirm': 'Zugriff von {user} auf {app} entziehen?',
|
|
1207
|
+
'sc.revoke': 'Entziehen',
|
|
1208
|
+
'sc.no_access': 'Noch haben keine Konten Zugriff.',
|
|
1209
|
+
'sc.grant': 'Zugriff gewähren',
|
|
1210
|
+
'sc.username_ph': 'Benutzername',
|
|
1211
|
+
'sc.existing': 'Ein vorhandenes Konto.',
|
|
1212
|
+
'sc.create_in_users': 'Konten unter Benutzer anlegen.',
|
|
1213
|
+
'sc.roles_ph': 'durch Komma getrennt, oder unten wählen',
|
|
1214
|
+
'sc.tree.security': 'Sicherheit',
|
|
1215
|
+
'sc.tree.globalization': 'Globalisierung',
|
|
1216
|
+
'sc.tree.translations': 'Übersetzungen und Textmeldungen',
|
|
1217
|
+
'sc.tree.files': 'Dateien und Plug-ins',
|
|
1218
|
+
'sc.tree.static': 'Statische Anwendungsdateien',
|
|
1219
|
+
'sc.tree.subscriptions': 'Abonnements',
|
|
1220
|
+
'sc.tree.subscribers': 'Abonnements und Abonnenten',
|
|
1221
|
+
'sc.add_kind': '{what} hinzufügen',
|
|
1222
|
+
'sc.add': '+ Hinzufügen',
|
|
1223
|
+
'sc.review_run': 'Prüfen und ausführen …',
|
|
1224
|
+
'sc.edit': 'Bearbeiten',
|
|
1225
|
+
'sc.saved': '{what} gespeichert.',
|
|
1226
|
+
'sc.deleted': '{what} gelöscht.',
|
|
1227
|
+
'sc.access_saved': 'Zugriffskontrolle gespeichert.',
|
|
1228
|
+
'sc.no_account': 'Es gibt kein Konto „{user}“. Legen Sie es zuerst unter Benutzer an.',
|
|
1229
|
+
'sc.granted': 'Zugriff für {user} gewährt.',
|
|
1230
|
+
'sc.mapping_added': 'Gruppenzuordnung hinzugefügt. Sie gilt ab der nächsten Anmeldung.',
|
|
1231
|
+
'sc.mapping_removed': 'Gruppenzuordnung entfernt. Das gilt ab der nächsten Anmeldung.',
|
|
1232
|
+
'sc.roles_saved': 'Rollen gespeichert. Sie gelten ab der nächsten Anmeldung.',
|
|
1233
|
+
'sc.revoked': 'Zugriff entzogen.',
|
|
1234
|
+
// ------------------------------------------------------------ Application settings (sprint 124)
|
|
1235
|
+
'st.tab.definition': 'Definition',
|
|
1236
|
+
'st.tab.security': 'Sicherheit',
|
|
1237
|
+
'st.tab.signin': 'Anmeldung',
|
|
1238
|
+
'st.tab.ui': 'Benutzeroberfläche',
|
|
1239
|
+
'st.tab.globalization': 'Globalisierung',
|
|
1240
|
+
'st.tab.errors': 'Fehler und Sitzungen',
|
|
1241
|
+
'st.tab.pwa': 'Progressive Web App',
|
|
1242
|
+
'st.settings': 'Einstellungen',
|
|
1243
|
+
'st.name': 'Name',
|
|
1244
|
+
'st.alias': 'Alias',
|
|
1245
|
+
'st.version': 'Version',
|
|
1246
|
+
'st.version_ph': 'Release 1.0',
|
|
1247
|
+
'st.version_help': 'Wird in der Fußzeile der Anwendungsseiten angezeigt; leer: keine.',
|
|
1248
|
+
'st.home_page': 'Startseite',
|
|
1249
|
+
'st.app_type': 'Anwendungstyp',
|
|
1250
|
+
'st.app_type_help': 'Theme- und Bibliotheksanwendungen bieten ihr Theme oder ihre gemeinsamen Komponenten anderen Anwendungen an (Shared Components → Abonnements); Anwendung erstellen kann von einer Vorlagenanwendung ausgehen.',
|
|
1251
|
+
'st.type.standard': 'Standard',
|
|
1252
|
+
'st.type.theme': 'Theme-Anwendung',
|
|
1253
|
+
'st.type.library': 'Bibliotheksanwendung',
|
|
1254
|
+
'st.type.boilerplate': 'Vorlagenanwendung',
|
|
1255
|
+
'st.authentication': 'Authentifizierung',
|
|
1256
|
+
'st.auth.app_users': 'Anwendungsbenutzer (Anmeldeseite)',
|
|
1257
|
+
'st.auth.header': 'HTTP-Header (Reverse Proxy)',
|
|
1258
|
+
'st.auth.database': 'Datenbankkonten (PostgreSQL-Rollen)',
|
|
1259
|
+
'st.auth.custom': 'Eigene (eine PL/pgSQL-Funktion)',
|
|
1260
|
+
'st.auth.none': 'Keine (öffentlich)',
|
|
1261
|
+
'st.db_role': 'Datenbankrolle (Parsing-Schema)',
|
|
1262
|
+
'st.db_role_help': 'Alles SQL der Anwendung läuft als diese Rolle (SET LOCAL ROLE), sodass Berechtigungen und Row Level Security gelten. Nur für vertrauenswürdige interne Anwendungen leer lassen.',
|
|
1263
|
+
'st.debug': 'Debug-Modus',
|
|
1264
|
+
'st.debug_help': 'Zeigt Endbenutzern Details zu Datenbankfehlern. Nur für die Entwicklung.',
|
|
1265
|
+
'st.debug_msgs': 'Debug-Meldungen',
|
|
1266
|
+
'st.debug_on': 'an, Stufe {level}',
|
|
1267
|
+
'st.off': 'aus',
|
|
1268
|
+
'st.debug_msgs_help': 'Zeichnet die Schritte jeder Anfrage mit Zeiten und die Meldungen von {fn} auf, aufbewahrt {days} Tage.',
|
|
1269
|
+
'st.header_title': 'Authentifizierung per HTTP-Header',
|
|
1270
|
+
'st.header_intro': 'Nur verwendet, wenn die Authentifizierung „HTTP-Header“ ist. Ein Reverse Proxy oder Single-Sign-on-Gateway meldet Benutzer an und übergibt den Benutzernamen in einem Header; pgkiln vertraut ihm nur von den Proxy-Adressen in {env}',
|
|
1271
|
+
'st.header_unset': 'auf diesem Server nicht gesetzt: Anmeldung per Header wird abgelehnt',
|
|
1272
|
+
'st.header_name': 'Header mit dem Benutzernamen',
|
|
1273
|
+
'st.header_name_help': 'Der Anfrage-Header mit dem Benutzernamen (APEX: HTTP Header Variable). Leer: X-Remote-User. Ein geänderter oder fehlender Header beendet die Sitzung.',
|
|
1274
|
+
'st.logout_url': 'Abmelde-URL',
|
|
1275
|
+
'st.logout_url_ph': 'z. B. https://sso.example.com/logout',
|
|
1276
|
+
'st.logout_url_help': 'Wohin „Abmelden“ nach dem Ende der Sitzung führt, meist die eigene Abmeldeseite des Proxys. Leer: eine Seite „abgemeldet“.',
|
|
1277
|
+
'st.header_auto': 'Konten automatisch anlegen',
|
|
1278
|
+
'st.header_auto_help': 'Ein unbekannter Benutzername erhält ein neues Konto mit Zugriff auf diese Anwendung. Sonst muss das Konto existieren und Zugriff haben.',
|
|
1279
|
+
'st.db_title': 'Datenbankkonten',
|
|
1280
|
+
'st.db_intro': 'Nur verwendet, wenn die Authentifizierung „Datenbankkonten“ ist. Benutzer melden sich mit einer PostgreSQL-Login-Rolle und deren Passwort an, geprüft durch eine kurze Verbindung zu dieser Datenbank als diese Rolle. Superuser und die eigenen Rollen von pgkiln werden immer abgelehnt; ohne eines der beiden Felder kann sich niemand anmelden.',
|
|
1281
|
+
'st.db_roles': 'Erlaubte Rollen',
|
|
1282
|
+
'st.db_roles_ph': 'z. B. alice, bob',
|
|
1283
|
+
'st.db_roles_help': 'Login-Rollen, die sich anmelden dürfen, durch Komma getrennt (genaue Namen).',
|
|
1284
|
+
'st.db_member': 'Oder Mitglieder der Rolle',
|
|
1285
|
+
'st.db_member_ph': 'z. B. app_users_group',
|
|
1286
|
+
'st.db_member_help': 'Jedes Mitglied dieser Rolle darf sich ebenfalls anmelden.',
|
|
1287
|
+
'st.custom_title': 'Eigene Authentifizierung',
|
|
1288
|
+
'st.custom_intro': 'Nur verwendet, wenn die Authentifizierung „Eigene“ ist. Ihr eigenes PL/pgSQL prüft Benutzername und Passwort des Anmeldeformulars, als Datenbankrolle der Anwendung; das Passwort wird als Parameter übergeben und nie protokolliert. Fehlversuche werden wie andere Anmeldungen gebremst. Ohne eines der beiden Felder kann sich niemand anmelden.',
|
|
1289
|
+
'st.custom_fn': 'Funktionsname',
|
|
1290
|
+
'st.custom_fn_ph': 'z. B. app.check_login',
|
|
1291
|
+
'st.custom_fn_help': 'Eine Funktion (p_username text, p_password text) returns boolean, in Kleinbuchstaben, optional mit Schema. Die Rolle der Anwendung braucht EXECUTE darauf. Hat Vorrang vor dem Funktionsrumpf unten.',
|
|
1292
|
+
'st.custom_body': 'Oder Funktionsrumpf',
|
|
1293
|
+
'st.custom_body_help': 'PL/pgSQL mit p_username und p_password, das bei einer gültigen Anmeldung true zurückgibt, z. B. {example}',
|
|
1294
|
+
'st.custom_post': 'Code nach der Authentifizierung',
|
|
1295
|
+
'st.custom_post_help': 'Optionales PL/pgSQL nach einer erfolgreichen Prüfung, mit p_username (und meta.app_user()), z. B. um die letzte Anmeldung zu speichern. Eine Exception lehnt die Anmeldung ab. Anwendungsprozesse „after login“ laufen danach wie gewohnt.',
|
|
1296
|
+
'st.signin': 'Anmeldung',
|
|
1297
|
+
'st.methods': 'Anmeldemethoden',
|
|
1298
|
+
'st.local': 'Benutzername und Passwort',
|
|
1299
|
+
'st.ldap': 'Passwörter aus LDAP: {name}',
|
|
1300
|
+
'st.disabled': '(deaktiviert)',
|
|
1301
|
+
'st.no_ldap': 'Keine LDAP-Verzeichnisse eingerichtet. {add}, um Passwörter gegen LDAP oder Active Directory zu prüfen.',
|
|
1302
|
+
'st.add_one': 'Fügen Sie eines hinzu',
|
|
1303
|
+
'st.ldap_help': 'LDAP-Passwörter prüft das Formular mit Benutzername und Passwort, nach den lokalen Konten; lassen Sie diese Methode also aktiv.',
|
|
1304
|
+
'st.session_group': 'Gruppe für gemeinsame Sitzungen',
|
|
1305
|
+
'st.session_group_ph': 'leer: nicht geteilt',
|
|
1306
|
+
'st.session_group_help': 'Anwendungen mit derselben Gruppe (und dem Benutzerverzeichnis als Authentifizierung) teilen eine Anmeldung: Nach der Anmeldung bei einer öffnen sich die anderen ohne neue Anmeldung, jede mit eigener Zugriffsprüfung und eigenen Rollen; die Abmeldung bei einer meldet bei allen ab (APEX: Session Sharing). Kleinbuchstaben, Ziffern und _.',
|
|
1307
|
+
'st.remember': '„Angemeldet bleiben“ für (Tage)',
|
|
1308
|
+
'st.remember_ph': 'leer: nicht angeboten',
|
|
1309
|
+
'st.remember_help': 'Bietet ein Kontrollkästchen im Anmeldeformular (APEX: persistente Authentifizierung). Der Browser bleibt so viele Tage nach der Anmeldung angemeldet, auch wenn die Sitzung endet; Abmelden, ein neues Passwort, Deaktivierung oder entzogener Zugriff beenden es. 1 bis 365.',
|
|
1310
|
+
'st.sso': 'Anmelden mit {name}',
|
|
1311
|
+
'st.no_sso': 'Keine Identitätsanbieter eingerichtet. {add} für Single Sign-on.',
|
|
1312
|
+
'st.theme': 'Theme',
|
|
1313
|
+
'st.base': 'Grundstil',
|
|
1314
|
+
'st.base.iris': 'Iris (Standard für neue Anwendungen)',
|
|
1315
|
+
'st.base.lavender': 'Lavender (Iris bis pgkiln 0.41)',
|
|
1316
|
+
'st.base.standard': 'Standard (pgkiln bis 0.28)',
|
|
1317
|
+
'st.base_help': 'Farben, Ecken, Schrift und Schatten der ganzen Anwendung, hell und dunkel. Die Farben unten überschreiben Akzent und Kopfzeile.',
|
|
1318
|
+
'st.accent': 'Akzentfarbe',
|
|
1319
|
+
'st.header_colour': 'Farbe der Kopfzeile',
|
|
1320
|
+
'st.accent_dark': 'Akzentfarbe im dunklen Modus',
|
|
1321
|
+
'st.header_dark': 'Farbe der Kopfzeile im dunklen Modus',
|
|
1322
|
+
'st.own_colour': 'Diese Farbe verwenden (sonst die dunkle Palette des Grundstils)',
|
|
1323
|
+
'st.nav': 'Navigationsmenü',
|
|
1324
|
+
'st.nav.side': 'Seitlich (einklappbar)',
|
|
1325
|
+
'st.nav.top': 'Obere Leiste',
|
|
1326
|
+
'st.nav_help': 'Auf Tablets und Telefonen ist das Menü immer eine Schublade.',
|
|
1327
|
+
'st.nav_list': 'Liste für das Navigationsmenü',
|
|
1328
|
+
'st.nav_entries': '- die Navigationseinträge -',
|
|
1329
|
+
'st.nav_list_help': 'Eine Liste (Shared Components → Listen), die statt der Navigationseinträge als Navigationsmenü angezeigt wird.',
|
|
1330
|
+
'st.navbar_list': 'Liste für die Navigationsleiste',
|
|
1331
|
+
'st.none_option': '- keine -',
|
|
1332
|
+
'st.navbar_help': 'Eine Liste, die als Links in der Kopfzeile neben dem Benutzermenü angezeigt wird.',
|
|
1333
|
+
'st.missing': '{name} (fehlt!)',
|
|
1334
|
+
'st.mode': 'Theme-Stil',
|
|
1335
|
+
'st.mode.auto': 'Automatisch (hell oder dunkel, wie das Gerät)',
|
|
1336
|
+
'st.mode.light': 'Hell',
|
|
1337
|
+
'st.mode.dark': 'Dunkel',
|
|
1338
|
+
'st.user_choice': 'Benutzer dürfen hell oder dunkel wählen',
|
|
1339
|
+
'st.user_choice_help': 'Fügt einen Schalter zum Benutzermenü und zu Mein Konto hinzu; die Wahl wird am Konto gespeichert (APEX: „Enable End Users to Choose Theme Style“).',
|
|
1340
|
+
'st.roller': 'Theme Roller: Stilvarianten …',
|
|
1341
|
+
'st.styles_one': '{n} Stil',
|
|
1342
|
+
'st.styles': '{n} Stile',
|
|
1343
|
+
'st.no_styles': 'noch keine Stile',
|
|
1344
|
+
'st.language': 'Hauptsprache',
|
|
1345
|
+
'st.language_help': 'Die Sprache, in der die Anwendung gebaut ist, z. B. en, nl, de, en-GB.',
|
|
1346
|
+
'st.languages': 'Übersetzte Sprachen',
|
|
1347
|
+
'st.languages_ph': 'z. B. nl, de',
|
|
1348
|
+
'st.languages_help': 'Durch Komma getrennt. Texte unter Shared Components → Globalisierung übersetzen.',
|
|
1349
|
+
'st.language_from': 'Sprache abgeleitet von',
|
|
1350
|
+
'st.from.browser': 'Browser (Accept-Language)',
|
|
1351
|
+
'st.from.user': 'Benutzereinstellung, dann Browser',
|
|
1352
|
+
'st.from.primary': 'Immer die Hauptsprache',
|
|
1353
|
+
'st.language_from_help': 'Benutzer können auch mit ?lang=xx oder der Auswahl auf der Anmeldeseite wechseln.',
|
|
1354
|
+
'st.date_format': 'Datumsformat',
|
|
1355
|
+
'st.date_format_ph': 'z. B. DD-MM-YYYY (leer: je Sprache)',
|
|
1356
|
+
'st.date_format_help': 'Masken: YYYY YY MM MON MONTH DD DY DAY HH24 HH MI SS AM',
|
|
1357
|
+
'st.ts_format': 'Datums- und Zeitformat',
|
|
1358
|
+
'st.ts_format_ph': 'z. B. DD-MM-YYYY HH24:MI',
|
|
1359
|
+
'st.save_settings': 'Einstellungen speichern',
|
|
1360
|
+
'st.delete_confirm': 'Anwendung {app} mit allen Seiten löschen?',
|
|
1361
|
+
'st.delete': 'Anwendung löschen',
|
|
1362
|
+
'st.error_fn': 'Funktion zur Fehlerbehandlung',
|
|
1363
|
+
'st.error_fn_ph': 'z. B. sales.error_message',
|
|
1364
|
+
'st.error_fn_help': 'schema.function(jsonb) returns jsonb, als Rolle der Anwendung ausgeführt: Sie erhält die Meldung und das über einen Fehler Bekannte (code, constraint, table, column, component, page, user, internal, reference) und kann {"message": "…"} zurückgeben, das stattdessen angezeigt wird. Leer: keine.',
|
|
1365
|
+
'st.warning': 'Warnung vor Sitzungsende (Sekunden)',
|
|
1366
|
+
'st.warning_help': 'Angemeldete Benutzer werden so lange vor dem Sitzungsende gewarnt und können angemeldet bleiben (0: keine Warnung).',
|
|
1367
|
+
'st.save': 'Speichern',
|
|
1368
|
+
'st.checklist': 'Sicherheits-Checkliste',
|
|
1369
|
+
'st.ck.role': 'Läuft als eigene Datenbankrolle',
|
|
1370
|
+
'st.ck.runtime': '(läuft als Laufzeitverbindung)',
|
|
1371
|
+
'st.ck.signin': 'Benutzer müssen sich anmelden',
|
|
1372
|
+
'st.ck.public': 'Öffentliche Anwendung',
|
|
1373
|
+
'st.ck.debug_on': 'Debug-Modus ist an: Fehlerdetails werden Benutzern angezeigt',
|
|
1374
|
+
'st.ck.debug_off': 'Debug-Modus ist aus',
|
|
1375
|
+
'st.ck.msgs_on': 'Debug-Meldungen sind an (Stufe {level}): Jede Anfrage wird aufgezeichnet',
|
|
1376
|
+
'st.ck.msgs_off': 'Debug-Meldungen sind aus',
|
|
1377
|
+
'st.ck.unprotected': 'Seiten ohne Prüfsummenschutz: {n}',
|
|
1378
|
+
'st.ck.public_pages': 'Öffentliche Seiten: {n}',
|
|
1379
|
+
'st.title': 'Einstellungen von {app}',
|
|
1380
|
+
'st.err.fn_shape': 'Die Funktion zur Fehlerbehandlung ist schema.function, z. B. sales.error_message.',
|
|
1381
|
+
'st.err.no_fn': 'Es gibt keine Funktion {fn}(jsonb), die jsonb zurückgibt.',
|
|
1382
|
+
'st.err.warning': 'Die Warnung vor dem Sitzungsende liegt zwischen 0 und 3600 Sekunden.',
|
|
1383
|
+
'st.saved': 'Gespeichert.',
|
|
1384
|
+
'st.settings_saved': 'Einstellungen gespeichert.',
|
|
1385
|
+
'st.app_deleted': 'Anwendung gelöscht.',
|
|
1046
1386
|
};
|