pgkiln 0.53.0 → 0.55.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/SECURITY.md +2 -0
- package/db/migrations/127_builder_language.sql +16 -0
- package/docs/apex-feature-parity.md +7 -7
- package/docs/guide/03-builder.md +62 -8
- package/docs/guide/12-development.md +50 -3
- package/examples/gallery/README.md +37 -6
- package/examples/gallery/gallery.json +23 -1
- package/examples/gallery/samples/sample-calendar.sql +172 -0
- package/examples/gallery/samples/sample-cards.sql +157 -0
- package/examples/gallery/samples/sample-charts.sql +265 -0
- package/examples/gallery/samples/sample-dynamic-actions.sql +177 -0
- package/examples/gallery/samples/sample-grids.sql +151 -0
- package/examples/gallery/samples/sample-reporting.sql +151 -0
- package/examples/gallery/samples/ux-patterns.sql +295 -0
- package/examples/gallery/utilities/announcements.json +24 -0
- package/examples/gallery/utilities/lookup-lists.json +28 -0
- package/examples/gallery/utilities/release-notes.json +41 -0
- package/package.json +1 -1
- package/public/app.css +2 -0
- package/public/builder.css +39 -1
- package/public/worksheet.css +3 -2
- package/src/builder/advisor.ts +1 -1
- package/src/builder/ai-agents.ts +5 -5
- package/src/builder/ai-builder.ts +3 -3
- package/src/builder/api.ts +1 -1
- package/src/builder/autorest.ts +2 -2
- package/src/builder/availability.ts +1 -1
- package/src/builder/backups.ts +1 -1
- package/src/builder/changelog.ts +1 -1
- package/src/builder/data-modeler.ts +4 -4
- package/src/builder/data-security.ts +1 -1
- package/src/builder/dataload.ts +1 -1
- package/src/builder/datapump.ts +1 -1
- package/src/builder/ddl-tools.ts +2 -2
- package/src/builder/designer.ts +134 -124
- package/src/builder/diagnostics.ts +2 -2
- package/src/builder/errors.ts +10 -12
- package/src/builder/feedback.ts +1 -1
- package/src/builder/gallery.ts +94 -47
- package/src/builder/globalization.ts +1 -1
- package/src/builder/home.ts +59 -57
- package/src/builder/i18n/de.ts +675 -0
- package/src/builder/i18n/en.ts +678 -0
- package/src/builder/i18n/es.ts +675 -0
- package/src/builder/i18n/fr.ts +675 -0
- package/src/builder/i18n/nl.ts +675 -0
- package/src/builder/i18n/pt.ts +675 -0
- package/src/builder/i18n.ts +116 -0
- package/src/builder/language.ts +74 -0
- package/src/builder/launchpad.ts +13 -8
- package/src/builder/object-browser.ts +1 -1
- package/src/builder/plugins.ts +1 -1
- package/src/builder/querybuilder.ts +1 -1
- package/src/builder/quicksql.ts +1 -1
- package/src/builder/rest-modules.ts +2 -2
- package/src/builder/routes.ts +88 -66
- package/src/builder/sampledata.ts +1 -1
- package/src/builder/scheduling.ts +1 -1
- package/src/builder/scripts.ts +1 -1
- package/src/builder/search.ts +1 -1
- package/src/builder/shared.ts +5 -5
- package/src/builder/sql-charts.ts +2 -2
- package/src/builder/sql-monitor.ts +2 -2
- package/src/builder/sql-tools.ts +6 -0
- package/src/builder/sql-utilities.ts +3 -3
- package/src/builder/sql.ts +24 -22
- package/src/builder/static-files.ts +1 -1
- package/src/builder/subscriptions.ts +1 -1
- package/src/builder/supporting.ts +1 -1
- package/src/builder/table-editor.ts +1 -1
- package/src/builder/team.ts +7 -5
- package/src/builder/themeroller.ts +1 -1
- package/src/builder/top-sql.ts +1 -1
- package/src/builder/ui.ts +87 -77
- package/src/builder/unload.ts +1 -1
- package/src/builder/wizards.ts +1 -1
- package/src/builder/workflow-migrate.ts +1 -1
- package/src/builder/workingcopies.ts +2 -2
- package/src/builder/worksheet.ts +1 -1
- package/src/builder/workspace-home.ts +62 -59
- package/src/builder/workspaces.ts +2 -1
- package/src/runtime/charts.ts +4 -1
- package/src/runtime/regions.ts +8 -5
|
@@ -0,0 +1,678 @@
|
|
|
1
|
+
// The builder's own texts in English (sprint 121, WS-7): the keys of every builder message file (i18n.ts).
|
|
2
|
+
// A key is <screen>.<what>; {name} is a placeholder (filled by tx(key, { name })). Keep the other languages
|
|
3
|
+
// (de, es, fr, nl, pt) in step: TypeScript and test/builder-i18n.test.ts refuse a missing or an extra key.
|
|
4
|
+
// Keys made at run time (gallery.*, pos.*, slot.*, comp.*, pd.new.* …, sql.tool.*, sql.group.*) are listed here
|
|
5
|
+
// too; the test checks that every region type, item type, button action, position, slot and SQL Workshop tool has one.
|
|
6
|
+
|
|
7
|
+
export const en = {
|
|
8
|
+
// ------------------------------------------------------------ common
|
|
9
|
+
'common.about': 'About',
|
|
10
|
+
'common.tasks': 'Tasks',
|
|
11
|
+
'common.learn_more': 'Learn more …',
|
|
12
|
+
'common.search': 'Search',
|
|
13
|
+
'common.show': 'Show',
|
|
14
|
+
'common.go': 'Go',
|
|
15
|
+
'common.next': 'Next',
|
|
16
|
+
'common.save': 'Save',
|
|
17
|
+
'common.cancel': 'Cancel',
|
|
18
|
+
'common.run': 'Run',
|
|
19
|
+
'common.none': 'None',
|
|
20
|
+
'ago.now': 'just now',
|
|
21
|
+
'ago.second': '{n} second ago',
|
|
22
|
+
'ago.seconds': '{n} seconds ago',
|
|
23
|
+
'ago.minute': '{n} minute ago',
|
|
24
|
+
'ago.minutes': '{n} minutes ago',
|
|
25
|
+
'ago.hour': '{n} hour ago',
|
|
26
|
+
'ago.hours': '{n} hours ago',
|
|
27
|
+
'ago.day': '{n} day ago',
|
|
28
|
+
'ago.days': '{n} days ago',
|
|
29
|
+
'ago.week': '{n} week ago',
|
|
30
|
+
'ago.weeks': '{n} weeks ago',
|
|
31
|
+
'ago.month': '{n} month ago',
|
|
32
|
+
'ago.months': '{n} months ago',
|
|
33
|
+
'ago.year': '{n} year ago',
|
|
34
|
+
'ago.years': '{n} years ago',
|
|
35
|
+
|
|
36
|
+
// ------------------------------------------------------------ shell: rail, top bar, user menu, status bar
|
|
37
|
+
'shell.builder': 'Builder',
|
|
38
|
+
'shell.skip': 'Skip to content',
|
|
39
|
+
'shell.logo': 'pgkiln Builder',
|
|
40
|
+
'shell.logo_home': 'pgkiln Builder home',
|
|
41
|
+
'rail.home': 'Home',
|
|
42
|
+
'rail.app_builder': 'App Builder',
|
|
43
|
+
'rail.sql_workshop': 'SQL Workshop',
|
|
44
|
+
'rail.gallery': 'App Gallery',
|
|
45
|
+
'rail.reporter': 'Data Reporter',
|
|
46
|
+
'rail.team': 'Team Development',
|
|
47
|
+
'rail.search_app': 'Search this application',
|
|
48
|
+
'rail.admin': 'Administration',
|
|
49
|
+
'rail.extensions': 'Extensions',
|
|
50
|
+
'rail.help': 'Help',
|
|
51
|
+
'admin.utilities': 'Workspace utilities',
|
|
52
|
+
'admin.manage_service': 'Manage service: {name}',
|
|
53
|
+
'admin.ws_message': 'Workspace message and environment banner',
|
|
54
|
+
'admin.ws_prefs': 'Workspace preferences',
|
|
55
|
+
'admin.ext_links': 'Extension links',
|
|
56
|
+
'admin.utilization': 'Workspace utilization',
|
|
57
|
+
'admin.mail_queue': 'Mail queue',
|
|
58
|
+
'admin.network': 'Network access',
|
|
59
|
+
'admin.ws_devs': 'Workspace and developers',
|
|
60
|
+
'admin.users': 'Manage users and groups',
|
|
61
|
+
'admin.developers': 'Developers',
|
|
62
|
+
'admin.monitor': 'Monitor activity',
|
|
63
|
+
'admin.db_users': 'Database users',
|
|
64
|
+
'admin.change_my_password': 'Change my password',
|
|
65
|
+
'nav.users': 'Users',
|
|
66
|
+
'user.weak_title': '{user}: change the default password',
|
|
67
|
+
'user.account': 'Account: {user}',
|
|
68
|
+
'user.account_weak': 'Account: {user} (the default password: change it)',
|
|
69
|
+
'user.developer': 'Developer',
|
|
70
|
+
'user.weak_note': 'You use the default password: change it',
|
|
71
|
+
'user.theme': 'Builder theme',
|
|
72
|
+
'user.theme_dark': 'Dark',
|
|
73
|
+
'user.theme_light': 'Light',
|
|
74
|
+
'user.theme_auto': 'System',
|
|
75
|
+
'user.change_password': 'Change password',
|
|
76
|
+
'user.sign_out': 'Sign out',
|
|
77
|
+
'bar.back': 'Back to {page}',
|
|
78
|
+
'bar.breadcrumb': 'Breadcrumb',
|
|
79
|
+
'bar.search_label': 'Search the builder',
|
|
80
|
+
'bar.search_placeholder': 'Search (Ctrl+K)',
|
|
81
|
+
'bar.environment': 'Environment',
|
|
82
|
+
'weak.banner': 'You signed in with the default password. {link}',
|
|
83
|
+
'weak.change_now': 'Change it now.',
|
|
84
|
+
'weak.dismiss': 'Dismiss until the next sign-in',
|
|
85
|
+
'status.signed_in_as': 'Signed in as',
|
|
86
|
+
'status.workspace': 'Workspace',
|
|
87
|
+
'status.database': 'Database',
|
|
88
|
+
'status.language': 'Builder language',
|
|
89
|
+
|
|
90
|
+
// ------------------------------------------------------------ standard errors
|
|
91
|
+
'error.csrf': 'Invalid CSRF token; reload the page and try again.',
|
|
92
|
+
'error.sql_off': 'The SQL Workshop is turned off for the workspace {name}. Its administrators can turn it on in the workspace preferences.',
|
|
93
|
+
'error.sql_off_switch': 'The SQL Workshop is turned off for the workspace {name}. Its administrators can turn it on in the workspace preferences; or switch to another workspace.',
|
|
94
|
+
'error.not_found_title': 'Page not found',
|
|
95
|
+
'error.not_found_text': 'There is nothing at this address in the App Builder. The application or page may have been deleted, or belongs to a workspace you are not a member of.',
|
|
96
|
+
'error.server_title': 'Something went wrong',
|
|
97
|
+
'error.server_text': 'The App Builder could not show this page because of an error on the server. It has been logged; try again, or go back.',
|
|
98
|
+
'error.label_error': 'Error',
|
|
99
|
+
'error.label_not_found': 'Not found',
|
|
100
|
+
'error.home': 'App Builder home',
|
|
101
|
+
|
|
102
|
+
// ------------------------------------------------------------ sign-in page
|
|
103
|
+
'signin.title': 'Sign in',
|
|
104
|
+
'signin.tagline': 'Build data applications on PostgreSQL, in SQL you can trust',
|
|
105
|
+
'signin.license': 'Open source under the Apache-2.0 license',
|
|
106
|
+
'signin.welcome': 'Welcome',
|
|
107
|
+
'signin.intro': 'Sign in to your workspace to continue',
|
|
108
|
+
'signin.workspace': 'Workspace',
|
|
109
|
+
'signin.workspace_placeholder': 'Workspace (optional)',
|
|
110
|
+
'signin.username': 'Username',
|
|
111
|
+
'signin.password': 'Password',
|
|
112
|
+
'signin.show': 'Show',
|
|
113
|
+
'signin.hide': 'Hide',
|
|
114
|
+
'signin.remember': 'Remember workspace and username',
|
|
115
|
+
'signin.submit': 'Sign in',
|
|
116
|
+
'signin.hint': 'Leave the workspace empty to open your last one; you can switch later in your account menu.',
|
|
117
|
+
'signin.quick': 'Quick actions',
|
|
118
|
+
'signin.find_ws': 'Find my workspace',
|
|
119
|
+
'signin.admin': 'Administration',
|
|
120
|
+
'signin.about_ws': 'About workspaces',
|
|
121
|
+
'signin.languages': 'Language',
|
|
122
|
+
'signin.expired': 'Your session expired. Please try again.',
|
|
123
|
+
'signin.throttled': 'Too many failed sign-in attempts. Try again later.',
|
|
124
|
+
'signin.invalid': 'Invalid username or password.',
|
|
125
|
+
'signin.invalid_ws': 'Invalid workspace, username or password.',
|
|
126
|
+
|
|
127
|
+
// ------------------------------------------------------------ workspace home
|
|
128
|
+
'wh.title': 'Workspace home',
|
|
129
|
+
'wh.title_ws': 'Workspace {name}',
|
|
130
|
+
'wh.tools': 'Tools',
|
|
131
|
+
'wh.card.apps': 'Create, edit and run the applications of this workspace.',
|
|
132
|
+
'wh.card.sql': 'Run SQL, browse database objects, load data and build REST services.',
|
|
133
|
+
'wh.card.reporter': 'Datasets and reports for business users, without building pages.',
|
|
134
|
+
'wh.card.gallery': 'Sample and starter applications to install.',
|
|
135
|
+
'wh.message': 'Workspace message',
|
|
136
|
+
'wh.message_none': 'No message for the developers of {name}.',
|
|
137
|
+
'wh.message_edit_title': 'Edit the workspace message',
|
|
138
|
+
'wh.message_edit': 'Edit message',
|
|
139
|
+
'wh.message_help': 'Shown to the developers of {name} here and on the App Builder home. Plain text, up to 2000 characters; empty removes it.',
|
|
140
|
+
'wh.message_save': 'Save message',
|
|
141
|
+
'wh.summary': 'Summary',
|
|
142
|
+
'wh.stat.app': 'application',
|
|
143
|
+
'wh.stat.apps': 'applications',
|
|
144
|
+
'wh.stat.table': 'table',
|
|
145
|
+
'wh.stat.tables': 'tables',
|
|
146
|
+
'wh.stat.developer': 'developer',
|
|
147
|
+
'wh.stat.developers': 'developers',
|
|
148
|
+
'wh.stat.reporting': 'reporting application',
|
|
149
|
+
'wh.stat.reportings': 'reporting applications',
|
|
150
|
+
'wh.activity': 'Activity',
|
|
151
|
+
'wh.timeframe': 'Reporting timeframe',
|
|
152
|
+
'wh.tf.hour': '1 hour',
|
|
153
|
+
'wh.tf.day': '1 day',
|
|
154
|
+
'wh.tf.week': '1 week',
|
|
155
|
+
'wh.no_views': 'No page views in the last {tf}.',
|
|
156
|
+
'wh.top_apps': 'Top applications ({tf})',
|
|
157
|
+
'wh.top_users': 'Top users ({tf})',
|
|
158
|
+
'wh.top_devs': 'Top developers ({tf})',
|
|
159
|
+
'wh.top_apps_caption': 'Top applications, last {tf}',
|
|
160
|
+
'wh.top_users_caption': 'Top users, last {tf}',
|
|
161
|
+
'wh.top_devs_caption': 'Top developers, last {tf}',
|
|
162
|
+
'wh.col.app': 'Application',
|
|
163
|
+
'wh.col.apps': 'Applications',
|
|
164
|
+
'wh.col.views': 'Page views',
|
|
165
|
+
'wh.col.users': 'Users',
|
|
166
|
+
'wh.col.user': 'User',
|
|
167
|
+
'wh.col.developer': 'Developer',
|
|
168
|
+
'wh.system': 'System message',
|
|
169
|
+
'wh.available': 'pgkiln {version} is available',
|
|
170
|
+
'wh.server_runs': 'This server runs pgkiln {version}.',
|
|
171
|
+
'wh.server_runs_strong': 'This server runs {version}.',
|
|
172
|
+
'wh.latest': 'It is the latest release.',
|
|
173
|
+
'wh.release_notes': 'Release notes',
|
|
174
|
+
'wh.how_upgrade': 'How to upgrade',
|
|
175
|
+
'wh.upgrade_steps': 'To upgrade: back up the database, install the new version ({npm}, or the Docker image {docker}), run {migrate} and restart the server.',
|
|
176
|
+
'wh.check_off': 'The check for new versions is off.',
|
|
177
|
+
'wh.check_failed': 'The last check failed ({error}).',
|
|
178
|
+
'wh.check_failed_older': 'The last check failed ({error}); the result above is older.',
|
|
179
|
+
'wh.checked': 'Checked {ago}.',
|
|
180
|
+
'wh.checking': 'Checking for a new version…',
|
|
181
|
+
'wh.check_explain': 'When on, the server asks GitHub ({host}) once a day for the latest release; nothing about this installation is sent.',
|
|
182
|
+
'wh.check_now': 'Check now',
|
|
183
|
+
'wh.turn_off': 'Turn off',
|
|
184
|
+
'wh.check_on': 'Check for new versions',
|
|
185
|
+
'wh.flash.too_long': 'The message is at most 2000 characters.',
|
|
186
|
+
'wh.flash.saved': 'Workspace message saved.',
|
|
187
|
+
'wh.flash.removed': 'Workspace message removed.',
|
|
188
|
+
'wh.flash.check_daily': 'The server checks for new versions once a day.',
|
|
189
|
+
'wh.flash.check_failed': 'The check failed ({error}).',
|
|
190
|
+
'wh.flash.checked': 'Checked for a new version.',
|
|
191
|
+
'wh.aside': 'About and learn more',
|
|
192
|
+
'wh.about': 'The workspace home: its tools, how its applications are used and what is new.',
|
|
193
|
+
'wh.you_work': 'You work in {name}.',
|
|
194
|
+
'wh.learn_more': 'Learn more',
|
|
195
|
+
'wh.guide': 'The pgkiln guide',
|
|
196
|
+
'wh.tutorial': 'Tutorial',
|
|
197
|
+
'wh.from_apex': 'Coming from APEX',
|
|
198
|
+
'wh.whats_new': "What's new (changelog)",
|
|
199
|
+
'wh.discussions': 'Discussions',
|
|
200
|
+
'wh.resources': 'Resources',
|
|
201
|
+
'wh.mcp': 'AI coding agents (MCP)',
|
|
202
|
+
'wh.report_problem': 'Report a problem',
|
|
203
|
+
'team.open': 'Open issues',
|
|
204
|
+
'team.mine': 'Assigned to you',
|
|
205
|
+
'team.mentions': 'Mentions of you',
|
|
206
|
+
'team.setup': 'Set up Team Development',
|
|
207
|
+
|
|
208
|
+
// ------------------------------------------------------------ App Builder home (the applications)
|
|
209
|
+
'ab.tile.create': 'Create',
|
|
210
|
+
'ab.tile.create_text': 'Create a new application in this workspace.',
|
|
211
|
+
'ab.tile.import': 'Import',
|
|
212
|
+
'ab.tile.import_text': 'Import an exported application into this workspace.',
|
|
213
|
+
'ab.tile.dashboard': 'Dashboard',
|
|
214
|
+
'ab.tile.dashboard_text': 'View workspace usage, activity and sign-in problems.',
|
|
215
|
+
'ab.tile.utilities': 'Workspace Utilities',
|
|
216
|
+
'ab.tile.utilities_text': 'Users, identity providers, developers and the SQL Workshop.',
|
|
217
|
+
'ab.aside': 'About, recent and tasks',
|
|
218
|
+
'ab.about': 'The App Builder creates, edits and runs the applications of this workspace: pages and regions on your PostgreSQL tables, with sign-in, roles and row level security.',
|
|
219
|
+
'ab.recent': 'Recent',
|
|
220
|
+
'ab.task.create': 'Create application',
|
|
221
|
+
'ab.task.create_file': 'Create application from a file',
|
|
222
|
+
'ab.task.import': 'Import application',
|
|
223
|
+
'ab.task.users': 'Manage users',
|
|
224
|
+
'ab.task.providers': 'Identity providers',
|
|
225
|
+
'ab.none_q': 'No application matches “{q}”.',
|
|
226
|
+
'ab.none_group': 'No application in the group {group}.',
|
|
227
|
+
'ab.none_group_q': 'No application in the group {group} matches “{q}”.',
|
|
228
|
+
'ab.show_all': 'Show all',
|
|
229
|
+
'ab.none_yet': 'No applications yet. {create} or {import}.',
|
|
230
|
+
'ab.create_one': 'Create one',
|
|
231
|
+
'ab.import_one': 'import one',
|
|
232
|
+
'ab.pages': '{n} pages',
|
|
233
|
+
'ab.pages_one': '{n} page',
|
|
234
|
+
'ab.views_today': '{n} views today',
|
|
235
|
+
'ab.by': 'by',
|
|
236
|
+
'ab.copies': '{n} working copies',
|
|
237
|
+
'ab.copies_one': '{n} working copy',
|
|
238
|
+
'ab.copies_of': '{copies} of {name}',
|
|
239
|
+
'ab.locked_by': 'Locked by {user}',
|
|
240
|
+
'ab.edit': 'Edit {name}',
|
|
241
|
+
'ab.run': 'Run {name}',
|
|
242
|
+
'ab.col.apps': 'Applications',
|
|
243
|
+
'ab.col.app': 'Application',
|
|
244
|
+
'ab.col.name': 'Name',
|
|
245
|
+
'ab.col.alias': 'Alias',
|
|
246
|
+
'ab.col.pages': 'Pages',
|
|
247
|
+
'ab.col.views': 'Views (24h)',
|
|
248
|
+
'ab.col.signin': 'Sign-in',
|
|
249
|
+
'ab.col.updated': 'Updated',
|
|
250
|
+
'ab.col.updated_by': 'Updated by',
|
|
251
|
+
'ab.col.copies': 'Working copies',
|
|
252
|
+
'ab.col.actions': 'Actions',
|
|
253
|
+
'ab.auth.none': 'Public',
|
|
254
|
+
'ab.auth.header': 'HTTP header',
|
|
255
|
+
'ab.auth.database': 'Database accounts',
|
|
256
|
+
'ab.auth.custom': 'Custom',
|
|
257
|
+
'ab.auth.app_users': 'App users',
|
|
258
|
+
'ab.search_label': 'Search applications',
|
|
259
|
+
'ab.view': 'View',
|
|
260
|
+
'ab.view_cards': 'Cards',
|
|
261
|
+
'ab.view_report': 'Report',
|
|
262
|
+
'ab.group': 'Application group',
|
|
263
|
+
'ab.all_groups': 'All groups',
|
|
264
|
+
'ab.actions': 'Actions',
|
|
265
|
+
'ab.sort_by': 'Sort by',
|
|
266
|
+
'ab.sort.name': 'Name',
|
|
267
|
+
'ab.sort.id': 'Application ID',
|
|
268
|
+
'ab.sort.alias': 'Alias',
|
|
269
|
+
'ab.sort.pages': 'Most pages',
|
|
270
|
+
'ab.sort.updated': 'Recently updated',
|
|
271
|
+
'ab.ws_dashboard': 'Workspace dashboard',
|
|
272
|
+
'ab.count': '{n} applications',
|
|
273
|
+
'ab.count_one': '{n} application',
|
|
274
|
+
'ab.count_of': '{n} of {total}',
|
|
275
|
+
|
|
276
|
+
// ------------------------------------------------------------ an application's home (pages) and its tabs
|
|
277
|
+
'app.head.id': 'Application {id}',
|
|
278
|
+
'app.head.copies': 'Working copies',
|
|
279
|
+
'app.head.backups': 'Backups',
|
|
280
|
+
'app.head.availability': 'Availability',
|
|
281
|
+
'app.head.export': 'Export',
|
|
282
|
+
'app.head.tabs': 'Application',
|
|
283
|
+
'app.tab.pages': 'Pages',
|
|
284
|
+
'app.tab.shared': 'Shared Components',
|
|
285
|
+
'app.tab.activity': 'Activity',
|
|
286
|
+
'app.tab.api': 'REST API',
|
|
287
|
+
'app.tab.settings': 'Settings',
|
|
288
|
+
'app.tab.advisor': 'Advisor',
|
|
289
|
+
'app.lock_refused': 'Changes are refused until it is unlocked.',
|
|
290
|
+
'app.search_pages': 'Search pages',
|
|
291
|
+
'app.search_placeholder': 'Page name or number',
|
|
292
|
+
'app.view_icons': 'Icons',
|
|
293
|
+
'app.create_page': 'Create page',
|
|
294
|
+
'app.page_group': 'Page group',
|
|
295
|
+
'app.all_pages': 'All pages',
|
|
296
|
+
'app.no_group': 'Without a group',
|
|
297
|
+
'app.regions': '{n} regions',
|
|
298
|
+
'app.regions_one': '{n} region',
|
|
299
|
+
'app.col.page': 'Page',
|
|
300
|
+
'app.col.group': 'Group',
|
|
301
|
+
'app.col.mode': 'Mode',
|
|
302
|
+
'app.col.regions': 'Regions',
|
|
303
|
+
'app.col.items': 'Items',
|
|
304
|
+
'app.col.das': 'DAs',
|
|
305
|
+
'app.col.processes': 'Processes',
|
|
306
|
+
'app.col.authz': 'Authorization',
|
|
307
|
+
'app.col.protection': 'Protection',
|
|
308
|
+
'app.col.lock': 'Lock',
|
|
309
|
+
'app.dev_comments': 'Developer comments',
|
|
310
|
+
'app.comments': '{n} comments',
|
|
311
|
+
'app.comments_one': '{n} comment',
|
|
312
|
+
'app.public': 'public',
|
|
313
|
+
'app.you': 'you',
|
|
314
|
+
'app.no_match': 'No page matches “{q}”.',
|
|
315
|
+
'app.lock_region': 'Application lock and comments',
|
|
316
|
+
'app.from_table': 'Create pages from a table',
|
|
317
|
+
'app.from_table_text': 'Choose a page type and a table or view; the next step proposes the columns, key, dates, positions and foreign keys from the database, and creates the page with a menu entry.',
|
|
318
|
+
'app.page_type': 'Page type',
|
|
319
|
+
'app.table_or_view': 'Table or view (master table for master detail)',
|
|
320
|
+
'app.no_access': '{table} (no access for {role})',
|
|
321
|
+
'app.ai_pages': 'Create pages with AI',
|
|
322
|
+
'app.ai_pages_note': '(describe them in your own words)',
|
|
323
|
+
'app.blank': 'Create blank page',
|
|
324
|
+
'app.page_number': 'Page number',
|
|
325
|
+
'app.parent': 'Breadcrumb parent',
|
|
326
|
+
'app.task.run': 'Run application',
|
|
327
|
+
'app.task.page_groups': 'Page groups',
|
|
328
|
+
'app.task.supporting': 'Supporting objects',
|
|
329
|
+
'app.task.lock': 'Lock the application',
|
|
330
|
+
'app.task.delete': 'Delete the application',
|
|
331
|
+
'app.page_created': 'Page created.',
|
|
332
|
+
|
|
333
|
+
// ------------------------------------------------------------ Page Designer: toolbar, menus, tree, layout, gallery
|
|
334
|
+
'pd.designer': 'Page designer',
|
|
335
|
+
'pd.h1': 'Page designer: page {n}, {name}',
|
|
336
|
+
'pd.page_title': 'Page {n}: {name}',
|
|
337
|
+
'pd.page_n_title': 'Page {n}',
|
|
338
|
+
'pd.page_n': 'page {n}',
|
|
339
|
+
'pd.no_page': 'There is no page {page}.',
|
|
340
|
+
'pd.pane.tree': 'Tree',
|
|
341
|
+
'pd.layout': 'Layout',
|
|
342
|
+
'pd.properties': 'Properties',
|
|
343
|
+
'pd.components': 'Page components',
|
|
344
|
+
'pd.tab.rendering': 'Rendering',
|
|
345
|
+
'pd.tab.da': 'Dynamic actions',
|
|
346
|
+
'pd.tab.processing': 'Processing',
|
|
347
|
+
'pd.tab.shared': 'Shared components',
|
|
348
|
+
'pd.tree.items': 'Items',
|
|
349
|
+
'pd.tree.buttons': 'Buttons',
|
|
350
|
+
'pd.tree.buttons_at': 'Buttons: {slot}',
|
|
351
|
+
'pd.tree.no_regions_yet': 'No regions yet',
|
|
352
|
+
'pd.tree.no_regions': 'No regions',
|
|
353
|
+
'pd.tree.pre_rendering': 'Pre-Rendering (before header)',
|
|
354
|
+
'pd.tree.no_pre_rendering': 'No branches, computations or processes before rendering',
|
|
355
|
+
'pd.tree.page_items': 'Page items',
|
|
356
|
+
'pd.tree.page_buttons': 'Page buttons',
|
|
357
|
+
'pd.tree.events': 'Events: {event}',
|
|
358
|
+
'pd.tree.button_target': 'button target',
|
|
359
|
+
'pd.tree.after_submit': 'After submit (computations)',
|
|
360
|
+
'pd.tree.no_computations': 'No computations',
|
|
361
|
+
'pd.tree.validating': 'Validating',
|
|
362
|
+
'pd.tree.no_validations': 'No validations',
|
|
363
|
+
'pd.tree.no_processes': 'No processes',
|
|
364
|
+
'pd.tree.after_processing': 'After processing (branches)',
|
|
365
|
+
'pd.tree.no_branches': 'No branches',
|
|
366
|
+
'pd.event.change': 'Change',
|
|
367
|
+
'pd.event.click': 'Click',
|
|
368
|
+
'pd.event.load': 'Page load',
|
|
369
|
+
'pd.event.menu_entry': 'Menu entry chosen',
|
|
370
|
+
'pd.event.other': 'Other',
|
|
371
|
+
'pd.shared.all': 'All shared components',
|
|
372
|
+
'pd.shared.lovs': 'Lists of values',
|
|
373
|
+
'pd.shared.authz': 'Authorization schemes',
|
|
374
|
+
'pd.shared.nav': 'Navigation menu',
|
|
375
|
+
'pd.shared.app_items': 'Application items',
|
|
376
|
+
'pd.badge.authz': 'Authorization: {name}',
|
|
377
|
+
'pd.badge.condition': 'Has a condition',
|
|
378
|
+
'pd.badge.build_option': 'Build option: {name}',
|
|
379
|
+
'pd.copy.title': 'Copy to other page',
|
|
380
|
+
'pd.copy.page': 'Page',
|
|
381
|
+
'pd.copy.help': "Items named {prefix} get the other page's number; a region's items and buttons come along. References in SQL and conditions are not changed.",
|
|
382
|
+
'pd.copy.copy': 'Copy',
|
|
383
|
+
'pd.slot_title': 'Button position: {slot}',
|
|
384
|
+
'pd.drag_move': 'Drag to move',
|
|
385
|
+
'pd.drag_span': 'Drag to change the column span',
|
|
386
|
+
'pd.zone_off': '(not in this page template: shown in the body)',
|
|
387
|
+
'pd.in_position': 'in {position}',
|
|
388
|
+
'pd.gallery': 'Gallery',
|
|
389
|
+
'pd.gallery.regions': 'Regions',
|
|
390
|
+
'pd.gallery_title': '{name}: drag onto the layout, or open to create',
|
|
391
|
+
'pd.zoom_out': 'Zoom out',
|
|
392
|
+
'pd.zoom_in': 'Zoom in',
|
|
393
|
+
'pd.maximize': 'Maximize the layout',
|
|
394
|
+
'pd.kbd_hint': "Drag to move. Keyboard: Alt+↑/↓ moves the focused component, Alt+Shift+←/→ changes a region's width.",
|
|
395
|
+
'pd.modal': '(modal dialog)',
|
|
396
|
+
'pd.page_level': 'Page level (no region)',
|
|
397
|
+
'pd.search_label': "Search the application's pages and components",
|
|
398
|
+
'pd.search_placeholder': 'e.g. {prefix} or a table name',
|
|
399
|
+
'pd.page_search': 'Page search',
|
|
400
|
+
'pd.lock_comments': 'Lock and comments',
|
|
401
|
+
'pd.locked': 'locked',
|
|
402
|
+
'pd.lock_refused': 'Your changes will be refused.',
|
|
403
|
+
'pd.attributes': 'Attributes',
|
|
404
|
+
'pd.jobs': 'Jobs',
|
|
405
|
+
'pd.not_found': 'Component not found.',
|
|
406
|
+
'pd.save_page': 'Save page',
|
|
407
|
+
'pd.delete_page': 'Delete page',
|
|
408
|
+
'pd.delete_page_confirm': 'Delete page {n} and all its components?',
|
|
409
|
+
'pd.filter_label': 'Filter properties',
|
|
410
|
+
'pd.filter': 'Filter',
|
|
411
|
+
'pd.help_hint': 'Select a property to see its help here.',
|
|
412
|
+
'pd.arrange': 'Arrange',
|
|
413
|
+
'pd.arrange.up': 'Move up',
|
|
414
|
+
'pd.arrange.up_title': 'Move up (earlier in the sequence)',
|
|
415
|
+
'pd.arrange.down': 'Move down',
|
|
416
|
+
'pd.arrange.down_title': 'Move down (later in the sequence)',
|
|
417
|
+
'pd.arrange.narrower': 'Narrower',
|
|
418
|
+
'pd.arrange.narrower_title': 'Narrower (one column less)',
|
|
419
|
+
'pd.arrange.wider': 'Wider',
|
|
420
|
+
'pd.arrange.wider_title': 'Wider (one column more)',
|
|
421
|
+
'pd.arrange.span': 'Column span',
|
|
422
|
+
'pd.arrange.to_region': 'Move to region',
|
|
423
|
+
'pd.arrange.move': 'Move',
|
|
424
|
+
'pd.arrange.move_title': 'Move to the end of this region',
|
|
425
|
+
'pd.arrange.page_level': '- page level -',
|
|
426
|
+
'pd.menu.create': 'Create',
|
|
427
|
+
'pd.menu.page_item': 'Page item',
|
|
428
|
+
'pd.menu.page': 'Page…',
|
|
429
|
+
'pd.menu.utilities': 'Utilities',
|
|
430
|
+
'pd.menu.search_items': "Search this page's items",
|
|
431
|
+
'pd.menu.all_pages': 'All pages',
|
|
432
|
+
'pd.menu.export': 'Export application',
|
|
433
|
+
'pd.prev': 'Previous page',
|
|
434
|
+
'pd.prev_title': 'Previous page: {n}. {name}',
|
|
435
|
+
'pd.next': 'Next page',
|
|
436
|
+
'pd.next_title': 'Next page: {n}. {name}',
|
|
437
|
+
'pd.goto_no': 'Page number (Enter goes there)',
|
|
438
|
+
'pd.goto_no_title': 'Page number: type or step to a number, then Enter',
|
|
439
|
+
'pd.goto': 'Go to page',
|
|
440
|
+
'pd.history': 'History',
|
|
441
|
+
'pd.undo': 'Undo',
|
|
442
|
+
'pd.redo': 'Redo',
|
|
443
|
+
'pd.nothing_undo': 'Nothing to undo',
|
|
444
|
+
'pd.nothing_redo': 'Nothing to redo',
|
|
445
|
+
'pd.save_title': 'Save the properties',
|
|
446
|
+
'pd.run_title': 'Run page {n}',
|
|
447
|
+
'pd.page_saved': 'Page saved.',
|
|
448
|
+
'pd.page_deleted': 'Page deleted.',
|
|
449
|
+
// the page's components (COMPONENTS in components.ts), per kind
|
|
450
|
+
'comp.region': 'Region',
|
|
451
|
+
'comp.region.plural': 'Regions',
|
|
452
|
+
'comp.item': 'Item',
|
|
453
|
+
'comp.item.plural': 'Items',
|
|
454
|
+
'comp.button': 'Button',
|
|
455
|
+
'comp.button.plural': 'Buttons',
|
|
456
|
+
'comp.dynamic_action': 'Dynamic action',
|
|
457
|
+
'comp.validation': 'Validation',
|
|
458
|
+
'comp.process': 'Process',
|
|
459
|
+
'comp.computation': 'Computation',
|
|
460
|
+
'comp.branch': 'Branch',
|
|
461
|
+
'pd.new.region': 'New region',
|
|
462
|
+
'pd.new.item': 'New item',
|
|
463
|
+
'pd.new.button': 'New button',
|
|
464
|
+
'pd.new.dynamic_action': 'New dynamic action',
|
|
465
|
+
'pd.new.validation': 'New validation',
|
|
466
|
+
'pd.new.process': 'New process',
|
|
467
|
+
'pd.new.computation': 'New computation',
|
|
468
|
+
'pd.new.branch': 'New branch',
|
|
469
|
+
'pd.create.region': 'Create region',
|
|
470
|
+
'pd.create.item': 'Create item',
|
|
471
|
+
'pd.create.button': 'Create button',
|
|
472
|
+
'pd.create.dynamic_action': 'Create dynamic action',
|
|
473
|
+
'pd.create.validation': 'Create validation',
|
|
474
|
+
'pd.create.process': 'Create process',
|
|
475
|
+
'pd.create.computation': 'Create computation',
|
|
476
|
+
'pd.create.branch': 'Create branch',
|
|
477
|
+
'pd.delete.region': 'Delete region',
|
|
478
|
+
'pd.delete.item': 'Delete item',
|
|
479
|
+
'pd.delete.button': 'Delete button',
|
|
480
|
+
'pd.delete.dynamic_action': 'Delete dynamic action',
|
|
481
|
+
'pd.delete.validation': 'Delete validation',
|
|
482
|
+
'pd.delete.process': 'Delete process',
|
|
483
|
+
'pd.delete.computation': 'Delete computation',
|
|
484
|
+
'pd.delete.branch': 'Delete branch',
|
|
485
|
+
'pd.delete_confirm.region': 'Delete this region?',
|
|
486
|
+
'pd.delete_confirm.item': 'Delete this item?',
|
|
487
|
+
'pd.delete_confirm.button': 'Delete this button?',
|
|
488
|
+
'pd.delete_confirm.dynamic_action': 'Delete this dynamic action?',
|
|
489
|
+
'pd.delete_confirm.validation': 'Delete this validation?',
|
|
490
|
+
'pd.delete_confirm.process': 'Delete this process?',
|
|
491
|
+
'pd.delete_confirm.computation': 'Delete this computation?',
|
|
492
|
+
'pd.delete_confirm.branch': 'Delete this branch?',
|
|
493
|
+
'pd.saved.region': 'Region saved.',
|
|
494
|
+
'pd.saved.item': 'Item saved.',
|
|
495
|
+
'pd.saved.button': 'Button saved.',
|
|
496
|
+
'pd.saved.dynamic_action': 'Dynamic action saved.',
|
|
497
|
+
'pd.saved.validation': 'Validation saved.',
|
|
498
|
+
'pd.saved.process': 'Process saved.',
|
|
499
|
+
'pd.saved.computation': 'Computation saved.',
|
|
500
|
+
'pd.saved.branch': 'Branch saved.',
|
|
501
|
+
'pd.deleted.region': 'Region deleted.',
|
|
502
|
+
'pd.deleted.item': 'Item deleted.',
|
|
503
|
+
'pd.deleted.button': 'Button deleted.',
|
|
504
|
+
'pd.deleted.dynamic_action': 'Dynamic action deleted.',
|
|
505
|
+
'pd.deleted.validation': 'Validation deleted.',
|
|
506
|
+
'pd.deleted.process': 'Process deleted.',
|
|
507
|
+
'pd.deleted.computation': 'Computation deleted.',
|
|
508
|
+
'pd.deleted.branch': 'Branch deleted.',
|
|
509
|
+
// display positions (POSITION_LABELS) and region button positions (SLOT_LABELS) in arrange.ts
|
|
510
|
+
'pos.banner': 'Banner',
|
|
511
|
+
'pos.breadcrumb': 'Breadcrumb bar',
|
|
512
|
+
'pos.left': 'Left column',
|
|
513
|
+
'pos.body': 'Body',
|
|
514
|
+
'pos.right': 'Right column',
|
|
515
|
+
'pos.footer': 'Footer',
|
|
516
|
+
'slot.region': 'Region buttons',
|
|
517
|
+
'slot.create': 'Create',
|
|
518
|
+
'slot.edit': 'Edit',
|
|
519
|
+
'slot.change': 'Change',
|
|
520
|
+
'slot.copy': 'Copy',
|
|
521
|
+
'slot.help': 'Help',
|
|
522
|
+
'slot.up': 'Up',
|
|
523
|
+
'slot.previous': 'Previous',
|
|
524
|
+
'slot.close': 'Close',
|
|
525
|
+
'slot.delete': 'Delete',
|
|
526
|
+
'slot.next': 'Next',
|
|
527
|
+
// the gallery (REGION_LABELS, ITEM_LABELS, BUTTON_LABELS in arrange.ts)
|
|
528
|
+
'gallery.region.report': 'Interactive Report',
|
|
529
|
+
'gallery.region.grid': 'Interactive Grid',
|
|
530
|
+
'gallery.region.form': 'Form',
|
|
531
|
+
'gallery.region.chart': 'Chart',
|
|
532
|
+
'gallery.region.cards': 'Cards',
|
|
533
|
+
'gallery.region.calendar': 'Calendar',
|
|
534
|
+
'gallery.region.facets': 'Faceted Search',
|
|
535
|
+
'gallery.region.smart_filters': 'Smart Filters',
|
|
536
|
+
'gallery.region.display_selector': 'Region Display Selector',
|
|
537
|
+
'gallery.region.tasks': 'Task List',
|
|
538
|
+
'gallery.region.workflows': 'Workflow Console',
|
|
539
|
+
'gallery.region.map': 'Map',
|
|
540
|
+
'gallery.region.tree': 'Tree',
|
|
541
|
+
'gallery.region.static': 'Static Content',
|
|
542
|
+
'gallery.region.dynamic': 'Dynamic Content',
|
|
543
|
+
'gallery.region.template_component': 'Template Component',
|
|
544
|
+
'gallery.region.list': 'List',
|
|
545
|
+
'gallery.region.data_reporter': 'Data Reporter',
|
|
546
|
+
'gallery.region.form_designer': 'Form Designer',
|
|
547
|
+
'gallery.region.ai_assistant': 'AI Assistant',
|
|
548
|
+
'gallery.region.url': 'URL',
|
|
549
|
+
'gallery.region.search': 'Search',
|
|
550
|
+
'gallery.region.login': 'Login',
|
|
551
|
+
'gallery.region.plugin': 'Plug-in',
|
|
552
|
+
'gallery.item.text': 'Text Field',
|
|
553
|
+
'gallery.item.textarea': 'Text Area',
|
|
554
|
+
'gallery.item.number': 'Number Field',
|
|
555
|
+
'gallery.item.date': 'Date Picker',
|
|
556
|
+
'gallery.item.datetime': 'Date and Time',
|
|
557
|
+
'gallery.item.select': 'Select List',
|
|
558
|
+
'gallery.item.popup_lov': 'Popup LOV',
|
|
559
|
+
'gallery.item.radio': 'Radio Group',
|
|
560
|
+
'gallery.item.checkbox': 'Checkbox',
|
|
561
|
+
'gallery.item.switch': 'Switch',
|
|
562
|
+
'gallery.item.checkbox_group': 'Checkbox Group',
|
|
563
|
+
'gallery.item.multiselect': 'Multi Select',
|
|
564
|
+
'gallery.item.email': 'E-mail',
|
|
565
|
+
'gallery.item.tel': 'Phone Number',
|
|
566
|
+
'gallery.item.url': 'URL',
|
|
567
|
+
'gallery.item.color': 'Color Picker',
|
|
568
|
+
'gallery.item.file': 'File Upload',
|
|
569
|
+
'gallery.item.location': 'Location',
|
|
570
|
+
'gallery.item.richtext': 'Rich Text Editor',
|
|
571
|
+
'gallery.item.markdown': 'Markdown Editor',
|
|
572
|
+
'gallery.item.rating': 'Star Rating',
|
|
573
|
+
'gallery.item.combobox': 'Combobox (Tags)',
|
|
574
|
+
'gallery.item.daterange': 'Date Range',
|
|
575
|
+
'gallery.item.qrcode': 'QR Code',
|
|
576
|
+
'gallery.item.image': 'Display Image',
|
|
577
|
+
'gallery.item.address': 'Geocoded Address',
|
|
578
|
+
'gallery.item.hidden': 'Hidden',
|
|
579
|
+
'gallery.item.display': 'Display Only',
|
|
580
|
+
'gallery.item.password': 'Password',
|
|
581
|
+
'gallery.item.plugin': 'Plug-in',
|
|
582
|
+
'gallery.button.submit': 'Submit Page',
|
|
583
|
+
'gallery.button.redirect': 'Redirect to Page',
|
|
584
|
+
'gallery.button.da': 'Dynamic Action',
|
|
585
|
+
'gallery.button.document': 'Download Document',
|
|
586
|
+
'gallery.button.menu': 'Menu',
|
|
587
|
+
|
|
588
|
+
// ------------------------------------------------------------ SQL Workshop: home (Launchpad) and tabs
|
|
589
|
+
'sw.more': 'More',
|
|
590
|
+
'sw.aside': 'About, schema and tasks',
|
|
591
|
+
'sw.about': 'The SQL Workshop is a collection of tools to manage database objects. It runs as {role}.',
|
|
592
|
+
'sw.schema': 'Schema',
|
|
593
|
+
'sw.schema_text': 'The default schema of this session: first in the search path of the SQL Worksheet and SQL Scripts.',
|
|
594
|
+
'sw.default_path': '(the default search path)',
|
|
595
|
+
'sw.set': 'Set',
|
|
596
|
+
'sw.task.quicksql': 'Create a data model with Quick SQL',
|
|
597
|
+
'sw.task.blueprint': 'Create an application from a blueprint',
|
|
598
|
+
'sw.task.describe': 'Describe tables',
|
|
599
|
+
'sw.task.sample': 'Generate sample data',
|
|
600
|
+
'sw.task.ddl': 'Generate DDL',
|
|
601
|
+
'sw.recent_tables': 'Recently created tables',
|
|
602
|
+
'sw.rows': '~{n} rows',
|
|
603
|
+
'sw.no_tables': 'No tables you can read.',
|
|
604
|
+
'sw.history_title': 'Open SQL History',
|
|
605
|
+
'sw.recent_commands': 'Recent SQL commands',
|
|
606
|
+
'sw.no_commands': "You haven't run SQL commands yet.",
|
|
607
|
+
'sw.recent_scripts': 'Recent SQL scripts',
|
|
608
|
+
'sw.no_scripts': 'No scripts in this workspace yet.',
|
|
609
|
+
'sw.flash.schema': 'Schema {schema} first in the search path of the SQL Worksheet and SQL Scripts.',
|
|
610
|
+
'sw.flash.default_path': 'The default search path again.',
|
|
611
|
+
'sw.pinned': 'Pinned & recently visited',
|
|
612
|
+
'sw.pin_hint': 'Pin a tool, an object or a saved worksheet with {pin} to keep it here.',
|
|
613
|
+
'sw.recent': 'Recently visited',
|
|
614
|
+
'sw.pin_title': 'Pin to the SQL Workshop home',
|
|
615
|
+
'sw.unpin': 'Unpin',
|
|
616
|
+
'sw.pin_what': 'Pin {what}',
|
|
617
|
+
'sw.unpin_what': 'Unpin {what}',
|
|
618
|
+
// the Launchpad's groups (TOOL_GROUPS) and tools (SQL_TOOLS in sql-tools.ts: sql.tool.<key>, .desc)
|
|
619
|
+
'sql.group.development': 'Development',
|
|
620
|
+
'sql.group.administration': 'Administration',
|
|
621
|
+
'sql.group.monitoring': 'Monitoring',
|
|
622
|
+
'sql.tool.worksheet': 'SQL Worksheet',
|
|
623
|
+
'sql.tool.worksheet.desc': 'Run statements and scripts with a navigator, plans, results and history.',
|
|
624
|
+
'sql.tool.objects': 'Object Browser',
|
|
625
|
+
'sql.tool.objects.desc': 'Tables, views and functions with their columns, data, keys, policies and DDL.',
|
|
626
|
+
'sql.tool.scripts': 'SQL Scripts',
|
|
627
|
+
'sql.tool.scripts.desc': 'Saved scripts of the workspace: upload, run, download, run history.',
|
|
628
|
+
'sql.tool.table': 'Create Table',
|
|
629
|
+
'sql.tool.table.desc': 'A new table in a form: columns, keys, indexes and security.',
|
|
630
|
+
'sql.tool.charts': 'Charts',
|
|
631
|
+
'sql.tool.charts.desc': 'Queries drawn as charts, and a dashboard of them.',
|
|
632
|
+
'sql.tool.quicksql': 'Quick SQL',
|
|
633
|
+
'sql.tool.quicksql.desc': 'A data model in shorthand, turned into DDL.',
|
|
634
|
+
'sql.tool.query': 'Query Builder',
|
|
635
|
+
'sql.tool.query.desc': 'A query from tables and their joins, drawn.',
|
|
636
|
+
'sql.tool.load': 'Load Data',
|
|
637
|
+
'sql.tool.load.desc': 'CSV, Excel, JSON or XML into a new or existing table.',
|
|
638
|
+
'sql.tool.unload': 'Unload Data',
|
|
639
|
+
'sql.tool.unload.desc': 'A table, view or query as CSV, JSON, Excel, XML or SQL inserts.',
|
|
640
|
+
'sql.tool.sample': 'Sample Data',
|
|
641
|
+
'sql.tool.sample.desc': 'Rows that look real, for development.',
|
|
642
|
+
'sql.tool.ddl': 'Generate DDL',
|
|
643
|
+
'sql.tool.ddl.desc': "A schema's objects as one script.",
|
|
644
|
+
'sql.tool.compare': 'Schema Comparison',
|
|
645
|
+
'sql.tool.compare.desc': 'The differences between two schemas, and the SQL to align them.',
|
|
646
|
+
'sql.tool.changes': 'Change Log',
|
|
647
|
+
'sql.tool.changes.desc': 'DDL run here as change sets per schema; download as Flyway, Liquibase or SQL migrations.',
|
|
648
|
+
'sql.tool.modeler': 'Data Modeler',
|
|
649
|
+
'sql.tool.modeler.desc': 'Relational diagrams of tables and their foreign keys; DDL and a data dictionary from them.',
|
|
650
|
+
'sql.tool.rest': 'RESTful Services',
|
|
651
|
+
'sql.tool.rest.desc': 'REST modules, templates and handlers; tables and views as REST endpoints (AutoREST); OpenAPI.',
|
|
652
|
+
'sql.tool.ai': 'AI',
|
|
653
|
+
'sql.tool.ai.desc': 'SQL from a question, explanations and table descriptions.',
|
|
654
|
+
'sql.tool.utilities': 'Utilities',
|
|
655
|
+
'sql.tool.utilities.desc': 'Object reports, About Database and the other utilities.',
|
|
656
|
+
'sql.tool.backups': 'Manage Backups',
|
|
657
|
+
'sql.tool.backups.desc': "Backups of the workspace's applications.",
|
|
658
|
+
'sql.tool.workspaces': 'Workspaces',
|
|
659
|
+
'sql.tool.workspaces.desc': 'Workspaces, their developers and database roles.',
|
|
660
|
+
'sql.tool.dbusers': 'Database Users',
|
|
661
|
+
'sql.tool.dbusers.desc': 'PostgreSQL roles: sign-in, expiry, memberships and schema privileges.',
|
|
662
|
+
'sql.tool.datapump': 'Schema Export / Import',
|
|
663
|
+
'sql.tool.datapump.desc': 'A schema to a file with pg_dump, a file into a schema with pg_restore (Data Pump).',
|
|
664
|
+
'sql.tool.scheduling': 'Scheduling',
|
|
665
|
+
'sql.tool.scheduling.desc': "pg_cron jobs: SQL on a schedule, next runs, run history; pgkiln's automations without it.",
|
|
666
|
+
'sql.tool.developers': 'Developers',
|
|
667
|
+
'sql.tool.developers.desc': 'Builder accounts and their workspaces.',
|
|
668
|
+
'sql.tool.monitor': 'SQL Monitor',
|
|
669
|
+
'sql.tool.monitor.desc': 'Sessions live: what they run, wait for and what blocks them; cancel or terminate.',
|
|
670
|
+
'sql.tool.topsql': 'Top SQL',
|
|
671
|
+
'sql.tool.topsql.desc': 'The slowest and most called statements of the database, with their plans.',
|
|
672
|
+
'sql.tool.about': 'About Database',
|
|
673
|
+
'sql.tool.about.desc': 'The server: version, settings, extensions and sizes.',
|
|
674
|
+
'sql.tool.reports': 'Object Reports',
|
|
675
|
+
'sql.tool.reports.desc': 'Tables without keys, unindexed foreign keys, row level security gaps and more.',
|
|
676
|
+
'sql.tool.activity': 'Monitor Activity',
|
|
677
|
+
'sql.tool.activity.desc': 'Page views, errors and slow pages of the applications.',
|
|
678
|
+
} as const;
|